Përmbajtje:

Si të matni këndin me MPU-6050 (GY-521): 3 hapa
Si të matni këndin me MPU-6050 (GY-521): 3 hapa

Video: Si të matni këndin me MPU-6050 (GY-521): 3 hapa

Video: Si të matni këndin me MPU-6050 (GY-521): 3 hapa
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Nëntor
Anonim
Si të matni këndin me MPU-6050 (GY-521)
Si të matni këndin me MPU-6050 (GY-521)

Në këtë udhëzues, ne do të matim këndin me një Arduino. Ne kemi nevojë për disa kabllo, një Arduino UNO dhe GY-521 (MPU-6050) në mënyrë që të matim këndin.

Hapi 1: Lidhja e MPU-6050 me Arduino UNO

Lidhja e MPU-6050 me Arduino UNO
Lidhja e MPU-6050 me Arduino UNO

Ne kemi nevojë për disa kabllo meshkuj-femra, një sensor Arduino UNO dhe GY-521 (MPU-6050) për të matur këndin. Ne duhet të lidhim MPU-6050 me Arduino UNO siç tregohet në foto. Kështu që,

  • VCC në 5V (MPU-6050 punon me 3.3V, por GY-521 e rrit atë në 5V.),
  • GND në GND,
  • SCL në A5,
  • SDA në A4,
  • ADO në GND,
  • INT në pinin dixhital 2.

Hapi 2: Kodi

Kodi
Kodi

Këtu është kodi. Përdor I2C. Kam marrë disa pjesë të kodit nga interneti. (Pjesa I2C)

// Shkruar nga Ahmet Burkay KIRNIK // Matja e Këndit me MPU-6050 (GY-521)

#përfshi

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

int minVal = 265; int maxVal = 402;

dyfish x; dyfish y; dyfish z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmetimi (i vërtetë); Serial.filloj (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmetimi (i rremë); Tela. Kërkohet Nga (MPU_addr, 14, e vërtetë); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = hartë (AcX, minVal, maxVal, -90, 90); int yAng = hartë (AcY, minVal, maxVal, -90, 90); int zAng = hartë (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 ("---------------------------------------------"); vonesa (400); }

Hapi 3: U krye

U krye!
U krye!

Doneshtë bërë! Nëse nuk funksionon ose keni nevojë për ndihmë, ju lutemi lini një koment ose dërgoni një email. Ju mund të gjeni adresën time të postës elektronike nga komentet. Nga rruga, anglishtja ime nuk është aq e mirë, kështu që kërkoj falje për anglishten time të keqe.

Ahmet Burkay KIRNIK

Stamboll, Turqi

Edit: Pas 2 vitesh, anglishtja ime u përmirësua kështu që korrigjova disa gabime.

Recommended: