DIY小四轴之电路设计(一)
写在前面
前一阵时间一直在做四轴飞行器,略有一点收获吧,在这里分享出来,一方面算是对自己的总结,另一方面希望能给想做小四轴的读者一些思路。本人并非电学专业,如有不对之处,恳请斧正。
综合考虑到读者群体的能力范围,可能会讲的有些细,涉及到单片机、数字电路、模拟电路的一些内容。另一方面,为了更好地学习本篇文章,希望读者具有以下基础:
- STM32单片机基础,任意系列都可以;
- Altium Designer电路板设计;
- 一部分数字电路、模拟电路知识。
一、概念篇
四轴飞行器又称四旋翼飞行器,简称四轴,它的基本原理是四个电机直连螺旋桨旋转,产生升力,带动四轴飞行。
四轴飞行器的结构特性是,有两对电机正转、两对电机反转,具有相同旋转方向的电机在对角线上。
如上图就是1号3号电机逆时针转、2号4号电机顺时针转。这样做的目的是,实现多个自由度的控制。
比如,若1号4号减速,3号2号加速,就可以使得四轴向左侧倾斜,从而向左移动;如果1号3号减速,2号4号加速,则可以使得四轴在不倾斜的情况下,发生旋转,从俯视角度来看四轴会逆时针转动。
想要理解上面这两个例子,你可以把四轴的螺旋桨在空气中的状态,想象成鸭子的脚蹼在水中划水。要想真正透析其中变化的原因,需要根据牛顿第二定律结合受力分析去推导,然后建立一个模型,从而实现求解,在此不多作展开。
四个电机转速相同就能够保持平衡
这是个非常理想的状态,但实际在制作飞行器的过程中,一方面四个电机转速不一定会完美相同,另一方面受限制于工艺,四轴的重心也不一定在几何中心。
因而对于四轴四个电机转速的控制,我们并不是去寻求绝对的平衡,而是需要动态平衡。说句大白话就是,因为它总是会飞歪,所以我们得不断地去纠正它的飞行姿态。
那么既然要纠正它的飞行姿态,我们一般要考虑通过一些传感器(Sensor)去获取这个姿态,才能知道该如何去纠正。四轴飞行器常用的传感器有:陀螺仪、加速度传感器、气压计、激光定高等等,这些传感器具体的功能如下表所示。
传感器类型 | 作用 | 常见型号 |
---|---|---|
陀螺仪、加速度传感器 | 获取飞行姿态、加速度等信息 | MPU6050、MPU9250等等 |
气压计 | 获取飞行器高度信息 | SPL60、BMP250等等 |
激光定高 | 获取飞行器高度信息 | 略(百家争鸣) |
光流 | 获取飞行器位置信息 | 略(百家争鸣) |
除了四个电机、传感器之外,还需要考虑设备之间的通信,比如遥控器信号发送给四轴,四轴把剩余电量信息返回给单片机。常用的通信模块有Si24R1、蓝牙模块等等。
经过上面的讨论,总体来说四轴的功能齐全了,其整体框图可以概括如下:
我们要考虑制作的四轴不需要机架,而是通过Altium Designer将电路板(PCB)制作成机架的样子。其大体形状类似于这样,后面会慢慢讲。
二、电源设计
电源其实是一种供电方案的设计,小的四轴通常使用3.7v可充电的锂电池供电。
在此提供一种供电方案,先升压后稳压,这种供电电路的特点是,电量消耗可能比较快,但输出电压稳定。
第一部分是升压,目的是将3.7v的锂电池电压,升压到5V,上面是这个升压电路的原理图。在原理图中最左侧是一个电池的插座,后面由开关S1控制电池的供电情况。再向后看有一个DC-DC升压芯片HT7750SA,这个芯片的具体配置方法应该查询它的数据手册Datasheet,数据手册中往往会给出这种芯片的基本电路。
参考资料:
https://html.alldatasheet.com/html-pdf/947649/HOLTEK/HT7750SA/1109/5/HT7750SA.html.
在它的数据手册中给出的基本电路图如下
前面有一个电容C-电感L滤波电路,它的作用是去除输入端的交流分量;后面输出端的电容Cout是一个旁路电容,能使升压器的输出均匀化。
对比上面原理图,可以看出,我们其实调整了两个地方,一个是输入端的电感L,经实际测试常用的4.7uH电容效果比较好;另一个是后面的Cout改为两个电容并联,效果是差不多的。
第二部分是稳压,使用一个线性升压器XC6206,目的是将5v的电压降低至3.3v,从而给单片机以及传感器供电。这个电路就基本上按照Datasheet里面给的参考电路去布置就可以。这里有一点不同的就是多了一个二极管,这个二极管是为了避免电流倒灌。
参考资料:
https://wenku.baidu.com/view/2c9edae8cdbff121dd36a32d7375a417876fc155.html.
这样我们一共有了三条电压主线,一条是VBAT(3.7v),可以直接给空心杯电机供电,外两条分别是5v、3.3v,给单片机和各类传感器等设备供电。
最后还有一个测量电路,如下图所示,原理是将电池电压通过两个相等的大电阻R3、R4,然后测量R4上面的电压VBAT_T,然后实际的电池电压量应该为2倍的VBAT_T,最后根据电池包的电量—电压特性图将电压量转化为电量就可以了。其中VBAT_T连接在STM32单片机的ADC上面,通过ADC读取电压值。
(未完待续)