Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Moduł Gy-521, znany również jako moduł MPU-6050, jest popularnym układem do pomiaru akceleracji i prędkości kątowej.
Zawiera on akcelerometr i żyroskop, co pozwala na pomiar ruchu i orientacji obiektów. Moduł ten jest często wykorzystywany w projektach związanych z Arduino, ze względu na swoją dokładność i łatwość integracji z mikrokontrolerem.
MPU-6050 wykorzystuje interfejs komunikacyjny I2C do komunikacji z Arduino, co pozwala na łatwe odczytywanie danych z modułu.
Jest to niezwykle przydatny komponent dla projektantów, którzy chcą dodać zdolności śledzenia ruchu do swoich projektów Arduino.
Moduł Gy-521 oferuje kilka podstawowych funkcji, które sprawiają, że jest idealny do wielu zastosowań:
– Pomiar akceleracji w trzech osiach (x, y, z) za pomocą akcelerometru.
– Pomiar prędkości kątowej w trzech osiach (x, y, z) za pomocą żyroskopu.
– Zintegrowany układ komunikacyjny I2C, umożliwiający łatwą integrację z Arduino.
Podłączenie modułu Gy-521 do Arduino jest stosunkowo proste. Wymaga to tylko kilku połączeń:
– Podłącz pin VCC modułu do pinu 5V Arduino.
– Podłącz pin GND modułu do pinu GND Arduino.
– Połącz pin SCL modułu (zazwyczaj oznaczony jako SCL lub SCK) do pinu A5 Arduino.
– Połącz pin SDA modułu (zazwyczaj oznaczony jako SDA lub SDA) do pinu A4 Arduino.
Po podłączeniu modułu możesz zacząć komunikować się z nim za pomocą Arduino.
Aby korzystać z modułu Gy-521 w projekcie Arduino, najpierw musisz zaimportować odpowiednią bibliotekę. Istnieje wiele bibliotek dostępnych online, które ułatwiają komunikację z modułem MPU-6050.
Następnie możesz zacząć odczytywać dane z akcelerometru i żyroskopu, aby monitorować ruch i orientację. Na przykład, możesz użyć odczytanych danych do sterowania ruchem robota lub do śledzenia ruchu obiektu.
Pamiętaj, że moduł Gy-521 może wymagać kalibracji, aby uzyskać dokładne wyniki. Istnieją różne metody kalibracji, które można znaleźć online w zależności od konkretnych wymagań projektu.
Poniżej znajduje się przykładowy kod Arduino do odczytywania danych z modułu Gy-521:
#include
const int MPUaddr = 0x68; // Adres modułu MPU-6050
int16t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
void setup() {
Wire.begin();
Wire.beginTransmission(MPUaddr);
Wire.write(0x6B); // Adres rejestru włączającego się
Wire.write(0); // Wyłącz czujnik wybudzenia (rejestry domyślne)
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop() {
Wire.beginTransmission(MPUaddr);
Wire.write(0x3B); // Początkowy adres danych akcelerometru
Wire.endTransmission(false);
Wire.requestFrom(MPUaddr, 14, true); // Pobiera 14 bitów danych
AcX = Wire.read()<<8|Wire.read(); // 0x3B (ACCELXOUTH) & 0x3C (ACCELXOUTL)
AcY = Wire.read()<<8|Wire.read(); // 0x3D (ACCELYOUTH) & 0x3E (ACCELYOUTL)
AcZ = Wire.read()<<8|Wire.read(); // 0x3F (ACCELZOUTH) & 0x40 (ACCELZOUTL)
Tmp = Wire.read()<<8|Wire.read(); // 0x41 (TEMPOUTH) & 0x42 (TEMPOUTL)
GyX = Wire.read()<<8|Wire.read(); // 0x43 (GYROXOUTH) & 0x44 (GYROXOUTL)
GyY = Wire.read()<<8|Wire.read(); // 0x45 (GYROYOUTH) & 0x46 (GYROYOUTL)
GyZ = Wire.read()<<8|Wire.read(); // 0x47 (GYROZOUTH) & 0x48 (GYROZOUT_L)
Serial.print("Akcelerometr: ");
Serial.print("X = "); Serial.print(AcX);
Serial.print(" | Y = "); Serial.print(AcY);
Serial.print(" | Z = "); Serial.println(AcZ);
Serial.print("Zyroskop: ");
Serial.print("X = "); Serial.print(GyX);
Serial.print(" | Y = "); Serial.print(GyY);
Serial.print(" | Z = "); Serial.println(GyZ);
Serial.println();
delay(1000);
}
Moduł Gy-521, oparty na układzie MPU-6050, jest niez