基于Arduino平台的避障小车系统设计

2017-10-21 07:44周游王鑫卫星王旨祎
电脑知识与技术 2017年18期

周游 王鑫 卫星 王旨祎

摘要:避障是智能小车、智能机器、自动驾驶的关键核心技术之一,该文基于ArduinoUNOIK3开发板进行系统设计,利用-人體红外传感器模块、蜂鸣器模块、液晶显示模块和移Lq-LED数码管模块设计实现该系统。本文通过超声波避障技术,在避障小车行驶过程中,遇到障碍物自动报警,根据算法自动调整距离和运动方向以防发生碰撞。

关键词:Arduino;避障小车;系统设计;避障报警;超声波避障

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)18-0180-02

制造智能机器人一直是人类的追求目标,随着近年来科技水平的提升,机器人等智能设备发展迅速,已经在改变着我们的生活习惯和生活方式。避障小车利用各种传感器采集获取周围环境信息,处理得到信息数据,做出相应的动作,从而到达了感知能力,并具有一定的自适应能力,能够根据给定的指令完成与之相对应动作的综合体。随着各种各样传感器的出现以及工艺日趋成熟,为小车避障报警和自动避障提供了各种解决设计思路。2005年冬天,Massimo Banzi跟David Cuartielles开发了Arduino开发板,它是一个开源电子原型的软硬体平台,由各种型号的Arduino板和Arduino IDE组成,类似于Java,C语言的开发环境,特点为易于上手并且方便灵活,通过测距传感器、红外线传感器、温湿度传感器等传感器来感知环境。现在Arduino已经进人了硬件、物联网等开发领域,被越来越多的专业硬件开发者使用,用来开发他们的项目、产品,在大学里,自动化、软件,甚至艺术专业,相继开展了Arduino相关的开发课程。

1系统总体设计

系统采用Arduino UNO R3开发板进行电路设计,ArduinoUNOR3开发板可以外接的设备包括:键盘,鼠标,屏幕等,通过额外的端口来外接新的扩展板。开发板具有14路数字I/O,6路模拟输人,一个频率为16MHZ的晶体震荡器,还有USB接口、ICSP header、电源插座和复位按钮。

系统总体模块设计主要包括以下几个部分:UNO控制板、人体红外传感器模块、蜂鸣器模块、液晶显示模块、移位LED数码管模块、电源模块。小车以Arduino为控制核心,用单片机产生PWM波,控制小车速度,利用传感器,分析判断采集到的信号、测距避障,通过控制驱动电机来调整小车转向,使小车实现对障碍物的避障。避障小车总体模块设计图如图1所示。

2核心模块设计

2.1避障报警设计

报警模块包含两部分:指示灯和蜂鸣器模块。根据算法,当前方障碍物距离小于30cm,指示灯会一直闪烁红色用来提醒避障,同时蜂鸣器发出蜂鸣声。依据算法策略,避障小车会自动后退,当进入正常行驶模式时指示灯停止闪烁熄灭,蜂鸣器停止发声。若避障小车后退一定距离后,后方与障碍物距离小于30cm,指示灯还会一直闪烁红色,蜂鸣器还会发出蜂鸣声,直到避障小车行驶与障碍物的距离大于30em。避障报警流程图如图2所示。

2.2超声波避障设计

测量距离的方法有很多种,当前有红外线测距、激光测距和超声波测距这三种测量距离的方法。相对应地,测距传感器也分为三种:红外线传感器、激光传感器和超声波测距传感器。

超声波测距传感器是一种典型的非接触测量方法,对外界光线、色彩和电磁场不敏感,指向性强、结构简单、成本低廉、能量消耗缓慢和能在介质中传播较远距离,并且可以很好地识别透明及漫反射性差的物体。因为在空气传播中超声波会不断地衰减,因此,程序根据起伏回波信号而测算的回波到达时间会有一定误差;在接收过程中,会把超声波脉冲回波给展宽,造成测距的分辨率受影响,以及近距离测量得到的值也会偏差。

避障小车系统采用超声波测距传感器,模块为移位LED数码管(Shiftout Module),此模块测距获得距离值可以保障智能小车在前进、左转及右转时的安全,小车扩展了角度传感器(Rotation Sensor),能够实现对周围障物的360度检测。

蜂鸣器实现关键代码如下所示:

3结论

本文对避障小车的超声波避障技术和蜂鸣器报警技术进行了研究与设计,其中,研究的障碍物环境为静态、单一的,此后可以把动态的、不确定的环境作为研究内容,通过引人视觉传感器得到更丰富的采集信息,提高避障小车的性能。今后可以针对这个方面做进一步的研究与设计。endprint