教学用多功能单片机智能车设计与实现
2012-10-10高红叶魏晓东
华 俊, 高红叶, 魏晓东
(上海理工大学 光电信息与计算机工程学院,上海 200093)
在单片机面世后短短的二三十年时间里,单片机技术已经广泛应用于工业控制、仪器仪表、消费产品、汽车、办公自动化和通信等领域[1].单片机是有些专业同学必修的一门课程,在教学过程中主要以老师讲课为主,再配合一定课时的实验课.这样的教学方式比较枯燥无味同学面对单调的实验箱,无法激发他们的学习热情.而学习单片机又注重理论与实际的结合,软件与硬件结合.怎样让学生学好这门技术,各大院校也给出了各自的建议[2~4].以单片机为控制核心,配以外围电路以及执行机构组成的智能车,选用经典的51系列单片机P89V51,其下载电路简单,无需专门的编程下载工具.车辆移动选择步进电机39BYG401A作为执行机构,能够精确控制小车的移动距离和转向角度.避障、循迹和测距功能的实现借助了红外技术,由红外发射管TSAL6200、红外一体化接收管LL-M6038和红外光敏三极管3DU5C来辅助完成.同时,选用体积较小的LCD1602进行信息的显示.
1 智能车系统的硬件设计
1.1 系统设计
作为智能车的控制核心的P89V51RD2FN单片机,是一款低功耗的8位51核单片,片内有64 KB
Flash程序存储器和1KB RAM数据存储器[5].支持ISP编程,只需串口电路并配合下载软件即可完成程序下载过程.智能车主要由电源稳压电路、单片机复位电路、串口电路、步进电机驱动电路、时钟源电路、红外电路、蜂鸣器电路和液晶电路组成.由于单片机I/O资源有限,对某些端口进行了复用,并通过短接帽进行选择,系统框图如图1所示.
图1 智能车系统框图Fig.1 Block diagram of the smart car
与很多其它的智能车相比,本智能车并非单纯追求速度而去选择直流电机,更是要体现精确控制.所以,选择了常用于精确控制的步进电机,并配合不同的实验让同学更了解步进电机.同时在使用步进电机的时候,如何配合好其它传感器的使用、单片机的编程,是不同于其它智能车的地方.整体智能车如图2所示.
图2 整体智能车Fig.2 Overview of smart car
1.2 各部分电路设计
1.2.1 电源稳压电路
智能车使用两种规格的电池进行供电,分别为8V和16V的锂电池.由于步进电机的功耗相对于其它电路来说较大,因此由电压转换芯片7812将16V转换为12V后单独向电机驱动部分进行供电,并且为了提高电源的驱动力并联了两个7812一起向电机驱动模块供电.而其它电路则由7805将8 V转换为5V后进行供电.并且为了防止电源正负极插反导致电路的损坏,在电源入口增加了肖特基二极管1N5817,其前向电压仅为0.75V@3.0ADC[6].
1.2.2 复位电路
智能车的复位电路既可以在上电时通过RC电路使得单片机复位,又可以进行手动复位,并带有LED,可指示是否复位成功.
1.2.3 电机驱动电路
智能车采用的电机是两相混合式步进电机39BYG401A,其最大静转距为2 300g·cm,工作电压为12V,电流为0.4A[7].电机驱动芯片选择常用的L298N,其内部为双全桥电路,可以驱动两个直流电机或是一个两相步进电机,最大工作电流为4 A,最大工作电压可达46V[8].智能车通过两个步进电机的正反转或是同向差速的方法实现转向,所以需要两个L298N.同时,每个电机驱动电路使用了8个肖特基二极管1N5817作为续流二极管,吸收电机内部电感产生的反向电流,如图3所示.
1.2.4 串口电路
P89V51RD2FN支持ISP编程模式,智能车与计算机串口相连仅需3根线即可,分别是TXD、RXD和GND.在这里使用了最常用的MAX232电平转换芯片,将TTL电平转换为±9V.
1.2.5 红外电路
红外电路又分为3个部分,如图4所示.
图3 单个步进电机驱动电路Fig.3 Single stepper motor drive circuit
图4 红外光敏三极管A/D转换电路Fig.4 A/D converter circuit for infrared phototransistor
a.红外发射管红外发射管TSAL6200的驱动电路.单靠单片机引脚无法满足TSAL6200工作所需的电流.因此选用了三极管放大电路,将发射管放在集电极端,并加上一个220Ω的限流电阻.限流电阻越小,发射管功率越大,发射出来的红外光越强.三极管的基极与38K振荡电路相连,也就是说,只要通电,发射管就开始工作.
b.红外一体化接收管LL-M6038的外围电路.LL-M6038已经对接收到的红外信号进行滤波与放大,使用方便,只需外部上拉10K电阻,并且VCC与GND之间放置一个电容值较大的电解电容就可以正常工作.
c.红外光敏三极管3DU5C驱动电路.光敏三极管接收到的红外光强度不同,流过三极管的电流也不同,从而产生在限流电阻上的电压也不同.通过一片LM358N中的两个运算放大器对电压进行处理.一级运算放大电路对限流电阻上的电压进行跟随,并通过小电容滤去一些干扰.二级运算放大电路对得到的电压进行直流放大.得到的电压经ADC0809进行A/D转换后送往单片机.
避障功能和循迹功能都使用了3组TSAL6200和LL-M6038,而测距使用了一个TSAL6200和一个3DU5C.
1.2.6 时钟源电路
TSAL6200产生LL-M6038能够接收的红外光(940nm)需要38K的方波信号,使用了38K晶振配合典型振荡电路的方式可以获得较好的方波信号.同时,ADC0809也需要时钟才能工作,在这里使用了6M晶振,并经计数器74HC4040分频后获得750kHz方波.
1.2.7 蜂鸣器
智能车上还配备了一个蜂鸣器,通过单片机根据距离的远近控制其蜂鸣的频度.同样通过一个三极管进行驱动.
1.2.8 液晶电路
智能车使用了液晶来显示智能车当前执行的程序.液晶控制器已经集成在了子板LCD1602上,智能车上仅提供对应的接口.
2 智能车系统的软件设计
配合硬件系统,通过编程智能车可以实现的功能为定距定向运动、避障、寻迹以及测距.
2.1 定距定向运动
步进电机是一种将电脉冲转换成角位移或线位移的机电元件[9].步进电机旋转的角度与电脉冲的改变有严格的对应关系.通过电机驱动芯片,步进电机能够直接受到数字量的控制,所以特别适宜采用微机进行控制.39BYG系列步进电机属于混合式步进电机,其特点在于步距角小、出力大及动态性能好,是目前性能最好的步进电机之一.智能车的两个步进电机并排置于小车的前端,尾部添加一个无定向轮,保持车体的平衡.
2.1.1 定距运动
通过实测智能车的轮胎直径,可以得到经过n个脉冲后步智能车所走的距离.即
式中,d为智能车轮胎的直径,d=64mm.智能车若要行驶1m后停车,所需的脉冲个数则为
代入数据后,n≈1 989,即1 989个脉冲后,智能车行驶了1m的距离.实际测试的结果也验证了该式的正确性.智能车的速度通过设定定时器0和定时器1的计数值来实现,在向正前方行进的情况下,两定时器的值应设为一致.软件流程见图5.
2.1.2 定向运动
实现定向运动的原理与实现定距运动的是一致的.现在仅以原地旋转为例,若要将车身旋转角度θ,计算式为
式中,l为智能车两轮中心之间的宽度,l=17.4cm;θ的单位为弧度.若要旋转45°,那么n≈136.与定距运动不同的是这时电机一个正转一个反转.电机驱动的C函数原型为void xMotorDrive(int dir).经传入函数的dir参数来决定左(右)电机的正反转.
图5 定距功能软件流程图Fig.5 Software flow chart for certain movement function
2.1.3 避障功能
避障功能使用了3组红外收发电路,分别在左前方、正前方和右前方3个方向上检测是否有障碍物,若有的话,则改变智能车的行驶方向.例如,左前方发现障碍物,则朝右原地旋转,直到左前方没有障碍物.正前方遇障碍同右前方发现障碍物.为了保证智能车不会被障碍物擦碰,将左前方和右前方能够检测的宽度调整为略宽于车身宽度.避障功能的软件流程与图5类似.
避障功能的硬件和软件都调试好以后,将其置于大楼的楼道内,楼道内有墙壁、门、门槛、消防栓等障碍物,小车都顺利地避开了这些物品,没有撞上.并且可以一直沿着墙壁朝前行进,轮胎与墙壁之间不摩擦.
2.1.4 寻迹功能
寻迹功能与避障功能的实现过程基本一致.在非黑色的地面上用黑胶带铺设出需要轨迹,由于红外光被黑胶带所吸收,所以当红外收发管所在位置处在黑胶带上方时,是无法收到红外光的,借此判断智能车是否偏离轨道.如图6所示(见下页),在地板上用黑胶带放置了轨道,小车就能一直沿着这个轨道进行运动,不偏离轨道.
图6 智能车寻迹测试Fig.6 Smart car tracing test
2.1.5 测距功能
测距功能实现的是智能车在倒车时,反射回来红外光的强度越强,倒车速度越慢,蜂鸣器发出的声音也越响.需要进行A/D转换,软件的实现较复杂.L358N双通道运算放大器在电源为5V的情况下,其直流输出最大在3V左右.另外加之3DU5C光敏三极管有漏电流和运算放大器本身零点漂移等因素的影响,即使没有任何光的情况下,仍然有0.5V左右的电压.所以经过放大后接入ADC0809的模拟信号范围为0.5~3V.按照ADC0809的工作时序进行数据的读取后,设置智能车的倒车速度,以及蜂鸣器蜂鸣的时间.软件流程图如图7所示.
图7 测距功能软件流程图Fig.7 Software flow chart for distance detection function
调试好后,将智能车的尾部对着墙壁,车辆在倒车时,随着距离越来越近,速度越来越慢,蜂鸣器的声音也随之改变.因为红外三极管会受其他光源的影响,如日光灯,在较暗的室内,效果更好.
3 结束语
介绍了智能车实验系统的软硬件,并已实验证实了系统功能的可实现性.
智能车实验系统,丰富了学习单片机技术的途径,方便老师深入、系统地进行单片机教学,同时增强了学生学习单片机课程的兴趣,锻炼了其动手能力.
[1]代芬,王卫星,邓小玲,等.单片机综合实验开发板设计[J].实验室研究与探索,2010,29(8):213-215.
[2]黄辛超,殳国华.用于创新类课程平台智能小车实验系统的设计[J].实验室研究与探索,2009,28(12):7-9.
[3]唐炜.基于“项目驱动”的单片机类课程实践教学改革[J].实验室研究与探索,2010,29(5):130-132.
[4]张瑞成,陈至坤,王福斌.以智能汽车竞赛推动实验教学改革[J].实验室 研究与探索,2010,29(8):103-105.
[5]NXP semiconductor.P89V51RB2/RD2product datasheet Rev.05[EB\OL].[2009-11-12].http://www.cn.nxp.com/products/microcontrollers/8_16_bit_legacy/flash/P89V51RB2_RC2_RD2.html.
[6]廖南宽.考量功率密度设计非接触式手机充电器[D].台北:義守大学,2088.
[7]Jameco electronics.39BYG401AR data sheet[EB/OL].[2011-3-22].http://www.jameco.com/ webapp/wcs/stores/servlet/Product110001 10001 237472-1.
[8]张志通.直流电动机驱动及控制的PROTEUS的仿真[J].北华航天工业学院学报,2008,18(5):28-30.
[9]李铁才,杜坤梅.电机驱动技术[M].哈尔滨:哈尔滨工业大学出版社,2000.