基于labview的姿态测量系统上位机界面编写

         当时学习VB是为了写个上位机去控制LED亮灭,相信大家学习51,stm32都是从流水灯开始的,就像那句“hello world”一样经典。后来学习了LABVIEW,决定用它写个界面。当时主要是想用LABVIEW写个3d姿态显示界面。不过姿态测量决定用MPU6050+HMC5883,用软解的方式,看了一些姿态解算的文章,有互补滤波,卡尔曼,梯度下降等。笔者决定用互补滤波法进行姿态解算。姿态解算之前,需要对三轴加速度计,三轴陀螺仪,三轴电子罗盘得到的原始数据进行滤波。姿态解算,滤波这里不写了,放到以后再写,这里主要写上位机界面的编写过程。

其实学LABVIEW无非就是串口通信,96 n 8 1。我先是看里面自带的串口例程,然后自己在它的基础上写了个温度的界面,接受下位机传来的温度值。不得不承认,LABVIEW的界面确实挺好看。我需要发送这么多数据:

                 printf("%6d",(int)(roll*100));
	         printf("%6d",(int)(pitch*100));
		 printf("%6d",(int)(yaw*100));
		 printf("%6d",(int)(((float)aacx/16384)*100));
		 printf("%6d",(int)(((float)aacy/16384)*100));
		 printf("%6d",(int)(((float)aacz/16384)*100));
		 printf("%6d",(int)(((float) gyrox/16.4)*100));
		 printf("%6d",(int)(((float) gyroy/16.4)*100));
		 printf("%6d",(int)(((float) gyroz/16.4)*100));
		 printf("%6d",x);
		 printf("%6d",y);
		 printf("%6d",z);
		 printf("%6d",(int)(angle*100));
自己写的上位机都是用到最基本的知识点关于LABVIEW的,串口通讯,字符串的处理剪切什么的,字符转换十进制数。

基于labview的姿态测量系统上位机界面编写_第1张图片

这个界面很早之前写的,刚才跑了下,发现HMC5883的几个值,没有变化,一直是-1,-1,-1。当时用的时候是正常的,后来一想原来那个HMC5883用到别的地方了,后来自己又买了个,一看芯片不太一样,原来那个是L883,现在是DA 5883,不知道是不是这个问题,刚才又在X宝买了个L883,回来再试试。

我再跑一下,放个图。

基于labview的姿态测量系统上位机界面编写_第2张图片


基于labview的姿态测量系统上位机界面编写_第3张图片基于labview的姿态测量系统上位机界面编写_第4张图片


L883 (芯片上的字)                                                     5883(芯片上的字)


以上内容,难免有错误与不足之处,大家踊跃拍砖。

你可能感兴趣的:(LABVIEW)