陳建剛,紀嘉銘,葉森,蔡泰杰,蔡鴻鑫,林加群
(深圳信息職業技術學院 計算機學院,深圳 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年廣東省大學生創新創業訓練計劃項目。