• 正文
  • 相关推荐
申请入驻 产业图谱

分享7个四轴无人机开源项目,还有具体的学习方法

08/04 09:40
2349
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

我自己在校期间也是做无人车和四轴出身的,当然我的推动手段是靠比赛,这确实是个好方法,不过这不是今天的主题,感兴趣的话之后专门在写。PS:文末有提供的参考资源链接,欢迎自取。

首先是基础知识的积累下边几个原则上是必备的技能,但是初学也不必过分纠结先大致入个门就可以,不要因为细节放弃大目标。

C语言编程:熟悉基础概念,结构体、指针和中断处理这种就可以。

电路基础:能读懂原理图,使用万用表测量电压/电流

数学基础:PID控制算法、四元数姿态解算,比较难理解,先泛泛了解。

第二步是了解四轴硬件组成

四轴因为要考虑重点和载荷的问题,和小车还不一样,小车可以自己随便DIY就可以,四轴的学习我建议一开始开始参考成熟的套件最好,这个某宝很多,基本都可以。后边熟悉了可以找些免费的开源硬件资源自己打板焊接下,顺便还学习了硬件,成就感爆棚!

四轴的硬件组成主要有以下部分:

单片机MCU):如STM32F411,负责数据处理和控制逻辑。

传感器MPU6050(陀螺仪+加速度计)。

电机和电调:常用的比如720空心杯电机

遥控器接收机:遥控器也可以基于STM32制作,无线连接使用2.4G比较常见。

电池电源管理:2S-4S锂电池(7.4V-14.8V),需配低噪声稳压模块(如LM2596)。

第三步软件开发环境搭建到了这一步是难住大部分同学的门槛,其实对于初学者直接先看成熟的源码学习是个不错的路径,不过今天主要是分解下学习步骤,所以一步步分解下。

IDE:STM32CubeIDE(免费,集成HAL库)

烧录工具:ST-Link V2

代码管理:Git(非常推荐学习下,源代码管理神器)

第四步软件算法学习

这步还是一样,初学可以直接看成熟的项目拆解学习,不过本文还是说下主要的算法。

传感器数据读取(MPU6050)

使用I2C协议读取原始数据,并进行校准和滤波:

// 示例:读取陀螺仪数据
void?MPU6050_ReadGyro(int16_t?*gx,?int16_t?*gy,?int16_t?*gz)?{
? ??uint8_t?buf[6];
? ? HAL_I2C_Mem_Read(&hi2c1, MPU6050_ADDR, GYRO_XOUT_H_REG,?1, buf,?6,?100);
? ? *gx = (buf[0] <<?8) | buf[1];
? ? *gy = (buf[2] <<?8) | buf[3];
? ? *gz = (buf[4] <<?8) | buf[5];
}

PID控制器实现

实现比例-积分-微分控制算法:

typedef?struct?{
? ??float?Kp, Ki, Kd;
? ??float?integral;
? ??float?prev_error;
} PID;

float?PID_Update(PID *pid,?float?error,?float?dt)?{
? ? pid->integral += error * dt;
? ??float?derivative = (error - pid->prev_error) / dt;
? ? pid->prev_error = error;
? ??return?pid->Kp * error + pid->Ki * pid->integral + pid->Kd * derivative;
}

电机控制

通过PWM信号调节电机转速

// 设置电机PWM占空比(0-1000对应0%-100%)
void?Motor_SetSpeed(uint8_t?motor_id,?uint16_t?duty)?{
? ? TIM_OC_InitTypeDef pwm_config = {0};
? ? pwm_config.Pulse = duty;
? ? pwm_config.OCMode = TIM_OCMODE_PWM1;
? ? HAL_TIM_PWM_ConfigChannel(&htim3, &pwm_config, motor_id);
? ? HAL_TIM_PWM_Start(&htim3, motor_id);
}

第五步调试工具及手段

做电子类项目开发,一定要会调试,不然基本等于没入门!

串口调试:使用串口调试工具查看传感器打印数据,也可以用匿名调试工具这种集成的四轴专业工具。

示波器:必备工具,可以检查PWM信号波形,协议时序报文等,如果财力有效,可以买些低速率的开源硬件,也能先撑着用。

最后是一些可以借鉴参考的项目资源:

Crazepony微型四轴

定位:面向大学生和创客的开源平台,主控采用STM32F103,支持二次开发。

资源:提供原理图、飞控源码(含PID调参示例)及3D打印模型文件

http://www.crazepony.com/

匿名飞控(ANOFly)

功能:基于STM32F4的飞控系统,集成MPU6050姿态解算、PID控制算法,支持匿名上位机实时数据监控。

亮点:提供完整的Matlab仿真模型,便于调试姿态融合算法。

应用:适合研究四元数解算和传感器滤波技术

https://www.anotc.com/wiki/welcome

正点原子ATK-MiniFly系列

特点:完整开源硬件(原理图、PCB)和软件(FreeRTOS实时系统),支持光流定高、手机APP遥控、4D空翻等特性。

硬件配置:STM32F4主控 + MPU9250/BMP280传感器 + NRF24L01通信模块,成本控制在300元以内。

学习资源:提供用户手册、固件源码(V1.0-V1.4)、常见问题解答

http://www.openedv.com/docs/fouraxis-fly/minifly.html

国外的一些开源项目:

Betaflight

GitHub地址:https://github.com/betaflight/betaflight

特点:专注于竞速无人机的高性能飞控,支持STM32系列MCU(如F4/F7)。

提供丰富的调参接口(PID、滤波器、电机映射等)。

内置黑匣子(数据记录)和OSD(屏幕显示)功能。

适用场景:竞速、穿越机、FPV(第一视角飞行)。

学习资源:官方文档详细,社区活跃(Betaflight Discord群组)。

PX4 Autopilot

GitHub地址:https://github.com/PX4/PX4-Autopilot

特点:由Dronecode基金会维护,支持多旋翼、固定翼等多种无人机类型。

提供完整的自主飞行功能(路径规划、避障、RTK定位)。

兼容硬件:Pixhawk系列飞控(如Pixhawk 4, Cube Orange)。

适用场景:科研、农业测绘、物流运输。

亮点:与ROS(机器人操作系统)深度集成,适合开发复杂应用。

ArduPilot(这是我第一份工作参考学习的资料)

GitHub地址:https://github.com/ArduPilot/ardupilot

特点:历史悠久的开源飞控,支持超过200种飞行平台。

功能涵盖自动起飞、航线飞行、自动返航等。

硬件兼容性广(从STM32到Linux单板机)。

适用场景:教育、农业、航拍。

工具链:Mission Planner(地面站软件)提供可视化控制。

MicroDrone(空心杯四轴)

教程链接:https://github.com/MicroDrone/MicroDrone

特点:使用Arduino Nano和空心杯电机,成本低于100元。

提供从焊接、调参到飞行的完整教程。

硬件清单:

电机:8520空心杯

传感器:MPU6050

遥控:NRF24L01模块

我能提供:(8年资深工程师+职业规划师)??【一年陪跑咨询】:10000/年??【1v1咨询】:500/小时??《嵌入式工程师练级之路》专栏?:365元/10合1专栏
关于作者:你好,我是Allen康哥,CSDN嵌入式领域博客专家,知乎嵌入式领域优质答主,嵌入式技术垂直领域粉丝15万+。现任世界500强外企高级软件开发工程师,有多年国企和外企嵌入式行业工作经验,擅长嵌入式行业学习规划,单片机和嵌入式Linux学习规划,嵌入式硬件转软件学习规划,简历及offer咨询,报考/考研咨询等,欢迎留言交流!

相关推荐