Шестиосевой датчик MPU6050 измеряет угол наклона объекта
1. Основное понятие угла наклона (угол Эйлера)
Положение объекта в пространстве можно определить с помощью углов Эйлера, которые включают тангаж (угол тангажа), рыскание (угол рыскания) и крен (угол крена), как показано на следующем рисунке:
2. Функциональное описание реализации кода
Core собирает данные об угле Эйлера шестиосевого датчика MPU6050 после расчета ориентации и печатает целую часть тангажа (угол тангажа), рыскания (угол рыскания) и крена (угол крена) на терминале последовательного порта компьютера. чтобы облегчить пользователям наблюдение за положением сенсорного модуля в пространстве в режиме реального времени.
- При кратковременном нажатии кнопки 1 начинается калибровка угла тангажа и крена.
- При кратковременном нажатии кнопки 2 запускается калибровка угла рыскания.
3. Схема подключения
5. Полный код
--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--设置按键1(占用D10口)以低电平有效的方式检测按键动作
LIB_ButtonConfig("BTN1","D10","L")
--设置按键2(占用D11口)以低电平有效的方式检测按键动作
LIB_ButtonConfig("BTN2","D11","L")
--设置MPU6050六轴传感器占用TX0和RX0引脚,并启动传感器以每秒输出100组欧拉角数据的频率工作
LIB_MPU6050Config("UART0")
--开始大循环
while(GC(1) == true)
do
--查询是否收到欧拉角数据,如果收到就在OLED屏幕上输出显示
recv_flag,pitch,yaw,roll = LIB_MPU6050GetEulerAngle()
if recv_flag == 1 then
--只打印角度的整数部分
print(string.format("pitch:%.0f yaw:%.0f roll:%.0f\r\n", pitch,yaw,roll))
end
--如果按键1短按,就开始俯仰角和横滚角的校准,校准时请保持传感器静止状态至少5秒
--校准后pitch角和roll角的度数会自动的逐渐归零
btn1 = LIB_ButtonQuery("BTN1")
if btn1 == 1 then
LIB_MPU6050Cali("PITCH_ROLL")
end
--如果按键2短按,就开始航偏角校准
--校准后yaw角的度数会自动归零
btn2 = LIB_ButtonQuery("BTN2")
if btn2 == 1 then
LIB_MPU6050Cali("YAW")
end
end
6. Результаты выполнения кода
Угол наклона (единица измерения: градус) сенсорного модуля, отображаемый на терминале отладки последовательного порта компьютера, выглядит следующим образом:
7. На что обратить внимание
- Модуль MPU6050 GY25 автоматически калибруется при включении питания.Он должен находиться в статическом состоянии более 3 секунд.Не рекомендуется держать его руками.
- Сам модуль не имеет магнитометра, и угол рыскания будет дрейфовать долго. Вы должны учитывать калибровку угла рыскания, когда это уместно в реальной разработке.
- Из-за проблемы блокировки подвеса угол Эйлера, угол крена и угол тангажа будут влиять друг на друга на 90 градусов.
Для получения более подробной информации посетите сайт Shineblink.comСсылка на официальный сайт