【地平线旭日X3派试用体验】03.Python串口解析姿态传感器

描述

本文来源电子发烧友社区,作者:james, 帖子地址:https://bbs.elecfans.com/jishu_2303584_1_1.html


1、姿态传感器简介
姿态传感器是基于MEMS技术的高性能三维运动姿态测量系统,广泛用于无人机、机器人、机械云台、虚拟现实等场景。
本次实验使用的是姿态传感器是我司自研产品,与X3派通过USBTTL串口连接,连接如下图所示。
开发板
 
另外,本次实验既使用WindTerm通过串口连接X3派,主要用来传输python程序(python程序在windows编写测试完成后传输到X3派),又通过HDMI显示X3派的内容,同时会接上鼠标和键盘用于人机交互,如上图所示。
 
2、姿态传感器解析
Python串口解析姿态传感器数据主要用的模块有serialtime。在windows调试完成后,修改适配X3linux环境测试。
主要使用的serial模块初始化接口、read_all函数以及time.sleep函数,如下图所示
开发板
 

开发板
 
serial.Serial(port, baud, timeout)port -- 串口号,字符串型,windows下为comxlinux下为/dev/ttySCx/dev/ttyUSBxbaud -- 波特率,整数型;timeout -- 读超时时间。
serial.read_all():读取所有数据,返回的数据类型为bytes类型。
time.sleep(): 睡眠,单位为秒,经测试在windows下该函数执行异常,达不到预期效果,需要去掉,程序才能运行正常。
windows下,进入命令行界面通过命令“pip install pyserial”安装即可,测试python程序时使用命令“python xxx.py”接口运行,如下图所示(避免打广告,我司的信息涂鸦了),在运行之前修改好串口号和波特率即可。
开发板
 
协议解析主要是数据包组包、解析逻辑,同时需要注意C语言和python语言的类型一些区别,这里稍微讲一下就是单字节到多字节转换的区别,如下图所示,在C语言中直接可以通过内存地址然后进行强制转换得到新的数据类型,而python貌似不支持这样操作(如果大家知道python可以达到同样效果的方法不吝知道,谢谢),所以检需要自己写一个转换函数。
开发板
 
由于本人平时也很少使用python,也是通过这次的试用,入门了一下python,感受了一下python库使用的便利性,同时也体会了一下pythonC语言不同的魅力。下面直接开始展示结果,如下图所示,这里输出了姿态传感器的常见信息,如欧拉角、加速度计、陀螺仪、帧id

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分