Оглавление:

Как измерить угол с помощью 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 до 5 В (MPU-6050 работает с 3,3 В, но GY-521 увеличивает его до 5 В.),
  • GND к GND,
  • SCL до A5,
  • SDA в A4,
  • ADO к GND,
  • INT к цифровому выводу 2.

Шаг 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; двойной y; двойной z;

пустая настройка () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (истина); Serial.begin (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 года мой английский стал лучше, поэтому я исправил некоторые ошибки.

Рекомендуемые: