念慈菴

YMFC open source small four-axis

 
Overview

本项目优点
对于已经会购买飞控板、电调、电机等零件自己组装无人机的朋友来说,可以帮你更进一步,学习到飞控的核心技术。
对于研究软件无线电的朋友,这个小四轴也可以作为你研究各类无线电通信信号的基础。
 
工程描述
这原本是一个用于大四轴的飞控项目,由荷兰开发者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灯开始闪烁,代表飞控重启了,很有可能就是这个原因。我提供的资料里线宽是足够的,但是如果你要二次开发,要注意这个问题。
 
最后,当你根据我的资料打样生产了板子,如果不知道要下载哪个固件代码,或者在组装过程中碰到了困难,可以观看视频教程第三集。
 
对于飞控来说,其实主要难点还是在软件代码上,目前我的教学视频第二集虽然也是在讲飞控软件代码,但主要还是在讲我怎样做减法,删除了原项目的多余部分。将来,我还会出一集深入讲飞控原理和怎样写出对应代码的视频,如大家感兴趣,请多多点赞支持我。
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-21 23:50:25

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号