基于arduino的智能避障小车设计
2018-03-15陈天浩
陈天浩
摘 要:本文简要介绍了基于智能轮式移动机器人智能避障、循迹、遥控的设计与实现——一种基于Arduino新型集成开发环境的超声波避障小车的工作原理。其中包括对小车的执行组件、搭建结构、传感器、Arduino单片机软件编程及试验结果的介绍。
关键词:Arduino单片机;超声波传感器;避障;遥控;循迹
中图分类号:TP212 文献标识码:A 文章编号:1671-2064(2018)03-0027-02
1 设计背景
随着现代计算机技术的不断发展和普及,机器人的发展已经遍及近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。小到智能玩具,大到机械、电子、冶金、交通、宇航、国防等各个领域。在本次的设计中,我将设计出一个能够避障机器人,在具有这个基本功能的基础上,就可以为他附加更多的功能,赋予它更多的实用价值。
本设计题目为《基于arduino的智能避障小车设计》是以Arduino单片机为控制核心,主要研究小车的避障功能。利用超声波传感器检测道路上的障碍,然后把数据传送给单片机,当超声波检测到距离小车前方有障碍物时单片机就发出指令让小车左转一定角度,然后停止运行继续探测.如果前方没有障碍物就直走,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。该功能的小车能够实现在无人操作的情况下在比较宽阔平坦的环境中避开障碍物。当机器人在行走过程中遇到前方障碍时,能够根据有效范围内的距离作出相应处理,由单片机软件发出转弯、直行、后退指令,避免机器与障碍物相撞。
2 避障小车机器人的设计原理与方法
本设计中直流电机PWM控制系统的主要功能包括实现对直流电机的加速、减速,并且可以调整电机的转速,能够很方便的实现电机的智能控制。主体电路:即直流电机PWM控制驱动模块。这部分电路主要由Arduino Uno系统开发好的PWM控制函数配合定时器直接产生,配合对于的方向控制IO口可以直接控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。其间是通过ArduinoUno单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。该直流电机PWM控制系统由以下电路模块组成;设计控制部分:主要由Arduino Uno功能扩展板组成。直流电机PWM控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。智能小车采用后轮驱动,两个前轮各用一个电机,后轮是万向轮,起到支撑和转向的作用。
本小车的硬件部分分为几个模块:超声波传感器、Arduino单片机、电源、两个直流电动机、电机驱动板、车身。电源连接在Arduino单片机上给整个小车供电。小车以Arduino单片机为核心,连接电机驱动板控制两个直流电动机的运转,从而实现小车的前进。将超声波传感器安置在车身的最前端,用于探测前方是否有障碍物。当超声波传感器遇到障碍物,将反馈提供到单片机里从而做出向左旋转的反应,再次检测前方是否有障碍物,若有障碍物则继续旋转,没有障碍物则电机驱动器驱动电机前进,从而实现整个小车的避障功能。
3 实验及结果分析
3.1 预期目标
本次试验基本达到预期目标。
(1)在车前方没有障碍物时,小车沿直线向前走。(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:超声波检测到障碍物后,先向左边旋转,检测。如果旋转后前面没有检测障碍物,则沿直线向前走;如果旋转后检测到前方仍有障碍物,则继续旋转,如果前面没有障碍物,则沿直线向前行走。
但是该超声波避障小车还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一个方向转弯等,这些都是有待进一步发展和提高的。
3.2 遇到的问题和解决方法
在此之前我并没有制作过任何智能的机器人。初定避障小车这个题目时,最初采用乐高机器人搭建了一个循迹避障的机器人,由于操作较为简单,后来我决定尝试采用Arduino芯片,利用超声波传感器搭建出一台智能的避障小车。最初我对硬件的原理不够明白,不知道采用哪些原件,课程设计指导书上介绍的也并不详细,因此我利用大量时间去图书馆查阅了许多资料,对其电机驱动、Arduino控制板以及超声波传感器的引脚、电路设计等各方面都做了近一步的了解之后才开始进行小车的搭建。
在选择硬件设施上,我也花了很大功夫。在最初我设计了两个驱动方案的选择。一个是采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,一般用于高速大功率驱动电路。另个一就是采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。此驱动板体积小,重量轻,而且它有一个外加的续流二极管,可以防止电机线圈在断电时的方向电势损坏芯片,同时也也安装有散热片能使芯片温度降低,尽量防止他自动断电,让驱动性能更加稳定。板子设有两个电流反馈检测接口、内逻辑取电选择端、4个上拉电阻选择端、2路直流电机接口、控制电机方向指向灯等等。这个板子不仅适用于智能程控小车、轮式机器人等,还可以配合各种控制器使用。因此经过一番对比和考虑,最终我选择了L298N电机驱动板。之所以最终没有选择红外线传感,是因为红外线对使用环境有较高的要求,当遇上浅色或是深色的家居物品它无法反射回来,会造成机器人无法正常避障。而这款HC-SR04则采用仿生超声波技术,类似鲸鱼,蝙蝠采用声波来侦测判断障碍物以及及空间方位,该超声波避障模块包括超声波发射器,接收器和控制电路,灵敏度较高,但技术成本也较高。
在搭建方面,我完成程序的编译通电之后,小车发生了原地旋转的现象,经过观察,我发现小车在感应障碍物方面并没有问题。问题出现在左侧轮前转,而右侧轮后转。所以我将控制右侧车轮的电机的接线进行改接,这个问题便得以解决。
在软硬件调试方面,也存在一些小问题。首先是避障小车的旋转角度不够,也许是因为地面摩擦力的关系,小车的旋转角度并达不到我所设定的左转九十度。后来我又将程序进行改进,设置的旋转角度比九十度多一些,小车就可正常避障了。还有一个问题就是小车在遇到障碍物之后的反应速度并不是很快,需要障碍物在前面平行持续1,2秒才可以做出转向的判断,这个延迟反应也经常造成小车和障碍物发生碰撞,这也是我遇到的最大问题,在这个问题上我做了很多程序上的调试,但终究达不到很理想的效果,在后续的试验中,我准备尝试换一个感测避障模块进行尝试改进。
4 结语
在未来的社会中智能也是大势所趋,而智能车作为智能机器人中一类必不可少的组成部分。最近几年发展更是迅速,各个国家更是投入大量资金。它广泛涉及人工智能、计算机视觉、自动控制、精密仪器、传感和信息等一系列学科的创新研究,其研究成果可广泛应用于工业、农业、医药、军事、航空、信息技术等实际领域,智能机器人的发展水平可反映出一个国家的高科技水平和综合国力,是国家综合国力强大的标志,也是人类文明进步的标志。在我未来的工作与生活中,会越来越多的需要机器人代替人力来工作和完成一些难度较大或较为费力的任务,对这些实用的机器人的需求也会越来越大。因此,机器人研发的前景是不可估量的。
参考文献
[1]袁新娜,与红英,编着.超声波传感器在智能小车避障系统中的应用[A].中北大学,(2009)08-0085-04.
[2]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出社,2004.
[3]王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2002.
[4]安鹏,马伟.S12单片機模块应用及程序调试[J].电子产品世界,2006(211):162-163.
[5]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2000.