开源MultiWii飞控

2022-04-15 15:20:47 浏览数 (1)

U1S1,2022写这个也没有意思了,但是猛然之间看到源码了,还是感觉很棒,想分享一下。

首先代码量不是很大,但是功能完善,而且是arduino编译,减少了很多底层的抽象问题。比较专注在逻辑上面。

里面的ino是没有文件的,看前面的同名文件

这个地方是驱动部分要的硬件

config文件里面是要打开的功能,具体看下面的一些常用的功能

可以搜定义,不看行数

PWM控制

航模部分使用PPM,或是PWM控制

接下来的引脚是电源和姿态。

上个图。

还有我想说下关于电机驱动这块,空心杯电机驱动电路:

SI2302的内部电路图:

这幅图是crazyflie飞控板的电机驱动电路原理图,同样适用MWC飞控,肖吉特二极管BAT54用SS34替换(只要满足电压和电流以及通断时间就行,SS34远远大于需求,只是因为跟MOS管在同一家店所以买了),场效应管pmv31xn用SI2302替换。

场效应管是用电压控制电流,作用跟三级管类似(三极管是用电流控制电流),相比于三极管,场效应管体积更小功率更大。

肖吉特二极管的作用是续流。电机是电感元件,有阻碍电流变化的特性,控制电机转速的方法是用PWM信号控制场效应管的通断,当场效应管断开时,电机两端会产生极高的感应电压击穿场效应管,加上二极管后,电机的电流会通过二极管保持流通,防止电机产生过高的感应电压。

白色的是控制线,黑色和红色的是接电机的线。电机驱动电源部分要接一个拨动开关,防止Arduino nano上电时不受控制的转,也用于失控时给电机断电。

就是这样,ESP8266的无人机也是这样

如果config打开这个定义:

那么就会使用这样的写法,这就是功能的动态加载。

陀螺仪 地磁

IMU的信息打包

电压检测

不知道是啥

角度

这个初始化的代码太长了

这里是适配各种板子来打开串口

串口的波特率

电源的引脚,蜂鸣器的引脚

电机的驱动部分

均配置为输出模式

这个里面大量的AVR单片机的寄存器配置,我不太熟悉。

读取摇杆的设置

还有日志的打印功能需要打印什么。给上位机使用

功能开启

功能好多啊。。我研究一下,下次再写。

代码语言:javascript复制
http://www.multiwii.com

0 人点赞