基于超声波的智能小车设计
2023-02-22阮俊辉
阮俊辉
浙江师范大学 工学院 浙江 金华 321000
引言
智能化发展十分迅速。一方面随着机器人日益集成化和操作的日益简单化,因此会朝着技术和装备成套化的方向稳步地发展;另一方面,机器人仍有朝着非制造业应用以及微小型方向发展的趋势。智能避障小车是机器人的一个特例,是一种由电子元件组装而成的微型机器人,可以手动编程来实现特定的项目。研究并设计智能小车,能够为设计新的机器人提供经验,具有广泛的迁移价值,可以大大提高人民的生活水平和生活质量,也是人类未来发展中不可或缺的组成部分。
其中,UllahSaleem[1]以Arduino为主控芯片开发的汽车控制系统,利用手的运动和位置,将它转换成不同的角度值发送给主控芯片,并做出对应的指令。Ujjwal Gulati[2]在介绍了一种语音控制汽车,具有智能障碍检测能力,方便身体残疾患者。徐友春[3]等人提出了一种智能车辆转向控制模型。该模型采用路标的方向偏差和距离偏差作为输入参数,输出前轮转向角;采用了状态控制法。
上诉研究者对智能小车控制技术已经有所研究,然而,对人机交互性及可操作性却处于滞后的状态。本文提出自动避障/手动遥控双模式的智能小车设计,提高了小车的交互性及智能化水平。
1 方案设计
1.1 技术要求
设计一款具有自动避障功能的智能小车,小车必须可实现红外模式和自动避障模式的切换。自动避障模式下,小车低于安全距离自动避障,在红外遥控模式下,可以遥控指挥小车运行。系统具体设计要求如下[4-5]:①利用稳压芯片为单片机电路系统提供稳定电压;②利用电机驱动模块实现直流减速电机的启、停、正、反控制;③通过直流减速电机,实现小车前后左右的运行;④利用超声波模块测量避障距离,并且实现小车避障;⑤利用红外遥控器和红外接收头现实小车遥控控制;⑥通过编程实现系统程序的模块化设计。
1.2 系统功能
功能描述,该系统中小车整体车身采用的设计是前两轮分别驱动,后万向轮转向的三轮车型,电路采用STC89C52微控制器作为系统的主控芯片,L293D为电机驱动芯片,通过pwm提供使能信号可同时控制小车的前两轮的转速,提供小车的运行方式。
系统采用STC89C52单片机作为核心控制单元,主要包括了红外控制模块,避障模块,按键输入,7805稳压电路,l298电机驱动模块,声光报警模块,1602液晶显示模块等。避障小车可通过按键自由切换小车的运行模式,在红外控制模块下(即手动控制模式),用HS0038B集成电路解码遥控器的按键码,分别可控制小车的前后左右4个方向的运转[6]。按键切换模式后可进入自动避障模式(即自动驾驶模式),在该模式下,可通过LCD1602直接显示小车的瞬时速度,避障距离等参数。所有操作步骤都可以通过LCD1602液晶显示相应的步骤过程。
2 硬件电路实现
2.1 声光警报模块
利用BUZZER的高低电平驱动蜂鸣器,蜂鸣器产生的轰鸣声较轻,因此设计重新加上了8550三极管,通过三极管放大信号,增强的声音的穿透力,符合声光报警的要求。如图2所示。
图2 声光警报模块电路
2.2 红外遥控模块
红外控制接收电路设计采的是HS0038B集成电路,红外遥控是包含红外遥控器和红外接收头两部分[7]。本设计中不同按键对应不同编码红外信号波,信号“搭载”8KHZ的载波,与主控连接的HS0038B红外接收头解码处理遥控器发出的红外信号波并把数据传送到单片机,主控识别分析信号并做出相对应的指令编写。搭建的电路如图3所示。
图3 红外控制接收电路
2.3 按键模块
本次设计采用的是独立式按键,结合小车的功能只需要3个独立按键接口简单,编程容易。按键电路硬件接线图如图4所示,按键功能如表1所示。
图4 按键电路
表1 按键功能介绍表
2.4 电机驱动模块
电机驱动电路采的是以L293D芯片为核心搭建的电路,电路如图5所示。
图5 L293D电机驱动电路
M1和M2对应的是小车的两个直流减速电机,可通过L293D芯片驱动。其中该芯片可以通过脉宽调整(PWM)驱动使能信号,且L293D芯片可以同时控制一对电机。
2.5 避障模块
避障模块采用超声波避障,接口电路如图6所示。
图6 超声波模块电路
超声波模块的设计采用的是HC-SR04超声波模块,该模块允许非接触式检测距离约2cm-400cm,测试距离精度为3mm。该模块由3部分组成:超声波发射机、接收机和控制电路[8]。该模块会自动发送8个40khz的方波,等待接收声波返回信号,若检测到声波返回信号,Echo便自动产生低电平,通过单片机识别并记录信号往返的时间。
3 软件程序设计
3.1 主程序流程图
该系统的软件部分是通过Keil4平台的基于C语言编程。进行所有程序的初始化,初始化后各个模块正常工作。通过按键1切换红外模式和自动避障模式。
程序进入红外模式时,可通过遥控器的“#”,“*”,“↑”“↓”“←”“→”按键分别控制小车速度增加,速度减小,前进,后退,左转,右转。
程序进入自动避障模式时,可判断按键2是否按下,选择进入避障设备界面,或者以默认安全距离为25cm的状态下自动驾驶。在避障设置中,可通过按键加减安全距离的长度,参数设置成功,则可跳转至自动避障状态。
图7 主程序流程图
4 功能测试
系统功能测试主要分为3个部分,分别为实物展示,外红遥控功能测试,避障功能测试。
4.1 实物展示
本次设计采用的是前两轮分别驱动,后万向轮转向的三轮车模,各部分模块电路集成在一块简易的洞洞板面。实物如图8,小车初始化界面如图9所示。
图8 实物图1
图9 实物图2
单片机初始化后,液晶屏幕上显示的参数有速度,与障碍物实时距离,系统运行时间,速度百分比4个部分。左上角为瞬时速度显示,初始化后小车为停止状态,显示的速度为0km/h。右上角显示的参数是与障碍物的实时距离。左下角显示的是系统执行时间,当前显示的是3秒。右下角显示的参数是当前可执行速度值,默认状态下为40%,该参数是通过改变pwm的占空比从而调节速度比值,调节的范围为0~100%。当前显示参数正常。
4.2 红外遥控测试
可通过按键1自动切换小车运行模式。按压遥控器上“#”,“*”,“↑”“↓”“←”“→”分别对应的是小车速度增加,速度减小,前进,后退,左转,右转。记录并观察小车的运行动作,如图10所示。
图1 系统框图
图10 小车速度设置
小车初始化之后的速度默认为40%,每按下“#”数值会相应增加1%,同理当按下“*”数值会相应降低1%。配合加速和减速的按钮,可调节速度在0~100%之间。同时,小车可做出四个运行动作,分别为小车前进,后退,左转,右转。转向动作是采用单轮不转,另外一轮前向转动完成的。红外遥控的6个按键完全满足了设计要求。
4.3 避障测试
按键1可自动切换小车避障模式,默认的安全避障距离为25cm,按下按键2可直接启动小车,当与障碍物小于25cm时自动进行声光警报并且避障,反之小车正常运行。
在默认避障安全距离为25cm下,按下按键2的小车正常行驶状况。小车通过超声波测量出的避障距离为47cm大于默认安全距离25cm,故小车正常行驶且瞬时速度为2.1km/h,当小于安全避障距离时,小车自动发出声光警报,即刺耳的蜂鸣声和尖锐的红色彩灯,当前小车速度为0km/h,即停车。然后小车自动按当前速度后退一秒,停顿两秒后,左转相应角度,继续行驶直到遇到小于安全距离时重新进入上述循环,从而做到自动避障。
同时可自行设置小车的安全避障距离,当小车按下按键3时自动转入避障设置界面,如图11、图12所示。
图11 默认避障距离设置界面
图12 安全距离设置界面
图11为小车安全距离设置界面,“L-H”可设置安全距离的增减。并且可看出系统默认的安全距离为25cm。在该界面下,可通过按键1和按键2调节小车的安全距离设置。按键1、2可增加减小安全距离的数值参数。当安全距离设置完成时,可重新按下按键3,保存参数并且跳出设置界面,重新回到原来的界面。
5 结束语
本设计是以STC89C52单片机作为整个系统的核心,用其控制小车的运行方式,以实现其既定的性能指标。是一个具有测距功能,并能够设置避障距离的红外遥控小车的设计。小车具有避障提醒功能,能够自动避障,避障灵敏度高。本设计中仍然存在不足:电路板设计不理想,电源摆放影响小车平衡;超声波识别距离的频段过短;小车速度设置的范围过窄,且不能液晶显示。
下步展望:通过方案论证、资料查询及电路设计和反复调试等步骤,融合RFID技术、深度强化学习进一步提高小车信息化及智能化水平。