基于Labview的mpu6050姿态检测上位机设计

Labview陀螺仪姿态测试系统设计

本实验主要是检测陀螺仪的姿态数据包括俯仰角、横滚角、航向角数据,并将检测的数据用3D模块的飞机在3D背景中的姿态来直观显示姿态角的具体位置。


设计前提:①Windows 10系统电脑;②STM32单片机一块;③mpu6050陀螺仪一个;④Labview 2018软件

文章目录

  • Labview陀螺仪姿态测试系统设计
  • 设计要求
  • 一、Labview 软件是什么?
  • 二、上位机设计步骤
  • 三、下位机设计
    • 1、下位机如何与上位机通讯
  • 四、运行结果
  • 总结


设计要求

(1)与下位机通讯采用串口传送;
(2)可自行配置串口数据;
(3)飞机颜色以及背景颜色可变;


提示:以下是本篇文章正文内容,下面案例可供参考

一、Labview 软件是什么?

1、LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
2、LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。 LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
3、特点:
①尽可能采用了通用的硬件,各种仪器的差异主要是软件。
②可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
③用户可以根据自己的需要定义和制造各种仪器。
4、应用领域:
①测试测量:LABVIEW最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域。经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。

②控制:控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。

③仿真:LabVIEW包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以先在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。

④儿童教育:由于图形外观漂亮且容易吸引儿童的注意力,同时图形比文本更容易被儿童接受和理解,所以LabVIEW非常受少年儿童的欢迎。对于没有任何计算机知识的儿童而言,可以把LabVIEW理解成是一种特殊的"积木":把不同的原件搭在一起,就可以实现自己所需的功能。著名的可编程玩具"乐高积木"使用的就是LabVIEW编程语言。儿童经过短暂的指导就可以利用乐高积木提供的积木搭建成各种车辆模型、机器人等,再使用LabVIEW编写控制其运动和行为的程序。除了应用于玩具,LabVIEW还有专门用于中小学生教学使用的版本。

⑥快速开发:根据笔者参与的一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。

⑦跨平台:如果同一个程序需要运行于多个硬件设备之上,也可以优先考虑使用LabVIEW。LabVIEW具有良好的平台一致性。LabVIEW的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW还支持各种实时操作系统和嵌入式设备,比如常见的PDA、FPGA以及运行VxWorks和PharLap系统的RT设备。

二、上位机设计步骤

1、打开labview 2018版本,在后面板中点击右键,在函数框中选择结构里面的While循环;
2、后面板中函数框选择数据通讯,在里面的协议里选择串口,在串口中拖出串口配置、串口读取到While循环中,串口关闭放在While循环后面,同时将串口配置VI输入端都创建输入控件,如图1。

图1在这里插入图片描述
3、将串口读取放到函数结构中的条件结构,创建Instr类的属性,选择如图2的属性节点,属性节点与串口读取连接字节数用于与0比较,这样就可以判断数据是否从下位机发送过来以便于接收。
图2该处使用的url网络请求的数据。
4、快捷键Ctrl+N,新建一个子VI用来剪切下位机发送过来的数据,数据处理采用定位获取字符串,下位机将发送的数据放在a、b和c之间,然后在上位机中通过匹配模块将a、b和c之间的数据取出来,将匹配到的字符串数据通过分数/指数字符串至数值转换VI转换为十进制数据,按图3连接程序后,前面板中右上角模式更改为对应的模式,将要接入数据端和输出端点击在模式中对应的位置,在后面板点击Ctrl+A,在编辑中点击创建子VI,将VI保存到主VI同一个目录下。

在这里插入图片描述

在这里插入图片描述
图3

5、在主VI后面中,点击右键在函数框最下端选择子VI,在选择框中选择之前创建的子VI,放到后面板中,与前面的读取字符串VI的接收字符串端口连接,在子VI数据输出端按名称连接到各姿态角中,将子VI中处理好的到的数据读取到主VI中,在前面板用数据显示框显示出对应的数据,如图4。
在这里插入图片描述

图4

6、将接收的三轴数据通过创建数组连接到波形图表中,这里创建数组要用两次,第一次是将三个姿态角数据绑定成三维数组,第二次是将三维数据中的数据写入到波形图表中,这样一来就可以在一个波形图中显示三条曲线,也可以分格显示线条曲线,如图5。
在这里插入图片描述

图5

7、快捷键Ctrl+N,创建3D图形读取子VI,用于将保存的airplane.ASE文件读取出来,按下图连接后,同样前面板中在模式中配置输入输出端,在后面板中快捷键Ctrl+A,在编辑中点击创建子VI,保存在主VI的相同文件路径中,如图6。
在这里插入图片描述

图6

8、重复7步骤,创建一个新子VI,本次创建的VI为画3D图VI将步骤7中读取的ASE文件数据画成3D图显示到3D图片中,同时将串口读取到的三轴数据连接到3D画图中,数据会动态的展示飞机在3D图中的姿态,如图7。
在这里插入图片描述

图7

9、在后面板中选择子VI,将步骤7和8中的子VI拖到主VI中,采用创建路径和拆分路径VI来读取airplane.ASE文件,并将其余两个子VI连接,同时把前端的三轴数据连接到对应的子VI上,在前面板选择图形中的三维图片,后面板将其与画图的子VI连接,如图8。
在这里插入图片描述

图8

10、后面板中,将错误输出连接到对应的处理端,打开的文件用完后必须关闭,同时串口未用的时候也必须关闭串口,前面板中布尔选项中选择停止开关,将其与While循环的循环条件连接,用于停止程序运行,同时在前面板中采用选项卡,把数据显示曲线图与3D显示图分别放在不同的选项下,相应的设置也放在对应的选项中,相应的美化一下,如图9。
在这里插入图片描述

图9

三、下位机设计

1、下位机如何与上位机通讯

代码如下:

printf("a%.1fb%.1fc%.1f",pitch,roll,yaw);

下位机通过printf()函数向串口发送数据,上位机采用的是Labview的匹配字符串模块,通过将夹在两个字符中的数据提取出来。

四、运行结果

1、姿态数据波形图
在这里插入图片描述
2、姿态3D显示图
在这里插入图片描述


总结

通过本次实验,熟练地掌握了Labview 2018软件的使用,同时STM32基础编程能力的到提升,不仅能够使STM32与自定义的Labview上位机通讯,其次也掌握了上位机如何获取下位机发送过来的数据并处理它,本次实验采用的是Labview的匹配字符串模块,通过将夹在两个字符中的数据提取出来,除此之外也可以采用按字符串的长度和位置来截取出数据,由于本次实验的欧拉角数据变化快且数据长度不断变化,因此没有采用此模块。

链接:https://pan.baidu.com/s/1Lf1hOc8IfKyjMoshe-ISRA 提取码:54jb
  • 13
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 35
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宅博士yc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值