张皓博,刘兰波
(黑龙江工业学院 电信系,黑龙江 鸡西 158100)
基于单片机设计的风力摆系统
张皓博,刘兰波
(黑龙江工业学院 电信系,黑龙江 鸡西158100)
摘要:系统是以STM32F103C8T6单片机为主要控制核心的风力摆控制系统,该系统包括了MPU6050陀螺仪,TTS音频模块,12864液晶屏显示模块以及L298N电机驱动模块等控制模块。系统主要由MPU6050陀螺仪采得姿态和运动数据,先测试出几组具有代表性的数据,从而利用公式推导出风力摆摆动到任意位置时对应的pwm脉冲,根据计算出的脉冲,进而控制轴流风机的转速,以此来控制推动风力摆的动力大小,实现对风力摆的控制。为了在系统控制过程中能更清楚地获知数据,系统中有12864液晶屏显示模块以及TTS音频模块,对数据进行显示并且用语音播报出来。
关键词:MPU6050陀螺仪;PWM;轴流风机
0设计要求
0.1基本要求。
a.从静止开始,15s内控制风力摆做类似自由摆运动,使激光笔稳定地在地面画出一条长度不短于50cm的直线段,其线性度偏差不大于±2.5cm,并且具有较好的重复性;
b.从静止开始,15s内完成幅度可控的摆动,画出长度在30~60cm间可设置,长度偏差不大于±2.5cm的直线段,并且具有较好的重复性;
c.可设定摆动方向,风力摆从静止开始,15s 内按照设置的方向(角度)摆动,画出不短于20cm的直线段;
d.将风力摆拉起一定角度(30°~45°)放开,5s内使风力摆制动达到静止状态。
0.2扩展要求。
a.以风力摆静止时激光笔的光点为圆心,驱动风力摆用激光笔在地面画圆,30s 内需重复 3 次;圆半径可在15~35cm范围内设置,激光笔画出的轨迹应落在指定半径±2.5cm的圆环内;
b.继续作圆周运动,在距离风力摆1~2m距离内用一台50~60W台扇在水平方向吹向风力摆,台扇吹5s后停止,风力摆能够在5s内恢复规定的圆周运动。
1方案选择和论证
1.1方案比较与选择。
根据设计要求,由轴流风机提供唯一动力,使风力摆进行摆动,构成风力摆控制系统,另使风力摆按要求进行摆动,并且让激光笔的光点在地上按要求画出轨迹。要完成上述任务,制定出以下方案:
方案一:采用STC89C51单片机作为主控芯片,选用12V、0.15A的轴流风机作为动力源,带动风力摆运动。用proteus画出主控电路图并仿真,用keil调试程序,易于调试与修改。但由于该程序代码量较大,并且上述单片机没有自带PWM脉冲发生器,不便于控制轴流风机的转速,也就很难控制风力摆的走向,又因为STC89C51速度较慢,并且实验室备用的都是采用DIP封装模式,占电路很大空间,故放弃了STC89C51单片机。
方案二:采用STM32F103C8T6作为主控芯片,该单片机体型小,功能强,并且带有PWM脉冲发生器,可以方便地控制轴流风机转速。动力源采用12V、4.5A的大功率轴流风机作为风力摆的动力系统。在风力摆运动过程中,采用MPU6050陀螺仪芯片来检测并获得风力摆的角度等数据,并发回CPU中进行比较,计算,调整。但由于该方案采用大功率的轴流风机,对电源要求比较苛刻,要用12V输出大电流稳定的电压,来驱动4个大功率轴流风机运转,控制方面该轴流风机自带控制线,但轴流风机电源与单片机的电源规格相差比较大,不能直接用单片机控制,所以轴流风机与单片机采用单独供电,并用光耦模块来隔离两个系统,保障系统稳定运行。
方案三:采用STM32F103C8T6作为主控芯片,选用12V、0.7A的轴流风机作为动力源,带动风力摆运动,用L298N驱动模块驱动风机,增加12864液晶屏来显示系统运行状态和操作界面。并用语音模块提示系统是否完成规定动作并播放数据报告。虽然风机的风力不是很大,但是风机体积小,重力较小,利用风机的重力加速度和惯性使之来回摆动的方式使风力摆摆动的角度最大化,扩大摆动的角度范围。
在测试过程中我们发现12V、4.5A轴流风机虽风力较大,但是由于功率较大,重量比较大,在选用3至4个电机组装到一起时,重量出乎意料的大,单凭电机提供的动力很难带动风力摆运动,而且该轴流风机启动和制动的延时较大,无法在短时间内达到想要的速度和立即停止转动的要求,给风力摆的控制带来难度。而小功率的轴流风机虽然风力小,但是体积小重量轻,易于控制。所以经过各个方案的比较,在快速完成控制系统的前提下,确定了方案三,并采用mpu6050陀螺仪采集并反馈数据。
1.2 系统总体方案描述。
图1 单片机控制的框图
如图1所示,本系统风力摆部分由4只轴流风机作为唯一动力,通过陀螺仪采集风力摆的姿态及运动信息传送到单片机,单片机对采集到的数据进行分析计算,实时计算出四个轴流风机对应的PWM输出,来控制轴流风机的转速,从而控制风力摆给各个方向的力,使其能在各个方向运动。我们还在主控系统上添加了按键和液晶屏,能通过按键和液晶屏的显示来控制系统的运行模式及设定参数。
2理论分析与计算
2.1按指定长度画直线方案。
pwm=( PWM_30-PWM_15)/15*(x-15)+PWM_15
pwm:各个点的PWM值;
PWM_30,PWM_15:以激光笔自然下垂时照射到地面的光点位置为基准(下称基准点),改变风力摆角度,使激光笔的光点保持在距离基准点分别为30cm和15cm摆动时的PWM值;
x:需要激光笔光点离基准点的距离,最小刻度以及单位为厘米;
根据上文的公式,激光笔光点距基准点为15cm和30cm时各个轴流风机的PWM值,再把这两个PWM值的差的绝对值平均分成15份,就能得到每偏离基准点1cm时PWM的值,后面的x可以根据我们需要激光笔的光点远离基准点的距离而代入数值,从而计算出要达到要求时每个流风机的PWM值,单片机计算好了就输出相对应的PWM值,从而控制流风机的转速,进而由轴流风机转速得到的力来控制风力摆的轨迹,当达到要求的轨迹后,一定的PWM值还能让风力摆受力平衡,使激光笔画线段时能有较好的重复性。
2.2按指定角度的画直线设计方案。
根据上示的公式通过控制指定的轴流风机转动即可画出沿X轴或Y轴的直线,如果在控制沿X轴运动的时候同时也让其沿Y轴运动,合运动则是成一定角度的直线运动。
根据实际测试得出,角度的大小由X轴和Y轴的pwm脉冲比决定,我们事先将各个角度对应的x,y轴的pwm脉冲值通过实验测得并写成二维数组。单片机通过查表法直接获取该值。
2.3五内停止方案。
通过陀螺仪采集到风力摆的姿态并得到风力摆的运动方向,然后控制轴流风机吹向相反方向,使之产生阻力,使风力摆达到静止的目的。由于我们选择的轴流风机的风力太小了,所以停止的效果不是很理想,但基本可以满足要求。
2.4画指定半径的圆。
首先先判断风力摆的运动情况,保持风力摆能在x轴和y轴运动角度逐渐增大的同时,使风力摆受到的合力方向总是沿着顺时针方向,这样就能保证风力摆在做半径不断增大的画圆运动。在没达到指定半径的时候处于加速阶段,可以通过判断风力摆在竖直方向的夹角来确定是否达到半径,然后重新设定pwm值来保持半径不变的圆周运动。
3电路与程序设计
图2 陀螺仪模块原理图
3.1 陀螺仪模块。
该陀螺仪模块采用高精度的陀螺加速器MPU6050,通过处理器读取MPU6050测量的数据通过串口输出,该模块包含数字滤波技术,有效降低干扰,提高测量精度。该芯片整合3轴陀螺仪、3轴加速器和六轴运动处理组件。MPU6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec(dps),可准确追踪快速与慢动作,该芯片传输可透过最高至4000kHz的I2C或最高达20MHz的SPI。该芯片可在不同电压下工作,VDD供电电压介为2.5V±5%或3.3V±5%。逻辑接口VVDIO供电为1.8V±5%。该芯片运动处理数据库支持Android、Linux与Windows平台。陀螺仪角度计算方式:
angle_n = angle_n - 1 + (Gyro - C_Gyro) * R_Gyro
其中,angle_n为当前角度值,单位为度,Gyro为陀螺仪敏感轴偏转值,C_Gyro为陀螺仪的零点偏移值,R_Gyro是陀螺仪比例。加速仪角度计算公式:
Angle_Z = (az - C_Z) * R_Z
其中angle_z为加速剂敏感轴Z轴产生的倾-角,单位为度,az是加速仪Z轴读数,C_Z为Z轴零点偏移量,测量方法和陀螺仪的一样,RZ为Z轴比例。
该芯片主要用做运动感测游戏,现实增强,光学稳像,姿势快捷方式等领域。多安装在智能手机、平板设备、手持型游戏产品、游戏机、3D遥控器和可携式导航设备上。
3.2 TTS语音模块。
TTS语音模块主要用来播报系统当前的运行状态,是否正常运行、达到题目要求。语音模块采用的是8S003FP6芯片。芯片有灵活的时钟控制,有4个主时钟源,可以满足绝大多数用户配置要求。8S003FP6可以通过UART方式与单片机通信。并且还内置模数转换器,可以节约主控板空间,快速处理信号,并且通过串口快速传给单片机,提高系统的效率。
3.3 L298N电机驱动模块。
L298N是一种高电压、大电流的电机驱动芯片。其特点是工作电压高,最高可在46V电压下工作;输出电流大,瞬间峰值可达3A,持续稳定工作电流也可达2A;额定功率可达25W。该模块可用来驱动步进电机,直流电机,继电器线圈等感性负载。一个芯片可同时驱动两个直流电机,并且在工作时有信号提示,可调转速。
3.4 12864液晶显示模块。
为了方便测试并直观地展示系统的运行状态,我们给控制系统部分添加了一块12864液晶显示屏来展示系统实时的工作状态。下图为单片机控制12864液晶屏的原理图:
图3 12864原理图
2864液晶显示模块是128*64点阵的汉字图形液晶显示模块,可显示汉字及图形,内置8000多个汉字、128个字符。有两种界面来连接单片机:8位并行及穿行两种连接方式。液晶屏与数码管相比显示内容丰富,可显示字、数、以及图形,数码管是自发光,而液晶是靠背光,发光恒定,不会闪烁,相比数码管功率消耗较小。
4测试方案与测试数据
4.1测试仪器与测试方法。
风力摆控制系统是由支架、控制系统和风力摆组成,在系统的初步测试中,用木板临时搭建了一个比较稳定的支架,用来对系统的初步测试,在硬件完成之后,组装好系统并开始测试,首先测试陀螺仪精度,通过程序进行数据擦除更新进行细微的调整,确定陀螺仪“零点”,从而保证能稳定的、准确的拿到数据,并在单片机中进行处理,在完成规定时间内达到指定的角度之后,保证风力摆能稳定地在地上画出所预期的线段,并且不超过误差允许范围有较好的重复性。第二个测试方案是使风力摆离开中心垂直线一定角度后,在5S内使风力摆停在初始位置,通过风力摆来回摆动的位置调节风扇给摆动方向相反的力,帮助风力摆在短时间内回复初始位置。在测试过程中,如果摆动方向与风机有一定夹角的时候,就会导致风机给的推力与运动方向不在一条直线,风力摆不能在短时间内停下来,只能通过不断的调试来慢慢找到两个力的平衡位置。
4.2指标测试。
由静止开始,15S内控制风力摆运动,使激光笔在地上画出一条不短于50cm的直线,测试6次,测试数据和测试结果见表1。
从静止开始,15s内完成幅度可控的摆动,画出长度在30~60cm之间可设置的直线段,表2为测试过程中各项数据,线长以厘米为单位,每项数据都经过5次测试统计后整理。
表1
表2
设定摆动方向,风力摆从静止开始,15s内按照设置方向摆动,画出不短于20cm的直线时线性度偏差,测试数据如表3所示。
表3
将风力摆拉起一定角度(30°~45°),放开5s内使其回复初始状态,测试数据见表4。
表4
5测试结果分析
风力摆控制系统完成后,由于轴流风机的风力较小,所以外界各种因素都对系统有或多或少的影响。比如说连接线的硬度,外界风力的干扰等因素。任何微小的因素都会导致风力摆误差超过规定范围。在测试误差的过程中,由于仪器限制,只能粗略测量,比如风力摆的线性偏差,在测试过程中,系统每一次拆卸重组都会导致误差出现,需要细微调整。在设计风力摆自动恢复的功能时,通过PWM脉冲控制的风机风力有限,在角度过大的时候5s内不一定能使风力摆恢复到初始位置。其他数据测试中比较稳定,在规定误差内有较好的重复性。程序在设计过程中也考虑到了外界因素等问题,通过陀螺仪的反馈数据进行分析,并调节风机使风力摆自动校正误差,维持系统稳定。
参考文献
[1]阎石.数字电子技术基础(第4版)[M].北京:高等教育出版社,1998.
[2]童诗白,徐振英.现代电子学及应用[M].北京:高等教育出版社,1994.
[3]古天祥,王厚军,习友军,等.电子测量原理[M].北京:机械工业出版社,2006.
[4]周航慈.单片机应用程序设计技术(修订本)[M].北京:北京航空航天出版社,2002.
Class No.:TP273Document Mark:A
(责任编辑:宋瑞斌)
The Wind Pendulum System Based on Single Chip Microcomputer
Zhang Haobo, Liu Lanbo
(Dept. of Communication Engineering, Heilongjiang University of Technology, Jixi, Heilongjiang 158100,China)
Abstract:The control core of the wind pendulum control system is STM32F103C8T6 micro-controller.The system includes the MPU6050 gyroscope, TTS audio module, 12864 LCD screen display module and L298N motor driver module and other control modules. The attitude and motion data of the system are mainly composed of MPU6050 gyroscope. First, several representative data are tested, and the PWM pulse is derived from the formula to the arbitrary position. According to the calculated pulse, the speed of the axial fan is controlled so as to realize the control of the wind. In order to facilitate more clearly informed of the data, The system contains 12864 LCD screen display module and TTS audio module. Data can be more accurate display and broadcast.
Key words:MPU6050 gyroscope; PWM; Axial Fan
中图分类号:TP273
文献标识码:A
文章编号:1672-6758(2016)02-0029-4
作者简介:张皓博,硕士,助教,黑龙江工业学院。