基于Arduino开发板的智能小车设计
2015-12-16聂茹,严明
聂 茹,严 明
(1.华南理工大学广州学院,广州510800;2.沈阳军区65042部队,沈阳110035)
基于Arduino开发板的智能小车设计
聂 茹1,严 明2
(1.华南理工大学广州学院,广州510800;2.沈阳军区65042部队,沈阳110035)
随着科技发展,芯片技术已经越来越与人们的生活紧密联系,它给人们的生活带来了不少的便利,不管是智能手机还是相机和电脑,都离不开芯片技术的发展与进步。Arduino成本低廉,开发简单方便,而且功能强大,可以非常方便的连接各种传感器,是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的开发板)和软件(arduino IDE)。这里使用Arduino开发平台,充分利用其各种便利特性设计了一款智能小车,这款智能小车可以利用传感器自动采集环境数据从而按照程序自动运行,具有宽广潜力和应用价值。
Arduino开发板;智能小车;芯片
1 引 言
信息化时代,计算机技术和芯片技术的进步,各种科技产品,其中不管是电脑,电视,空调,手机还是相机,都离不开芯片技术的发展和进步。芯片从很早的六七十年代简单的单片机,到现在先进的处理器,已经变得越来越强大。现在51单片机早已为人们所熟知,学习电子专业的大学生们基本上51单片机都是他们的必修课。但是随着人们的要求越来越高,对芯片的性能要求也不断提高,51单片机陈旧的结构和落后的性能已经越来越不能满足人们对知识的渴望,所以一种崭新的硬件平台应运而生。其开发简单,操作方便,硬件电路成本低廉,非常适于开发和设计,用它可以方便的完成各种以前需要复杂步骤的功能,它就是Arduino开发平台,是一个开源平台,适合没有基础的学生学习和使用。Arduino是一块基于开放源代码的USB接口Simple I/O接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道),该系统的硬件主要由Arduino UNO主控板、Arduino Xbee传感器扩展板、蓝牙串口模块和数字温度传感器组成[1]。基于Arduino开发板设计的智能小车,具有以下功能:寻线功能,也就是会跟着地上的黑线来走;其次是红外避障功能,利用红外传感器来感知外界环境从而避开障碍;超声波测距功能,利用超声波传感器来测量距离;使用BS18B20温度传感器测量温度的功能和用红外遥控器进行小车控制。
2 基于Arduino开发板的智能小车控制系统硬件设计
2.1 智能小车控制系统整体设计
2.1.1 寻线功能的实现
小车想要完成寻线功能,希望它能够跟着黑线走,那么它首先也要能够“看见”那些黑线,因此需要用到传感器。传感器,简单的说就是一种检测装置,能够感受到被测量的信息,并将检测到的信息,按一定规律变换成为电信号或者是其他所需形式的信息输出,以满足信息的传输,处理,存储,显示,记录,控制等要求。这里选择一个红外巡线传感器,而这个红外传感器就将充当智能小车的眼睛来检测黑线。红外巡线传感器模块的原理是利用红外对管检测自己发出的红外线反射光(深色反射弱,浅色反射强)。寻线传感器可以帮助机器人进行白线或者黑线跟踪,可以检测白底中的黑线,也可以检测黑底中的白线,检测到黑线返回低电平。
设计的小车采用前置驱动,由两个电机分别控制左右两个前轮,后面是个万向轮,可以自由转动。当确定了小车模型之后,如果小车的两个前轮同时以相同的速度向前转的话那么小车就往前走。当小车右轮向前转左轮不动那么小车就会向左转,同理小车左轮向前转右轮不动那么小车就向右转,两个轮子同时以相同的速度向后转那么小车就会倒车。接下来就是由传感器控制小车运行了,在这里设置三个寻线传感器,三个传感器也就有三种情况,分别是每个传感器遇到黑线而两外两个没有遇到黑线时的三种情况。中间一个用于检测黑线,当中间的一个检测到黑线时就返回低电平,此时小车直走;当黑线向左边转弯,此时小车若直走则左边的传感器则会检测到黑线,此时返回低电平,此时就要右轮转,左轮停,小车就会向左转弯;当转过弯后左边的传感器已经检测不到黑线,中间的又能检测到黑线了,那么就继续向前直走。同理,当黑线向右转弯时右边的传感器也会检测到黑线,返回低电平,此时小车左轮转,右轮停止,那么小车就会像右转,直到中间的传感器检测到黑线为止。
2.1.2 避障功能的实现
至于小车的避障功能,首先要选用传感器,在这里选用红外避障传感器,由一个红外发射管和一个红外接收管构成。工作原理是:传感器发射红外线,根据反射红外光探测前方障碍物,无障碍物时输出高电平,有障碍时输出低电平。这样看来其实这个传感器的原理和之前的寻线传感器是差不多的,因此可以如法炮制,先将传感器装在小车的前端来感受环境变化,在这里一样使用三个传感器,分别放在正前方,左前方,右前方。这里情况会比前面的寻线功能要稍微复杂一点,因为寻线只有一条,但是这里有可能是只有一个传感器被遮挡,也有可能有两个传感器被遮挡,也有可能是三个传感器都被遮挡,因此就需要把这几种情况都要考虑进去。
2.1.3 超声波测距功能的实现
对于超声波测距功能,使用的是HC-SR04,它是最常见的超声波传感器之一,价格便宜,好用。超声波的发射和接收采用HC-SR04模块,模块包括超声波发射器、接收器和控制电路[2]。超声波的原理是非常简单的,想要在Arduino平台中实现也是一件非常方便的事情,不过因为要显示到电脑上,所以别忘了串口的波特率设置。
2.1.4 温度传感功能的实现
温度传感功能,在这里选用的是DS18B20数字温度传感器。DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器[3],DS18B20具有测温系统简单、测温精度高、连接方便、占用接口线少等优点[4]。从主机CPU到DSl820仅需一条线(和地线),DSl820的电源可以由数据线提供而不需要外部电源。因为每一个DSl820在出厂时已经给定了唯一的序号,因此任意多个DSl820可以连接在同一条单线总线上。DSl820的测量范围从-55℃到+125℃增量值为0.5℃,可在ls(典型值)内把温度变换成数字。简单的理解DS18B20测温原理就是芯片把感知到的温度换成数值放在数据寄存器里面,要想得到寄存器里面的数据,只有按照DALLAS规定的一种时序才能正确传出数据,这种时序被称为单总线,CPU就可通过单总线协议,取得DS18B20里面的温度值。
2.1.5 红外控制功能的实现
为了实现红外控制功能,所选择的是38K红外接收模块,并且还带有一个小遥控器以方便控制。这里要实现的目标是对小车行走进行控制,也就是控制小车前进,后退,左转,右转。前面的寻线也好,红外避障也好,都提供了一个对小车行走的控制函数,在这里进行调用就好了,这不是问题。限于红外发射的本质,也就是红外线本身的限制,所以在控制范围上是有限制的,就好比家里的电视遥控器,必须对准了才能遥控,所以把红外接收头装在小车后面,在后面进行控制。
2.2 智能小车系统结构框图
图1是小车被三个传感器控制的运行状态,另外还有两个传感器的结果是要输出到电脑用专用软件的监视窗口去进行监视的,如图2所示。
图1 小车控制框图Fig.1 Control car block diagram
图2 小车控制框图Fig.2 Control car block diagram
3 基于Arduino开发板的智能小车控制系统软件设计
3.1 超声波传感器程序设计
超声波传感器测距是通过先发射超声波然后检测传回的超声波所耗费的时间从而计算距离,图3是其流程图。
图3 超声波测距图Fig.3 Ultrasonic ranging chart
3.2 红外遥控程序设计
红外模块,因为配备了一个遥控器,所以先读取出每个遥控中按钮的值,然后将每个按钮的值记录下来,将每个值作为一个操作命令。当遥控器中的某个按钮按下时,就会发射出那个对应的值,然后当红外接收头接收到信号时,处理器就会读取到那个值并按照程序做出相应的反应,图4是红外控制逻辑框图。
图4 红外遥控图Fig.4 Infrared remote control chart
4 结束语
对基于Arduino开发板的智能小车系统的硬件和软件进行设计,实现了小车的自动循迹、避障、超声波测距等功能,在设计中软件采用模块化设计思想。实验结果表明,利用传感器自动采集环境数据从而按照程序自动运行。设计的智能小车操作简单,稳定可靠,该系统具有宽广潜力和应用价值。
[1] 郑昊,钟志峰,郭昊.基于Arduino/Android的蓝牙通信系统设计[J].物联网技术,2012,(5):50-51.Zheng Hao,ZHONG Zhifeng,GUO Hao.Design of Bluetooth communication system based on Arduino/Android[J].Internet of Things Technologies,2012(5):50-51.
[2] 苏琳.基于HC-SR04的超声波测距器的设计[J].科技信息,2012(9):124-125.SU Lin.Design of ultrasonic range finder based on HCSR04[J].Science&Technology Information,2012(9):124-125.
[3] 赵海兰.智能温度传感器DS18B20[J].电子世界,2003(7):46-47.ZHAO Hailan.Intelligent temperature sensor DS18B20[J].Electronics World,2003(7):46-47.
[4] 高云红.数字温度传感器在多点温度测量系统中的应用[J].沈阳航空工业学院学报,2006,23(2):61-63.GAO Yunhong.Application of digital temperature sensor in multi-point temperature measurement system[J].Journal of Shenyang Institute of Aeronautical Engineering,2006,23(2):61-63.
Design of Intelligent Car Based on Arduino Development Board
Nie Ru1,Yan Ming2
(1.Guangzhou College of South China University of Technology,Guangzhou 510800,China;2.The Army 65042,Shenyang Military Region,Shenyang 110035,China)
As the development of science and technology,the microchip technology provides more convenient for our life and becomes closer to us,not only the telephone but computers and digital cameras can't work without the microchip's development.Arduino,cheap and easy to develop with high performance,can be easily connected to kinds of sensors.It is really an open-source digital platform including hardware and software(arduino IDE).Now,the arduino board is used to develop an intelligent car which can automatically acquire the environmental date by sensors and runs as per the program.So,it has good potential and wide application.
Arduino development board;Intelligent car;Microchip
10.3969/j.issn.1002-2279.2015.04.023
TN91
A
1002-2279(2015)04-0089-03
聂茹(1982-),女,江西人,硕士研究生,讲师,主研方向:智能控制。
2014-10-08