DJI-OSDK开发
一、简介
Onboard SDK,顾名思义就是跑在板子上的一套SDK接口,通过串口与飞控进行通信,通过调用这些接口,developer就可以实现对DJI A3/N3/M100飞控进行起飞、降落、悬停、移动、拍照录像、控制云台等等功能。DJI的飞控做得稳如狗,如果仅仅可通过遥控和DJI专用APP操作飞机,这就限制了DJI飞控在各行各业上的拓展。因此DJI的SDK接口可谓为飞控的拓展和发展提供一条很“生态”的发展道路。
本篇文章主要写了如何在STM32F4的板子上将 A3/N3大疆飞控的数据接收回来。
注意!调试之前将飞控按照要求安装好,安装说明讲的明白我就不再赘述了。
二、软件准备
1、https://developer.dji.com/cn/ 大疆开发者平台 点击成为开发者,并注册APP获得APP ID和APP Key,这个之后在程序中会用到
2、选择开发模式 ONBOARD SDK简称OSDK
3、USART通信方式图
4、下载官方文件
(最新版的官方历程需要移植FreeRTOS,不过我用不到,所以就选择了之前的版本 (切记,选择不同的版本需要与飞控上位机相对应,不然会出现版本不匹配的错误))
5、下载上位机
https://www.dji.com/cn/matrice-200-series/info#downloads
到此,前期准备工作都已结束,接下来开始实操
在加一些下载链接
https://developer.dji.com/cn/onboard-sdk/ (DJI Onboard SDK官网)
https://developer.dji.com/onboard-api-reference/index.html (DJI Onboard SDK官网API参考文档)
https://github.com/dji-sdk/Onboard-SDK (github下载源码)
https://www.dji.com/cn/downloads/softwares/assistant-dji-2-for-matrice (上位机下载)
三、硬件连接 + 配置
1、API接口图示 VCC不用接,其他的接起来,三条线,飞控不支持给板子供电,板子需要自己外接电源
2、实物连接
3、上位机配置 启动API这个选项可能有问题,我的旧版本不勾选时才会给主控发送信息,新版本勾选了会发。你们可以自己试试。
4、检验是否有数据,按照之前的接线图接好后,插上USB-TTL,接上PC机,使用串口助手打印,看看是否有数据输出,数据是乱码(不用管,有就好),转成十六进制数后可以查看AA为数据的起始数据。要是有数据,恭喜你,飞控是好的,接下来就是接收到这些数据且进行处理。
5、配置STM32F4,配置串口2和串口3,按照历程中的IO口接好后,在串口助手上查看是否有数据输出,要是有则配置成功接下来就可以进行自己的操作了(注意这儿的数据指的是正常数据),要是出现乱码,则是代码的时钟配置和板子的不一致 ctrl+F 查找 HSE_VALUE,将12000000改为8000000乱码就可解决。
6、数据输出会伴随有固件中的报错等信息,如果有报错仔细查看,解决掉报错,那么就可以调用API或者读取飞控数据成功了
四、STM32F4内置函数的简单说明
我是主要用来读取数据使用的,我就讲讲读取的使用API
1、配置订阅
2、配置串口
在comunication.cpp中
与A3飞控通信的波特率配置成与上位机一致的 230400
与电脑通信的配置成 115200