Mavlink数据读取和解析
从飞控中成功读取Mavlink数据是关键
设置飞控并发送Mavlink数据
首先,你使用的飞控必须有一个uart串口,并将其连接到ESP32开发板的uart串口。将开发板的一个串口(uart)RX引脚连接到飞控一个串口(uart)TX。
设置飞控的uart串口,使其能够发送mavlink数据给ESP32开发板。以使用Ardupilot固件的飞控为例,在Mission Planner地面站中,将某一个serial接口的protocol设置为mavlink1 或者mavlink2.

获得流畅的姿态仪画面
姿态仪的流畅与否,与两个因素相关:mavlink stream rate和串口波特率。
为了姿态仪画面更流畅,需要设置尽可能高的mavlink数据的stream rate。我们这里用的Speedybee f405wing,Mission Planner显示最高只能设置为10HZ。但是你可以强制设置为30或者50。你可以不断尝试设置,直到获得流畅的姿态仪画面。
ESP32串口波特率,源代码中设置了57600。ESP32开发板可以支持115200。你可以自行在代码Serial.begin(57600)处,修改串口波特率。直到获得流畅的姿态仪画面。

读取Mavlink数据包并解析
在提供的ESP32开发板的代码中,有一个mavlink_data.ino文件,专门用于处理Mavlink数据。
其中的get_mavlink_data()函数,用于监听串口信息。
如果在串口发送的信息中识别到Mavlink数据包,get_mavlink_data()可以将其解析,把飞行参数读取出来,例如飞行高度、空速、地速、卫星状态、系统状态、飞行模式、俯仰角度、偏航角度等等。
更多Mavlink信息
更多关于Mavlink协议的内容,可以参考
Last updated