APP下载

基于单片机的智能小车的设计与实现

2015-12-06郭海丽

衡水学院学报 2015年1期
关键词:循迹子程序测距

郭海丽



基于单片机的智能小车的设计与实现

郭海丽

(衡水学院 电子信息工程学院,河北 衡水053000)

介绍了一种以STC89C52单片机为控制核心的智能小车的设计.设计由电机驱动模块、超声波测距模块、循迹模块、红外和语音模块组成,拟实现一个无人驾驶公交车系统.通过C语言编程实现小车的前进倒退、转向行驶、自动循迹导航、超声波测距,并根据检测障碍物距离调整速度、红外遥控定点播报功能,实现智能控制,达到设计目标.该系统电路结构简单、功耗低、稳定性高,具有一定实际应用价值.

智能小车;超声波;红外;循迹;单片机

随着生产自动化及汽车工业的迅速发展,关于智能小车的研究已经越来越受到人们的关注.电子技术的飞速发展,给人类生活带来了根本性的变革,特别是随着大规模集成电路的产生而出现的微型计算机,更是将人类社会带入了一个新的时代.利用微机的强大功能,人们可以完成各种各样的控制.红外反射式传感器、无线控制技术、超声波测距以及单片机技术成为当今社会智能化不可缺少的一部分.小车自动寻迹导航、超声波测距、小车避障等技术,可以应用于现代物流、无人驾驶汽车、无人工厂、服务机器人等领域[1].笔者设计了一种以STC89C52单片机为控制核心的智能小车系统,该系统电路结构简单、功耗低、性价比高、稳定性高,具有一定实际应用价值.

1 系统总体设计方案

本智能小车系统使用一片STC89C52单片机作为主控芯片,利用红外光电传感器对地面的黑色轨迹进行检测从而实现自动循迹功能,并且小车通过超声波测距来获取小车与障碍物的距离,通过距离的判断与比较以达到避障的目的.在小车与障碍物的距离小于安全距离(用软件设定)时,小车会自动减速前行;如果小车与障碍物的距离小于危险距离(用软件设定)时,小车会停止行驶进行等待,直至前方障碍物移除后小车才恢复正常行驶状态.当小车行驶到固定的站点时,通过接收站点的红外信号,小车会自动语音播报提示并停车等待几分钟(用软件设定),之后小车继续正常行驶,依此运行方式循环行驶.本智能小车系统由以下几个模块组成:单片机控制模块、超声波测距避障模块、自动循迹模块、电机驱动模块、红外接收以及语音播报模块.系统总体组成框图如图1所示.

图1 系统总体组成框图

2 系统硬件电路设计

2.1 单片机最小系统模块

本设计单片机最小系统模块包括主控制芯片STC89C52,晶振电路和复位电路.晶振电路由一12.000 MHz的晶振和两个30 pF的起振电容组成,复位电路由电容和电阻组成,当复位键按下时,复位引脚上电复位[2].

2.2 光电传感器循迹模块

小车在沿着规定的轨迹行驶时,轨迹可能会有弯曲或小车有偏离轨道现象.为使小车能在轨迹上正常行驶,小车需要在偏离跑道时实时地进行调整,因此系统需要将路面的循迹状态及时地反馈到控制部分,控制部分通过判断执行相应指令,使小车重新回到轨迹上来.

在本设计中采用了两个光电传感器,分别置于小车的两侧.当小车偏离轨迹时,其中一侧的光电传感器的信号将被黑色轨迹吸收而无法返回,此时光电传感器输出高电平信号,信号经过处理后传递给单片机,单片机接收到信号后会调整左右电机的转动,使小车回到轨迹上来,此时传感器回到白色区域输出为低电平,左右电机同时转动,小车直线前进.检测电路如图2所示,当发射管的红外信号经反射被接收管接收后,接收管内部将会导通,在电路上一般以电压的变化形式体现出来,而经过LM324运算放大器电路处理后,输出的高低电平信号传递给单片机.接收管内部导通的强弱取决于接收管所接收的红外信号强度,常表现在反射面的颜色和反射面与接收管的距离两方面.

图2 检测电路

2.3 电机驱动模块

电机驱动电路分为左轮与右轮2部分,本设计采用电机驱动芯片L298N驱动左右电机,其电路如图3所示.2、3脚驱动左轮,13、14脚驱动右轮.INPUT1、INPUT2控制左轮转动方向,INPUT3、INPUT4控制右轮的转动方向,INPUT1(INPUT3)为高电平、INPUT2(INPUT4)为低电平时,电机正转;INPUT1(INPUT3)为低电平、INPUT2(INPUT4)为高电平时,电机反转;其余状态时电机停止转动.电路采用PWM调节小车速度,通过单片机输出PWM信号到L298N电路的使能端来控制小车的速度,启停[3].

图3 电机驱动电路图

2.4 超声波测距模块

超声波传感器测距原理:首先利用单片机输出一个长约6 mm,频率为40 kHz的触发信号,触发信号经过驱动电路CD4069进行调理,以使超声波传感器产生谐振,然后由超声波测距模块的发射器向某一方向发射超声波.在发射超声波的同时单片机通过软件开始计时,超声波沿发射方向在空气中传播,当途中碰到障碍物时返回(软件允许范围内),超声波测距模块的接收器收到反射波后,便通过CX20106进行前置放大、限幅放大、带通滤波、峰值检波和比较、积分及施密特触发比较得到解调处理后的信号(如图4所示),并通过输出反馈给单片机,此时单片机立即停止计时.由于超声波在空气中的传播速度= 340 m/s,根据计时器记录的时间,就可以计算出发射点与障碍物的距离,即:=×/2,通过单片机来算出距离以达到避障的目的.

图4 超声波接收电路原理图

2.5 语音模块

此模块实现语音播报功能,当小车接近公交站点(模拟实现)时,小车的控制系统会根据所接收到的红外信号进行解码识别后,执行相应指令并进行语音提示.在本系统中,此功能是用ISD4004语音芯片来实现.预先给语音芯片录入所需要的语音提示信息,再通过单片机程序来控制语音芯片的定点播报,来实现语音提示功能.ISD4004语音录放模块的硬件电路如图5所示.MIC为麦克风,用于录入语音,可完成普通的现场录音.在放音电路中,输出端选用低电压通用集成功率放大器LM386作为扬声器的驱动电路.该电路中,LM386的1脚和8脚间外接10 μF的旁路电容,可以使电路的放大倍数提高200倍.ISD4004的工作电压是 3 V,可以通过降压电路将5 V电压转变为3 V,考虑到廉价和方便的问题,本电路直接采用3只二极管串联的方式直接分压将电压降至3 V.

图5 ISD4004语音录放电路

2.6 红外信号模块设计

红外信号模块是对各个公交站点的识别,每个站点与每个站点之间发送不同的红外信号,单片机通过对接收的红外信号进行识别解码后,执行相应的指令.

2.6.1 红外发射模块设计

PT2262工作原理:PT2262最多可有12位(A0 ~ A11)三态地址端管脚(悬空、接高电平、接低电平)任意组合可提供531441种地址码.最多可以有6位(D0 ~ D5)数据位,设定的地址码和数据码与同步码组成数据帧以串行数据方式输出,通过无线传送后,在解码芯片的数据端取出[4].

发射电路由PT2262编码器和红外发射元件IRED组成.触发电路采用555振荡电路,连续间断性触发传送红外信号.当电路触发PT2262上电时,设定的地址码和数据码与固定的同步码组成一组编码从17脚串行输出,经过红外发射元件IRED将信号发出.振荡电阻Rosc用来调节编码发射频率,适当调高电路工作电源VCC可以增大发射距离.其中12位编码可设置为高电平、低电平、悬空3种状态,因此可以发送531 441种编码组合,可以满足各种智能控制和低速、少数据量、短距离数据通信.

2.6.2 红外接收模块设计

红外信号接收装置采用集红外线接收、放大、整形于一体的红外接收器1838,无需任何外接元件,就能完成从红外线接收到输出与TTL 电平信号兼容的所有工作,故适用于各种红外线遥控和红外线数据传输.接收信号被送至I/O 端口P3.2后,通过外部中断方式进行软件解码.

3 系统软件设计

系统软件设计采用C语言,在Keil 4软件环境下对单片机进行编程与调试,以实现各项检测与控制功能.主程序起到一个导向和决策功能,决定小车如何行驶.小车各种功能的实现主要通过调用具体子程序来实现的.系统软件设计采用模块化结构,由主程序、各模块及中断初始化程序、延时子程序、电机驱动子程序、中断子程序、循迹检测子程序、调速子程序、超声波测距子程序、红外解码子程序、语音播报子程序构成.其中:超声波测距模块子程序完成对前方障碍物与小车之间的距离的检测,将数值反馈给主程序,然后程序对距离进行判断比较以实现避障的目的;循迹检测模块子程序完成对地面轨迹的检测任务,以实现小车的自动循迹功能;遥控中断服务子程序完成对遥控信号产生的外部中断进行处理,对不同的遥控信号产生相应的控制信号;语音播报子程序完成对语音储存、调用与录放工作.

本智能小车系统选择比较常见廉价的STC89C52单片机为控制核心,采用C语言在Keil环境下进行编程及仿真工作.系统经过详细设计,代码编译仿真等,模拟实现了一个集自动循迹、避障、报站等功能于一体的简单无人驾驶公交车报站系统.通过程序仿真及各模块的实际验证表明,设计可以实现其功能,可以应用于现代物流、无人驾驶汽车、无人工厂、服务机器人等诸多领域.

[1] 陈静.STC12C5A08S2单片机智能小车控制系统设计[J].阴山学刊,2011,25(4):40-43.

[2] 李全利.单片机原理与接口技术[M].北京:高等教育出版社,2009:19-30.

[3] 周淑娟.基于单片机智能寻迹小车的设计方案[J].工业技术与职业教育,2011,9(2):13-16.

[4] 姬红旭.基于STC89C52单片机智能避障小车设计[J].职业技术,2011(6):141-142.

Design and Implementation of the Intelligent Car Based on MCU

GUO Hai-li

(College of Electronic and Information Engineering, Hengshui University, Hengshui, Hebei 053000, China)

The design of the intelligent car which uses STC89C52 MCU as the core of the controlling system is introduced. The design consists of the motor drive module, ultrasonic ranging module, tracking module, infrared and voice modules, which intends to implement a driverless bus system. The car of this design with C language programming can achieve forward and backward movement, turning, automatic tracking navigation, ultrasonic distance measurement and speed adjusting according to the detected obstacle distance, infrared remote control fixed-point broadcast. It can achieve intelligent control and design goals. The system is a simple circuit structure with low power consumption and high stability. It has some practical value.

intelligent car; ultrasonic; infrared; tracking; MCU

(责任编校:李建明 英文校对:李玉玲)

10.3969/j.issn.1673-2065.2015.01.009

TP311

A

1673-2065(2015)01-0029-04

2014-09-19

河北省科技计划项目(112135111)

郭海丽(1980-),女,河北秦皇岛人,衡水学院电子信息工程学院讲师,工学硕士.

猜你喜欢

循迹子程序测距
基于DFT算法的电力巡检无人机循迹检测系统设计
类星体的精准测距
浅谈基于机器视觉和姿态检测的循迹智能车
浅谈超声波测距
智能差分循迹小车设计
浅谈子程序在数控车编程中的应用
基于PSOC超声测距系统设计
子程序在数控车加工槽中的应用探索
相对差分单项测距△DOR
西门子840D系统JOG模式下PLC调用并执行NC程序