描述
姿态传感器是基于MEMS技术的高性能三维运动姿态测量系统,广泛用于无人机、机器人、机械云台、虚拟现实等场景。
本次实验使用的是姿态传感器是我司自研产品,与X3派通过USB转TTL串口连接,连接如下图所示。
另外,本次实验既使用WindTerm通过串口连接X3派,主要用来传输python程序(python程序在windows编写测试完成后传输到X3派),又通过HDMI显示X3派的内容,同时会接上鼠标和键盘用于人机交互,如上图所示。
2、姿态传感器解析
Python串口解析姿态传感器数据主要用的模块有serial、time。在windows调试完成后,修改适配X3派linux环境测试。
主要使用的serial模块初始化接口、read_all函数以及time.sleep函数,如下图所示
serial.Serial(port, baud, timeout):port -- 串口号,字符串型,windows下为comx,linux下为/dev/ttySCx或/dev/ttyUSBx;baud -- 波特率,整数型;timeout -- 读超时时间。
serial.read_all():读取所有数据,返回的数据类型为bytes类型。
time.sleep(): 睡眠,单位为秒,经测试在windows下该函数执行异常,达不到预期效果,需要去掉,程序才能运行正常。
在windows下,进入命令行界面通过命令“pip install pyserial”安装即可,测试python程序时使用命令“python xxx.py”接口运行,如下图所示(避免打广告,我司的信息涂鸦了),在运行之前修改好串口号和波特率即可。
协议解析主要是数据包组包、解析逻辑,同时需要注意C语言和python语言的类型一些区别,这里稍微讲一下就是单字节到多字节转换的区别,如下图所示,在C语言中直接可以通过内存地址然后进行强制转换得到新的数据类型,而python貌似不支持这样操作(如果大家知道python可以达到同样效果的方法不吝知道,谢谢),所以检需要自己写一个转换函数。
由于本人平时也很少使用python,也是通过这次的试用,入门了一下python,感受了一下python库使用的便利性,同时也体会了一下python和C语言不同的魅力。下面直接开始展示结果,如下图所示,这里输出了姿态传感器的常见信息,如欧拉角、加速度计、陀螺仪、帧id。
打开APP阅读更多精彩内容