陳建剛,紀(jì)嘉銘,葉森,蔡泰杰,蔡鴻鑫,林加群
(深圳信息職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)學(xué)院,深圳 518172)
?
采用WRTnode開源硬件實(shí)現(xiàn)多功能智能小車*
陳建剛,紀(jì)嘉銘,葉森,蔡泰杰,蔡鴻鑫,林加群
(深圳信息職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)學(xué)院,深圳 518172)
摘要:提出一種采用WRTnode開源硬件實(shí)現(xiàn)多功能智能小車方案,通過多種方式(安卓APP、微信、PC)遠(yuǎn)程控制小車行徑,具有遠(yuǎn)程控制、視頻監(jiān)控、移動(dòng)偵測等多種功能。該方案適用于智能家居、安保、野外探測、兒童高端玩具等領(lǐng)域,具有廣闊的應(yīng)用前景。
關(guān)鍵詞:WRTnode;智能小車;移動(dòng)偵測
引言
WiFi智能小車已有多種實(shí)現(xiàn)方式[1-4],從51單片機(jī)到Arduino開發(fā)板,主控模塊包括STM32、DB120、wr703n等。但這些智能小車功能比較單一,主要實(shí)現(xiàn)小車自身的運(yùn)動(dòng)和攝像功能,且只能在WiFi狀態(tài)下控制。主控模塊性能不足,像wr703n基于Atheros AR9331處理器,F(xiàn)lash一般為4 MB,內(nèi)存為16 MB,用于網(wǎng)絡(luò)數(shù)據(jù)傳輸基本沒有問題,但如果用于數(shù)據(jù)處理,尤其是圖像數(shù)據(jù)處理,則運(yùn)算和存儲(chǔ)都不夠。所以WiFi智能小車并沒有形成市場規(guī)模,而智能小車的研究對(duì)于汽車的自動(dòng)駕駛、智能機(jī)器人的控制都具有很高的參考價(jià)值,WRTnode開源硬件[5]的問世為智能小車發(fā)展提供了一個(gè)良好的契機(jī)。
WRTnode是一款由北京豌豆機(jī)器小組發(fā)布的基于OpenWrt開源系統(tǒng)的MT7620開源硬件,其強(qiáng)大的網(wǎng)絡(luò)交互能力,加上功耗低、性價(jià)比高、計(jì)算能力強(qiáng)等一系列優(yōu)勢,被認(rèn)為作為機(jī)器人的底層平臺(tái)大有可為。WRTnode引出芯片所有接口,能方便地連接和驅(qū)動(dòng)USB設(shè)備,比如攝像頭、聲卡,從而可以同時(shí)采集圖像和語音,并將多媒體流實(shí)時(shí)播放出來。
本文采用WRTnode作為主控板實(shí)現(xiàn)多功能智能WiFi小車,能實(shí)現(xiàn)遠(yuǎn)程控制、視頻監(jiān)控、智能網(wǎng)關(guān)等功能,適用于智能家居、安保、野外探測、兒童高端玩具等領(lǐng)域,具有廣闊的應(yīng)用前景。
1系統(tǒng)設(shè)計(jì)
圖1 采用WRTnode的多功能智能小車系統(tǒng)結(jié)構(gòu)圖
多功能智能WiFi小車的系統(tǒng)結(jié)構(gòu)如圖1所示,小車可以實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控、移動(dòng)偵測、環(huán)境感知檢測、多向機(jī)械云臺(tái)、實(shí)時(shí)電機(jī)驅(qū)動(dòng)等功能。用戶接入小車有兩種方式:一種是通過外網(wǎng)遠(yuǎn)程接入,另一種是通過小車WiFi局域網(wǎng)接入。在終端用戶接通小車后,采用智能手機(jī)的APP作為上位機(jī),通過WiFi以Socket方式把特定數(shù)據(jù)包發(fā)送給主控板WRTnode,主控板收到命令后,再通過ser2net插件把數(shù)據(jù)包通過串口發(fā)送給Arduino開發(fā)板,Arduino開發(fā)板接收指令執(zhí)行相應(yīng)操作,如控制小車行走、旋轉(zhuǎn)等,或控制云臺(tái)以調(diào)整攝像機(jī)角度,或讀取傳感器數(shù)據(jù)并通過串口傳回主控板,主控板再將數(shù)據(jù)發(fā)送手機(jī)顯示等。
2多功能智能小車涉及的關(guān)鍵技術(shù)
基于WRTnode開源硬件,在OpenWRT系統(tǒng)定制功能模塊,包括遠(yuǎn)程控制、網(wǎng)絡(luò)攝像、移動(dòng)偵測、無線中繼、控制Arduino的網(wǎng)絡(luò)轉(zhuǎn)串口等功能。
(1) 攝像監(jiān)控功能
采用OpenWRT系統(tǒng)的插件mjpg-streamer實(shí)現(xiàn)攝像頭監(jiān)控,mjpg-streamer是一款在Linux下的以HTTP方式監(jiān)控的軟件,其支持通過HTTP UVC方式訪問兼容的攝像頭,這種方式可以讓手機(jī)、電腦等設(shè)備直接觀察攝像頭圖像內(nèi)容。設(shè)置好攝像參數(shù)(包括分辨率、幀速、端口及需要認(rèn)證的用戶名和密碼信息)后,在PC上直接通過瀏覽器訪問小車主控板WRTnode的LAN口地址,如圖2所示。
圖2 通過瀏覽器訪問多功能小車效果圖
(2) 移動(dòng)偵測功能
使用mjpeg-streamer實(shí)現(xiàn)攝像頭監(jiān)控,雖然實(shí)現(xiàn)簡單,但無法做到異常自動(dòng)報(bào)警。OpenWRT的motion插件用于移動(dòng)偵測功能,允許在指定區(qū)域能識(shí)別圖像的變化,檢測運(yùn)動(dòng)物體的存在。motion插件自帶web管理、web監(jiān)控,支持密碼登錄、定時(shí)錄像、定時(shí)拍照、異動(dòng)快照、報(bào)警錄像等功能。借助于motion插件能實(shí)現(xiàn)當(dāng)攝像頭中的監(jiān)控畫面有變化時(shí),自動(dòng)拍照保存,并通過微信方式進(jìn)行自動(dòng)報(bào)警。移動(dòng)偵測功能適合于小車在靜止?fàn)顟B(tài)時(shí)使用。
在安裝好motion插件后,對(duì)配置文件motion.conf中的on_picture_save屬性進(jìn)行設(shè)置:
on_picture_save /root/uppic.sh %f
該配置項(xiàng)含義為一旦有照片被拍下,則執(zhí)行/root/uppic.sh命令,其中%f參數(shù)會(huì)自動(dòng)轉(zhuǎn)化為當(dāng)前圖片文件的路徑并傳給uppic.sh,該腳本文件通過curl命令執(zhí)行向web服務(wù)器(如阿里云服務(wù)器)上傳發(fā)生移動(dòng)偵測時(shí)所生成的圖片文件。而該web服務(wù)器設(shè)置為微信公眾號(hào)第三方平臺(tái),當(dāng)有圖片上傳時(shí),公眾號(hào)就會(huì)向和該小車綁定的關(guān)注用戶推送報(bào)警信息,這樣用戶就能知道有異常發(fā)生,進(jìn)而查看該上傳圖片。圖3為移動(dòng)偵測功能交互示意圖,圖4為移動(dòng)偵測示例。
圖3 移動(dòng)偵測功能交互示意圖
圖4 移動(dòng)偵測示例
(3) 無線中繼功能
無線中繼功能實(shí)現(xiàn)以智能小車為STA(客戶端),接入上一級(jí)無線路由器(家庭網(wǎng)關(guān))。在主控板WRTnode通過增加WiFi-iface實(shí)現(xiàn),增加后系統(tǒng)有兩個(gè)WiFi-iface配置,一個(gè)提供WiFi供設(shè)備接入,另一個(gè)用來中繼上一級(jí)路由。通過中繼家庭網(wǎng)關(guān)WiFi實(shí)現(xiàn)對(duì)家里設(shè)備的遠(yuǎn)程控制,作為可移動(dòng)的智能家居設(shè)備的遠(yuǎn)程控制端,在智能家居設(shè)備較多時(shí),能夠降低中繼網(wǎng)關(guān)布控難度,要控制哪個(gè)設(shè)備就移動(dòng)到對(duì)應(yīng)設(shè)備附近,通過小車攝像頭還可實(shí)時(shí)看到控制效果,如空調(diào)是否正常打開、窗簾是否拉開等。
主要實(shí)施步驟為:
① 在/etc/config/network中增加wwan接口。
② 通過iwinfo命令搜索到需要無線中繼的上一級(jí)WiFi信息,包括ssid、mac和加密方式等。
③ 修改配置文件/etc/config/wireless,主要增加:
option ssid ′′#上一級(jí)WiFi的ssid
option bssid ′′#上一級(jí)WiFi的mac地址
option encryption ′psk-mixed′#上一級(jí)WiFi的加密方式
option key ′′#上一級(jí)WiFi的密鑰
使用WiFi命令重啟openwrt系統(tǒng)的WiFi,就能中繼到上一級(jí)路由。
(4) 控制Arduino的網(wǎng)絡(luò)轉(zhuǎn)串口功能
小車行徑是通過Arduino單板來控制,控制終端發(fā)出的指令通過WiFi網(wǎng)絡(luò)發(fā)送到WRTnode主控板,網(wǎng)絡(luò)數(shù)據(jù)和TTL數(shù)據(jù)相互轉(zhuǎn)換,通過TTL與Arduino通信,搭建上位機(jī)(控制終端)與下位機(jī)(Arduino開發(fā)板)的通信橋梁。OpenWRT系統(tǒng)中的ser2net插件能夠?qū)崿F(xiàn)該功能。
先通過dmesg | grep console命令確定WRTnode通過TTL互連時(shí)對(duì)應(yīng)的串口為ttyS0,安裝ser2net插件,在配置文件/etc/ser2net.conf中設(shè)置好/dev/ttyS0波特率為9600:
2001:raw:0: /dev/ttyS0:9600
#其中2001為監(jiān)聽端口
啟動(dòng)ser2net,并通過netstat-an命令查看2001端口是否已經(jīng)開啟。這時(shí)通過安卓APP以客戶端方式連接監(jiān)聽端口,建立網(wǎng)絡(luò)(TCP/IP)與串口(TTL)的連接通道后就能下發(fā)指令控制小車行徑。
(5) 遠(yuǎn)程接入控制
接入小車主控板WiFi控制小車的設(shè)計(jì)已經(jīng)很普遍,但能夠遠(yuǎn)程控制小車的方案不多,本文采用OpenWRT系統(tǒng)的N2N插件實(shí)現(xiàn)對(duì)小車的遠(yuǎn)程控制。如圖5所示,N2N是一個(gè)雙層架構(gòu)的VPN,由super node和edge node兩部分節(jié)點(diǎn)組成,super node對(duì)外提供端口,供edge node注冊(cè)接入N2N的VPN中,接入N2N虛擬網(wǎng)內(nèi)的設(shè)備能夠相互通信,N2N利用tap/tun虛擬網(wǎng)卡,可以很容易地移植到嵌入式設(shè)備。N2N組建VPN的優(yōu)勢在于:開源,能夠修改代碼;N2N的加解密過程由edge node實(shí)現(xiàn),只有接入用戶知道協(xié)商好的共享密鑰,super node不知道密鑰,加密算法采用twofish,其好處為開源、簡便、處理速度快;super node可自行創(chuàng)建,只要有公網(wǎng)IP即可。
圖5 N2N網(wǎng)絡(luò)示意圖
安裝完成之后先配置N2N網(wǎng)絡(luò),編輯/etc/config/n2n文件即可,內(nèi)容如下:
config edge
option ipaddr'10.0.0.1'#設(shè)置N2N網(wǎng)絡(luò)edge節(jié)點(diǎn)IP
option supernode? '' #超級(jí)節(jié)點(diǎn)IP,需要公網(wǎng)IP地址,如阿里云
option port'' #設(shè)置N2N網(wǎng)絡(luò)端口,即超級(jí)節(jié)點(diǎn)監(jiān)聽端口
option community'openwrt'# N2N網(wǎng)絡(luò)名稱
option key''#加入上述名稱的N2N網(wǎng)絡(luò)所需密鑰
3小車控制模塊
本文對(duì)淘寶網(wǎng)購的慧凈電子WiFi小車進(jìn)行改造,該控制模塊采用Arduino開發(fā)板,能夠?qū)崿F(xiàn)控制小車行徑、攝像云臺(tái)、障礙物檢測及避障等功能,這塊功能當(dāng)前還沒做修改,代碼也開源,故不再論述。改造后的小車如圖6所示。
圖6 采用WRTnode的多功能智能小車圖
4終端控制功能
本文利用兩個(gè)開源APP-WiFi小車和智能創(chuàng)客的攝像監(jiān)控,開發(fā)出能拍照、錄像和采用按鍵控制/重力控制/語音控制等的多功能小車安卓APP,該APP可以在小車WiFi下運(yùn)行,也可以通過加入N2N網(wǎng)絡(luò)對(duì)小車進(jìn)行遠(yuǎn)程控制。控制界面如圖7所示。
結(jié)語
本文采用開源的OpenWRT系統(tǒng)搭建多功能WiFi小車,通過N2N網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制,通過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
中圖分類號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A
* 基金項(xiàng)目:“攀登計(jì)劃”廣東大學(xué)生科技創(chuàng)新培育項(xiàng)目(pdjh2015b0790);深圳信息職業(yè)技術(shù)學(xué)院首屆“深信2188”創(chuàng)客大賽;2014年廣東省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目;2014年深圳信息職業(yè)技術(shù)學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目;2015年廣東省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目。