Satura rādītājs:

Leņķa mērīšana ar MPU-6050 (GY-521): 3 soļi
Leņķa mērīšana ar MPU-6050 (GY-521): 3 soļi

Video: Leņķa mērīšana ar MPU-6050 (GY-521): 3 soļi

Video: Leņķa mērīšana ar MPU-6050 (GY-521): 3 soļi
Video: Gilticus в такси)) 2024, Novembris
Anonim
Leņķa mērīšana ar MPU-6050 (GY-521)
Leņķa mērīšana ar MPU-6050 (GY-521)

Šajā instrukcijā mēs mērīsim leņķi ar Arduino. Mums ir nepieciešami daži kabeļi, Arduino UNO un GY-521 (MPU-6050), lai izmērītu leņķi.

1. darbība: MPU-6050 pievienošana Arduino UNO

MPU-6050 savienošana ar Arduino UNO
MPU-6050 savienošana ar Arduino UNO

Mums ir nepieciešami daži vīriešu un sieviešu kabeļi, Arduino UNO un GY-521 (MPU-6050) sensors leņķa mērīšanai. Mums ir jāpievieno MPU-6050 ar Arduino UNO, kā parādīts attēlā. Tātad,

  • VCC līdz 5 V (MPU-6050 darbojas ar 3,3 V, bet GY-521 palielina to līdz 5 V.),
  • GND līdz GND,
  • SCL līdz A5,
  • SDA līdz A4,
  • ADO uz GND,
  • INT līdz digitālajai tapai 2.

2. darbība: kods

Kods
Kods

Šeit ir kods. Tas izmanto I2C. Es paņēmu dažas koda daļas no interneta. (I2C daļa)

// rakstīja Ahmet Burkay KIRNIK // Leņķa mērīšana ar MPU-6050 (GY-521)

#iekļaut

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

int minVal = 265; int maxVal = 402;

dubultā x; dubultā y; dubultā z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (true); Sērijas sākums (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (nepatiesa); 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 = karte (AcX, minVal, maxVal, -90, 90); int yAng = karte (AcY, minVal, maxVal, -90, 90); int zAng = karte (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 ="); Sērijas.println (x);

Serial.print ("AngleY ="); Sērijas.println (y);

Serial.print ("AngleZ ="); Sērijas.println (z); Serial.println ("----------------------------------------"); kavēšanās (400); }

3. solis: Gatavs

Gatavs!
Gatavs!

Tas ir pabeigts! Ja tas nedarbojas vai jums nepieciešama palīdzība, lūdzu, atstājiet komentāru vai nosūtiet e -pastu. Jūs varat atrast manu e -pasta adresi no komentāriem. Starp citu, mana angļu valoda nav tik laba, tāpēc es atvainojos par slikto angļu valodu.

Ahmets Burkajs KIRNIKS

Stambula/TURCIJA

Edit: Pēc 2 gadiem mana angļu valoda uzlabojās, tāpēc es laboju dažas kļūdas.

Ieteicams: