Obsah:

Jak měřit úhel pomocí MPU-6050 (GY-521): 3 kroky
Jak měřit úhel pomocí MPU-6050 (GY-521): 3 kroky

Video: Jak měřit úhel pomocí MPU-6050 (GY-521): 3 kroky

Video: Jak měřit úhel pomocí MPU-6050 (GY-521): 3 kroky
Video: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Červenec
Anonim
Jak měřit úhel pomocí MPU-6050 (GY-521)
Jak měřit úhel pomocí MPU-6050 (GY-521)

V tomto Instructable budeme měřit úhel pomocí Arduina. K měření úhlu potřebujeme nějaké kabely, Arduino UNO a GY-521 (MPU-6050).

Krok 1: Připojení MPU-6050 k Arduino UNO

Připojení MPU-6050 k Arduino UNO
Připojení MPU-6050 k Arduino UNO

K měření úhlu potřebujeme několik kabelů samec-samice, snímač Arduino UNO a GY-521 (MPU-6050). Musíme připojit MPU-6050 k Arduino UNO, jak je znázorněno na obrázku. Tak,

  • VCC až 5V (MPU-6050 pracuje s 3,3V, ale GY-521 zvyšuje na 5V.),
  • GND až GND,
  • SCL až A5,
  • SDA na A4,
  • ADO na GND,
  • INT na digitální pin 2.

Krok 2: Kód

Kód
Kód

Zde je kód. Používá I2C. Vzal jsem některé části kódu z internetu. (Část I2C)

// Napsal Ahmet Burkay KIRNIK // Měření úhlu pomocí MPU-6050 (GY-521)

#zahrnout

const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;

int minVal = 265; int maxVal = 402;

dvojité x; dvojité y; dvojité z;

neplatné nastavení () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (true); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (false); Wire.requestFrom (MPU_addr, 14, true); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = mapa (AcX, minVal, maxVal, -90, 90); int yAng = mapa (AcY, minVal, maxVal, -90, 90); int zAng = mapa (AcZ, minVal, maxVal, -90, 90);

x = RAD_TO_DEG * (atan2 (-yAng, -zAng)+PI); y = RAD_TO_DEG * (atan2 (-xAng, -zAng)+PI); z = RAD_TO_DEG * (atan2 (-yAng, -xAng)+PI);

Serial.print ("AngleX ="); Serial.println (x);

Serial.print ("AngleY ="); Serial.println (y);

Serial.print ("AngleZ ="); Serial.println (z); Serial.println ("-----------------------------------------"); zpoždění (400); }

Krok 3: Hotovo

Hotovo!
Hotovo!

Je to hotovo! Pokud to nefunguje nebo potřebujete pomoc, zanechte prosím komentář nebo pošlete e -mail. Moji e -mailovou adresu najdete v komentářích. Mimochodem, moje angličtina není tak dobrá, takže se omlouvám za svou špatnou angličtinu.

Ahmet Burkay KIRNIK

Istanbul, Turecko

Upravit: Po 2 letech se moje angličtina zlepšila, takže jsem opravil některé chyby.

Doporučuje: