记录一下自己在Pixhawk上添加超声波模块进行定高的过程:
硬件:Pixhawk2.4.8(APM3.5固件)、STM32开发板、几块钱一个的超声波模块
软件:Mission Planner、Keil(STM32编程用)
过程:
1.分析官方给出的各种RangFinder的添加方案和源码,确定使用STM32单片机读取超声波数据,然后以串口方式发送给Pixhawk飞控。
相关源码链接:https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_RangeFinder
官方给出的传感器添加方式:http://ardupilot.org/copter/docs/common-rangefinder-maxbotixi2c.html
对AP_RangeFinder_LightWareSerial.cpp进行分析:
通过阅读以上代码,可以得出两点信息:
a. 数据以字符串形式发送(单位为m),以回车符'\r'结尾;
b.两次数据发送的时间间隔要小于200ms&