Taula de continguts:

Com mesurar l'angle amb MPU-6050 (GY-521): 3 passos
Com mesurar l'angle amb MPU-6050 (GY-521): 3 passos

Vídeo: Com mesurar l'angle amb MPU-6050 (GY-521): 3 passos

Vídeo: Com mesurar l'angle amb MPU-6050 (GY-521): 3 passos
Vídeo: Com mesurar un angle amb un transportador 2024, De novembre
Anonim
Com es mesura l'angle amb MPU-6050 (GY-521)
Com es mesura l'angle amb MPU-6050 (GY-521)

En aquest instructiu, mesurarem l’angle amb un Arduino. Per mesurar l’angle necessitem alguns cables, un Arduino UNO i un GY-521 (MPU-6050).

Pas 1: connectar MPU-6050 a Arduino UNO

Connexió MPU-6050 a Arduino UNO
Connexió MPU-6050 a Arduino UNO

Necessitem alguns cables mascle-femella, un sensor Arduino UNO i un sensor GY-521 (MPU-6050) per mesurar l’angle. Hem de connectar MPU-6050 a Arduino UNO com es mostra a la imatge. Tan,

  • VCC a 5V (MPU-6050 funciona amb 3,3V però GY-521 l’incrementa a 5V),
  • GND a GND,
  • SCL a A5,
  • SDA a A4,
  • ADO a GND,
  • INT al pin 2 digital.

Pas 2: Codi

Codi
Codi

Aquí teniu el codi. Utilitza I2C. He pres algunes parts del codi d’Internet (part I2C)

// Escrit per Ahmet Burkay KIRNIK // Mesura de l’angle amb MPU-6050 (GY-521)

#incloure

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

int minVal = 265; int maxVal = 402;

doble x; doble y; doble 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 (fals); Wire.requestFrom (MPU_addr, 14, cert); 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 ("----------------------------------------"); retard (400); }

Pas 3: Fet

Fet!
Fet!

Està fet! Si no funciona o necessiteu ajuda, deixeu un comentari o envieu un correu electrònic. Podeu trobar la meva adreça de correu electrònic a partir de comentaris. Per cert, el meu anglès no és tan bo, així que demano disculpes pel meu mal anglès.

Ahmet Burkay KIRNIK

Istanbul / TURQUIA

Edició: al cap de dos anys, el meu anglès va millorar, així que vaig corregir alguns errors.

Recomanat: