INHOUDSOPGAWE:

Hoe om 'n hoek te meet met MPU-6050 (GY-521): 3 stappe
Hoe om 'n hoek te meet met MPU-6050 (GY-521): 3 stappe

Video: Hoe om 'n hoek te meet met MPU-6050 (GY-521): 3 stappe

Video: Hoe om 'n hoek te meet met MPU-6050 (GY-521): 3 stappe
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, November
Anonim
Hoe om 'n hoek te meet met MPU-6050 (GY-521)
Hoe om 'n hoek te meet met MPU-6050 (GY-521)

In hierdie instruksies meet ons die hoek met 'n Arduino. Ons benodig 'n paar kabels, 'n Arduino UNO en GY-521 (MPU-6050) om die hoek te kan meet.

Stap 1: Koppel MPU-6050 aan Arduino UNO

Koppel MPU-6050 aan Arduino UNO
Koppel MPU-6050 aan Arduino UNO

Ons benodig 'n paar manlike-vroulike kabels, 'n Arduino UNO en GY-521 (MPU-6050) sensor om die hoek te meet. Ons moet MPU-6050 koppel aan Arduino UNO soos op die foto getoon. Dus,

  • VCC tot 5V (MPU-6050 werk met 3.3V, maar GY-521 verhoog dit tot 5V.),
  • GND tot GND,
  • SCL tot A5,
  • SDA tot A4,
  • ADO na GND,
  • INT na digitale pen 2.

Stap 2: Kode

Kode
Kode

Hier is die kode. Dit gebruik I2C. Ek het 'n paar dele van die kode van die internet geneem. (I2C -deel)

// Geskryf deur Ahmet Burkay KIRNIK // Meting van hoek met MPU-6050 (GY-521)

#insluit

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

int minVal = 265; int maxVal = 402;

dubbel x; dubbel y; dubbel z;

ongeldige opstelling () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (waar); Serial.begin (9600); } leemte -lus () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (vals); Wire.requestFrom (MPU_addr, 14, waar); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = kaart (AcX, minVal, maxVal, -90, 90); int yAng = kaart (AcY, minVal, maxVal, -90, 90); int zAng = kaart (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 ("-----------------------------------------"); vertraging (400); }

Stap 3: Klaar

Klaar!
Klaar!

Dis gedoen! As dit nie werk nie, of as u hulp nodig het, kan u 'n opmerking lewer of 'n e -pos stuur. U kan my e -posadres vind uit kommentaar. Terloops, my Engels is nie so goed nie, so ek vra om verskoning vir my slegte Engels.

Ahmet Burkay KIRNIK

Istanbul, Turkye

Edit: Na 2 jaar het my Engels beter geword, en ek het 'n paar foute reggestel.

Aanbeveel: