智能跷跷板小车控制系统的设计
2011-02-04邱永华
邱永华
(广东女子职业技术学院 广东 广州 510450)
1 前言
单片机具有体积小、质量轻和价格便宜等特点,为学习、应用和开发提供了便利条件。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表和医疗器械了。单片机在各个领域中有着举足轻重的作用,且在各式各样的智能化产品中得到广泛的应用。智能小车控制系统就是基于单片机来设计的,实现小车自动寻迹、角度判断和声光提示等功能。
2 设计要求与总体设计
2.1 设计任务和要求
设计并制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。配重的位置可以在从始端开始的200~600 m m范围内调整,调整步长不大于50 m m;配重可拆卸。电动车从起始端A出发,可以自动在跷跷板上行驶。电动车跷跷板起始状态和平衡状态示意图分别如图1和图2所示。
图1 起始状态示意图
图2 平衡状态示意图
2.1.1 基本要求
在不加配重的情况下,电动车完成以下运动:
1)电动车从起始端A出发,在30 s内行驶到中心点C附近;
图3 自动驶上跷跷板示意图
2)60 s之内,电动车在中心点C附近使跷跷板处于平衡状态,保持平衡5 s,并给出明显的平衡指示;
3)电动车从2)中的平衡点出发,30 s内行驶到跷跷板末端B处(车头距跷跷板末端B不大于50 m m);
4)电动车在B点停止5 s后,1 m in内倒退回起始端A,完成整个行程;
5)在整个行驶过程中,电动车始终在跷跷扳上,并分阶段实时显示电动车行驶所用的时间。
2.1.2 发挥部分
将配重固定在可调整范围内任意指定位置,电动车完成以下运动:
1)将电动车放置在地面距离跷跷板起始端A点300 m m以外、90度扇形區域内某一指定位置(车头朝向跷跷板),电动车能够自动驶上跷跷板,如图3所示;
2)电动车在跷跷板上取得平衡,给出明显的平衡指示,保持平衡5 s以上;
3)将另一块质量为电动车质量10%~20%的块状配重放置在A至C间指定的位置,电动车能够重新取得平衡,给出明显的平衡指示,保持平衡5 s以上;
4)电动车在3 m in之内完成1)~3)全过程。
2.2 总体设计
为了让电动车能保持在跷跷板上行驶不致跌落,可以在板上设置黑色的引导线,利用安装在电动车底板的红外传感器来检测引导线的位置信号并传送给控制器,控制器通过对电机运行的控制来对电动车的运动轨迹进行调整,以此实现电动车在跷跷板上沿指定的路线行驶。
为了能检测到跷跷板的平衡状态,利用装载在电动车上的光电编码器和垂直重摆组成的角度传感器,检测重摆的摆动偏移量,此摆动偏移量经光电编码器和LM 629的处理,生成脉冲信号送至控制器,控制器根据此信号判断跷跷板是否处于平衡状态,并控制电动车做出相应的运动。
控制器通过对各种信号的融合分析,将有关状态信息送到液晶显示模块和声光指示模块进行提示。系统总体设计框图如图4所示。
图4 系统总体设计框图
3 系统模块方案选择
3.1 控制器模块
系统控制器主要进行红外、角度传感器信号检测和处理、电机控制、时间的显示以及达到平衡位置的声光提示。采样Cygnal公司的C8051F020单片机作为系统控制器。C8051F020不仅具有算术运算功能强,软件编程灵活、自由度大,运行速度快,结构简单,功能强大的特点,并且具有高可靠性和良好的经济性。同时具有PWM脉冲输出,便于对智能小车的速度控制。
3.2 电机驱动模块
虽然步进电机的控制可调占空比较直流电机的更为简单,但是其调速性能与运行稳定性不及直流电机,所以我们选择使用直流电机进行调速控制。电动车前轮和后轮分别采用独立的直流电机驱动,其中前轮电机控制转向,后轮电机控制速度。电动车可以灵活地前进和后退。
采用集成芯片L298及其外部辅助电路和电机构成驱动电路。L298中有两套H桥电路,为了达到较好的控制效果,同时减少小车的总耗时,使用PWM波调速,PWM信号由单片机的硬件产生,通过非门反相接入L298,使单片机输出的3.3 V电平转化为5 V电平供给L298。L298集成芯片是双通道的直流电机驱动芯片。它最大能输出2 A电流,供电电压范围4.5~36 V。
3.3 传感器模块
3.3.1 循线检测模块
循线检测可以实现电动车沿着黑线轨迹运动,其实现方案采用红外光电传感器,当红外线发射出去,被黑线吸收时,传感器收不到反射红外线,产生一个低电平,而当红外线通过白纸,没有被吸收,传感器收到发射回来的红外线,产生一个高电平,单片机根据高低电平来判断路面轨迹,保证小车沿着黑线行驶。此方案可以降低可见光的干扰,灵敏度高同时其尺寸小,质量轻,电路简单,安装方便。
3.3.2 角度传感器模块
用于跷跷板平衡状态检测的角度传感器模块的原理图如图5所示。
图5 角度传感器模块
由于LM 629具有增量式EN C接口,所以角度传感器输出的检测信号可以通过LM 629进行脉冲采集处理。LM 629是为使用增量式编码器作位置反馈信号的各种直流电机伺服系统而设计的,可完成高性能数字控制所需的集中、实时的计算任务,可以随时向上位机反馈各运动状态信息。
3.4 声光指示与液晶显示模块
本系统采用发光二极管和蜂鸣器进行声光指示,当电动车停止、转向或者使跷跷板到达平衡状态时,会发出声光指示;液晶显示模块能够显示电动车在各段路程的行驶时间。
4 理论分析与计算
4.1 直流电动机的控制方法与计算
直流电机的驱动控制采取脉冲宽度调制(PWM) 方式,驱动电路则采用H桥电路。假设直流电机电枢绕组两端的电压平均值为Uo,则
式(1)中:占空比a是一个重要参数,在电源电压Us不变的情况下,改变a值就可以改变电枢端电压的平均值,从而达到调速的目的,这就是PWM调速原理。改变占空比的方法有以下3种:
1)定宽调频法:保持t1不变,只改变t2,周期和频率也随之改变;
2)调宽调频法:保持t2不变,只改变t1,周期和频率也随之改变;
3)定频调宽法:保持周期和频率不变,同时改变 t1和 t2。
由于前两种方法在调速过程中会改变脉冲周期和频率,但脉冲频率与系统固有频率接近时,将引起振荡,故使用较少。
H桥是电机实现正反转的关键。L298具有两套H桥电路,通过改变它的控制信号的输入方式,可以实现电机的正反转。
4.2 角度传感器检测跷跷板平衡状态方法
经过计算可知,跷跷板最大的倾斜角约为5度。安装在电动车上的重摆由于始终要保持铅直状态,一旦跷跷板不平衡,重摆就会偏移铅直方向一定的角度摆动,直到重摆再次回到铅直状态位置不动为止,这时跷跷板也正处于平衡状态。重摆摆动期间,光电编码器会检测到重摆偏移铅直方向的角度,并将此角度值信号送至LM 629。
LM 629会根据重摆的偏移角度值大小产生不同数量的脉冲。由反复调试测得,当倾斜角为5度的时候,LM 629大约产生112个脉冲。单片机根据这些脉冲信号分析跷跷板的状态,并通过PCA0口产生不同占空比的PWM信号,控制直流电动车的转速和方向。
通过频密对光电编码器产生信号的多次采样和求平均值,可以准确地得到跷跷板平衡状况的信息,从而通过单片机控制直流电机产生相应的动作,例如:减慢电动车的运行速度,并根据重摆的摆向向前或者向后缓慢寻找跷跷板的平衡状态,并在确认跷跷板处平衡状态的时候停止运行,给出平衡状态提示。实际上,这个检测跷跷板平衡状态的过程,就是一个直流动机的伺服控制过程。采用伺服控制的方式,形成一种反馈机制,可以使得直流电动车能够准确地找到跷跷板的平衡状态。
4.3 循线控制方法
在电动车底板前后各安装3个红外光电传感器,单片机的I/O口通过检测到的3个传感器信号(前进时检测底板前面3个传感器的信号,倒退时检测底板后面3个传感器的信号)来判断电动车的行驶状态,通过控制电机,调整电动车的行驶,使电动车沿着黑线轨迹行驶,以不至于驶出跷跷板。红外传感器真值表如表1(表中X代表0或1)所示:
以电动车前进时为例,当车子往左偏出轨道时,左边的光电传感器被黑色纸带遮蔽,输出为低电平,单片机接收到该信号,控制电机正转,使车子往右偏回轨道,传感器回到白纸区输出为高电平,电机停止转动,车子直线前进。车子右偏时的状态与左偏状态相反。
表1 红外传感器真值表
5 系统设计
5.1 单元电路的设计
5.1.1 单片机C8051F020最小系统电路的设计
最小系统板将c8051f020的AD、DA、UART等片上外设都扩展出接口,而利用外部中断IN T 0扩展了PS/2键盘接口,用P3口扩展了LCD模块,使得最小系统具有了友好的人家界面,而且也为该单片机丰富的片上资源提供了接口,如图6所示。
图6 单片机最小系统
5.1.2 电机驱动模块电路的设计
一个电动小车整体的运行性能,首先取决于它的电池系统和电机驱动系统。电动小车的驱动系统一般由控制器、功率变换器及电动机3个主要部分组成(如图7所示)。电动小车的驱动不但要求电机驱动系统 具有高转矩重量比、宽调速范围、高可靠性,而且电机的转矩-转速特性受电源功率的影响,这就要求驱动具有尽可能宽的高效率区。我们所使用的电机一般为直流电机,主要用到永磁直流电机、伺服电机及步进电机3种。直流电机的控制很简单,性能出众,直流电源也容易实现。
电机驱动芯片采用专用芯片L298N。L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准T T L逻辑电平信号,可驱动46 V、2 A以下的电机。L298可驱动 2个电机,OUTl、OUT2和 OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,EN A,EN B接控制使能端,控制电机的停转。
由于电机在正常工作时对电源的干扰很大,只用一组电源时会影响单片机的正常工作。所以选用双电源供电。一组5 V电源给单片机和控制电路供电,另外一组5 V、9 V电源给L298N的+VSS、+VS供电。电源电路如图8所示。
另外,由于本系统的特殊需要,小车在达到平衡前需要很慢的速度,只将PWM波的占空比降下来是不行的,因为当占空比下降,小车虽然速度变慢,但驱动能力同时也下降,以这种方式上坡时很容易停止工作,这里我们在电机和轮子间加入了减速器,电机很快的转速通过减速器后轮子转速变慢,这实际上是降低了小车的最大速度,以此来保证小车在最慢速度时仍有很强的驱动能力。
5.1.3 循线检测电路的设计
红外传感器检测黑线的电路原理图见图9。
图7 电机驱动模块电路
图8 电源电路
图9 红外传感器检测黑线电路图
5.1.4 跷跷板平衡状态检测电路的设计
由于大部分的检测控制任务均由LM 629内部功能块完成,因此其外部电路非常简单,基本上只需要跟上位的单片机、电机驱动器和光电编码器做好接口即可。用光电编码器对跷跷板的平衡状态进行检测的电路原理图如图 10所示。
图10 跷跷板平衡状态检测电路
5.1.5 显示模块电路的设计
液晶显示模块具有体积小、功耗低、显示内容丰富等特点。12862B可以显示2行16个字符,液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码。本系统在12862B液晶上显示时间,其电路原理图见图11。
5.2 软件设计
5.2.1 整体软件设计
软件设计采用模块化思想设计,与硬件设计相对应,分成黑线检测模块、平衡状态检测模块、显示模块和语音提示模块。本系统的整体软件流程图见图12。
图11 12862B液晶显示模块电路原理图
5.2.2 循线检测的软件设计
通过检测黑色引导线的轨迹,控制电机的左右转,实现车子沿着指定轨迹行驶。循线检测的程序框图如图13所示。
5.2.3 跷跷板平衡状态检测的软件设计
这一过程的软件设计思想为:通过频密对光电编码器产生信号的多次采样和求平均值,可以准确得到有关跷跷板平衡状况的信息,根据此信息通过单片机的PCA0口产生不同占空比的PWM信号,控制直流电动车的转速和方向,例如减慢电动车的运行速度,并根据重摆的摆向向前或者向后缓慢寻找跷跷板的平衡状态,并在确认跷跷板处平衡状态的时候停止运行,给出平衡状态提示。程序流程图参看表2。
6 系统测试
用刻度尺测出起点线到终点线的实际距离,并记录。将车子放在起跑线上,拨动开关,同时按下秒表开始计时,车子开始行驶,并读出车子停止时,显示时间,记录于表2(表中数据为多次测量的平均值,实测距离为电动车车头与A处的距离):
从以上数据分析,无论在无加配重或有加配重的情况下,电动车都能沿指定的路线在跷跷板上行走,并能在规定的时间范围内走完规定的路程段,而且能够在跷跷板到达平衡状态时保持该状态5 s或5 s以上。
图13 循线检测的程序框图
表2 测试数据
7 结束语
本系统以单片机C8051F020最小系统为核心控制,利用各种传感器的检测技术,并且配合程序设计,实现了电动车在跷跷板上的正确行驶,实现了对跷跷板平衡状态的检测并控制电动车作出相应的动作响应,完成了设计要求。电动车跷跷板系统控制不只是一个简单的电子控制问题,它涉及了机械学,电磁学,力学等方面的知识,并与单片机相配合,实现精确控制。
[1]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品汇编[M].北京:北京理工大学出版社,2004.
[2]黄智伟 .全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,2005.
[3]杨振江.流行单片机实用子程序及应用实例[M].西安:西安电子科技大学出版社,2002.
[4]潘琢金译.C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册[EB/OL].[2005].新华龙电子有限公司http://www.xhl.com.cn.
[5]何希才,薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004.