信创CPU应用于无人机,飞腾派作为飞控核心的实现方式
飞腾派高性能开发板
飞腾派是由萤火工场研发的一款面向行业工程师、学生和爱好者的开源硬件。飞腾派正在iCEasy商城和天猫旗舰店火热售卖中!小伙伴们可以直接登录iCEasy商城网站www.iceasy.com搜索“飞腾派”下单,或者在iCEasy商城小程序内下单!
简要介绍
使用ARM A系列处理器来开发无人机飞控可能并不是那么合适,因为Linux并不会保证实时性,但是飞控又是一个对实时性要求较高的设备,二者之间是有一些矛盾的。
但是国产芯片在我心目中又确实要比国外的芯片在情怀上要高档一些,即便二者有矛盾,但是我也在其中做一些工作,为国产CPU的推广贡献自己的力量。
功能要求
由于是首次使用Linux开发无人机,所以初步的目标就定位在如何把飞机飞起来,至于下一步如何把飞机飞好则是下一步开发的内容。
把飞机飞起来并不那么容易,以下是需要解决的问题:
- 输入:无人机需要输入传感器信息、遥控器信息;
- 输出:无人机需要输出4个电机控制信息;
输入:传感器选择的是老款MPU6050姿态传感器
遥控器选择的是乐迪的T8FB型号遥控器,走SBUS协议
输出:采用的是飞盈佳乐的20A电调
有了以上输入输出,无人机的基本飞行功能性就已经满足。
如下是一些其他的外���设计:
- 电机采用的是2230电机2300Kv的值
- 螺旋桨采用5045型号2页螺旋桨
- 电池采用2000mah 3s 35C的动力锂电池,12V的供电直驱飞腾派
如何设计
无人机飞控源码的设计,里面难点在于这么几个:
- 传感器采用的是mpu6050,这款传感器采用的是I2C的通信总线,需要开发改款传感器的对应驱动,需要开发的驱动包括如何写入传感器寄存器、如何读取传感器寄存器、如何批量读取寄存器。
- 遥控器并不直接和飞腾派相连接,而是采用一个接收机和飞腾派相互连接,接收机上会发送波特率为100000的负逻辑电平串口信号。为了读取这个信号并且转换成飞腾派能够读取的形式,需要采用如下电路对信号进行翻转。
❗ 注意:必须是硬件翻转,软件翻转无法起作用;
❗ 注意:由于飞腾派无法使用官方开放的接口实现100000波特率的设置,所以需要一个桥接装置,把原本100000的波特率桥接以后转换成115200的波特率才能够被使用。
- 电机信号输出困难,由于飞腾派对外输出的PWM波只有1个,所以是无法直接驱动电机运行的,这里的方法还是使用一个桥接器。
❗ 桥接器其实是一块STM32的小芯片,编程控制这块芯片实现如下功能:
接收机接收SBUS信号 从串口端发送波特率为115200的SBUS信号 从飞腾派接收电机控制信号,这里我使用的是串口形式,再从PWM端发送PWM波控制4个电机的转速
硬件连接
当一切都处理完成以后就可以对整个无人机系统做硬件连接了,连接图如下:
❗ 注意:其中电机信号不能和遥控器的串口信号使用同一个串口,不然会导致接收正常,但是无法发送,我理解应该是一个半双工通信接口。但是如果使用串口1则会带来一些风险,串口1是调试串口,有可能在系统运行过程中会出现一些奇怪的数据被打出来。所以需要使用一些通信协议来保证接口的通信正常。
最后只需要使用一个12V的接线口,直接连接无人机电池,即可开发控制无人机。
软件飞控的安装
飞控我已经安装和编译好了,可以用下面这个地址下载:
链接:https://pan.baidu.com/s/1y7BkitovAB7NsovBIicvIw
提取码:8en4
内含STM32代码
把fmu下载下来,进入目录以后,在目录环境下进入控制端,输入如下指令:
sudo ./fmu
输入sudo密码:user
当出现如下界面时,代表飞控已经启动成功:
此时会滚动刷新飞控信息。
此时就可以使用遥控器控制无人机解锁飞行了,无人机使用美国手操作逻辑。
飞腾派V3 现货支持
飞腾派V3 现货发售,支持全四口USB 3.0接口,PWM智能调速散热风扇,国标/美标耳机自动识别等功能,售价649元包邮。
https://www.iceasy.com/product/1875487334855221250
飞腾派资料下载专区
提供飞腾派相关资料下载,包括开发板手册、开源项目文档等。
https://www.iceasy.com/cloud/Phytium?pid=1877646941793374213
开源口碑案例分享
可参考飞腾派开发板的用户评价和社区反馈。
https://www.iceasy.com/review/list