2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
MPU6050 to bardzo przydatny czujnik.
MPu 6050 to IMU: bezwładnościowa jednostka pomiarowa (IMU) to urządzenie elektroniczne, które mierzy i raportuje specyficzną siłę ciała, szybkość kątową, a czasem orientację ciała, za pomocą kombinacji akcelerometrów i żyroskopów.
Jest to urządzenie 6-osiowe
3 osi mogą mierzyć przyspieszenie, a pozostałe 3 służą do pomiarów przyspieszenia kątowego.
Wykorzystując przyspieszenie i przyspieszenie kątowe można uzyskać dość dokładne oszacowanie kąta
W tym samouczku będziemy badać, w jaki sposób możemy używać MPU6050 z biblioteką, aby znacznie ułatwić pracę.
Kieszonkowe dzieci
- Płytka Arduino
- MPU6050
- Przewody połączeniowe
- Deska do krojenia chleba
Krok 1: Ukończ obwód
Czujnik wykorzystuje protokół znany jako I2c do komunikacji z Arduino w celu przesłania mu wartości.
Pin A4 jest używany do zegara szeregowego SCL i powinien być podłączony do SCL czujnika i, A5 do SDA-Serial linia danych.
Vcc jest podłączony do 5 V, a Gnd jest podłączony do ziemi
Krok 2: Kodowanie
#włącz #włącz
Zanim zacznę, ta biblioteka nie jest napisana przeze mnie, myślę, że jest tam najprostsza i uwielbiam z niej korzystać.
To są pliki nagłówkowe ^^, wire.h służy do nawiązania komunikacji i2c
MPU6050 mpu6050 (drut);
tutaj nazywamy nasz żyroskop lub tworzymy obiekt dla tych, którzy znają się na OOP.
pusta konfiguracja () {
Serial.początek(9600); Wire.początek(); mpu6050.begin(); mpu6050.calcGyroOffsets (prawda); }
Początkowo obliczamy przesunięcia, ponieważ wszystkie odczyty kątów będą dotyczyły początkowej orientacji.
pusta pętla () {
mpu6050.aktualizacja(); Serial.print("angleX: "); Serial.print(mpu6050.getAngleX()); Serial.print("\tangleY : "); Serial.print(mpu6050.getAngleY()); Serial.print("\tangleZ: "); Serial.println(mpu6050.getAngleZ()); }
Każdy daje nam miarę kąta.
Krok 3: Inne funkcje
Biblioteka zawiera inne funkcje
lubić:
mpu6050.getTemp()//podaje temperaturę (niezbyt dokładna)
mpu6050.getAccX()//Przyspieszenie liniowe w kierunku X
(podobne funkcje to mpu6050.getAccY(), mpu6050.getAccZ())
mpu6050.getGyroX()//Przyspieszenie kątowe wokół osi x
(podobne funkcje to mpu6050.getGyroY(), mpu6050.getGyroZ())