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