基于STM32的电动小车动态无线充电系统
2020-03-02郑佳蕙厉俊
郑佳蕙 厉俊
摘 要: 本设计以STM32单片机为主控,超级电容为储能核心控件,采用无线充电技术,将电感线圈的耦合能量传递给超级电容,利用超级电容储存的电能作为电源驱动小车。并且通过改进机械结构,实现了小车的红外循迹功能。系统共包括:低功耗的STM32主控模块、超级电容组储能模块、无线充电模块、定时充电模块、自启动模块、自动升压电源模块和电机驱动模块。该电动小车实现了动态无线充电及定时自启动完成轨道循迹的功能。
关键词: STM32单片机;超级电容;无线充电;轨道循迹;定时自启动
中图分类号: TP242 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.01.052
本文著录格式:郑佳蕙,厉俊. 基于STM32的电动小车动态无线充电系统[J]. 软件,2020,41(01):240244
【Abstract】: The design is dominated by STM32 single-chip microcomputer. The super capacitor is the energy storage core control. The wireless charging technology is used to transfer the coupling energy of the inductor coil to the super capacitor, and the electric energy stored by the super capacitor is used as the power source to drive the trolley. And by improving the mechanical structure, the infrared tracking function of the trolley is realized. The system includes: low-power STM32 main control module, super capacitor group energy storage module, wireless charging module, timing charging module, self-starting module, automatic boosting power module and motor driving module. The electric trolley realizes the function of dynamic wireless charging and timing self-starting to complete track tracking.
【Key words】: STM32 microcontroller; Super capacitor; Wireless charging; Track tracking; Timing self-starting
0 引言
近年来,随着科学技术的发展和人民生活水平的提高,智能电动小车已经慢慢进入我们的生活,例如仓库货运的物流小车、防盗巡查的安保小车、排除险情的探测小车、智能家居的服务小车等[1],能够自动识别路线,判断并躲避障碍物,选择正确的行进路线,在安全防范、物流交通、检测评估、生活便利方面都提供了很大的帮助。但是传统的电动小车多采用有线模式,充电易受电源线老化、电池容量过小、插电火花,插头磨损等影响,无法持续、安全工作,而超级电容储能特性和无线充电技术的迅速发展为这一问题提供了解决办法。
无线充电主要利用能量发送装置和能量接收装置进行能量耦合实现能量的传递,摆脱了传输线束缚[2]。双向DC-DC电路通过控制功率MOS场效应晶体管的通断,加大输出端的电压、电流,能从根本上提高电动小车续航能力。而同时超级电容的迅猛发展,使得它在新能源汽车领域备受关注,不仅其充电速度快、存储容量大,还能量转换率高,更符合电动小车对于轻便、节能电源的要求。
1 电动小车总体设计
本设计在硬件结构上对小车的车身搭载电路进行了充分设计改造,软件上利用STM32单片机实现PWM波输出、定时和采样检测的功能,将单片机实体作为硬件的一部分搭建进电路模块。由此,硬、软件的结合实现了电动小车红外循迹、车轮智能变速、高续航能力、无线充电断电自启动等功能[3]。超级电容充电时,小车车身上搭載的无线充电线圈接收端感应到发射端产生持续的直流电,将其作为超级电容的充电电源。超级电容放电时,电容本身作为电源,通过双向DC-DC的升压端进行升压后,电压分别给单片机稳定供电和为电机驱动供电。系统总体设计如图1所示。
2 电动小车的模块设计与选择
2.1 主控模块单片机的选用
采用超低功耗的STM32单片机作为无线电动小车的核心主控模块,STM32是低电压、高性能的ARM Cortex-M内核的32位微控制器。STM32外设丰富,功能齐全,有高达112个的快速I/O端口、11个定时器、13个通信接口[5],相对于其他单片机,主频高,集成广,低能耗,适应强,操作简单,调试方便。它能通过内置定时器产生三路占空比不同的PWM波,从而实时改变PWM波的频率,实现小车的自启动功能。并且能精准采样,调整两个电机转速,以此实现智能变速。
2.2 红外循迹电路模块的选用
电动小车总体电路主要由光电传感电路、电压比较电路、电机驱动电路3个部分组成,LED发光二极管投射到黑色和白色部分的反射率不同,即反射回来的光线亮度不一样,光敏电阻接收到的光线亮度不一样,导致阻值会产生变化,分压得到的电压值也随着变化。LM393比较两路光敏电阻分压的大小,如果正向输入IN+的电压大于反向输入IN-的电压,对应的OUT就输出高电平,反之输出低电平。输出两路电平信号到三极管8550的基极[8],控制两侧电机的运转,从而修正小车行进的方向,使得小车沿着黑色轨迹前进。红外循迹模块电路图如图2所示。
2.3 无线充电模块的选用
无线充电模块由无线充电发射端线圈和无线充电接收端线圈构成,若要小车上的接收线圈获取电压,则必须产生高频率的电磁波。而选用产生高频PWM波的芯片或者直接利用直流电源结合ZVS变换系数[6]都是实现难度较大和安全系数较低的方案。由于市场上手机无线充电设备的技术已经较为成熟,安全系数较高,直接改造现成的手机无线充电配套线圈是最理想的方案,因此我们选用手机无线充电配套线圈作为无线充电模块,驱动电动小车。
2.4 超级电容储能模块的选用
储能模块选用了5.5 V的超级电容,实现电池充放电的性能。超级电容本身原理与普通电容相似,而它的优点在于充电速度快、能量转换效率高、过程损失小、能量循环效率≥90%、安全系数高以及容量大,不仅轻便耐用,还绿色环保。利用标称电压5.5 V,即最大单个超级电容能够承受5.5 V的电压的特点,串联两个同样的超级电容,使整体耐受电压达到10 V左右。将超级电容接到无线充电线圈的接收端[4],利用线圈上获得的电压,实现对电容的稳定充电。虽然串联两个超级电容会使得其总电容容量缩小一半,但是超级电容能更高效地释放电机的额定电压才是续航的核心。
2.5 升压模块的设计
为了进一步增强电动小车的续航能力,将升压电路接入超级电容,以满足电机长时间转动的需求。升压模块采用双向DC-DC模块中的升压部分,相比于纯Boost电路,它的优点在于二极管两端并联了一个MOS管,自举回路不会变成低阻回路,解决了电路在小电流时无法满足 的线性条件[7]。CSD19535KCS是一个非常合适的MOS场效应管,栅源电压在2.7V的小电压下就能导通,适合移动中的电动小车,因此用CSD19535KCS替代了常用的IRF540。稳压模块电路原理图如图3所示。
2.6 稳压模块的设计
由于过大的输出电压直接输入单片机的供电接口,会严重损坏单片机的性能,甚至使其中途停止工作。因此,稳压模块的设计采用L7809和AMS1117模块,L7809稳压输出9 V,AMS117将5 V及以上的电压转3.3 V,将5 V的输入电压输入IN口,经过稳压模块在OUT口出稳定的3.3 V电压,用于STM32供电。使得该模块能够正常工作的输入电压在直流4.5 V-7 V时,输出3.3 V,800 mA。稳压模块无需额外的电源[5]给它供电,并带有电源指示灯,使用方便,同时安全性较高,电源扩展接口丰富。稳压模块电路原理图如图4所示。
3 电动小车的软件设计
电动小车的系统软件设计采用Keil5作为开发平台,用于处理电机转速和定时自启动的功能及控制电动小车的运行。系统程序采用模块化方式设计,主要包括PWM输出,ADC电压采样和定时自启动程序等,根据流程图各功能模块的算法程序设计:在程序开始对各功能模块进行初始化,启动电动小车。小车在前进的过程中,不停的检测与红外探头采样和电机采样相连的单片机I/O 口,一旦查询到I/O 口有信号[13],就进入相应的子程序其执行程序,控制小车的运行。在小车运行的过程中,不断的重复上述过程,使小车在行使过程中实现智能变速和高续航的功能。图5为电动小车软件设计流程图。
3.1 PWM波的输出
车轮转速取决于电机两端电压的大小,通过STM32单片机采样检测电机两端电压大小和前端红外探头并联的电容电压大小来控制单片机输出PWM波的频率,PWM波在高电平时导通CSD19535KCS的MOS管,小车车轮转;PWM波在低电平时,CSD19535KCS的MOS管不导通[7],小车车轮停止转动,PWM高低电平相互交替,由此达到控制车轮开关。脉冲宽度调制模式可以生成一个信号,该信号频率由ARR寄存器值决定,其占空比则由CCR寄存器值决定。程序片段如下:
TIM_TimeBaseStructure.TIM_Period = arr;
//设置在下一个更新事件装入活动的自动重载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler = psc;
//设置用来作为TIM1时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上計数模式
void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3)
{
/* Check the parameters */
assert_param(IS_TIM_LIST3_PERIPH(TIMx));
/* Set the Capture Compare3 Register value */
TIMx->CCR3 = Compare3;
}
3.2 ADC电压采样
在动态充电过程当中,电动小车遇到黑色充电线圈,红外探头的光敏电阻两端电压就会大幅减小,STM32单片机通过ADC采样的两个通道同时检测到两端红外的电阻电压减小,则通过改变寄存器CCR的值来降低PWM波的输出频率,使电动小车在经过充电线圈的车速放慢[1],延长充电时间。程序片段如下:
u16 Get_Adc(u8 ch)
{ unsigned int result=0;
unsigned char i;
//设置指定ADC的规则组通道,设置他们的转化顺序和采样时间
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );
//ADC1,ADC通道ch,规则采样顺序值序列为1,采样时间为239.5周期
for(i=0;i<8;i++)
{
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
// 使能指定的ADC1的软件转换启动功能
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束 result+=ADC_GetConversionValue(ADC1);
}
result=result/8; //取8次采样的平均值
return result; //返回平均值
}
3.3 定时自启动的设计
为了实现小车充电一分钟后自行启动的功能,需要STM32单片机完成1分钟的定时设置。SysTick是一个24位的倒计数定时器[11],当计到0时,将从RELOAD寄存器中自动重装载定时初值。程序片段如下:
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms; //时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //開始倒数
do
{temp=SysTick->CTRL;}
while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
4 测试方案与结果
首先进行充电检测,对超级电容无线充电一分钟,二极管指示灯亮起表明处于充电状态,使用万用表记录测量结果。超级电容充电电压记录如表1所示。
充电电源开启,单片机定时一分钟后,小车立即自行启动,向前水平直线行驶,直至能量耗尽,重复六次操作记录数据,测试结果如表2所示。
电动小车整体实物图如图6所示。
5 结论
本文设计的基于STM32单片机的电动小车动态无线充电系统,详细介绍了系统模块的选用和软件的设计过程,具有良好的扩展性和可升级性。该系统利用无线充电技术结合双向DC-DC升压电路和超级电容储能特性,通过STM32控制,完成电动小车长距离行驶。经过多次无线充电测试以及水平轨道行驶,超级电容充电效率稳定在85%以上,电动小车表现稳定,续航能力可观,证明了系统设计的可行性。
参考文献
[1] 刘涛, 钟如意, 朱梅, 陈敏. 基于STM32的智能巡线小车系统设计[J]. 湖北农机化, 2019(13): 98.
[2] 刘芳, 张田田, 牛梦豪. 基于STM32的智能循迹避障小车[J]. 科技风, 2019(19): 18.
[3] 王鑫, 赵文鑫, 卫国唯, 李建航. 基于STM32单片机的物料搬运小车[J]. 科技风, 2019(19): 9.
[4] 于雷, 支语睿, 朱一凡. 基于STM32的智能循迹小车设计[J]. 赤峰学院学报(自然科学版), 2019, 35(04): 108-110.
[5] 李万义, 谢林汐, 肖锋, 程闫. 基于STM32的智能小车寻迹避障系统硬件设计[J]. 电子世界, 2019(07): 196-197.
[6] 刘学文. 基于stm32单片机的智能小车控制[J]. 现代制造技术与装备, 2019(01): 192-193.
[7] 李怀宇. 基于STM32的避障小车设计[J]. 科技视界, 2018(30): 191-193+158.
[8] 阚亚雄, 邢一龙. 基于STM32智能小车集成控制系统设计与实验研究[J]. 镇江高专学报, 2018, 31(04): 36-40.
[9] 王嘉俊. 基于STM32的智能小车控制系统设计[J]. 电子制作, 2018(17): 21-22+25.
[10] 李帅男. 基于STM32的循迹避障智能小车的设计[J]. 数字技术与应用, 2018, 36(08): 163-164.
[11] 勒国庆, 班乾乾. 基于STM32的智能小车设计[J]. 福建电脑, 2018, 34(07): 123-125.
[12] 范政, 何继靖, 朱永业, 赵虹. 基于STM32的无线智能小车控制系统设计[J]. 轻工科技, 2018, 34(06): 83-85+87.
[13] 苏元楷, 季磊, 聂嘉欣, 蔚国将, 关玉琴. 基于STM32F407的路径识别智能小车设计[J]. 信息通信, 2017(08): 31-33.
[14] 张海兵, 郭峰, 岳彩浩, 温艳. 基于STM32单片机的智能巡线小车[J]. 山东工业技术, 2017(07): 158.