发作品签到
标准版

YMFC开源小四轴

工程标签

4.9w
0
0
60

简介

非常简单易学的小四轴,只用到了两个芯片和700行代码。

简介:非常简单易学的小四轴,只用到了两个芯片和700行代码。

开源协议

GPL 3.0

创建时间:2023-01-08 08:45:35更新时间:2023-06-07 15:46:31

描述

本项目优点

对于已经会购买飞控板、电调、电机等零件自己组装无人机的朋友来说,可以帮你更进一步,学习到飞控的核心技术。

对于研究软件无线电的朋友,这个小四轴也可以作为你研究各类无线电通信信号的基础。

 

工程描述

这原本是一个用于大四轴的飞控项目,由荷兰开发者Joop Brokking公布。后来我为了学习和调试更加安全,才改为了小四轴。但小四轴上也引出了引脚,可以当作大四轴飞控使用(需对飞控软件代码稍作修改)。

开发环境IDE是Arduino。

该项目主控芯片早期是Atmega328p,后期是STM32F103C8T6,目前开源的小四轴用的是后者。

姿态传感器是MPU6050。

遥控:使用航模遥控接收机实现,只要可以买到支持PPM输出的遥控器和接收机,插上去就能用。

图传:直接绑上一个模拟摄像头+发射机模块就行。图传接收机可以是直接买商用模块,或者参考视频教程第六集用软件无线电实现。

 

配套系列教学视频

公告 https://www.bilibili.com/video/BV1LD4y1s7Pv/

第一集(项目历史和原理图)https://www.bilibili.com/video/BV1f24y1y7oi

第二集(深入代码)https://www.bilibili.com/video/BV1cd4y1b7sd

第三集(无人机组装和测试)https://www.bilibili.com/video/BV1Td4y147aW

第四集(控制无刷电机)https://www.bilibili.com/video/BV1g14y1T7gv

第五集(从无人机到软件无线电)https://www.bilibili.com/video/BV1j24y1Q7KV

第六集(面向未来的实验)https://www.bilibili.com/video/BV1Sv4y1q75N

第七集(彩蛋——用SDR与无人机交互)https://www.bilibili.com/video/BV18P4y1e77x

 

更基础的原理视频

第一集 (内容介绍) https://www.bilibili.com/video/BV1Wo4y1L7Lg

第二集 (陀螺仪) https://www.bilibili.com/video/BV18h4y1n7pD

第三集 (遥控信号)https://www.bilibili.com/video/BV14X4y127wk

第四集 (电调输出) https://www.bilibili.com/video/BV1sc411P7ig

第五集 (负反馈) https://www.bilibili.com/video/BV1tk4y1s7hE

第六集 (合并代码) https://www.bilibili.com/video/BV17a4y1g7Qd

第七集 (其它无线电信号)https://www.bilibili.com/video/BV1v24y1P75L

第八集 (外场试飞)https://www.bilibili.com/video/BV1yz4y1q7yf

 

配套的飞控代码:

https://github.com/jamesshao8/ymfc-mini-drone

其它视频里提到的开源项目地址请参考各视频下方描述。

 

原理图讲解

(与原项目的原理图对比介绍可以看视频教程第一集

上图是主控芯片STM32,它与电路的其它部分都有联系,由LDO供电,通过IIC接收MPU6050的姿态信息,接收PA0口上的遥控PPM信号,输出控制4个电机的PWM信号。除此之外,它也用模拟引脚实现了电池电压检测功能,也可以控制LED灯来显示状态,还可以通过串口与电脑相连。J1接口是下载固件时用的,下载模式时J1需要短接,正常模式下J1需要开路。

 

以上是MPU6050,它通过IIC接口与STM32相连,提供姿态信息。

 

以上是其中一个电动机的驱动电路,PWM4_LF_CW是表示这是第四个电机信号,它可以直接输出给外部的电调模块用来控制大四轴的无刷电机,也可以送到上图中的MOSFET上,用来控制接在LF这个2pin口上的有刷电机。但是控制两种不同的电机,需要对代码做一些修改,具体请看视频教程第二集。如果要控制无刷电机,硬件组装请参考视频教程第四集

 

这是一个3pin的接口,用来把航模遥控器的PPM信号输送给主控,你也可以用软件无线电来自己实现遥控,可参考视频教程第

这是一个4pin接口,可以用它往主控里烧写固件,也可以在正常使用过程中向电脑发送调试数据。

这是一个分压电路,可以获得与电池电压成正比的信号,然后给到主控的模拟输入口上,检测电池剩余电量。

 

这是两个LED状态指示灯,可以由主控的两个引脚控制。飞机在飞行过程中,用LED来显示状态非常方便。

 

上图从左到右是电池接口、开关、线性稳压芯片(用来给电路其余部分输出稳定的3.3V电压)。

虽然这部分放在后面,但是供电部分是最重要的,在画PCB过程中,电池口的正极先连接到了开关正极上(网络名称是VBAT),它与4个电动机对应的MOSFET相连,这几条连线必须要足够粗,否则电流不够。电池负极一般都与铺铜区相连,也就是说电路上的所有部分都有一根很粗的导线连到了负极,所以负极不会是问题,主要是正极要足够粗。

如果正极不够粗,可能会导致STM32的供电电压不够,程序跑飞。当你看到蓝色LED灯开始闪烁,代表飞控重启了,很有可能就是这个原因。我提供的资料里线宽是足够的,但是如果你要二次开发,要注意这个问题。

 

最后,当你根据我的资料打样生产了板子,如果不知道要下载哪个固件代码,或者在组装过程中碰到了困难,可以观看视频教程第三集

 

对于飞控来说,其实主要难点还是在软件代码上,目前我的教学视频第二集虽然也是在讲飞控软件代码,但主要还是在讲我怎样做减法,删除了原项目的多余部分。将来,我还会出一集深入讲飞控原理和怎样写出对应代码的视频,如大家感兴趣,请多多点赞支持我。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航