Sadržaj:

Kako mjeriti kut s MPU-6050 (GY-521): 3 koraka
Kako mjeriti kut s MPU-6050 (GY-521): 3 koraka

Video: Kako mjeriti kut s MPU-6050 (GY-521): 3 koraka

Video: Kako mjeriti kut s MPU-6050 (GY-521): 3 koraka
Video: Stabilizator – gimbal za kameru 2024, Rujan
Anonim
Kako mjeriti kut pomoću MPU-6050 (GY-521)
Kako mjeriti kut pomoću MPU-6050 (GY-521)

U ovom Instructableu mjerit ćemo kut s Arduinom. Za mjerenje kuta potrebni su nam neki kabeli, Arduino UNO i GY-521 (MPU-6050).

Korak 1: Spajanje MPU-6050 na Arduino UNO

Spajanje MPU-6050 na Arduino UNO
Spajanje MPU-6050 na Arduino UNO

Trebamo neke muško-ženske kabele, Arduino UNO i GY-521 (MPU-6050) senzor za mjerenje kuta. Moramo spojiti MPU-6050 na Arduino UNO kao što je prikazano na slici. Tako,

  • VCC na 5 V (MPU-6050 radi s 3,3 V, ali GY-521 ga povećava na 5 V.),
  • GND u GND,
  • SCL do A5,
  • SDA do A4,
  • ADO u GND,
  • INT na digitalni pin 2.

Korak 2: Kodiranje

Kodirati
Kodirati

Evo koda. Koristi I2C. Uzeo sam neke dijelove koda s interneta. (I2C dio)

// Napisao Ahmet Burkay KIRNIK // Mjerenje kuta s MPU-6050 (GY-521)

#uključi

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

int minVal = 265; int maxVal = 402;

dvostruki x; dvostruki y; dvostruki z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (istina); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (lažno); Wire.requestFrom (MPU_addr, 14, istina); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = karta (AcX, minVal, maxVal, -90, 90); int yAng = karta (AcY, minVal, maxVal, -90, 90); int zAng = karta (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 ="); Serijski.println (x);

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

Serial.print ("AngleZ ="); Serijski.println (z); Serial.println ("----------------------------------------"); kašnjenje (400); }

Korak 3: Gotovo

Gotovo!
Gotovo!

Gotovo je! Ako ne radi ili vam je potrebna pomoć, ostavite komentar ili pošaljite e -poruku. Moju adresu e -pošte možete pronaći u komentarima. Usput, moj engleski nije tako dobar pa se ispričavam na lošem engleskom.

Ahmet Burkay KIRNIK

Istanbul, Turska

Edit: Nakon 2 godine engleski mi je postao bolji pa sam ispravio neke greške.

Preporučeni: