在校期间设计搭建了一套四旋翼飞行器
控制器MCU是Arduino Uno
飞控用了开源项目 Multiwii
框架、电机、电调、电池、遥控、旋翼都是自己选型购买的
整体尺寸较大,且笨重。
且对电机和旋翼的功率设计分析欠缺,差点导致飞行器无法离地。 最终更换为三叶桨才使勉强能够进行常规飞行。
特技什么的是根本不能实现的。
现在回想起来当时的调试过程依旧觉得很神奇,在未理解PID控制的情况下居然让飞行器正常工作了。
Multiwii是一开源的飞控项目。能够兼容绝大多数市面上常见的飞行器。
包括固定翼和多旋翼,且结构适配性较好。
项目主要分为两个部分
源文件 | 说明 |
---|---|
Alarms.h .cpp | 错误状态指示,警报。 |
config.h | 配置文件,根据硬件结构等配置相关选项。配置含义 |
def.h | 通用配置定义 |
EEPROM.h .cpp | Electrically Erasable Programmable read only memory. 用于保存调试下发的配置参数,例如PID参数。这样飞控就可以在下次启动的时候读取调试下发的参数。 |
GPS.h .cpp | GPS传感器读数获取 位置估计 路径规划 |
IMU.h .cpp | Inertial Measurement Unit. 对加速度、陀螺仪、气压计、磁力等传感器读数进行估计。 |
LCD.h .cpp | 液晶屏操作,主要用来显示状态信息和错误信息。 |
MultiWii.h .cpp | 主循环,包含三个抽象轴的控制器。 |
MultiWii.ino | Arduino项目的文件。实际是空的,实现都在cpp内。 |
Output.h .cpp | 电机输出 |
Protocol.h .cpp | 串口通信协议 |
RX.h .cpp | 接收模块,接受来自遥控器的指令并解析。 |
Sensors.h .cpp | 通过I2C获取加速度传感器、陀螺仪、气压计、磁力计和超声波传感器的原始值。 |
Serial.h .cpp | 串口通讯模块,调试GUI程序使用的。 |
Telemetry.h .cpp | |
types.h |
可以参考这个入门教程