1风力摆控制系统摘要本设计实现了用风力作为动力的摆动装置控制系统,该系统是由单片机控制模块、姿态采集模块、风力摆模块、显示模块、独立按键以及风力摆机械结构组成的。本设计采用了MSP430F149为单片机控制直流风机;电子陀螺仪MPU6050采集风力摆姿态角;独立按键来切换各个工作状态;激光笔来显示摆动的轨迹;LED灯显示运动是否达到要求。本设计实现了风力摆做直线摆动,且摆动长度、角度可设定;快速制动;在有无干扰的情况下画圆的要求,本系统较好的完成了题目所给的指标。关键词:风力摆;直流风机;MSP430F149;电子陀螺仪21设计任务与要求1.1设计任务一长约60cm~70cm的细管上端用万向节固定在支架上,下方悬挂一组(2~4只)直流风机,构成一风力摆,如图1所示。风力摆上安装一向下的激光笔,静止时,激光笔的下端距地面不超过20cm。设计一测控系统,控制驱动各风机使风力摆按照一定规律运动,激光笔在地面画出要求的轨迹。图1.1风力摆结构示意1.2设计要求1.2.1基本要求(1)从静止开始,15s内控制风力摆做类似自由摆运动,使激光笔稳定地在地面画出一条长度不短于50cm的直线段,其线性度偏差不大于±2.5cm,并且具有较好的重复性;(2)从静止开始,15s内完成幅度可控的摆动,画出长度在30~60cm间可设置,长度偏差不大于±2.5cm的直线段,并且具有较好的重复性;(3)可设定摆动方向,风力摆从静止开始,15s内按照设置的方向(角度)摆动,画出不短于20cm的直线段;(4)将风力摆拉起一定角度(30°~45°)放开,5s内使风力摆制动达到静止状态。31.2.2发挥部分(1)以风力摆静止时激光笔的光点为圆心,驱动风力摆用激光笔在地面画圆,30s内需重复3次;圆半径可在15~35cm范围内设置,激光笔画出的轨迹应落在指定半径±2.5cm的圆环内;(2)在发挥部分(1)后继续作圆周运动,在距离风力摆1~2m距离内用一台50~60W台扇在水平方向吹向风力摆,台扇吹5s后停止,风力摆能够在5s内恢复发挥部分(1)规定的圆周运动,激光笔画出符合要求的轨迹;(3)其他。2方案论证与设计2.1总体方案描述本设计的结构示意主视图与俯视图如下图2.1所示,为了实现题目中的要求,我们在初始点O处1~4号直流风机全部开始运转,1、3号直流风机用来调节垂直于运动方向上的距离,使其摆动时偏差不超过允许范围;2、4号直流风机同时运转,但转速不同,使风力摆向风速小的方向运动。风力摆无法直接运动到指定位置,所以需要多次摆动,每次到达最高点时将其推向另一侧,最终使其实现摆动。采用姿态采集模块来测量摆动角度,进而推断画线长度;通过几个在直流风机的合力使风力摆向任意指定方向摆动;改变各个直流风机的风速使其尽快制动。调节各个风机使其在有无干扰的情况下完成画圆功能。图2.1结构示意主视图与俯视图根据上述描述,本系统设计系统框图如图2.2所示,分为单片机控制、姿态采集、直流风机三大模块。本系统采用姿态采集模块对角度进行测量,采用单片机采集数据,并对电机驱动模块进行控制,进而控制直流风机。本系统可以通过独立按键切换工作模式。4图2.2系统框图2.2微处理器模块的比较和论证方案1:51系列单片机,是8位单片机,体积小,低功耗,控制能力强,扩展灵活,使用方便。但是其运行速度很慢,(因为是CISC(集中指令)结构,而且芯片为了抗干扰采用了12分频的方法)、所有的I/0口都是准双向口,I/0口的驱动能力弱。方案2:MSP430F149单片机,是16位单片机,处理能力强,超低功耗,并且运算速度快。本设计需要多个电机轮流控制,并对时间精度要求高,MSP430F149能够满足要求。因为MSP430F149运算速度足够快,能够实现题目要求,相比较之下选择方案2。2.3直流风机组合方式的比较和论证方案1:使用两个直流风机,直接将两个直流风机固定在摆杆的下方,两个直流风机成十字交叉状如图2.3所示。这种方式的优点在于负载轻、操作简单,可以直接由两个直流风机分别负责两个轴上的摆动,不过风力摆的状态微调和快速制动不易实现。图2.3两个直流风机组合示意图单片机姿态采集模块电源模块电机驱动模块独立按键激光笔显示模块直流风机风机1风机2摆杆5方案2:使用四个直流风机,用两个矩形塑料板组成十字形,分别将四个直流风机放置在四个点上如图2.4所示。每个轴上由两个直流风机控制风力摆的摆动,可以很好地做到加速摆动与快速制动,能够更容易的实现题目的要求。图2.4四个直流风机组合示意图综上所述,因为四个直流风机的组合更容易摆动与快速制动,所以选择方案2。2.4姿态采集模块的比较和论证方案1:采用倾角传感器ADXL345,感应倾斜偏差角度的,将数据反馈给单片机。操作简单、编程较容易、成本低,但其误差较大,不能满足本设计要求。方案2:采用电子陀螺仪MPU6050测量角度。MPU6050是全球首例整合3轴加速度计和3轴陀螺仪的6轴模块。内置16位的A/D,输出16位的数据。测量范围可以根据需要进行选择,控制简单、方便。倾角传感器的误差较大,不能满足设计要求,相比较之下选择方案2。2.5液晶显示模块的比较和论证方案1:12864液晶显示,12864不仅能显示数字符号,还能显示汉字与图形,操作方法与其他液晶显示相似。但其体积较大,并且价格较高。方案2:采用1602液晶显示,1602能显示字母、数字、符号,功能上完全满足此系统的要求。相比于12864,价格更低,更适合本设计。综上所述两个液晶显示模块都能满足设计要求,但12864的价格较贵,所以选择方案2。风机1风机2风机3风机463理论分析与计算3.1摆动原理如图3.1为风力摆摆动受力分析图,A、B两点为摆动最高点,以A点为例, =0,风力摆受到摆杆的拉力 、重力G,此时加速度如公式(3-1),因为A点为最高点,则此时角度α为最大值,所以此时加速度a最大。若在此时风机全速运转,给风力摆施加与加速度a方向相同的力F,更容易使其加速,最终实现摆动。B点同理。a= (3-1)图3.1风力摆摆动受力分析图在用激光笔画设定长度的直线时,根据设定长度CD与已知长度MN,可求得其角度α,计算公式如式(3-2)。采用陀螺仪检测角度,当角度达到α时,则激光笔所画直线已达到设定长度。α=arctan (3-2)3.2PID控制原理本设计采用PID算法来控制风力摆的摆动,使用陀螺仪实时测量当前姿态,用其与前一个姿态、前前一个姿态进行比较,观察其变化趋势,若变化趋势是远离设定姿态,则调节直流风机,以改变风力摆的变化趋势,使风力摆的状态趋于设定姿态。PID算法输入与输出的关系如式(3-3)u(t)= ( )+ ∫ ( ) + ( ) (3-3) GαFONABMCaD7传递函数如式(3-4)G(s)= ( ) ( )= + + (3-4)比例P:对风力摆的角速度进行比例调节,进而对直流风机的转速进行调节。比例越大,直流风机的转速越大,风力摆的角速度越大。不过不能过大,否则会造成超调。积分I:对角度误差进行积分调节,消除系统的稳定误差。本设计对风力摆达到稳定状态的速度要求较高,所以对角度误差的积分调节要求不高。微分D:微分调节反映风力摆的角度变化率,即角速度。微分调节具有预见性,可以预见偏差的变化趋势,进而超前控制系统。可以减小调节时间。4系统硬件、软件的实现4.1硬件实现4.1.1微处理器电路本作品用的MSP430F149最小系统电路如图4.1所示。图4.1MSP430F149最小系统电路图84.1.2姿态采集模块电路本设计采用了MPU6050陀螺仪进行姿态采集,MPU6050通过处理器读取测量角度然后通过串口输出,免去了用户自己去开发MPU6050复杂的 C协议,同时精心的PCB布局和工艺保证了MPU6050收到外接的干扰最小,测量的精度最高。模块内部自带电压稳定电路,可以兼容3.3V/5V的嵌入式系统,连接方便。模块保留了MPU6050的 C接口,以满足高级用户希望访问底层测量数据的需求。采用先进的数字滤波技术,能有效降低测量噪声,提高测量精度。模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度0.01度,稳定性极高。MPU6050角度测量电路图如图4.5所示。图4.2MPU6050角度测量电路图4.1.3电机驱动电路L298N电机驱动电路图如图4.3所示,L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。9图4.3电机驱动电路图4.1.4液晶显示模块电路本设计采用了LCD1602液晶显示模块,其电路图如图4.4所示。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点。图4.4LCD1602电路图104.2软件实现4.2.1主程序流程图本设计的主程序流程图如图4.3所示,本系统使用单片机为主控核心,采用C语言编程,使用软件读取风力摆角速度,加速度,倾斜角度等信息。它控制整个系统稳定协调的运作,完成不同轨迹的绘制。系统各种功能主要通过在中断中调用具体的子函数来实现。图4.3主程序流程图开始系统初始化起摆画直线是否进行功能设置读取键值是否读取键值分析指令执行功能执行结束114.2.2子程序流程图图4.4画圆程序流程图图4.5画线程序流程图图4.6设置摆动方向程序流程图图4.7键盘读值程序流程图是否开始驱动电机画圆反馈圆的半径调节圆半径是否退出画圆结束是否开始驱动电机画线反馈线长调节电机是否退出画线结束是否开始设置摆动方向驱动电机摆动调节摆动是否退出结束开始定时中断扫描按键保存键值返回125系统测试5.1测试仪器表5.1测试仪器序号仪器名称备注1秒表测量摆动时间2直尺测量摆动长度与误差3量角器测量角度4方向角度图纸判断摆动方向与距离5台扇外界干扰5.2测试方案与结果5.2.1风力摆画长于50cm直线测试风力摆从静止开始做类似自由摆运动,激光笔在地面上画出运动轨迹,直至画出一条长于50cm的直线,记录所用时间,在测量误差时多测3个周期,取每个周期偏差的最大值,再计算三次的误差平均值,记录误差平均值,重复三次,测试结果如下表:表5.2风力摆画长于50cm直线测试序号时间误差平均值19.45s1.57cm29.20s1.80cm39.341.97经测试发现本设计可以在15s内摆动幅度达到50cm长,不过在摆动过程中有误差,这些误差是由于摆锤的结构做得不够完美,运动时方向会有偏差,并且会受到外界风力等因素影响,不过这些误差在可允许范围内,能够满足题目要求。5.2.2风力摆画不同长度直线测试设置风力摆画线长度,风力摆从静止开始摆动,激光笔在地面上画出运动轨迹,直至画出一条近似于指定长度的直线,记录所用时间,在测量误差时多测3个周期,取每个周期偏差的最大值,再计算三次的误差平均值,记录误差平均值,设置不同长度重复三次,测试结果如下。13表5.3风力摆画不同长度直线测试设置长度(cm)时间误差平均值307.34s1.77cm406.42s1.57cm507.81s1.54cm经测试发现本设计可以在15s内使风力摆摆动达到指定长度,不过此长度有误差,因为本设计在实现设定摆动长度时是根据角度与长度的关系确定设定的摆动角度,采用陀螺仪测量摆动角度,可是陀螺仪在测量角度时会有误差,所以最终摆动的长度也会有误差,不过这些误差在可允许范围内,能够满足题目