花 勇,岳 春
(江苏食品药品职业技术学院,江苏 淮安 223003)
基于Arduino的智能遥控小车设计
花 勇,岳 春
(江苏食品药品职业技术学院,江苏 淮安 223003)
智能遥控小车作为运输机器人研究的一个重要组成部分,在货物的搬运分拣中被广泛的使用。本次设计以Arduino为控制单元,通过蓝牙模块发出控制指令,结合L298N电机驱动芯片、红外光电传感器模块、超声波发射与接收模块等构成外围扩展电路,实现了智能小车的自动避障、自动循迹等功能。对智能小车的控制与开发进行了有效的尝试,具有一定的参考价值。
Arduino; 智能遥控;避障;循迹
Αrduino作为一款全球知名的开源硬件,全球有数以万计的开发者使用Αrduino开发项目和电子产品[1]。利用Αrduino开发的遥控智能小车具有体积小、成本低、可在多种设备上远程控制等特点。其在饲料生产企业的袋包码垛仓储、化肥厂颗粒粉体袋包码垛,印刷制品运输以及物流企业中的货物的搬运分拣中被广泛使用。本文以Αrduino UNO开发板作为控制单元,手机端传递控制指令给蓝牙穿透模块,通过超声波模块,红外线循迹模块采集的信息配合控制程序实现一种具有无线遥控、避障、自动循迹等多功能智能小车。
1.1 系统组成
智能遥控小车控制系统硬件由Αrduino UNO开发板、HC05蓝牙穿透模块,超声波传感器、红外循迹传感器和直流电机及驱动电路组成[2]。
1.2 智能小车设计方案
基于Αrduino的智能小车通过无线串口实现对小车的无线遥控,通过相应的传感器和控制程序能够实现以下功能:
(1)利用蓝牙使小车可以远程控制小车运行方向和速度。(2)利用超声波传感器探测前方的障碍物,从而实现自动避障的功能。(3)利用红外循迹传感器探测下方的轨迹线,从而实现自动循迹的功能。(4)安装蜂鸣器和三色LED灯,实现报警和功能指示的作用。
智能遥控小车程序编写采用了模块化的结构设计方法。小车Αrduino程序的基本结构由setup()、loop()、LEDBlin()、bizhang()和Line()五个函数构成。Αrduino通电后Setup()函数中的程序只执行一次,用于Αrduino的初始化设置,如I/O口的初始化操作和速度状态的定义。Loop()函数完成程序的主要功能和子程序的调用,如小车的蓝牙遥控、自动避障和循迹等函数的调用。LEDBlin()函数用来定义WS2812B RGB三色LED闪烁和蜂鸣器发声,bizhang()函数实现小车的自动避障功能,Line()函数实现小车的循迹功能,而yaokong()函数实现小车的手动遥控功能,通过手机客户端的SPP蓝牙串口软件,在名称文本框内输入要传送的字符,如字符Α、B、C用来设置小车运动的工作模式(手动遥控、自动避障、循迹运行)。字符R1、R2、R3用来设置小车的移动速度,、、、分别用来控制小车的前进、后退、左转、和右转。
2.1 手动遥控
避障程序主要由主函数Loop()和电机L298N驱动函数来实现。首先在函数Loop()中通过函数BT_COM()读取蓝牙串口的数据[3],通过switch()多选择分支函数比对接收字符对应的电机驱动函数,如符号“↑”则调用Forward()函数小车前进,符号“↓”调用Backup()函数小车后退,“→”调用Turnright()函数小车右转,“←”调用Turnleft()函数小车左转,实现小车通过无线蓝牙的遥控控制。
2.2 避障代码
避障程序主要由超声波测距函数Distance(),电机L298N驱动函数和避障模式函数BiZhang()等构成[4]。首先在主程序中选择自动避障模式B,则调用测距模块函数Distance()通过Triq引脚输送一个大于10us的高电平,然后检测Echo引脚反馈回来的高电平持续时间,通过公式:距离=344m/s*高电/2将时间转换成距离。然后再调用BiZhang()函数来判断检测的距离:如果在20mm<us<40mm范围内小车左转,us>40mm小车直行,us<20mm小车后退。
2.3 循迹代码
循迹程序主要由循迹函数Line()和电机L298N驱动函数等构成。首先在主程序中选择自动避障模式C,当Line()函数返回值为0时表示小车没有在轨迹上,小车调用电机控制函数Forward()控制电机继续前进,当Line()函数返回值为1时表示小车在轨迹的右侧,小车调用电机控制函数Turnright()函数控制电机右转,同理当Line()函数返回值为2时,小车调用电机控制函数Turnleft()函数控制电机左转,当Line()函数返回值为3时表示小车在轨迹中间,小车调用电机控制函数Forward()控制电机继续前进。
2.4 实验研究
经实验测试小车成功地实现了无线蓝牙遥控功能,能够实现三种控制模式的切换。在前方遇到障碍物时能够自动的避障,轻松的避开障碍物,达到了预定的目标,效果如图1所示。
借助Αrduino资源丰富的开源硬件平台和高效率的Αrduino类库函数实现了对智能遥控小车控制系统的设计。实验结果表明小车能够很好地实现自动的避障和循迹的功能,通过HC-05蓝牙模块还可以方便地实现无线遥控和控制模式的切换。基于Αrduino智能小车的控制系统的研究将有助于把Αrduino引入到智能产品的设计当中去,具有一定的实用价值,为后续开发工业智能货物运输机器人进行了一次有效的尝试。
[1]陈吕洲.Arduino程序设计基础[M].北京∶北京航空航天大学出版社,2015.
[2]宋楠,韩广义.Arduino开发从零开始学∶学电子的都玩这个[M].北京∶清华大学出版社,2009.
[3]聂茹.基于蓝牙遥控的多功能智能小车设计[J].自动化与仪器仪表,2016(04).
[4]戈惠梅.基于Arduino的智能小车避障系统的设计[J].现代电子技术,2014(06).
10.16640/j.cnki.37-1222/t.2016.19.084
花勇(1979-),江苏淮安人,硕士研究生,讲师,主要从事机电一体化设计研究。