APP下载

基于Arduino和树莓派的智能小车的设计与实现

2017-09-03吴波涛孔金平

电子设计工程 2017年15期
关键词:树莓舵机遥控

吴波涛,孔金平,王 湘

(中国卫星海上测控部 江苏 江阴 214431)

基于Arduino和树莓派的智能小车的设计与实现

吴波涛,孔金平,王 湘

(中国卫星海上测控部 江苏 江阴 214431)

为实现小车的远程遥控、视频传输和避障等功能,设计开发基于Arduino和树莓派的智能小车。以Arduino板为核心控制器,通过H桥路芯片实现对直流电机的控制以控制小车行驶;利用红外遥控器和接收器实现远程遥控小车方法;利用超声波测距模块实时检测小车前方障碍物距离,设计基于障碍物距离的避障算法实现避障功能;利用树莓派板块和RPi-Cam-Web-Interface实现车载摄像头实时视频网络传输功能。实验证明,该小车具备良好的远控功能,实时视频图像传输稳定,在侦察、消防等领域有广泛的应用基础。

智能车;网络实时视频;Arduino;树莓派;无线遥控

智能车也可称为轮式机器人,作为一种智能机器人的一个分支,在军事侦察、排爆、救灾抢险探测、工程勘探、工农业生产等领域有着广泛的应用[1-3]。随着电子技术的进步,智能车的研究得到迅速发展。当前,通过Arduino和树莓派等开源硬件和传感器,即可进行智能车的快速开发[4-7]。Arduino和树莓派做为开源平台,软硬件均开源,硬件接口丰富,可以免费获得平台电路原理图、开发接口等,非常适合二次开发。Arduino自带Bootloader程序,可直接通过USB接口下载程序至开发板,开发和修改程序十分方便[8-9]。而树莓派作为微型计算机则可以实现网络通信等更复杂的功能。

文中提出一种基于Arduino和树莓派的智能小车设计方案,以Arduino板做为核心控制器,实现对小车的驱动控制、遥控和避障等功能;以树莓派板做为视频流服务器,实现实时视频图像传输功能。

1 硬件设计

智能小车硬件构成包含底盘、3个车轮(两个前轮、一个后轮)、直流电机、Arduino控制板、树莓派板、舵机、蓝牙模块、红外接收模块,以及超声波传感器、摄像头等传感器,其中两前轮为驱动轮,分别由两个直流电机驱动,一个后轮为被动万向轮。控制板安装于底盘上,舵机和蓝牙安装于底盘前方。智能小车实物如图1所示。

图1 智能小车实物图

智能车系统框图如图2所示。主要包括电源、车体驱动、主控、传感器等部分,各部分设计如下:

图2 系统结构框图

电源部分:包括两节可充电3.7V锂电池、LM7805稳压芯片。两节3.7V锂电池提供7.4V的直流电压,通过LM7805稳压电路为系统提供线性直流稳压电源。

驱动部分:包括车底盘、L293D芯片、两个直流电机、两个前轮和一个万向轮。采用H桥L293D驱动电路驱动智能车的两个前驱动轮,结合后轮万向轮,实现智能车前后行驶、左右转向、原地转向的自由控制。

主控部分:包括Arduino UNO R3板、扩展板和树莓派板。Arduino控制板通过H桥L293D驱动芯片控制电机的正反转,从而达到控制智能车的全向行驶控制;接入超声波模块和舵机,实现对前方多个方向上障碍物的测距功能[10-14];接入红外接收模块和蓝牙模块,实现对遥控端信号(红外遥控键盘或手机蓝牙遥控信号)的接收功能,从而实现对智能车的远程遥控。树莓派板通过接入RPi摄像头获取实时视频信息,再通过WiFi模块连接网络,从而实现车载实时图像的传输[15]。

传感器部分:包括舵机、HC-SRO4超声波测距模块、RPi摄像头、红外接收模块和蓝牙模块。舵机安装于智能车底盘正前端,超声波测距模块安装于舵机上方,舵机转动带动超声波传感器转动循环检测前方各方向的障碍物距离。红外接收模块和蓝牙模块分别接收红外遥控器和手机蓝牙端的指令,由Arduino控制板转化为智能车行驶控制命令。

2 软件设计

2.1 驱动控制

L293D芯片可直接驱动两路直流电机。控制电机需使用L293D的3个端口:使能端EN、方向端IN1、IN2。使能端为高电平时电机才可能转动,IN1端口输入高电平、IN2端口输入低电平和IN1低、IN2高电平时,电机实现不同方向的转动。Arduino采用数字针脚连接IN2、IN2端口,控制电机转向;采用PWM针脚连接使能端,控制电机转速。智能车向前行驶的部分代码如下所示:

Void(){

digitalWrite(MotorRight1,LOW);//IN1端口写入低电平 控制右轮向前转,电机正转

digitalWrite(MotorRight2,HIGH);//IN2 端口写入高电平

analogWrite(MotorRPWM,100);//PWM 调速功能,调速范围0~1023

digitalWrite(MotorLeft1,HIGH);//IN3端口写入高电平 控制左轮向前转,电机反转

digitalWrite(MotorLeft2,LOW);//IN4 端口写入低电平

analogWrite(MotorLPWM,100);//PWM 调速功能,调速范围0~1023

}

digitalWrite()函数为Arduino开发环境自带的函数,可在Arduino相应针脚写入高(HIGH)电平或低(LOW)电平。调速通过在在PWM端输入不同的模拟数值实现,输入范围为0~1 023。

2.2 视频直播功能

视频图像实时传输采用 “WiFi+树莓派+RPi摄像头+RPi-Cam-Web-Interface”方式,树莓派通过RPi摄像头获取实时视频图像,在安装RPi-Cam-Web-Interface后,客户通过(计算机或手机)浏览器即可访问树莓派上的web服务器,获取网页、显示实时视频图像,客户端视频网页截图如图3所示。

图3 实时视频图像网页

树莓派板上的RPi-Cam-Web-Interface安装过程如下:

Sudo apt-get update

Sudo apt-get dist-upgrade

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git

cd RPi_Cam_Web_Interface

chmod u+x*.sh

./install.sh

在树莓派板Raspbian操作系统的命令中输入上述命令,完成系统的软件更新和安装。

2.3 遥控功能

智能车可通过红外和蓝牙两种方式进行遥控。红外遥控方式为智能车的Arduino主控板连接红外接收模块接收红外遥控器发出的控制信号,再将控制信号转换为电机控制信号。红外接收模块包含数字信号线、VCC、GND三根引脚。红外发射遥控器发射38K红外载波信号,由遥控器内编码芯片进行编码,此处采用NEC协议进行编码。在Arduino控制程序中导入红外接收库Irrecv,实现对红外遥控器信号的解码工作。红外控制智能车行驶的部分代码如下所示。

#include<IRremote.h>//导入红外接收库

int RECV_PIN=7;//红外接收模块连接的数字引脚

//******红外控制部分********

long advence=0x00FF629D;//红外遥控键盘数字编码与控制方向对应

long back = 0x00FFA857;long stop =0x00FF02FD;

long left = 0x00FFA25D;long right =0x00FFE21D;

IRrecv irrecv(RECV_PIN);

车载Arduino控制板通过红外接收模块收到红外遥控信号后,调用Irrecv完成解码,根据解码信息控制小车完成相应的动作。

红外遥控方式遥控范围限制在视距范围内,蓝牙遥控方式的距离则相对较远。蓝牙遥控在Arduino主控板安装蓝牙模块,采用串口协议通信。手机蓝牙与智能车载蓝牙配对成功后即可通过手机发送行驶命令至车载Arduino控制板,实现智能车控制。

2.4 避障功能

智能车通过安装于车底盘前的超声波传感器在舵机的转动下,循环检测左、前、右3个方向的障碍物距离,根据3个方向的距离对行驶控制做出判断,使智能车能自动避开障碍行驶。设计基于前方障碍物距离的避障算法,算法流程图如图4所示。程序开始后,首先检测正前方障碍物距离,如果距离大于25cm则继续向前行驶,如果小于10cm里面则向后,如果距离在此之间则先后检测小车左方和右方的障碍物距离。如果左右两侧的距离均小于10cm,则小车后退;若右侧距离大于左侧距离,则小车右转;反之,则左转。

图4 避障算法流程图

3 结束语

文中设计并开发了一种基于Arduino和树莓派的智能车,可实现智能车的远程控制、自主避障行驶和实时视频传输功能。Arduino作为主控板,通过H桥路芯片实现对智能车驱动电机的控制,接入红外接收模块、蓝牙模块实现远程遥控信号的接收功能,用户通过红外遥控键盘和手机蓝牙即可实现对智能车的远程控制。接入超声波测距模块和舵机实现对车前方障碍物测距功能。设计了基于前方障碍物距离的避障行驶算法,确保智能车自主行驶过程中避开障碍物。利用树莓派、RPi摄像头和RPi-Cam-Web-Interface实现智能车前方实时图像采集和无线网络传输功能,用户在多种终端可通过浏览器获取智能车传回的视频。实验表明智能车具有较好的遥控和避障性能,传输的视频流畅稳定,在监控、侦察和消防等领域都有着较为广阔的应用前景。

[1]屈宝鹏,张喜凤,卜文锐.基于 ATMEGA328的视频监控智能车的设计与实现 [J].现代电子技术, 2015,38(19):160-162.

[2]周宁.割草机器人割台设计与运动控制研究[D].南京:江苏大学,2005.

[3]刘南君,毛培宏.基于 ArduinoMega2560单片机的简易智能割草机器人的设计与实现[J].农业科学与技术:英文版, 2013(1):162-165.

[4]杨继志,郭敬.Arduino的互动产品平台创新设计[J].单片机与嵌入式系统应用,2012,12(4):39-41.

[5]纪欣然.基于 Arduino开发环境的智能寻光小车设计[J].现代电子技术, 2012,35(15):161-163.

[6]赵津,朱三超.基于 Arduino单片机的智能避障小车设计[J].自动化与仪表, 2013,28(5):1-4.

[7]崔才豪,张玉华,杨树财.利用 Arduino控制板的光引导运动小车设计 [J].自动化仪表,2011,32(9):5-7.

[8]BANZI M.Getting started with Arduino [M].2nd ed.USA:Make Books,2011.

[9]AtmelCorporation.ATmega48PA/88PA/168PA/328PA datasheet[R].US:Atmel Corporation,2009.

[10]邱白晶,钱国宏,周宁,等.割草机器人避障控制[J].江苏大学学报:自然科学版,2005,26(4):285-288.

[11]蔡睿妍.基于Arduino的舵机控制系统设计[J].电脑知识与技术, 2012,8(15):3719-3721.

[12]卞云松.基于 Arduino单片机的避障小车机器人[J].自动化技术与应用, 2014,33(1):16-19.

[13]张敏,寇为刚.基于超声波的自动测距系统设计[J].自动化技术与应用, 2011(4):106-110.

[14]戈惠梅,徐晓慧,顾志华,等.基于Arduino的智能小车避障系统的设计 [J].现代电子技术,2014,37(11):118-120.

[15]高峰,陈雄,陈婉秋.基于树莓派B+微处理器的视频检测跟踪系统[J].电视技术, 2015,39(19):105-108.

Design and implementation of intelligent car based on Arduino and Raspberry Pi

WU Bo-tao, KONG Jin-ping, WANG Xiang
(China Satellite Maritime Tracking and Control,Jiangyin 214431, China)

To realize remote control, live-video transmission and obstacle avoidance function, a small car based on Arduino and Raspberry Pi is designed.Arduino board is chosen as the main control unit,and controls the DC motor to drive the car by using H bridge chip.Remote infrared control unit and infrared receiver are used to realize remote control of the car.Ultrasonic range finder module is used to detect distance of obstacles in front of the car,and an obstacle distance based algorithm is designed to avoid obstacle during car advancing.And a Raspberry Pi board and RPi-Cam-Web-Interface is used to realize live-video transmission through networks.Experiment shows that the remote control function of the car works quit well,and the live video from the car through networks is fluent.This intelligent car can be widely used in surveillance,firefighting and many other fields.

intelligent car; internet live video; Arduino; Raspberry Pi; remote control

TN99

:A

:1674-6236(2017)15-0058-04

2016-07-07稿件编号:201607060

吴波涛(1987—),男,江西南城人,硕士,工程师。研究方向:自动控制、机器人。

猜你喜欢

树莓舵机遥控
如何遥控引爆的
含齿隙弹载舵机的全局反步模糊自适应控制
基于树莓派的骑行智能头盔设计
他是如何遥控引爆的
基于dsPIC单片机的飞艇舵机控制实现
基于树莓派的远程家居控制系统的设计
基于高速同步485总线通信的多通道舵机控制器设计
响应面法优化红树莓酒发酵工艺
基于云模型的舵机同步控制
遥控赛车