Агуулгын хүснэгт:

MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ: 3 алхам
MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ: 3 алхам

Видео: MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ: 3 алхам

Видео: MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ: 3 алхам
Видео: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Долдугаар сарын
Anonim
MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ?
MPU-6050 (GY-521) ашиглан өнцгийг хэрхэн хэмжих вэ?

Энэхүү зааварт бид Arduino -ийн тусламжтайгаар өнцгийг хэмжих болно. Өнцгийг хэмжихийн тулд бидэнд Arduino UNO ба GY-521 (MPU-6050) кабель хэрэгтэй болно.

Алхам 1: MPU-6050-ийг Arduino UNO руу холбох

MPU-6050-ийг Arduino UNO руу холбож байна
MPU-6050-ийг Arduino UNO руу холбож байна

Бид өнцгийг хэмжихэд эрэгтэй эмэгтэй кабель, Arduino UNO ба GY-521 (MPU-6050) мэдрэгч хэрэгтэй. Бид зураг дээр үзүүлсэн шиг MPU-6050-ийг Arduino UNO-той холбох ёстой. Тиймээс,

  • VCC-ийг 5V хүртэл (MPU-6050 нь 3.3V-тэй ажилладаг боловч GY-521 нь 5V хүртэл нэмэгдүүлдэг.),
  • GND - GND,
  • SCL -ийг A5 хүртэл,
  • SDA -аас A4 хүртэл,
  • ADO -аас GND,
  • Дижитал зүү 2 руу INT.

Алхам 2: Код

Код
Код

Энд код байна. Энэ нь I2C ашигладаг. Би кодын зарим хэсгийг интернетээс авсан. (I2C хэсэг)

// Бичсэн: Ахмет Буркай КИРНИК // MPU-6050 (GY-521) бүхий өнцгийн хэмжилт

#оруулах

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

int minVal = 265; int maxVal = 402;

давхар x; давхар у; давхар z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (үнэн); Цуваа эхлэх (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (худал); Wire.requestFrom (MPU_addr, 14, үнэн); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = газрын зураг (AcX, minVal, maxVal, -90, 90); int yAng = газрын зураг (AcY, minVal, maxVal, -90, 90); int zAng = газрын зураг (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 ("-----------------------------------------"); саатал (400); }

Алхам 3: Боллоо

Дууссан!
Дууссан!

Боллоо! Хэрэв энэ нь ажиллахгүй эсвэл танд тусламж хэрэгтэй бол сэтгэгдэл үлдээх эсвэл имэйл илгээнэ үү. Та миний имэйл хаягийг сэтгэгдлээс олж болно. Дашрамд хэлэхэд миний англи хэл тийм ч сайн биш тул муу англи хэлнийхээ төлөө уучлалт гуйж байна.

Ахмет Буркай КИРНИК

Истанбул/Турк

Засварлах: 2 жилийн дараа миний англи хэл сайжирсан тул би зарим алдааг зассан.

Зөвлөмж болгож буй: