基于51单片机的多功能智能小车的探讨
2019-09-10陈文鑫
摘 要:本次设计一个具备红外循迹、超声波避障及红外遥控智能小车。选择四轮驱动方式,以STC89C52RC芯片为核心控制。采用L298D集成电路驱动直流电机,用单片机产生PWM信号控制电机转速从而调速,通过超声波实现避障,返回距离数据,在此基础上接入红外控制,单片机解码后,自动选择小车功能。本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度上体现了智能属性。
关键词:智能车;STC89C52RC;PWM控制;红外循迹;超声波避障;红外遥控
中图分类号:TP23;TP368.1 文獻标识码:A 文章编号:2096-4706(2019)23-0025-05
Discussion on Multifunctional Intelligent Car Based on 51 Single Chip Microcomputer
CHEN Wenxin
(Sichuan Agricultural University,Ya’an 625014,China)
Abstract:An intelligent car with infrared tracking,ultrasonic obstacle avoidance and infrared remote control is designed. Four wheel drive mode is selected,and STC89C52RCchip is used as the core control. L298D integrated circuit is used to drive DC motor,PWM signal is generated by single chip microcomputer to control motor speed so as to adjust speed. Obstacle avoidance and distance data are realized by ultrasonic wave. On this basis,access infrared control. After decoding by single chip microcomputer,the car function is automatically selected. The structure of the design is simple and easy to realize,but it has a high degree of intelligence and humanization,reflecting intelligence to a certain extent.
Keywords:smart car;STC89C52RC;PWM control;infrared tracking;ultrasonic obstacle avoidance;infrared remote control
1 硬件电路原理及设计
1.1 STC89C52RC最小系统
本文的设计中采用了一款十分常用的51系列单片机作为处理器,其特点是价格低廉、使用方便,且可与其他处理器进行通讯。
系统时钟:晶振频率/12,本设计采用11.0592M晶振,因此系统时钟为0.9216us,约为1us。
I/O口资源:4个通用8位准双向I/O口(P0、P1、P2、P3,其中P3为特殊功能口)。
通讯:一对全双工串行通讯口(P3.0、P3.1),可与其他单片机或上位机进行通讯。
中断:2个外部中断(/INT0、/INT1),2个定时器中断(T0、T1),1个串行通讯中断,共5个中断资源并有2级中断优先级可供配置。
程序存储:该单片机提供8K的Flash程序存储器供用户编写程序。
STC89C52RC最小系统电路图如图1所示。
1.2 电源供电稳压模块
1.2.1 原理
7805三端稳压集成电路对先对输入电压进行采样,之后反馈回调节电路调节输出级的阻抗。当输出电压偏低时,调节输出级的阻抗变小,从而减小输出管压降;当输出电压偏高时,调节输出级的阻抗变大,从而增大调整管压降,这样就维持了输出电压的稳定。在应用7805时最好是在旁边增加一个散热片进行散热,因为在功率大的时候发热量很大,容易烧坏芯片。
两节18650充电电池串联提供约7.4V的电压,作为7805的输入,稳压后输出5V电压给单片机最小系统,L293D电机驱动模块,超声波模块,舵机,红外循迹模块供电。
1.2.2 电路图
电源驱动电路如图2所示。
1.3 循迹模块
1.3.1 原理
反射式红外发射-接收器采用了红外发射管代替普通可见光管,排除了除红外光以外的其他光源干扰,减小了环境光源导致的误判的概率。应用时为避免其他光源的红外线干扰,可以在接收管上缠绕黑胶布,从而保证接收的是反射回来的红外线。
循迹电路是在小车前面从左至右安装5个红外发射接收器,循迹是通过辨别黑白色来行走。工作中红外发射管发出红外光,当遇到黑色时不反射红外光,比较器输出为低电平;当遇到白色时,反射红外光,比较器为高电平。小车就根据各个比较器的高低电平改变车轮的转向和转速,实现循迹功能。
1.3.2 电路图
循迹电路图如图3所示。
1.3.3 红外遥控模块
原理:采用HS-021红外遥控器和1838一体化红外接收头,1838红外接头用于接收38KHz红外信号,当接收到红外编码信号时,整流成高低电平的方波信号,单片机对应I/O口按照高低电平执行相应的功能。发射部分包括键盘、调制、红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
红外遥控器是将红外遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后由红外发光二极管转化为红外信号发射出去。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。这里采用PPM碼作为遥控信号。解码流程图如图4所示。
1.4 避障模块
1.4.1 原理
采用超声波传感器和舵机配合实现前方180°避障。将超声波传感器和舵机安装于小车正前方,超声波发射后经障碍物反射,由接收头接收,判断与障碍物的相对距离。同时舵机控制超声波传感器左右各旋转90°,判断小车左右两边与障碍物的相对距离,以此选择最合适的行驶方向。
超声波测距是借助超声脉冲回波渡越时间法来实现的。设超声波脉冲由发出到接收所经历的时间为t,超声波在空气中的传播速度为v,则从传感器到目标物体的距离D可用下式求出:
D=v*t/2
超声波发射器发射出长约6mm,频率为40Hz的超声波信号,此信号被物体反射回来,由接收头接收。接收头实质上是一种压电效应的换能器,它接收到信号后产生mV级的微弱电压信号。
但超声波在比较狭窄的柱状障碍物(如:桌脚)或者凹凸不平的墙壁面前避障效果不理想,为适应更复杂的地形,使小车能更有效地避障,在车头和车尾的左右两侧分别安装两个反射式红外发射接收传感器,辅助超声波传感器,完善小车的避障功能。超声波工作流程如图5所示。
1.4.2 电路图
超声波电路图如图6所示。
1.5 电机驱动控速模块
将直流电压通过一个可频繁通断的开关,输出端将产生脉冲信号,改变开关通断的频率,则可改变脉冲信号的占空比。在PWM直流电机调速系统中,改变在始能端ENA和ENB上输入方波的占空比就能改变加在电机两端的电压大小,从而达到控制电机转速的目的。
单片机产生PWM信号是使用定时器T0控制PWM信号的频率,定时器T1控制PWM信号的占空比。程序中,T0工作于方式1(16位定时器),因为方式1能够通过修改定时器初值得到较宽频率范围的信号,T0定时器初值的计算公式如下:
X=65536-f/12*f
上式中为f单片机晶振频率,f为PWM信号的频率。
使用定时器T1控制PWM信号的占空比,采用查询方式嵌套在T0定时器中断服务子程序中,在T1定时器时段使输出端口为高电平,其他时段输出低电平。T1定时器初值的计算公式如下:
X=65536-f*D/12*f
上式中Dw为占空比。
输出为高电平时,电机使能;输出为低电平时,电机停止。根据此方式可以调整电机的转速,从而实现控制小车的速度控制。
2 系统软件设计
2.1 控速设计
本系统采用两个定时器中断,定时器T0用来控制PWM的周期,定时器T1用来控制高电平的持续时间。平时单片机执行主程序,当T1中断到来时,单片机输出一个高电平给电机并持续一小段时间;其余时间单片机输出一个低电平给电机,如此反复。由于定时器的引入,使PWM调速的频率恒定,且节省CPU,使其能够在有PWM控速的情况下仍能够实现其他的功能,而不用采取双CPU模式,节省了资源。
2.2 循迹设计
2.2.1 方向判别程序
采用计数方式给每一个红外循迹传感器定一个值,每扫描一次根据不同路况返回的数值不同,小车根据数值改变行驶速度和方向,实现对复杂路况的循迹。该方式相比起一般的循迹程序执行更快更稳定,能满足十字、T字路口、直角等各种路况。5路循迹传感器从左到右赋值依次为10,2,1,4,20。例如,当小车检测到左直角时,左边赋值为10和2的传感器会收到信号,最后累加得到数值12,传给单片机,控制小车90度左转;同理,当检测到右直角时,右边赋值为20和4的传感器会收到信号,累加得到数值24,传给单片机,控制小车90度右转。方向判别如表1和图7所示。
由于37这种情况和36有时会重叠,导致十字和T字判断错误,可以采用延时来进行判别。在36时延时一个线宽的时间,然后判断灯1的情况,若1扫描到黑线,则为十字路;反之则为T字路。
2.2.2 方向调节程序
PWM脉冲宽度调制的实现:其中各种转向方式的PWM占空比分配如表2所示(具体占空比和延迟时间应根据小车性能而定,占空比太小可能导致电压过低不能驱动电机)。
2.3 避障设计
红外辅助避障。考虑到单一的超声波避障存在局限性,因此在小车的车头和车尾左右两侧安装红外传感器,辅助避障。当红外传感器接收到反射回的红外线时,表明此时超声波对于障碍物没有反应,不能即时避障,属于紧急情况,进入外部中断,立即执行避障程序,直到红外传感器不能接收到反射回的红外线时,退出中断,继续执行超声波避障。避障功能如表3所示。
2.4 功能选择设计
单片机解码红外信号,进入外部中断,选择执行各功能。当对应方向键按下时,小车前进、后退、左转、右转。当遥控器上分档按键按下时,电机转速分档加快或减慢,3个按键通过单片机来实现对电动机的3种速度控制。当按下功能选择键时,小车执行对应功能,直到按下其他功能为止。
为避免各功能冲突,导致小车失控,程序设计时应在主程序、中断、定时器中分别设置独立的功能选择程序,并在每次选择时清空之前的数据,方能保证小车的功能切换稳定可靠。
3 程序框图
按下启动键后使用遥控器选择模式,选择速度,选择完成后小车按照指定功能运行,为节约电量,LCD1602在行进时背光关,停止读取参数时背光开,按停止键后小车停止进入模式选择状态。小车整体運行程序流程图如图8所示。
4 结 论
硬件方面利用STC89C52RC单片机能够完整实现以上功能控制,在此基础上仍保留有一些I/O用于功能扩展,但单个51单片机资源与其他单片机相比相对较少,不能实现更多更复杂的功能的集成,此时需考虑多CPU、多主机通信共同控制。软件方面采用模块化编程,其程序可读性移植性强,便于进一步小车功能的开发和完善。
参考文献:
[1] 游雨云,丁志勇.单片机PWM信号控制智能小车的实现方法 [J].技术与市场,2009,16(12):28-29.
[2] 王艳.基于51单片机的红外遥控小车设计和制作 [J].电子制作,2010(6):11-13.
[3] 谭传武,傅宗纯.基于51单片机的WIFI无线控制系统设计与实现 [J].电子设计工程,2018,26(8):178-182.
[4] 陈炜炜,詹跃东.基于单片机的直流电机PWM调速系统 [J].化工自动化及仪表,2019,46(3):218-222.
[5] 张丽.基于单片机PWM控制技术的实现与设计研究 [J].无线互联科技,2018,15(16):74-75.
[6] 张玉帅,杨婷婷.基于51单片机的智能循迹机器人系统设计 [J].电子世界,2016(10):102+105.
[7] 谢晓敏,闵锐.基于89C51单片机的智能循迹避障小车设计 [J].太原学院学报(自然科学版),2018,36(1):15-18.
作者简介:陈文鑫(1998-),男,汉族,四川成都人,本科在读,研究方向:单片机控制。