二维物体斜面运动算法是2005年全国大学生索尼杯电子竞赛E题“悬挂运动控制系统”延伸出的研究课题,其主要内容是设计一个电机控制系统,控制物体在倾斜(仰角≤100°)的板上运动。在一个白色底板上固定两个滑轮,两只电机(固定在板上)通过穿过滑轮吊绳控制一个物体在板上运动,并达到如下要求:
1)控制物体在80x100 cm的范围内做自行设定的运动;
2)控制物体作圆心可任意设定、直径为50 cm的圆周运动;
3)控制物体跟随板上标出的任意曲线运动,线宽1.5~1.8 cm,总长度约50 cm,颜色为黑色,曲线的前一部分是连续的,长约30 cm,后一部分是两段总长约20 cm的间断线段,间断距离不大于1 cm,沿连续曲线运动限定在200 s内完成,沿间断曲线运动限定在300 s内完成。
1 硬件电路设计
根据设计要求,系统可分为智能控制、传感器检测和电源3部分,整个系统示意图如图1所示。
智能控制部分:系统中控制器件根据由光电传感器变换输出的电信号进行逻辑判断,控制悬挂系统的电机,显示数码管,完成了悬挂物体的自动寻迹,寻迹移动等各项任务。控制部分包括4个主要单元电路:单片机控制电路,左右电机驱动及控制电路,4x4按键输入电路,数码管动态显示电路。
传感器检测部分:系统利用光电传感器检测到的外部信息转化为可控制器件能识别的电信号,传感器检测部分主要用于轨迹探测电路。
电源部分:系统中采用自制的电源将220 V电压降至恒稳的12 V和5 V电压对单片机、电机、电机控制部分、显示数码管、键盘、计数器、光电传感器供电。
2 模块选择与电路设计
2.1 系统各模块的选择
1)单片机选择模块:选用凌阳SPCE061A单片机。
2)电机选择模块:选用齿轮减速同步电机。
3)电机控制模块:选用继电器和光电传感器组合控制电机。
4)显示模块:选用8位数码管LED。
5)输入模块:选用4×4的键盘。
6)信号检测模块:选用反射式红外传感器。
2.2 主要电路设计
2.2.1 电机光电开关检测电路
利用电动机的正反转来带动控制物体运动,在该设计中采用在电机的转盘上安装一个60条黑白线均匀的圆盘,再用光电开关来检测,如图2所示。当要控制物体在画板上运动时,电机转动,光电传感器利用接收黑自电平时输出的高低电平,当光点传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时,输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑自条数转换成脉冲数,从而触发光耦U1或U2,经单片机IOB2或IOB3口输入信号来控制电机的转动,计算物体运动轨迹,从而控制物体的运动。
[page]
2.2.2 路面检测模块选择
在小车前面的左右两端分别安装反射式光电传感器,安装的宽度至少要大于黑线的宽度,如图3所示。小车运动路面是在白色纸张上面铺设黑色胶布作为中心,这主要基于光电传感器在检测到白色和黑色时两种不同的电平状态的原理。当光电传感器面对黑线时,发出的光被吸收,不能发生发射,此时光敏三极管Q不能导通,输出为低电平;当面对白线时,光电二极管发出的光经过白线反射到达光敏三极管Q,使Q导通从而输出高电平,再经触发非门74HC14的两次触发反相,消除干扰,把信号送到单片机相应的引脚。由此可以在小车行进的时候,让系统的控制模块同时监视两个光电传感器的状态,并送到单片机的相应引脚,经过程序算法处理后送到电机控制引脚,根据不同的信号组合实现不同的运动调整方式,完成小车的黑线运动。
2.2.3 电机控制部分的单元电路设计
电机驱动部分分为左右两部分,两个电机配合工作负责悬挂物体的拉动定位。两个电机为齿轮减速同步电机,转数恒定为20 r/min,设计两个控制电路来控制电机的开关。继电器对电动机的开或关进行控制,通过引脚电平的切换对电机的转向进行调整。
电路采用光耦继电器式对电机的转动及转向进行控制,如图4所示,各端口功能为,IOB8控制电机1的正转,IOB9控制电机1的反转,IOB 10控制电机2的正转,IOB11控制电机2的反转。
当IOB8或IOB10为高电平时,光耦U2导通,8050导通,+12 V电压驱动继电器,从而使交流220 V电压加到电动机上,电动机正转。当IOB9或IOB11为高电平时,光耦U3导通,8050导通,+12 V电压驱动继电器,从而使交流220 V电压加到电动机上,电动机反转。当IOB8或IOB10与IOB9或IOB11都为低电平时,电机停止转动。由于所选电动机具有抱闸功能,为齿轮减速电动机,因此在断电的时候,几乎能同时停止运动,保证了物体运动的准确性,而且外围电路简单,很容易操作。
[page]
3 系统软件设计
系统软件设计采用凌阳独有的C语言和汇编混合使用对单片机进行编程以实现各项功能,主程序主要起到一个导向和决策功能。为了让小车能够准确的沿黑线运动,所设计的程序就应该让控制系统实时地监视光电传感器地状态,调整小车运动一直回到正常运动状态中。因此,主程序主要包括小车运动子程序、光电检测的子程序、显示时间的子程序清看门狗子程序等。小车运动程序流程图如图5所示。
在程序中,为了小车运动能够准确地判断出当前所处的运动状态,让单片机及时地读取B口低8位的数据。为了小车运动的连贯性和准确性,在流程图中使用了延时程序。同时,为了避免出现单片机系统自动复位,对小车的运动造成影响,设置了清看门狗程序。
4 系统测试
在此设计的基础上,通过安装调试,整个智能小车系统已经形成,为了能让小车能很准确沿黑线运动,利用光电测试模块,由单片机控制物体作任意形状的寻迹运动,并能判断间断线段,测试结果如表1、表2所示。在运动时间测试时采用精度为0.01的秒表,检测小车运动时显示时间的正确性,如果程序中存在误差,就应该通过软件或者硬件的方法修正误差,进一步减小误差。测试时间过程如表3所示。
5 结束语
本系统以凌阳SPCE061A单片机芯片为核心部件,主要是利用继电器控制技术和光电传感器的检测技术二维斜面的黑线运动智能小车的设计,在系统设计过程中,力求硬件线路简单,充分发挥软件编程的方便灵活的特点,来满足本设计的要求。从测试项目来看,所设计出的小车能够实现误差较小的沿黑线准确运动和同时显示运动时间的要求。在运动方面,整个运动过程比较连续,但在转弯幅度比较大的地方时,小车运动时就需要时间来计算、调整。在显示时间方面,虽然存在一定的误差,考虑到误差很小,以及程序的执行花费的时间,可以忽略不计。
上一篇:基于ARM的汽车黑匣子设计
下一篇:基于MSP430单片机的倒车雷达设计
推荐阅读最新更新时间:2024-03-16 13:00