湯莉莉,黃 偉,王春波,方 規(guī)
(1.湖北大學知行學院,湖北武漢430011;2.湖北航天技術研究院總體設計所,湖北武漢430040)
WiFi物聯(lián)網小車設計方案,采用電腦上位機軟件通過無線WiFi控制小車的運動,采集小車的信息。與傳統(tǒng)的“智能小車”相比,主要特點在于使用32位高性能單片機控制、互聯(lián)網通信機制和電腦上位機軟件控制。此方案融合了電腦軟件、網絡通信、圖像處理、圖形顯示、運動控制、速度采集和溫度采集等技術,具有“物聯(lián)網”的相關特點。傳統(tǒng)的小車控制大多使用紅外通信,使用遙控器進行控制,不但受到距離的限制,而且遠沒有電腦軟件直觀美觀?;ヂ?lián)網通信使小車具備遠程控制的能力,這是紅外通信望塵莫及的。此外,本方案小車控制芯片采用Cortex-M3單片機,該單片機具有極豐富的外設,這給小車以后功能升級和擴展奠定了基礎。
WiFi物聯(lián)網小車設計方案需要達到的目的是使用電腦軟件(簡稱上位機)通過互聯(lián)網與小車控制端(簡稱下位機)進行通信,從而控制小車的運動,采集小車的速度、溫度以及視頻監(jiān)控等功能??傮w設計方案如圖1所示。圖中有2種通信模式可選,其中“WiFi局域網小車控制”是采用局域網的方式,將上位機、無線路由器和小車組成一個局域網,實現(xiàn)上位機控制小車的目的?!盎ヂ?lián)網遠程小車控制方案”是采用遠程互聯(lián)網的方式,將上位機與小車組成一個互聯(lián)網,從而實現(xiàn)遠程控制小車的目的。2種方案的技術類似,由于受到實驗條件的限制,本設計以局域網小車控制為例進行講解說明[1]。
圖1 總體方案設計
從通信的角度來講,無線路由器是上位機和下位機的數(shù)據中心,上位機通過Winsocket套接字編程創(chuàng)建一個網絡接口與路由器進行連接,小車端通過一個串口轉WiFi模塊,將串口數(shù)據通過WiFi模塊轉換成WiFi信號與路由器交互。此過程中,上位機和下位機WiFi模塊均有一個獨立的局域網IP地址。通過這個IP地址上位機和下位機便可以實現(xiàn)網絡通信。
從控制的角度來講,上位機是小車的控制中心,上位機通過“按鍵”發(fā)出指令給小車,小車收到指令后回傳相關數(shù)據給上位機,上位機收到小車回傳的數(shù)據,經過解析,將其顯示出來。
上位機主要功能是控制小車運動,顯示小車的速度、周圍的溫度以及小車采集的攝像。如圖2所示,這些功能由2個線程來完成分別是“圖像、聲音處理線程”和“小車運動控制,速度、溫度采集線程”等。前一個線程主要負責接收并處理有小車WiFi攝像頭傳過來的圖像信息和音頻信息,此部分主要涉及到DirectShow相關技術。后一個線程主要負責小車運動的控制,包括“前進、后退、左轉、右轉、停止、加速、減速、轉向燈和喇叭”以及接收處理小車回傳的溫度和速度信息等,并用虛擬圖表顯示出來。上位機軟件2個線程都創(chuàng)建了一個互不相干的套接字,前者用于與小車WiFi攝像頭進行數(shù)據交互,后者用于與小車串口轉WiFi模塊進行數(shù)據交互。
圖2 上位機軟件設計方案
下位機軟件設計,即 Cortex-M3核心處理器的程序設計,如圖3所示。設計方案主要包括:攝像的控制、小車4個電機的控制、DS18B20溫度數(shù)據的采集、紅外對管速度模塊數(shù)據的采集以及采集到數(shù)據后數(shù)據的處理打包發(fā)送等內容。其中攝像的控制、電機控制以及溫度和速度的采集均以函數(shù)的形式獲取,當下位機收到上位機的相關命令后,便調用相應的函數(shù)獲取到結果后用固定的格式發(fā)送給上位機。
圖3 下位機軟件方案
下位機實現(xiàn)WiFi與無線路由器通信的核心是串口轉WiFi模塊,通過這個模塊可以將下位機發(fā)送的串口數(shù)據直接轉換成WiFi信號發(fā)射出去。在使用此模塊之前可以通過多種方式進行配置,只要配置好了,便可以與制定的WiFi接入點進行網絡通信。
本方案是基于將電腦軟件、互聯(lián)網通信以及單片機技術相結合的理念構想設計的。從單片機的選型、通信方案的確定以及上位機軟件的設計等都與傳統(tǒng)的“智能小車”有很大的特別之處。以下是本設計方案的3大特色:
①小車的控制芯片采用功能強大的Cortex-M3 32位高性能、低功耗的處理器,該芯片具有豐富的外設,芯片還支持ARM公司提供的RLTx實時操作系統(tǒng),使用起來非常方便[2];
②通信方式采用TCP/IP通信協(xié)議,使用無線WiFi技術,實現(xiàn)對小車的控制。此通信方案(如圖1),在具有私有IP的情況下可以連接遠程網絡,可以通過遠程網絡遙控小車,這在“智能家居”和“遠程醫(yī)療”等領域將會有不錯的使用價值;
③利用電腦上位機管理軟件,使單片機控制、網絡通信和計算機軟件有效地結合。此方案設計上位機軟件來管理小車,符合將復雜的控制簡單化、界面化的設計理念。
Cortex-M3單片機強大豐富的外設資源為本設計的擴展奠定了強大的基礎。除了已實現(xiàn)的功能外,單片機還剩下2個串口未用,這使小車還可以添加如下功能[3]:GPS導航功能、語音功能以及GSM/GPRS發(fā)短信、打電話和無線上網功能。
方案難點有:
①上位機控制小車的運動對實時性的要求很高,而采集小車的速度并用表盤顯示出來,這對通信的穩(wěn)定性又提出了要求,而對于本來就存在延時的TCP/IP通信來說更是難上加難;
②圖像處理主要是借鑒網上DirectShow開發(fā)指南中提供的技術,很多內部的處理機制和信號過濾器的使用是難點;
③上位機速度表盤顯示速度不連貫,偶爾還有“卡死”的現(xiàn)象。
關鍵技術有:① 通信協(xié)議的制定;② 下位機采集并處理信息的方法;③ 上位機套接字編程,速度表盤動態(tài)顯示速度;④ 上位機顯示小車監(jiān)控視屏[4];⑤ 小車作為 WiFi接入點接入網絡[5]。
小車整體外觀如圖4和圖5所示,系統(tǒng)由上位機和小車組成,小車控制電路放在小車上。小車控制器主要包括:電機控制、測速、測溫、通信、圖像采集[6]和無線路由等。
圖4 WiFi物聯(lián)網小車
圖5 小車俯視圖
WiFi物聯(lián)網小車控制系統(tǒng)[7]上位機界面主要包括:網絡設置、功能設置、視屏監(jiān)控區(qū)、運動控制區(qū)、速度顯示區(qū)、溫度顯示區(qū)以及調試窗口。網絡設置用于上位機與小車進行網絡連接,輸入小車IP地址,點擊“連接”即可。視頻監(jiān)控[8]功能需要小車端安裝WiFi攝像頭,通過點擊視頻顯示框下面的“Call”按鈕可以連接WiFi攝像頭的IP地址,連接成功即可獲取攝像頭采集到的圖像。運動控制區(qū)用于控制小車的運動和顯示小車的轉向燈、喇叭等。速度顯示區(qū)是一個速度表盤用于顯示小車的實時速度。溫度顯示區(qū)是一個溫度計的圖形界面,可以顯示小車上DS18B20傳感器的溫度值。通信調試窗口在調試程序時使用。
4.2.1 網絡連接
網絡連接調試使用網上下載的TCP網絡調試助手,首先設置TCP調試助手為服務器模式,設置服務器監(jiān)聽 IP為192.168.16.110,端口設為345,連接網絡,此IP地址和端口號是UART轉WiFi模塊的IP地址和端口號,通過單片機用AT指令設定。網絡連接成功后,小車上位機會不斷的發(fā)送“014,SR1,TE1,029.6”,表示小車端當前的溫度是 29.6℃。
4.2.2 小車運動
小車運動控制部分的調試同樣采用上位機和TCP網絡調試助手進行調試。連接好網絡后,在上位機上分別點擊“↑”,“↓”,“←”,“→”,“█”,“加速”,“減速”。在調試助手接收窗口上依次接收到“:014,SG1,UP1,;”、“:014,SG1,DO1,;”、“:014,SG1,LE1,;”、“:014,SG1,RI1,;”、“:014,SG1,ST1,;”、“:014,SG1,AD1,;”和 “:014,SG1,SU1,;”,分別表示“前進”,“后退”,“左轉”,“右轉”,“停止”,“加速”和“減速”。
4.2.3 溫度和速度的顯示
溫度和速度的測試直接在小車的實際運動過程中進行測試。打開小車,連接上位機,用手捂住小車上的DS18B20,觀察上位機上溫度顯示區(qū)模擬溫度計的度數(shù)變化,然后用手轉動小車的輪子觀察上位機速度顯示區(qū)速度表盤指針的變化,改變溫度和速度的大小,發(fā)現(xiàn)速度表盤指針和溫度指示相應發(fā)生變化,因此可以判斷溫度和速度的傳輸沒有問題。
通過反復調試和修改代碼,可以實現(xiàn)預想的功能。通信穩(wěn)定,小車的控制可靠,數(shù)據采集的準確度和靈敏度達到要求。在不涉及到遠程聯(lián)網控制的情況下,系統(tǒng)的穩(wěn)定性和可靠性已經遠遠超過普通的紅外遙控小車和無線射頻遙控小車。方案的意義在于將電腦軟件技術、網絡技術和單片機技術有效結合,突出體現(xiàn)并且深化了“物聯(lián)網”的含義,未來必將廣泛應用于社會生活和生產中。方案的應用領域主要有無人駕駛、遠程監(jiān)控和智能家居等。
[1] 崔更申,孫安青.ARM 嵌入式系統(tǒng)開發(fā)與實踐[M].北京:中國電力出版社,2008.
[2] ARM Limited.Cortex-M3 Technical Reference Manual[S],2006.
[3] 黃天健.基于GSM模塊TC35T的無線遠程監(jiān)控[J].國外電子元器件,2004,10(10):31 -34.
[4] 怯肇乾.嵌入式系統(tǒng)硬件體系設計[M].北京:航空航天大學出版社,2007.
[5] 唐智靈.嵌入式中斷WiFi網卡驅動程序的開發(fā)[J].桂林電子工學院學報,2005,25(3):25-28.
[6] 梁 偉.Visual C++網絡編程靜電案例詳解[M].北京:清華大學出版社,2010.
[7] 徐亞卿.嵌入式移動終端內置 WiFi的低功耗設計[J].微計算機信息,2008,24(23):24 -27.
[8] 于 廣.精通網絡視頻核心開發(fā)技術[M].北京:電子工業(yè)出版社,2011.