这款电动车跷跷板的题目设计要求:
①电动车能够沿跷跷板上坡、下坡、前行、后退,能在规定的时间到达并停留在指定位置;
②在不加、加或改变配重的情况下,电动车都能于规定时间内在跷跷板上找到平衡点停留;
③电动车能在指定的地面位置从不同的角度自动驶上跷跷板:
④能分阶段实时显示电动车的行驶时间。
题目已选定,接下来的就是系统方案的选择了,
首先考虑方案一:采用可编程逻辑器件CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能,具有规模大、密度高、体积小、稳定性高、10资源丰富、易于进行功能扩展的特点;采用并行的输入输出方式可提高系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据处理速度的要求也不是很高,故从使用及经济的角度考虑放弃了此方案。
采用的是方案二:选择了单片机课程设计时多机通信的课题,改造为双CPU结构,以51单片机作为检测和控制核心。利用倾角传感器测量电动车车身与水平面的夹角来判断电动车平衡状态,用红外光电传感器检测路面黑线控制电动车行进与定位,运用PWM技术控制电动机的转动方向和转速。通过程序控制实现电动车在跷跷板上运行的所有技术要求。通过对电路的优化组合,可以最大限度地利用单片机的全部资源。系统设计总体框图如下图所示。
方案确定后,下面便开始模块设计了。
一、单片机控制模块
基于双CPU结构,主机主要完成监控管理、信号检测、数据处理、控制命令产生等任务;从机则负责控制小车左、右轮的运动和显示小车的运动状态,有效地减少了主CPU的工作量。
在算法控制模块中采用逻辑判断、即一种简易比较算法,因为系统的控制分为电动车的行进控制、方向控制和平衡控制三部分。电动车的行进控制通过输入不同的PWM信号改变小车的运动状态顺序控制。
根据检测判断出小车所在位置,给出不同的PWM控制信号。单片机在行进中通过光电传感器阵列采集寻迹信号,并根据逻辑判断的方法对方向进行闭环控制,在前进和后退的过程中给出左、右轮相应的PWM信号对电动车转向进行修正。因此小车在前进过程中进入找平衡阶段时,根据不同的倾角情况减小速度给定值,对电动车的速度进行调节,以缩短小车的速度控制响应时间。电动车控制系统结构图如下图所示。图中P表示小车行进位置,仅表示电动车的倾角,a0表示电动车处于平衡状态时的倾角值。
二、传感器模块
我们选用了倾角传感器SCA100T-D10作为测量α的角度传感器。该传感器的有效输出范围为±30。,本系统正常工作时的倾角范围是±5.0。,因此完全能够满足系统的要求。倾角传感器SCA100T(如下图所示)有两种输出方式:一种是模拟量输出,一种是数字量输出。我们采用了后者,利用单片机的I/O口模拟SPI口就可读入11位数据,不需另接外部接口电路。倾角测量的精度直接影响着小车寻找平衡点的准确度,而采样周期的大小则确定小车调整平衡的灵敏度。考虑到小车和跷跷板的运动都属于机械运动,有一定的惯性和时间延迟,因此采样周期不能太小。本系统每50ms采样一次倾角,并进行数字滤波,即将本次采样到的值和前四次采集的数据取平均值。并以系统开机时在现场地面测量的值Dout@0度作为相对零度时的值,以消除地面不平引起的误差。
因α不大,角度计算公式为:
式中Dout为数字输出;Dout@0度为相对0度时的数字输出,Sens为灵敏度(SCAIOOT-D01的灵敏度是1638)。
系统进入寻平衡流程时的控制方法:a没有变化时,小车处于正常上坡阶段,速度不变前行;α发生变化且较大时,小车间隙步进前行(停2进1);当α发生变化且较小时,小车间隙步进前行(停4进1);当变为负值时,则小车相应步进后退;当IαI≤α0(α0为允许平衡误差对应的倾角值),可确定小车已经达到平衡。
为了控制电动车准确地在地面或跷跷板上行进,我们选用了红外对管进行寻迹。因红外线具有极强的反射能力,采用红外发射和接收管可以防止周围可见光的干扰,提高了系统的抗干扰能力。我们在车头和车尾分别安装了5个发射和接收一体的红外线光电传感器ST178进行寻迹检测。下图所示为一个光电传感器电路,R8用于调节各传感电路的灵敏度,本系统R8调整为240~260Ω。当寻迹到黑线时,从机给PWM电路送入信号以控制小车的运动。
通过努力,最艰难的部分基本完成了,为了节省时间,当天晚上便开始电路板连线与调试。此机问题出现了:电路主板双CPU的从机51芯片不能下载程序了,最后终于发现下载线接头部分有断线,可能是由于多次下载造成的插、拔导致了断线吧。于是马上用焊锡丝接上。为了防止类似故障再次发生,用黑胶布把它缠起来加以保护。
之后着手系统方案的其它模块。由于已经确定了选控制类的题目,在此期间已经基本完成了各模块的设计制作。期间的第一个模块便是液晶显示部分,并能自如的控制12864,1602以及Nokia3310屏的静态和动态显示,而后便是遥控器解码控制模块,温度,光电,金属传感器的调试与应用,步进电机,直流电机的控制,以及后来的A/D,D/A转换模块的应用等等。
三、驱动模块
采用最常用的PWM +H桥驱动控制方式,这种方式性能较好,可以方便地用单片机的I/O实现控制,具有电路和控制都比较简单的优点。直流电机的驱动和控制我们采用了接口芯片L298,它的内部集成了2个H型桥式电路用来驱动电机,实现电机正转和反转。
单片机通过内部定时器由I/O口产生PWM信号给L298控制H桥电路,其中PBl.0~1.5的标注表明是从机的I/O口,如下图所示。
四、遥控器模块
因为小车行驶时不方便连接电源,故采用电池供电。为简化控制板的结构、减轻小车重量,本系统采用了遥控键盘,遥控器选的是通用电视机遥控器TV139B,用红外一体化接收头接收红外信号,通过主CPU外部中断0接入、解码。
五、电源模块
本系统采用9V电池供电,并将电机驱动与控制测量部分分开供电,以保证传感器检测信号的准确性和系统的稳定性。
六、液晶显示模块
单片机系统的显示器一般有LED和LCD两种。
LED显示器亮度大,但显示字符有限,且功耗大。本系统采用诺基亚手机LCD显示屏PCD8544,该显示屏采用串行接口从单片机接收数据,占用资源少,且比一般的LCD显示器更薄、更轻,可以大大减轻电动车负重,还可以显示汉字、多种图形和字符,具有美观大方、耗能低、价格低廉的优点原以为将这些模块根据接口连上线就可以大功告成了,但是几个模块集合在一起运行后,老是出现小车直接从跷跷板上直接走过,却检查不到循迹信号。
这下可纳闷了,拿下光电传感器和角度传感器再分别调试,结果发现也没问题,经过将近一个小时的检查,终于发现控制部分时而正常,时而紊乱,原来是由于小车的机械振动导致的接口接触不良,最后我们用502强力胶将其粘固在车身上解决了问题。
经测试表明,电动小车能够准确地完成课题要求的基本功能和扩展功能,其运行速度、测试参数完符合要求,性能可靠。发挥部分测试结果为:电动车可从跷跷板外900的扇形范围内驶向跷跷板,并在要求的时间内找到平衡点,平衡时间在20~30s以内。