基于Arduino的智能双传感器避障小车设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于Arduino的智能双传感器避障小车设计【摘要】以Arduino为基础,应用超声波反射与红外线反射原理设计智能避障小车。当小车在运行过程中,通过超声波传感器检测到的障碍物位置比较,选择无障碍方向行进一段距离。当小车在行进时遇到障碍物停止但又未及时停下,小车与障碍物距离将缩短会发生碰撞,此时,当快要碰撞时,小车上的红外传感器感应到近距离变化,便启动电机反转给小车一个克服运动惯性的动力,使其脱离碰撞的可能,从而完成一系列的避障动作。【关键词】Arduino单片机;超声波;红外,避障随着机械技术,越来越多产品要求轻薄小巧节省能源,同时还要求高性能智能化,而微电子技术的高速发展,使微电子技术在机械系统中应用的越来越广泛,满足了对产品智能化的要求,出现了各式各样的机电一体化系统。机电一体化的内容并不是简单的组合,而是彼此互补,有机结合,从而使机构和性能达到最优化。作为机电一体化的应用,本文介绍的基于Arduino的智能避障小车就是一个机电一体化结合的例子。在2005年,意大利一家高科技设计学校两位教师MassimoBanzi跟DavidCuartielles为解决学生在实验过程中找不到便宜好用的微处理器的问题,创建了Arduino开源项目,从此,开源硬件平台Arduino诞生了。Arduino的硬件是一个包含AtmelAVR单片机为核心的开发板和其他各种I/O电路板,软件的开发工具是使用基于Java框架编写的IDE,由于Arduino是在AtmelAVR单片机基础上的封装,所以编程语言风格与C语言类似。Arduino其调用的类库都做过二次封装,有C语言的基础就能够进行软件程序的编写,这也是Arduino较为流行的原因。一、Arduino板本小车的控制由ArduinoUNO板(图1)来完成。图1开发板采用AtemlAvRATmega328处理器,本质就是一个将CPU、内存、外设等封装好的单芯片计算机。ATmega328的工作的电压范围从1.8V到5.5V,在不同电压下的工作频率不一样。为了测试编写的应用程序和模块,通过USB串口与PC连接通讯,将程序发送至Arduino中测试。连接PC的USB为开发板提供电压5.0V最大电流0.5A的直流电源,在程序或模块测试完成后开始独立运行是可更换为外置电源为其提供电能,ArduinoI/O电路板有一个稳压器,允许同时接入多个电源,电路会自动选择最高可用电压的电源,然后接入稳压器。ArduinoUNO提供了四组扩展插口,使Arduino方便连接外部电路。电路板上边缘部分包括数字引脚,接地连接,模拟输入,USART的TX和RX引脚。下边缘部分包括模拟电源和模拟输入接口。二、避障实现(一)超声波模块超声波是频率高于20KHz的机械波形,其波长短,衍射小,定向性好,反射效果显著。传感器发出高频定向声波遇到障碍物后反射回传感器,利用多普勒原理确定障碍物与小车距离。小车使用HC-SR04超声波检测传感器,采用DC5V供电,感应角度不超过15度,探测距离2cm-400cm。传感器有VCC、tring(控制部分)、echo(接收部分)和GND四个引脚。模块包含发射器、接收器和集成控制电路,MAX232产生的较高电压加到发射部分的换能器上发射出超声波,接收端接收的声波通过运放电路分析信号。相关算法主要调用digitalWrite()函数,控制LOW和HIGHT的低电压发射动作,用delayMicroseconds()设定发射时间,维持LOW的电压,读取传感器echo口时间,将时间差转换成距离,检测前方距离,触发设定的if(Front_Distance2)条件,满足则停止电机。图2(二)红外模块红外线是波长范围在760mm到1mm之间的电磁波,红外距离检测也是光电子半导体器件之一。其价格便宜,精度较高,安全易于制造,应用广泛,可用于距离检测避障。小车避障选用微雪InfraredReflectiveSensor,传感器由TCRT5000光电传感器和LM393电压比较器组成,检测距离4mm-13mm,有数字和模拟输出和GND、VCC四个端口。当小车与障碍物距离较近进入红外感应范围时,要避开碰撞,传感器启动电机反转以增加克服惯性的动力。调节传感器检测范围调节到13mm,输出高电平,当距离靠近,遇到反射信号,digitalRead收到的电平变化为低,通过Reverse()动作启动电机反转。(三)电机运行避障小车使用两个直流电机作为车轮动力。在单一电源下直流H桥集成功放电路驱动的使用可以让电机实现双向运转的功能。小车使用L293D双通道直流电机驱动芯片,内部有双重H桥集成功放电路,允许电压范围在4.5V-36V。当小车运动时需要程序控制电机的运转,直接控制调节电机电流会造成功耗高发热大,若将通过电机的平均电压电流做比较,则大部分时间接通电源的电机比较少数接通电源的电机大,当电机不接通电源则没有能量消耗。使用“intLeft_motor_P=数字端口号”语句设定左电机正极,“intLeft_motor_N=端口号”设定负极,右电机同理。使用digitalWrite(Right_motor_P,HIGH)和digitalWrite(Right_motor_N,LOW)让右电机旋转实现前进动作,analogWrite(Right_motor_P,150)和analogWrite(Right_motor_N,10)做PWM比例0-255之间调速,所取数字根据左右电机和车轮路面不同调整,左电机同理。由此小车可利用PWM技术调节直流电机转速以控制小车电机的运动状态。为了检测前方障碍,将超声波传感器安装在小车舵机控制的活动云台上,通过舵机选择的角度旋转,检测障碍物情况。舵机内部包含一个直流电机、控制电路、齿轮减速器和电位器等原件,舵机旋转舵角一般不超过180度。舵机的旋转由外部控制器通过脉冲比例调制信号控制,利用20ms周期时间中1-2ms之间部分对信息编码。程序调用Servo.h舵机函数,定义一个使用Servo的对象。如“Servoa”或“Servob”,在loop循环中设置执行转动角度“a.write(0)”或者“b.write(180)”,让舵机朝不同角度转动。三、小车运行避障通过相关算法实现以下流程。在试验测试中,小车与地面的摩擦足够克服惯性使小车在遇到障碍前立即停下,将小车放置在一定倾斜坡面,使小车向下坡运行间接增加所具有惯性,在坡下放置障碍。此时小车不能立即停下了,当进入了红外感应范围时,小车电机反转阻止小车前进与障碍碰撞。红外避障距离较近,惯性过大会来不及启动避障机制导致避障失败,红外传感器对材质的光线吸收较为敏感,表面较暗对避障影响较大,电平无较大变化会导致传感器检测不出障碍。四、结论Arduino避障小车使用超声波传感器来避开与障碍物的碰撞,同时为了实现智能避障,当小车没有及时停止时依靠所安装的红外感应模块做反向推力再次避障,实现多模块配合的避障功能,达到基于Arduino小车智能避障的目的。在生产生活的应用中可以克服红外模块缺陷,更换其他不受光线影响的传感器(例如激光等),使不同模块在不同情况下都能发挥同一功能。参考文献:[1]张建民等.机电一体化系统设计(修订版)[M].北京理工大学出版社,2011[2]GordonMcComb.Arduino机器人制作指南[M].科学出版社,2014[4]MichaelMcRoberts.Arduino从基础到实践[M].电子工业出版社,2013[4]DaleWheat.Arduino技术内幕[M].人民邮电出版社,2013[5]马文蔚,解希顺,周雨清.物理学(第五版)下册[M].高等教育出版社,2010[6]苏琳.基于HC-SR04的超声波测距器的设计[J].机械与电子,2012,9:124~125[7]李军,申俊泽.超声测距模块HC-SR04的超声波测距仪设计[J].单片机与嵌入式系统应用,2011,10:77~78[8]张兴,黄如,刘晓彦.微电子学概论(第三版)[M].北京大学出版社,2010[9]深圳市微雪电子有限公司[DB/OL].Infrared-Reflective-Sensorhttp://[10]丹尼斯?克拉克,迈克尔?欧文斯.机器人设计与控制[M].科学出版社,2004[11]蔡睿妍.基于Arduino的舵机控制系统设计[J].计算机工程应用技术,2012,15(8):3719~3721作者简介:肖宇,男,就读于武汉纺织大学机械设计及其自动化专业,研究方向:机电一体化设计。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功