采用WRTnode开源硬件实现多功能智能小车*

2016-06-01 00:46陈建刚纪嘉铭叶森蔡泰杰蔡鸿鑫林加群
单片机与嵌入式系统应用 2016年3期
关键词:智能小车

陈建刚,纪嘉铭,叶森,蔡泰杰,蔡鸿鑫,林加群

(深圳信息职业技术学院 计算机学院,深圳 518172)



采用WRTnode开源硬件实现多功能智能小车*

陈建刚,纪嘉铭,叶森,蔡泰杰,蔡鸿鑫,林加群

(深圳信息职业技术学院 计算机学院,深圳 518172)

摘要:提出一种采用WRTnode开源硬件实现多功能智能小车方案,通过多种方式(安卓APP、微信、PC)远程控制小车行径,具有远程控制、视频监控、移动侦测等多种功能。该方案适用于智能家居、安保、野外探测、儿童高端玩具等领域,具有广阔的应用前景。

关键词:WRTnode;智能小车;移动侦测

引言

WiFi智能小车已有多种实现方式[1-4],从51单片机到Arduino开发板,主控模块包括STM32、DB120、wr703n等。但这些智能小车功能比较单一,主要实现小车自身的运动和摄像功能,且只能在WiFi状态下控制。主控模块性能不足,像wr703n基于Atheros AR9331处理器,Flash一般为4 MB,内存为16 MB,用于网络数据传输基本没有问题,但如果用于数据处理,尤其是图像数据处理,则运算和存储都不够。所以WiFi智能小车并没有形成市场规模,而智能小车的研究对于汽车的自动驾驶、智能机器人的控制都具有很高的参考价值,WRTnode开源硬件[5]的问世为智能小车发展提供了一个良好的契机。

WRTnode是一款由北京豌豆机器小组发布的基于OpenWrt开源系统的MT7620开源硬件,其强大的网络交互能力,加上功耗低、性价比高、计算能力强等一系列优势,被认为作为机器人的底层平台大有可为。WRTnode引出芯片所有接口,能方便地连接和驱动USB设备,比如摄像头、声卡,从而可以同时采集图像和语音,并将多媒体流实时播放出来。

本文采用WRTnode作为主控板实现多功能智能WiFi小车,能实现远程控制、视频监控、智能网关等功能,适用于智能家居、安保、野外探测、儿童高端玩具等领域,具有广阔的应用前景。

1系统设计

图1 采用WRTnode的多功能智能小车系统结构图

多功能智能WiFi小车的系统结构如图1所示,小车可以实现远程视频监控、移动侦测、环境感知检测、多向机械云台、实时电机驱动等功能。用户接入小车有两种方式:一种是通过外网远程接入,另一种是通过小车WiFi局域网接入。在终端用户接通小车后,采用智能手机的APP作为上位机,通过WiFi以Socket方式把特定数据包发送给主控板WRTnode,主控板收到命令后,再通过ser2net插件把数据包通过串口发送给Arduino开发板,Arduino开发板接收指令执行相应操作,如控制小车行走、旋转等,或控制云台以调整摄像机角度,或读取传感器数据并通过串口传回主控板,主控板再将数据发送手机显示等。

2多功能智能小车涉及的关键技术

基于WRTnode开源硬件,在OpenWRT系统定制功能模块,包括远程控制、网络摄像、移动侦测、无线中继、控制Arduino的网络转串口等功能。

(1) 摄像监控功能

采用OpenWRT系统的插件mjpg-streamer实现摄像头监控,mjpg-streamer是一款在Linux下的以HTTP方式监控的软件,其支持通过HTTP UVC方式访问兼容的摄像头,这种方式可以让手机、电脑等设备直接观察摄像头图像内容。设置好摄像参数(包括分辨率、帧速、端口及需要认证的用户名和密码信息)后,在PC上直接通过浏览器访问小车主控板WRTnode的LAN口地址,如图2所示。

图2 通过浏览器访问多功能小车效果图

(2) 移动侦测功能

使用mjpeg-streamer实现摄像头监控,虽然实现简单,但无法做到异常自动报警。OpenWRT的motion插件用于移动侦测功能,允许在指定区域能识别图像的变化,检测运动物体的存在。motion插件自带web管理、web监控,支持密码登录、定时录像、定时拍照、异动快照、报警录像等功能。借助于motion插件能实现当摄像头中的监控画面有变化时,自动拍照保存,并通过微信方式进行自动报警。移动侦测功能适合于小车在静止状态时使用。

在安装好motion插件后,对配置文件motion.conf中的on_picture_save属性进行设置:

on_picture_save /root/uppic.sh %f

该配置项含义为一旦有照片被拍下,则执行/root/uppic.sh命令,其中%f参数会自动转化为当前图片文件的路径并传给uppic.sh,该脚本文件通过curl命令执行向web服务器(如阿里云服务器)上传发生移动侦测时所生成的图片文件。而该web服务器设置为微信公众号第三方平台,当有图片上传时,公众号就会向和该小车绑定的关注用户推送报警信息,这样用户就能知道有异常发生,进而查看该上传图片。图3为移动侦测功能交互示意图,图4为移动侦测示例。

图3 移动侦测功能交互示意图

图4 移动侦测示例

(3) 无线中继功能

无线中继功能实现以智能小车为STA(客户端),接入上一级无线路由器(家庭网关)。在主控板WRTnode通过增加WiFi-iface实现,增加后系统有两个WiFi-iface配置,一个提供WiFi供设备接入,另一个用来中继上一级路由。通过中继家庭网关WiFi实现对家里设备的远程控制,作为可移动的智能家居设备的远程控制端,在智能家居设备较多时,能够降低中继网关布控难度,要控制哪个设备就移动到对应设备附近,通过小车摄像头还可实时看到控制效果,如空调是否正常打开、窗帘是否拉开等。

主要实施步骤为:

① 在/etc/config/network中增加wwan接口。

② 通过iwinfo命令搜索到需要无线中继的上一级WiFi信息,包括ssid、mac和加密方式等。

③ 修改配置文件/etc/config/wireless,主要增加:

option ssid ′′#上一级WiFi的ssid

option bssid ′′#上一级WiFi的mac地址

option encryption ′psk-mixed′#上一级WiFi的加密方式

option key ′′#上一级WiFi的密钥

使用WiFi命令重启openwrt系统的WiFi,就能中继到上一级路由。

(4) 控制Arduino的网络转串口功能

小车行径是通过Arduino单板来控制,控制终端发出的指令通过WiFi网络发送到WRTnode主控板,网络数据和TTL数据相互转换,通过TTL与Arduino通信,搭建上位机(控制终端)与下位机(Arduino开发板)的通信桥梁。OpenWRT系统中的ser2net插件能够实现该功能。

先通过dmesg | grep console命令确定WRTnode通过TTL互连时对应的串口为ttyS0,安装ser2net插件,在配置文件/etc/ser2net.conf中设置好/dev/ttyS0波特率为9600:

2001:raw:0: /dev/ttyS0:9600

#其中2001为监听端口

启动ser2net,并通过netstat-an命令查看2001端口是否已经开启。这时通过安卓APP以客户端方式连接监听端口,建立网络(TCP/IP)与串口(TTL)的连接通道后就能下发指令控制小车行径。

(5) 远程接入控制

接入小车主控板WiFi控制小车的设计已经很普遍,但能够远程控制小车的方案不多,本文采用OpenWRT系统的N2N插件实现对小车的远程控制。如图5所示,N2N是一个双层架构的VPN,由super node和edge node两部分节点组成,super node对外提供端口,供edge node注册接入N2N的VPN中,接入N2N虚拟网内的设备能够相互通信,N2N利用tap/tun虚拟网卡,可以很容易地移植到嵌入式设备。N2N组建VPN的优势在于:开源,能够修改代码;N2N的加解密过程由edge node实现,只有接入用户知道协商好的共享密钥,super node不知道密钥,加密算法采用twofish,其好处为开源、简便、处理速度快;super node可自行创建,只要有公网IP即可。

图5 N2N网络示意图

安装完成之后先配置N2N网络,编辑/etc/config/n2n文件即可,内容如下:

config edge

option ipaddr'10.0.0.1'#设置N2N网络edge节点IP

option supernode? '' #超级节点IP,需要公网IP地址,如阿里云

option port'' #设置N2N网络端口,即超级节点监听端口

option community'openwrt'# N2N网络名称

option key''#加入上述名称的N2N网络所需密钥

3小车控制模块

本文对淘宝网购的慧净电子WiFi小车进行改造,该控制模块采用Arduino开发板,能够实现控制小车行径、摄像云台、障碍物检测及避障等功能,这块功能当前还没做修改,代码也开源,故不再论述。改造后的小车如图6所示。

图6 采用WRTnode的多功能智能小车图

4终端控制功能

本文利用两个开源APP-WiFi小车和智能创客的摄像监控,开发出能拍照、录像和采用按键控制/重力控制/语音控制等的多功能小车安卓APP,该APP可以在小车WiFi下运行,也可以通过加入N2N网络对小车进行远程控制。控制界面如图7所示。

结语

本文采用开源的OpenWRT系统搭建多功能WiFi小车,通过N2N网络实现远程控制,通过motion

Multi-function Intelligent Car Using WRTnode Open Source Hardware

Chen Jiangang,Ji Jiaming,Ye Sen,Cai Taijie,Cai Hongxin,Lin Jiaqun

(Dep of Computer Applications,Shenzhen Institute of Information Technology,Shenzhen 518172,China)

Abstract:A multi-function intelligent car using WRTnode (a kind of open source hardware) is proposed.It can be controlled through a variety of ways (such as Android APP,Wechat,PC).It has the functions of remote control,video surveillance,motion detection and so on.The intelligent car can be used in the smart home,security,field exploration,high-end children′s toys and other fields,which has broad application prospects.

Key words:WRTnode;intelligent car;motion detection

中图分类号:TP312

文献标识码:A

* 基金项目:“攀登计划”广东大学生科技创新培育项目(pdjh2015b0790);深圳信息职业技术学院首届“深信2188”创客大赛;2014年广东省大学生创新创业训练计划项目;2014年深圳信息职业技术学院大学生创新创业训练计划项目;2015年广东省大学生创新创业训练计划项目。

猜你喜欢
智能小车
基于WiFi技术的智能手机双控视频小车
基于FPGA的智能玩具设计
基于灰度传感器的机器人路径跟随功能设计与实现
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
智能安全防盗探测小车
一种基于STC89C52单片机的简易智能小车的实现
基于视觉反馈的智能环境侦察车的研究
智能小车的设计与应用