Sommario:

Come misurare l'angolo con MPU-6050 (GY-521): 3 passaggi
Come misurare l'angolo con MPU-6050 (GY-521): 3 passaggi

Video: Come misurare l'angolo con MPU-6050 (GY-521): 3 passaggi

Video: Come misurare l'angolo con MPU-6050 (GY-521): 3 passaggi
Video: Come usare un giroscopio MPU6050 GY-521 con Arduino - Video 356 2024, Dicembre
Anonim
Come misurare l'angolo con MPU-6050 (GY-521)
Come misurare l'angolo con MPU-6050 (GY-521)

In questo Instructable, misureremo l'angolo con un Arduino. Abbiamo bisogno di alcuni cavi, un Arduino UNO e GY-521 (MPU-6050) per misurare l'angolo.

Passaggio 1: collegamento di MPU-6050 ad Arduino UNO

Collegamento di MPU-6050 ad Arduino UNO
Collegamento di MPU-6050 ad Arduino UNO

Abbiamo bisogno di alcuni cavi maschio-femmina, un sensore Arduino UNO e GY-521 (MPU-6050) per misurare l'angolo. Dobbiamo collegare MPU-6050 ad Arduino UNO come mostrato nell'immagine. Così,

  • VCC a 5 V (MPU-6050 funziona con 3,3 V ma GY-521 lo aumenta a 5 V.),
  • GND a GND,
  • da SCL ad A5,
  • da SDA ad A4,
  • ADO a GND,
  • INT al pin digitale 2.

Passaggio 2: codice

Codice
Codice

Ecco il codice. Utilizza I2C. Ho preso alcune parti di codice da Internet. (parte I2C)

//Scritto da Ahmet Burkay KIRNIK//Misurazione dell'angolo con MPU-6050(GY-521)

#includere

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

int minVal=265; int maxVal=402;

doppia x; doppia y; doppia z;

void setup(){ 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 = map(AcX, minVal, maxVal, -90, 90); int yAng = map(AcY, minVal, maxVal, -90, 90); int zAng = map(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("--------------------------------------------------------"); ritardo (400); }

Passaggio 3: fatto

Fatto!
Fatto!

E 'fatto! Se non funziona o hai bisogno di aiuto, lascia un commento o invia un'e-mail. Puoi trovare il mio indirizzo email dai commenti. A proposito, il mio inglese non è molto buono, quindi mi scuso per il mio pessimo inglese.

Ahmet Burkay KIRNIK

Istambul, Turchia

Modifica: dopo 2 anni, il mio inglese è migliorato, quindi ho corretto alcuni errori.

Consigliato: