现今科技的进步在给人们带来越来越多的便捷,各行业的机器人已经逐渐融入到我们的生活,我们的生活变得越来越智能化。假如我们常用的小车也能够变得更加聪明更智能,那么我们使用起来就会更方便更安全。
李春杏, 电子世界 发表时间:2021-10-15
本论文通过对需求的分析,研究如何设计一款能够自动避障的多功能小车,该小车系统能探测并显示前方障碍物及距离,当障碍物距离很近时小车会分析周围环境,主动采取一些措施避开障碍物,这样就能够在很大程度上防止事故发生。操作人员还能使用上位机通过蓝牙无线遥控小车的运行,障碍物与小车距离的数据会送到电脑上面显示,使安全指数提高。这款小车系统可应用领域广泛,不仅用于日常出行,还能应用于打扫家庭卫生,矿山的矿物运输,以及人类无法到达的地方代替人类进行工作。
超声波避障智能小车的设计思路为:小车在自动运行的模式下,根据小车定时发出超声波,并对返回超声波进行计算,算出小车与障碍物的距离,再根据距离进行判断小车如何前进。为了方便监测,小车还配有蓝牙功能,会将所测到的数据反馈给电脑,而作为上位机的电脑,我将使用VB编写一个操作界面,用于接收小车的数据以及控制小车。所以本次设计研究的内容涉及C语言、VisualBasic、蓝牙、超声波、电机的驱动等。
1 设计思路流程图(见图1)
2 设计过程
选择STC89C52作为主控芯片,该单片机简单、经济、稳定。可用C语言、C++、汇编语言等高级语言编写程序。本设计使用到了P0端口,P1端口、定时器T0、T1、 T2,其中T0负责计算超声波模块的输出电平时间,以此计算距离,T1负责产生单片机与上位机通讯的波特率,T2负责整个系统的定时。
检测距离的方法有很多,而且有很多跟检测距离相关的传感器,例如超声波传感器、光电传感器等等,由于考虑到光电传感器受到外界光线的影响相对较大,校准难度高,对于检测的准确性影响大,虽然超声波同样是看不见摸不着,但是超声波受到干扰的因数相对较少,为了能准确而且易于操作我决定采用超声波传感器作为小车的检测装置。超声波测距是借助计算超声波脉冲回波所用时间法来实现的。不妨假设超声波脉冲从传感器射出一直到接收到回波所经历的时间为T (单位:s),设温度为15℃,在空气中声波的传播速度则为 C(340m/s),设从传感器到目标物体的直线距离D(单位: m)可用得以下公式:
由于通过直流电机的电流要求较大,而单片机STC89C52的引脚电流小,因此直流电机无法直接由STC89C52的引脚驱动,需要采用一个驱动能产生较大电流而且不会引起电压下降的电路给电机供电。市面上普片采用H桥驱动电路,而且H桥电路相对简单可靠,故本设计采用双H桥直流电机驱动模块。
显示模块则采用4位的七段数码管,原因是结构简单,性能可靠。由于要显示四位数字,因此显示模块是采用集成的四位共阳数码管,这台超声波智能小车采取七段数码管动态显示方法,所谓动态扫描显示,就是轮流向各位数码管传送出字形码和相应的位选,运用发光二极管余晖和人眼视觉暂留作用,使人发生错觉,仿佛各位数码管都同时在显示,而实际上多位数码管是一位一位地轮番显示的,只是轮流速度太快了,人的肉眼已经无法辨认出来。
四位七段数码管的接线方式如下:由于没有锁存器或者是三极管,因此对小车的显示电路进行了改动,采取P0作为四位数码管的数据端,使用P2的P2^0至P^3四位作为数码管的控制位。如表1所示。
蓝牙则采用HC-05蓝牙模组。由于蓝牙的电路相对比较复杂,本人直接购买蓝牙模组,蓝牙模组使用方便,价格合理,通信原理与串口通信方式相同,蓝牙的有效范围为 10m,符合本设计的基本需求。新蓝牙模组要在使用之前对其进行一定的设置,例如:蓝牙名称、波特率、主从模式等等。对蓝牙模组的设置,本人采用商家配套的软件进行设置,具体参数的设置如下:首先要用USB转TTL电平的模块将蓝牙与电脑连接;设备名称:就是蓝牙的名称;连接密码:蓝牙的密码;通讯波特率:9600,n,8,1。
本设计需要使用到独立按键2个,分别用于切换智能小车的运行模式,在前文也有提及,该智能小车具有两个工作模式,模式一是小车制动驾驶模式,在该模式下,小车探测周围的环境,测量障碍物的距离,根据各个测量数据判断智能小车的运行方向。同时,小车会将所测数据传送给电脑。模式二是手动控制智能小车,在该模式下,小车只会自主运行测量模块,测量小车距离前方障碍物的距离,同时将数据发送回电脑,电脑可以控制小车的前进,后退,左转和右转。
按键为常开按键,即只有外力按压的情况下才会导通,按键1和按键2的一端分别直接与STC89C52单片机的P3^5和P3^4,另一端与地相连。由于STC89C52 单片机工作的时候引脚都是默认为高电平,当按键被按下的时候,P3^5和P3^4就会与地相接从而拉低了电平,触发中断事件。
3 软件设计
本设计采用C语言进行编程,C语言具有通俗易懂的特点,是一门容易入门的高级语言,本设计使用到了C语言的reg52.h和stdio.h这两个头文件,一维数组,基本的循环语句,而且使用到了STC89C52单片机的P0~P3四组8位的数据引脚,使用到了中断0,、中断1、中断2、中断4、和中断5。编写程序使用的是 Keil4。通过VB编写上位机界面。
4 系统的调试
对于电路的仿真,我采用Proteus7.8进行仿真。
超声波模块、小车驱动等无法进行仿真,可用发光二极管代替,该仿真操作只针对显示模块和串口通信,因为对显示模块进行仿真可以减少很多操作步骤。特别是测试串口的时候,每次调试程序都需要将程序烧写到开发板,连续多次对开发板进行擦除烧录程序,会对单片机有一定的损伤,而且耗费时间和精力,对电脑的USB接口以及数据线也有未知的损坏,为了提高测试的效率,我是利用Configure Virtual Serial Port Driver创建虚拟串口,令com1和com2相连接,则两个串口助手之间或者与Protues7的RS232接口进行通讯,仿真可以不连实物就可以进行串口通信,对于调试程序可以达到事半功倍的效果。
超声波避障小车的组装及调试。将超声波测距模块,蓝牙模块,数码管,电机驱动模块安装前文的描述进行组装,将超声波测距程序、串口通讯程序、数码管动态扫描程序、电机驱动程序等等进行组合编译调试,在给STC89C52烧写编译好的程序,开启智能小车的蓝牙,启动小车,在上位机测试各项功能,让小车自己行驶,将收到的距离数据与小车数码管显示的进行比较。
作者简介:李春杏(1979—),女,广东湛江人,大学本科,讲师,研究方向:电子应用技术。
论文指导 >
SCI期刊推荐 >
论文常见问题 >
SCI常见问题 >