0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MPU6050与COF屏的航空姿态仪表

迪文智能屏 2022-05-31 11:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

——来自迪文开发者论坛用户

本方案使用COF屏的IO口模拟I2C信号与MPU6050通讯,实现航空姿态仪表可视化显示。MPU6050采集数据,T5L0芯片进行数据读取和滤波算法处理,计算出姿态数据,驱动COF屏进行数据实时可视化显示。可视化界面通过迪文DGUS软件设置,有效缩减工程开发时间。


方案框图

7de87d04-dde2-11ec-b80f-dac502259ad0.png

资料下载

方案完整资料包下载可前往迪文开发者论坛获取:

http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=5767&extra=page%3D2

方案简介

硬件连接

COF屏转接板HDL662S的P32脚连接MPU6050模块的SDL脚,P33脚连接MPU6050的SDA脚,VCC和GND分别接电源和地。同时,转接板的UART2连接上位机,其中P21~P26六个IO接入上位机6个LED灯上,方便输出调试信息,通过LED显示运行状态向COF屏输出命令。

7e3532b6-dde2-11ec-b80f-dac502259ad0.png

1.1 COF屏与MPU6050模块连接接线图

7e69fc8a-dde2-11ec-b80f-dac502259ad0.png

1.2 COF屏与MPU6050模块连接实物图

数据读取主要程序代码

(1)I2C读取MPU6050数据代码

COF屏为用户提供了可使用的IO口,我们可以直接使用IO口模拟I2C信号与MPU600通讯。C51 V6例程中有一个I2C RTC硬件的驱动代码,基于这个代码来修改,可以得到MPU6050使用的通讯函数。从I2C RTC硬件的驱动代码中可移植的主要代码函数:

7ec6d9be-dde2-11ec-b80f-dac502259ad0.png

编写针对MPU6050的各个操作命令:

7ef071fc-dde2-11ec-b80f-dac502259ad0.png

结合MPU6050寄存器定义设置,使T5L0成功读取完整正确数据。MPU主要用到的寄存器如下所示:

7f0d6988-dde2-11ec-b80f-dac502259ad0.png

对应的硬件IO口连接定义端口代码:

sbit IIC_SCL=P3^2;

sbit IIC_SDA=P3^3;

#define SDA_IN() P3MDOUT=P3MDOUT&0xF7;

#define SDA_OUT() P3MDOUT=P3MDOUT|0x08;

现在,将上述各个部分的代码整合编译调试上载到COF屏,就能成功读取MPU6050的各个寄存器数值。调试中需注意:

  • MPU6050的I2C主频与原RTC设备的主频有差别,需适当调整I2C函数操作中的时序,使其适配;
  • T5L处理器速度快,在两次读取间要做一定的等待,否则会出现读取数据为零的情况。经反复测试,设置20ms间隔来读取传感器数据,此间隔对本实验完全适用;
  • I2C、SDA线接触一定要良好,否则会造成通讯中断,需要重新初始化才能得到正确数据。

(2)姿态解算编写响应的函数对MPU6050原始数据进行解算,得到可供几何显示和姿态判断使用的数据。姿态解算通过三轴的重力加速度分量得到以地球切面为参照系的三轴夹角转换为以设备自身坐标下的飞行夹角。定义如下:横滚角Roll(Ф)表示绕X轴的旋转,仰俯角Pitch(θ)表示绕Y轴的旋转,航向角Yaw (ψ)表示绕Z轴的旋转,如图所示。


计算代码算法如下:

roll = atan2(2* Gy*Gz + 2*G*Gx, -2*Gx*Gx -2*Gy*Gy+ 1)

pitch = asin(-2*Gx*Gz + 2*G* Gy)

yaw = atan2(2*( Gx*Gy +G*Gz),G*G+Gx*Gx-Gy*Gy-Gz*Gz)

(3) DGUS界面设计

设计参考了航空飞机中常见的G530导航仪仪表面板。面板总体布局分左侧姿态数据显示区、中右区为姿态主显示区,以及下方的操作控制区。

7f6af1c0-dde2-11ec-b80f-dac502259ad0.png

1.4 姿态仪表显示分区设计

7fa30af6-dde2-11ec-b80f-dac502259ad0.png

1.5 姿态仪表DGUS 界面

(4) 可视化C51软件开发

C51软件开发主要有几部分:

1. 通过I2C接口完成MPU6050的读写命令操作,从传感器里获得完整正确的数据;

2. 姿态解算:通过前面的算法,编写响应的函数对原始数据进行解算,获得姿态显示所需要的显示数据;

3.数据可视化:将姿态的各个角度数据转换成UI组件的控制数据,比如负数和小数的显示问题、量程的问题等;

4.开发必要调试和跟踪工具代码,方便开发调试。

这里面通过数据显示窗口主要显示7个数据,分别为三向的姿态角度,三轴的加速度以及温度。同时根据三项的姿态角度计算可视化的控制数据写入显示组件地址里:

7fc9911c-dde2-11ec-b80f-dac502259ad0.png

1.6 姿态可视化C51软件开发

COF屏的C51主代码如下,重要部分已做了注释。此项目使用T5L的C51操作I2C读取MPU6050数据的代码已附带在文件附件中。 mpu6050_i2c.zip用户开发体验
“通过此实验已经完美的获取了MPU6050六轴陀螺传感器的数据读取,姿态解算的方法,同时结合COF屏完美的展示了MPU6050姿态的可视化。在实验测试中,COF屏在完成负载的仪表界面显示时,依然完成了I2C数据读取,复杂的浮点计算,以及内存地址操作。在实际测试中读取I2C速度可达8KBps,能够在1ms内读取完整的MPU7项数据,并且在18ms内完成了原始数据的三角函数计算工作,解算出飞航的各个姿态数据,并且更新到显示屏上。”

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cof
    cof
    +关注

    关注

    5

    文章

    53

    浏览量

    24995
  • MPU6050
    +关注

    关注

    39

    文章

    313

    浏览量

    77010
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高精度石英加速度计助力航空航天精准测量

    航空航天惯性测量领域,每一次微小的加速度变化都可能关乎飞行器的姿态与轨迹。从运载火箭的主动段飞行,到卫星的在轨姿态控制,一个能够精准捕捉微弱信号、同时耐受严苛环境的加速度计,是惯性导航系统不可或缺
    的头像 发表于 03-26 15:47 620次阅读
    高精度石英加速度计助力<b class='flag-5'>航空</b>航天精准测量

    开源项目低功耗蓝牙智能骰子总体介绍

    一款将传统桌游道具与低功耗蓝牙结合的创意!这款智能骰子基于 nRF52840 核心的低功耗模组打造,集成 MPU6050 六轴惯性测量单元,精准检测掷骰动作与朝向,掷出后 LED 自动点亮显示点数,蓝牙 5.0 低能耗可与安卓设备配对联动。
    的头像 发表于 02-27 09:08 487次阅读
    开源项目低功耗蓝牙智能骰子总体介绍

    CW32L012解算MPU6050姿态数据

    我们仅仅获取了MPU6050的三轴加速度和角速度,要想得到姿态角,需要利用读取的数据进行姿态解算。
    的头像 发表于 01-05 16:42 1694次阅读
    CW32L012解算<b class='flag-5'>MPU6050</b><b class='flag-5'>姿态</b>数据

    CW32L012读取MPU6050姿态数据

    随着物联网、可穿戴设备、工业倾角检测等场景的普及,低成本、低功耗的姿态检测方案成为嵌入式领域的研究热点。MPU6050 作为集成三轴加速度计和三轴陀螺仪的六轴传感器,凭借低成本、小体积的优势被
    的头像 发表于 01-05 16:36 1237次阅读
    CW32L012读取<b class='flag-5'>MPU6050</b><b class='flag-5'>姿态</b>数据

    用dma加iic读取mpu6050数据遇到的疑问求解

    我在用dma加iic读取mpu6050数据时,试着用dma传输4个数,但是用freemaster查看数据以后,发现只有数组里面的第一个数有值,其他的都为0,而且发现没进dma传输完成中断,把传输数量改成1以后,就能进入dma传输完成中断,就好像dma只能传输一个数一样,有没有大佬知道这是怎么回事啊
    发表于 12-09 07:41

    TT电机,Arduino Uno,L298N 5AD ,MPU6050最简自平衡机器人资料

    ;MPU6050_6Axis_MotionApps20.h\" //https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050 MPU6050
    发表于 10-06 13:12

    ANSA人体模型姿态调整工具介绍

    ANSA的人体模型姿态调整工具(HBM Articulation Tool)通过网格变形技术实现基于人体不同部位进行调节,定位人体模型最终的姿态
    的头像 发表于 09-28 15:40 1686次阅读
    ANSA人体模型<b class='flag-5'>姿态</b>调整工具介绍

    湖南泰德航空技术加持,航空比例阀和伺服阀高低温试验台硬核实力

    航空航天领域,每一个零部件的可靠性都关乎飞行安全。航空比例阀和伺服阀作为飞行器液压控制系统的核心元件,其性能直接决定了飞行姿态控制、起降制动等关键动作的精准度。然而,这些精密部件需要在极端温度环境
    的头像 发表于 09-25 11:14 503次阅读
    湖南泰德<b class='flag-5'>航空</b>技术加持,<b class='flag-5'>航空</b>比例阀和伺服阀高低温试验台硬核实力

    【RA4M2-SENSOR】串口传输MPU6050陀螺仪数据测评

    RA4M2串口传输MPU6050陀螺仪数据测评 1. 套件概述 RA4M2-SENSOR 是一款基于 RA4M2 系列微控制器的评估套件,支持 TrustZone 技 术和片内安全加密引擎(SCE
    发表于 09-14 11:41

    边聊安全 | 功能安全开发之MPU

    上海磐时PANSHI“磐时,做汽车企业的安全智库”功能安全开发之MPU写在前面:在与从事功能安全开发行业的同事以及SASETECH社区的成员讨论时,笔者经常被问及有关芯片内存保护单元(MPU
    的头像 发表于 09-05 16:21 2710次阅读
    边聊安全 | 功能安全开发之<b class='flag-5'>MPU</b>

    小安派BW21-CBV-Kit入门教程之DMP6读取MPU6050数据

    本示例将演示使用 DMP6 从 MPU6050 获取数据。MPU6050 配备了数字运动处理器 (DMP),用于处理运动算法的计算,如转换为三轴偏航/俯仰/滚动平面、转换为四元数或转换为欧拉角。
    的头像 发表于 06-19 14:20 1137次阅读
    小安派BW21-CBV-Kit入门教程之DMP6读取<b class='flag-5'>MPU6050</b>数据

    COF精简升级,挑战价格极限

    为方便客户更灵活的应用产品,迪文科技推出全新优化的05W系列COF智能,该系列产品均通过COF专用自动化产线生产,性价比极高。同时,该系列产品在T5F0芯片驱动、DGUS开发模式的
    的头像 发表于 05-28 14:06 733次阅读
    <b class='flag-5'>COF</b><b class='flag-5'>屏</b>精简升级,挑战价格极限

    【硬核项目】STM32F103 智能小车全栈开发:红外循迹 / 避障算法 + WiFi 远程控制,附原理图与代码

    平台、PID调速算法、MPU6050姿态传感等多项先进技术,并搭载FreeRTOS实时操作系统,是一款技术含量高、功能全面的综合性开发平台(结尾处可以领取该小车的
    的头像 发表于 05-16 17:11 2415次阅读
    【硬核项目】STM32F103 智能小车全栈开发:红外循迹 / 避障算法 + WiFi 远程控制,附原理图与代码

    MPU-6000和MPU-6050产品规格书

    电子发烧友网站提供《MPU-6000和MPU-6050产品规格书.pdf》资料免费下载
    发表于 04-29 16:52 3次下载

    【零基础逆袭软硬件工程师】华清远见STM32F103智能小车开发实战,手把手带你从硬件组装到WiFi远程控制,解锁

    障和交互式显示五大核心功能于一体,融合了物联网云平台、PID调速算法、MPU6050姿态传感等先进技术,并搭载FreeRTOS实时操作系统,是一款技术含量高、功
    的头像 发表于 04-17 14:49 1902次阅读
    【零基础逆袭软硬件工程师】华清远见STM32F103智能小车开发实战,手把手带你从硬件组装到WiFi远程控制,解锁