基于STC89C52单片机的智能寻迹小车的设计与实现
摘 要:随着汽车科学技术的进步,对于智能小车的实验与设计越发重要.智能小车一致具有自动寻迹、躲避障碍物、报警等功能.其所运用的知识较为广泛, 主要涉及到汽车、机械和计算机等专业.智能小车不但代表汽车技术的发展, 也是学校培养机电一体化学和动手能力的主要手段。本文所设计的小车采用STC89C52芯片作为主控制芯片,通过实时检测各个模块传感器的输入信号,利用3路红外传感器寻迹模块检测黑线实现寻迹,小车电机驱动采用L298N芯片,根据内置的程序分别控制小车左右两个直流电机运转,实现小车自动识别路线,到达终点时小车自动停止蜂鸣器发出警报。另外,在小车上添加测速模块,利用单片机内部定时器、外部中断以及串口通信,测出小车行驶的总路程,数据通过蓝牙传感器以十六进制数的形式在手机上显示出来。并在此基础上增添超声波模块,利用超声波的发射与接收,采用单片机IO口查询相应信号,判断小车与障碍物的距离,在距障碍物15cm左右的距离时,通过程序控制小车实现自动避障,且在绕过障碍物后回归原始路径。
关键词:单片机控制;直流电机;红外线传感器;测速模块;避障模块;
本智能寻迹小车的硬件部分主要由STC89C51为主控芯片,主要包括电源模块、电机驱动模块
、寻迹模块、超声波模块测距模块等,其中控制系统的大概结构如图1所示。
电机方面,本小车采用直流电机。它的优点在于硬件电路设计简单。当外加额定直流电压时,由于其内部由高速电机提供原始动力,带动变速齿轮组,可以产生大扭力,能够很好地控制。转速几乎相等,调速性能较好,且性价比高。并采用L298N驱动集成电路。当驱动电机时,单片机可以控制与两路电机相连的IO口的逻辑电平,以达到控制小车车轮转向的目的
寻迹方面,本车采用3路红外传感器寻迹模块。外传感器寻迹模块由红外发射管和接受管组成,三个光电三极管分别放置在小车车头的左侧、右侧和正前方,红外发射管发出红外线,当发出的红外线照射到白的平面后反射,接收管接收到反射光,经施密特触发器整形后输出低电平;当红外光遇到黑线时则被吸收,接收管没有接收到反射光,经施密特触发器整形后输出高电平。这样,单片机通过实时检测IO口的高低状态,根据内部程序对小车的前进方向进行调整,达到寻迹的目的。
关于路程和時间的测量,本车采用测速模块。测速模块采用槽型对射光电传感器,它由一个红外发光二极管和一个NPN光电三极管组成。只要非透明物体通过槽型即可触发(本小车选用带有20空格的码盘)输出TTL低电平,接好VCC和GND,模块信号指示灯会亮,模块槽中
性价比高的汽车
无遮挡时,接收管导通,模块OUT输出高电平;遮挡时OUT输出低电平,信号指示灯灭。OUT口可以与单片机IO口(P3^2)产生外部中断,通过计算外部中断个数可以测得轮子转的次数进而计算出小车运动的路程。对于时间,本设计利用单片机内部定时器T0计算小车寻迹总时间,小车开始时打开定时器T0,设计每50毫秒一次中断,小车运动结束后,关闭中断,总时间就是中断次数与50毫秒的乘积。在此基础上,添加蓝牙模块,通过软件编程,利用单片机的串口通信,即可将计算好的数据通过SBUF缓存器发出来。蓝牙传感器作为媒介,在手机上下载蓝牙串口助手,实时连接,数据便可显示。
关于避障方面,本小车采用超声波模块。第一步,先实现超声波的测距。通过超声波发射装置发射超声波,根据接收器接收到感应超声波时的时间差就可以测出超声波源与障碍物之间的距离。本系统采用HC-SR04模块,此模块的典型工作电压为5V,盲区小与2cm,精度可达0.3cm。根据测速模块的时序图,单片机采用IO口触发测距法,使用时在控制端发送一个10μs以上的高电平,就可以在接受口等待高电平的输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,即高电平持续的时间就是超声波从超声波发射到返回的时间t,又已知超声波在空气中的传播速度约为340m/s,则可以算出波源与障碍物之间的距离S(单位为毫米),距离计算公式如下: 。在此基础上,通过编程设计在距离障碍物
15厘米左右时,实现特定的转弯避障,此过程需要大量调试,反复修改参数。