基于Arduino Mega 2560设计的智能循迹探险小车
2021-09-17李铖
李 铖
(河南牧业经济学院,河南 郑州 450000)
1 机器人总体功能及性能指标
机器人技术越来越火热,也越来越流行,它融合了很多交叉学科知识,并且大量应用于前沿技术,许多发达国家开展机器人制作比赛以此来鼓励更多高科技人才进入机器人领域[1]。目前为止,市面上的机器人多为固定的,但其范围与行为受到限制,所以需要更多的移动机器人来解决问题[2]。探险机器人是现在比较火热的智能机器人,探险机器人能够探测险境,代替人们发现危险,帮助人们找到合适的路线,使人们尽快到达想要去的地方。该文结合中国机器人大赛中机器人旅游——探险游项目的要求背景,自主研发出该探险机器人小车。
2 总设计思路
该智能小车由软件系统、结构与外观、电子电路系统、传感器、动力系统这5个部分组成,如图1所示。其中,软件系统控制整个机器的运行,是该小车的控制核心,它能够与小车的其他电子元件保持实时通信,将程序运算的结果发送至各个电子信息元件,实现小车的各个部分运动统一;该小车的结构与外观部分是采用亚克力板作为小车的框架;电子电路系统是将各个电子元件的信号线与Arduino主板的I/O用杜邦线相连,使Arduino主板与各个传感器保持实时通信;该小车传感器部分由8路数字灰度传感器、光电避障传感器、漫反射激光传感器3个传感器构成传感器部分,该部分是该小车的感知器官,他们是使小车实现循迹,避障的保证,是接受外界信号的重要组成部分;动力系统采用容量为5300mAh,放电倍率为30c,额定电压为14.8V大容量高倍率电池,并且用一块LM2596 DC-DC可调降压模块稳定输出一个12V、一个5V的电源,12V电源为直流电机驱动供电,一个5V电源为主控板以及各种传感器供电。以此来保证小车的各个部分持续正常地工作。
图1 智能小车的总设计思路
3 主要系统设计
3.1 软件系统
该文的智能小车采用Arduino Mega 2560最小系统作为该小车软件系统。Arduino Mega 2560是基于ATmega2560的微控制板,有54路数字输入/输出端口(其中15个可以作为PWM输出)、16路模拟输入端口、4路UART串口、16MHz的晶振、USB连接口、电池接口、ICSP头和复位按钮[3]。简单地用USB连接电脑或者用交直流变压器就能使用[3]。它具有大量的I/O口和较快的处理速度,这也是它比Arduino UNO更加适合该文小车的特性。
3.2 结构和外观
小车上下板采用亚克力材质,利用SolidWorks建模设计出合适尺寸,把各个模块位置确定下来,把孔的位置定好,然后出图,利用高精度激光切割机把上下底板加工出来,激光切割的切口光滑、速度快、精度高,能一次成型,很方便,无须二次加工,节约了大量的时间,简化工序流程,再配合亚克力板的优良激光切割特性,可以快速地从图样设计到底板制作完成[4]。之后上下板之间用铜质六角螺柱支撑固定起来,整体结构看起来规整大气,各模块根据图纸安装固定,部分传感器可根据使用目的利用3D打印进行安装固定。
3.3 电子电路系统
探险机器人主要使用的传感器有8路数字灰度传感器、光电避障传感器、色标漫反射传感器。这些传感器的信号线都连接到Arduino Mega2650的引脚上,电源用DC-DC15A同步整流降压模块降压后连接到这些传感器的VCC和GND,接线原理如图2所示,其中TXD为发射端,RXD为接收端,GND为接地端。电机部分是用一块LM2596 DC-DC可调降压模块先降压,然后连接到电机驱动上,电机驱动上会有一些排针插口,这些排针插口连接到Arduino Mega 2650的引脚上,这就是该智能小车的电子电路部分。
图2 通信信号接线原理
3.4 传感器系统
探险机器人使用了8路数字灰度传感器、光电避障传感器、色标漫反射传感器。
8路数字灰度传感器:如图3所示,用于识别赛道上白色的引导线,数字灰度传感器输出的数字信号只有0或者1,根据赛场的环境不同,笔者需要对数字灰度传感器进行调节,进而适应赛场的环境,调节传感器就是调节它的电压,数字灰度传感器的芯片是电压比较器,型号是LM393,它有两路电压输入,一路是光敏电阻的输出电压,一路是滑动变阻器的基准电压,通过LM393电压比较器来比较这2路电压,进而对外输出高低电平。
图3 8路数字灰度传感器
光电避障传感器又称红外避障传感器,型号是E18-D80NK,它是1个集成传感器,外观小巧美观,外壳配有螺纹与螺母,易于安装固定,它将发射器接收器处理系统融合在一起,非干扰性,灵敏度高[5]。传感器前端有1个过滤光质的玻璃片,它能过滤发射的光源,又能过滤其他光线对传感器的干扰。光电避障传感器检测最远距离是800mm,传感器的探测距离可以根据使用要求自己调节,传感器探测距离调节方式就是转动尾部的滑动变阻器。传感器正常工作电压是5V,正常工作电流是10mA~15mA,探测距离的范围是30 mm~800 mm[6]。
色标漫反射传感器:型号是E18-F10NK,是一种集发射与接收于一体的色标传感器,具有距离调节旋钮和工作指示灯,根据灯的亮与灭来进行颜色的区分。传感器正常工作电压是4.5 V~5.5 V,正常工作电流是10 mA~15 mA,探测距离的范围是20 mm~150 mm。
3.5 动力系统
动力系统原理如图4所示,电源采用3300mAh-4s(14.8V)大容量电池,强劲电力、更大容量、环保材质、待电持久,为小车提供充足的电源,保证其长久续航。利用DC-DC15A同步整流降压模块输出一个12V的电源,利用一块LM2596 DC-DC可调降压模块稳定输出一个5V的电源,12 V电源为直流电机驱动供电,5V电源为主控板以及各种传感器供电。
图4 动力系统分压思路
由直流正科电机驱动,选用电压12 V转速为1 000转电机,双H桥,可同时驱动2台直流电机,单路7 A电流,功率大[7]。大扭矩电机为小车翻越障碍提供充沛动力,减速箱采用全金属齿轮,外壳使用高硬度不锈钢材质,更受外界冲击,耐磨性高,精确度高,定子采用铜芯线圈绕组,电机更耐磨损。采用L型电动机卧式安装座,使电机稳定安全地固定在小车底板上。
4 控制策略
探险机器人使用Arduino Mega 2650主控板,其优点在于有大量的引脚,基于高性能核心处理器的快速处理速度,可以在程序运行时将各路传感器收到的数字信号和模拟信号进行实时处理,以便在小车行进途中对车身姿态进行实时调整和控制。整个控制系统分为2个部分,即循迹部分和精准控制部分,其中循迹部分主要使用8路数字灰度传感器,精准部分主要使用色标传感器。2个部分相互协调来控制探险机器人行为,精确控制部分与循迹部分两者各有各的触发方式及引导,并不会冲突,是一种相互协调的关系。控制策略原理图如图5所示。
图5 控制策略原理
循迹部分主要利用灰度传感器来进行循线。首先笔者需要采集背景色与线路的颜色,背景色为地毯的绿色,线路为白色布基胶带。笔者采用灰度传感器的数字模式,数字口直接接在I/O口上,设置这些I/O口为输入模式,读取每路传感器的输出,数字口有高电平和低电平2种信号,由于灰度传感器可以将收集到的电信号的模拟值进行二值化处理,所以可设置为,当灰度传感器扫到白线为0,否则为1。这样可以设置为当小车平稳地走在白线正中间时,4路和5路正好扫到白线,此时表示二进制为11100111,此时小车全速前进。当小车向右偏移时,也就是左侧的1路或2路或3路扫到了白线,此时表示二进制为00111111或10011111或11001111,这时调整小车的电机左边调速减慢,右边增快,使其向左偏转,直至小车车身能够平稳地在白线中间行进,此时继续全速前进。当小车向左偏移时,也就是右侧的8路或7路或6路扫到了白线,此时表示二进制为11111100或11111001或11110011,这时调整小车的电机右边调速减慢,左边增快,使其向右偏转,直至小车车身能够平稳地在白线中间行进[8]。
精准控制部分主要依靠车身前方两侧的色标漫反射传感器记录车身在整个路线中的位置,并且在到达控制位时跳转至指定控制子程序内执行,从而达到精准控制的效果。基于主控板优越的处理速度,在到达指定识别位置时可以实时执行控制子程序。由于漫反射传感器极灵敏,在行进过程中难免会有误触的现象发生,为了避免这一现象,笔者采用了在指定位置触发执行下一步行为的措施,避免在非控制位时做出其他动作。精准控制主要分为指定角度转弯、高台做指定动作、指定位置做无线区调整并开启相应传感器、指定位置停车或掉头等动作。车身经过每个路口,其前方灰度传感器全部检测不到信号时,其进入慢速前进状态,同时启动左右两侧的色标传感器,当收到色标传感器返回的信号时,车身按指定角度转弯,无信号时继续前进,再次有信号时做出指定动作,直至车身驶出路口时,灰度传感器再次接收返回信号,结束通过路口阶段。
该车采用的是PWM控制电机的转速,即按固定的频率来接通和断开电源,并且根据实际需要改变固定周期内“接通”“断开”时间的长短,PWM调速控制应用广泛,尤其是在直流电机的调速上[9]。此外,用单片机的软件编程来产生PWM信号,比用硬件来产生信号简单得多[9]。只要改变通、断电的时间,就能让电机转速得到控制。小车的单片机不停地扫描所有的引脚接口,一旦信号有变化,就执行相应的判断程序,此时通过循迹部分或者精准控制部分来进行车身调整,把相应的信号发送给电机从而调节车身的姿态。
5 结语
该文简要地介绍了一种基于Arduino Mega 2560单片机而设计的一款智能循迹小车。该智能小车采用模块化设计的方法进行设计,由软件系统、结构与外观、电子电路系统、传感器、动力系统这5个部分组成,使小车的结构简单紧凑,并由循迹部分和精准控制部分,两者相互配合使小车的循迹更加精准。经过多次实验与测试,该智能小车可以实现自主的循迹功能,并且随着人工智能的发展,该智能小车及其系统可实现采摘、抓取、搬运等功能。