本文详细描述了如何使用串口连接大疆A3飞控。N3飞控及经纬系列无人机也可参考本文。
接口
根据大疆用户手册,大疆A3飞控提供了两个用于SDK传递数据的接口,分别为CAN和API。其中,API接口本质上是TTL串口。

由于TTL串口的广泛性,我们使用API接口连接飞控。大疆Onboard SDK 3.9版本文档的“DEVELOPMENT WORKFLOW”--“Hardware Setup”--“UART”部分指示了该接口的定义,如图2和图3所示。


连接
现代电脑一般都取消了串口。因此,一般情况下,我们需要使用USB转TTL串口模块,将TTL串口信号转换为USB信号后,再通过USB连接到上位机。

如果您使用了像树莓派这种自带TTL串口的设备,可直接查看对应的产品手册进行连线。
一般情况下,TTL串口双方之间的TX和RX需要交叉连接。在两边设备都有独立供电的情况下,VCC是不需要连接的。最终连线情况如图5所示。

连线完成并将USB转TTL模块插入到电脑后,电脑的设备管理器的“端口”一栏会出现一个全新的设备,设备名称取决于你购买的USB转TTL模块的芯片类型,如图6所示。

如果您将USB转TTL模块插入电脑后,电脑的设备管理器的“端口”一栏没有出现全新的设备。而是在“其他设备”中出现一个全新的设备,如图7所示。那么请您向购买该模块的地方索要对应的驱动程序并安装。在驱动程序安装后,该模块才可以正常工作。

检验连接是否成功
为了检验是否连线是否成功,我们可以通过尝试使用串口获取飞控数据,观察飞控数据格式是否正确。
开启API数据发送
为了获取飞行数据,需要首先开启数据授权。打开DJI Assistant 2,登录您的账号并在右上角的“设置”界面中开启数据授权,如图8和图9所示。


接着,您需要将飞控通过Micro USB--USB线缆连接到电脑。DJI Assistant 2会自动检测并识别飞控。
如果您在插入线缆后,DJI Assistant 2没有识别到飞控,请尝试重复插拔或使用电脑的其他USB接口。如果重复插拔和更换USB接口均无效,请关闭DJI Assistant 2并重新打开。如果重新打开时提示“DJI Assistant 2仍在后台运行中”,请打开电脑的任务管理器,在“进程”页面中搜索“DJI”,在“后台进程”一栏中手动结束进程,如图10所示。

DJI Assistant 2成功连接到飞控后,请打开“SDK”页面,点击“启用API控制”,如图11所示。

在此页面中,您还可以设置波特率与传输数据的速率。启用或关闭API控制不需要重启飞控,更改波特率需要重启飞控。如果使用STM32或ROS环境连接飞控,那么波特率有额外要求,详情请翻阅大疆OnBoard SDK 3.9版本文档。
开启API控制后,飞控会不断通过API口发送飞控数据。我们通过检验串口接收的飞控数据正常与否从而检验连接是否正常。
检验数据格式
本文使用正点原子串口调试助手V3.0作为串口调试工具,您也可以使用其他串口调试工具。
打开串口调试工具,选择对应的串口,将波特率设置为DJI Assistant 2的“SDK”页面中设置的波特率,默认为230400,其余设置保持默认。
如果接收数据中出现多个00000000000数据,那么表明数据可以成功接收。根据接收的数据情况来看,大疆飞控的通讯包头似乎是AA DA 00 00 00 00 00 00。

至此,已成功通过串口连接到大疆A3飞控。