采用Cortex-M3單片機(jī)設(shè)計(jì)的WiFi物聯(lián)網(wǎng)小車
掃描二維碼
隨時(shí)隨地手機(jī)看文章
WiFi物聯(lián)網(wǎng)小車設(shè)計(jì)方案,采用電腦上位機(jī)軟件通過無線WiFi 控制小車的運(yùn)動(dòng),采集小車的信息。與傳統(tǒng)的“智能小車”相比,主要特點(diǎn)在于使用32 位高性能單片機(jī)控制、互聯(lián)網(wǎng)通信機(jī)制和電腦上位機(jī)軟件控制。此方案融合了電腦軟件、網(wǎng)絡(luò)通信、圖像處理、圖形顯示、運(yùn)動(dòng)控制、速度采集和溫度采集等技術(shù),具有“物聯(lián)網(wǎng)”的相關(guān)特點(diǎn)。傳統(tǒng)的小車控制大多使用紅外通信,使用遙控器進(jìn)行控制,不但受到距離的限制,而且遠(yuǎn)沒有電腦軟件直觀美觀。互聯(lián)網(wǎng)通信使小車具備遠(yuǎn)程控制的能力,這是紅外通信望塵莫及的。此外,本方案小車控制芯片采用Cortex-M3單片機(jī),該單片機(jī)具有極豐富的外設(shè),這給小車以后功能升級(jí)和擴(kuò)展奠定了基礎(chǔ)。
1 總體設(shè)計(jì)方案
WiFi 物聯(lián)網(wǎng)小車設(shè)計(jì)方案需要達(dá)到的目的是使用電腦軟件(簡(jiǎn)稱上位機(jī))通過互聯(lián)網(wǎng)與小車控制端(簡(jiǎn)稱下位機(jī)) 進(jìn)行通信,從而控制小車的運(yùn)動(dòng),采集小車的速度、溫度以及視頻監(jiān)控等功能??傮w設(shè)計(jì)方案如圖1 所示。圖中有2 種通信模式可選,其中“WiFi 局域網(wǎng)小車控制”是采用局域網(wǎng)的方式,將上位機(jī)、無線路由器和小車組成一個(gè)局域網(wǎng),實(shí)現(xiàn)上位機(jī)控制小車的目的。“互聯(lián)網(wǎng)遠(yuǎn)程小車控制方案”是采用遠(yuǎn)程互聯(lián)網(wǎng)的方式,將上位機(jī)與小車組成一個(gè)互聯(lián)網(wǎng),從而實(shí)現(xiàn)遠(yuǎn)程控制小車的目的。2 種方案的技術(shù)類似,由于受到實(shí)驗(yàn)條件的限制,本設(shè)計(jì)以局域網(wǎng)小車控制為例進(jìn)行講解說明。
圖1 總體方案設(shè)計(jì)
從通信的角度來講,無線路由器是上位機(jī)和下位機(jī)的數(shù)據(jù)中心,上位機(jī)通過Winsocket 套接字編程創(chuàng)建一個(gè)網(wǎng)絡(luò)接口與路由器進(jìn)行連接,小車端通過一個(gè)串口轉(zhuǎn)WiFi 模塊,將串口數(shù)據(jù)通過WiFi 模塊轉(zhuǎn)換成WiFi 信號(hào)與路由器交互。此過程中,上位機(jī)和下位機(jī)WiFi 模塊均有一個(gè)獨(dú)立的局域網(wǎng)IP 地址。通過這個(gè)IP 地址上位機(jī)和下位機(jī)便可以實(shí)現(xiàn)網(wǎng)絡(luò)通信。
從控制的角度來講,上位機(jī)是小車的控制中心,上位機(jī)通過“按鍵”發(fā)出指令給小車,小車收到指令后回傳相關(guān)數(shù)據(jù)給上位機(jī),上位機(jī)收到小車回傳的數(shù)據(jù),經(jīng)過解析,將其顯示出來。
1.1 上位機(jī)軟件設(shè)計(jì)
上位機(jī)主要功能是控制小車運(yùn)動(dòng),顯示小車的速度、周圍的溫度以及小車采集的攝像。如圖2 所示,這些功能由2 個(gè)線程來完成分別是“圖像、聲音處理線程”和“小車運(yùn)動(dòng)控制,速度、溫度采集線程”等。前一個(gè)線程主要負(fù)責(zé)接收并處理有小車WiFi攝像頭傳過來的圖像信息和音頻信息,此部分主要涉及到DirectShow 相關(guān)技術(shù)。后一個(gè)線程主要負(fù)責(zé)小車運(yùn)動(dòng)的控制,包括“前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、加速、減速、轉(zhuǎn)向燈和喇叭”以及接收處理小車回傳的溫度和速度信息等,并用虛擬圖表顯示出來。上位機(jī)軟件2 個(gè)線程都創(chuàng)建了一個(gè)互不相干的套接字,前者用于與小車WiFi 攝像頭進(jìn)行數(shù)據(jù)交互,后者用于與小車串口轉(zhuǎn)WiFi 模塊進(jìn)行數(shù)據(jù)交互。
圖2 上位機(jī)軟件設(shè)計(jì)方案
1.2 下位機(jī)軟件設(shè)計(jì)
下位機(jī)軟件設(shè)計(jì),即Cortex-M3 核心處理器的程序設(shè)計(jì),如圖3 所示。設(shè)計(jì)方案主要包括:攝像的控制、小車4 個(gè)電機(jī)的控制、DS18B20 溫度數(shù)據(jù)的采集、紅外對(duì)管速度模塊數(shù)據(jù)的采集以及采集到數(shù)據(jù)后數(shù)據(jù)的處理打包發(fā)送等內(nèi)容。其中攝像的控制、電機(jī)控制以及溫度和速度的采集均以函數(shù)的形式獲取,當(dāng)下位機(jī)收到上位機(jī)的相關(guān)命令后,便調(diào)用相應(yīng)的函數(shù)獲取到結(jié)果后用固定的格式發(fā)送給上位機(jī)。
圖3 下位機(jī)軟件方案
下位機(jī)實(shí)現(xiàn)WiFi 與無線路由器通信的核心是串口轉(zhuǎn)WiFi 模塊,通過這個(gè)模塊可以將下位機(jī)發(fā)送的串口數(shù)據(jù)直接轉(zhuǎn)換成WiFi 信號(hào)發(fā)射出去。在使用此模塊之前可以通過多種方式進(jìn)行配置,只要配置好了,便可以與制定的WiFi 接入點(diǎn)進(jìn)行網(wǎng)絡(luò)通信。
2 設(shè)計(jì)方案特點(diǎn)及擴(kuò)展說明
2.1 特點(diǎn)介紹
本方案是基于將電腦軟件、互聯(lián)網(wǎng)通信以及單片機(jī)技術(shù)相結(jié)合的理念構(gòu)想設(shè)計(jì)的。從單片機(jī)的選型、通信方案的確定以及上位機(jī)軟件的設(shè)計(jì)等都與傳統(tǒng)的“智能小車”有很大的特別之處。以下是本設(shè)計(jì)方案的3 大特色:
?、?小車的控制芯片采用功能強(qiáng)大的Cortex-M332 位高性能、低功耗的處理器,該芯片具有豐富的外設(shè),芯片還支持ARM 公司提供的RLTx 實(shí)時(shí)操作系統(tǒng),使用起來非常方便;
?、?通信方式采用TCP / IP 通信協(xié)議,使用無線WiFi 技術(shù),實(shí)現(xiàn)對(duì)小車的控制。此通信方案(如圖1),在具有私有IP 的情況下可以連接遠(yuǎn)程網(wǎng)絡(luò),可以通過遠(yuǎn)程網(wǎng)絡(luò)遙控小車,這在“智能家居”和“遠(yuǎn)程醫(yī)療”等領(lǐng)域?qū)?huì)有不錯(cuò)的使用價(jià)值;
?、?利用電腦上位機(jī)管理軟件,使單片機(jī)控制、網(wǎng)絡(luò)通信和計(jì)算機(jī)軟件有效地結(jié)合。此方案設(shè)計(jì)上位機(jī)軟件來管理小車,符合將復(fù)雜的控制簡(jiǎn)單化、界面化的設(shè)計(jì)理念。[!--empirenews.page--]
2.2 擴(kuò)展說明
Cortex-M3 單片機(jī)強(qiáng)大豐富的外設(shè)資源為本設(shè)計(jì)的擴(kuò)展奠定了強(qiáng)大的基礎(chǔ)。除了已實(shí)現(xiàn)的功能外,單片機(jī)還剩下2 個(gè)串口未用,這使小車還可以添加如下功能:GPS 導(dǎo)航功能、語音功能以及GSM/GPRS 發(fā)短信、打電話和無線上網(wǎng)功能。
3 方案難點(diǎn)及關(guān)鍵技術(shù)
方案難點(diǎn)有:
?、?上位機(jī)控制小車的運(yùn)動(dòng)對(duì)實(shí)時(shí)性的要求很高,而采集小車的速度并用表盤顯示出來,這對(duì)通信的穩(wěn)定性又提出了要求,而對(duì)于本來就存在延時(shí)的TCP / IP 通信來說更是難上加難;
?、?圖像處理主要是借鑒網(wǎng)上DirectShow 開發(fā)指南中提供的技術(shù),很多內(nèi)部的處理機(jī)制和信號(hào)過濾器的使用是難點(diǎn);
?、?上位機(jī)速度表盤顯示速度不連貫,偶爾還有“卡死”的現(xiàn)象。
關(guān)鍵技術(shù)有:① 通信協(xié)議的制定;② 下位機(jī)采集并處理信息的方法;③ 上位機(jī)套接字編程,速度表盤動(dòng)態(tài)顯示速度;④ 上位機(jī)顯示小車監(jiān)控視屏;⑤ 小車作為WiFi 接入點(diǎn)接入網(wǎng)絡(luò)。
4 系統(tǒng)仿真結(jié)果分析
4.1 WiFi 物聯(lián)網(wǎng)小車整體外觀
小車整體外觀如圖4 和圖5 所示,系統(tǒng)由上位機(jī)和小車組成,小車控制電路放在小車上。小車控制器主要包括:電機(jī)控制、測(cè)速、測(cè)溫、通信、圖像采集和無線路由等。
圖4 WiFi 物聯(lián)網(wǎng)小車
圖5 小車俯視圖
4.2 系統(tǒng)整體調(diào)試
WiFi 物聯(lián)網(wǎng)小車控制系統(tǒng)上位機(jī)界面主要包括:網(wǎng)絡(luò)設(shè)置、功能設(shè)置、視屏監(jiān)控區(qū)、運(yùn)動(dòng)控制區(qū)、速度顯示區(qū)、溫度顯示區(qū)以及調(diào)試窗口。網(wǎng)絡(luò)設(shè)置用于上位機(jī)與小車進(jìn)行網(wǎng)絡(luò)連接,輸入小車IP 地址,點(diǎn)擊“連接”即可。視頻監(jiān)控功能需要小車端安裝WiFi攝像頭,通過點(diǎn)擊視頻顯示框下面的“Call”按鈕可以連接WiFi 攝像頭的IP 地址,連接成功即可獲取攝像頭采集到的圖像。運(yùn)動(dòng)控制區(qū)用于控制小車的運(yùn)動(dòng)和顯示小車的轉(zhuǎn)向燈、喇叭等。速度顯示區(qū)是一個(gè)速度表盤用于顯示小車的實(shí)時(shí)速度。溫度顯示區(qū)是一個(gè)溫度計(jì)的圖形界面,可以顯示小車上DS18B20 傳感器的溫度值。通信調(diào)試窗口在調(diào)試程序時(shí)使用。
4.2.1 網(wǎng)絡(luò)連接
網(wǎng)絡(luò)連接調(diào)試使用網(wǎng)上下載的TCP網(wǎng)絡(luò)調(diào)試助手,首先設(shè)置TCP調(diào)試助手為服務(wù)器模式,設(shè)置服務(wù)器監(jiān)聽I(yíng)P為192.168.16.110,端口設(shè)為345,連接網(wǎng)絡(luò),此IP 地址和端口號(hào)是UART 轉(zhuǎn)WiFi 模塊的IP地址和端口號(hào),通過單片機(jī)用AT 指令設(shè)定。網(wǎng)絡(luò)連接成功后,小車上位機(jī)會(huì)不斷的發(fā)送“014,SR1,TE1,029.6”,表示小車端當(dāng)前的溫度是29.6 ℃。
4.2.2 小車運(yùn)動(dòng)
小車運(yùn)動(dòng)控制部分的調(diào)試同樣采用上位機(jī)和TCP 網(wǎng)絡(luò)調(diào)試助手進(jìn)行調(diào)試。連接好網(wǎng)絡(luò)后,在上位機(jī)上分別點(diǎn)擊“↑”,“↓”,“←”,“→”,“█”,“加速”,“減速”。在調(diào)試助手接收窗口上依次接收到“:014,SG1,UP1,;” 、“:014,SG1,DO1,;”、“:014,SG1, LE1,;”、“: 014, SG1, RI1,;”、“: 014, SG1,ST1,;”、“: 014, SG1, AD1,;” 和“: 014, SG1,SU1,;”,分別表示“前進(jìn)”,“后退”,“左轉(zhuǎn)”,“右轉(zhuǎn)”,“停止”,“加速”和“減速”。
4.2.3 溫度和速度的顯示
溫度和速度的測(cè)試直接在小車的實(shí)際運(yùn)動(dòng)過程中進(jìn)行測(cè)試。打開小車,連接上位機(jī),用手捂住小車上的DS18B20,觀察上位機(jī)上溫度顯示區(qū)模擬溫度計(jì)的度數(shù)變化,然后用手轉(zhuǎn)動(dòng)小車的輪子觀察上位機(jī)速度顯示區(qū)速度表盤指針的變化,改變溫度和速度的大小,發(fā)現(xiàn)速度表盤指針和溫度指示相應(yīng)發(fā)生變化,因此可以判斷溫度和速度的傳輸沒有問題。
5 結(jié)束語
通過反復(fù)調(diào)試和修改代碼,可以實(shí)現(xiàn)預(yù)想的功能。通信穩(wěn)定,小車的控制可靠,數(shù)據(jù)采集的準(zhǔn)確度和靈敏度達(dá)到要求。在不涉及到遠(yuǎn)程聯(lián)網(wǎng)控制的情況下,系統(tǒng)的穩(wěn)定性和可靠性已經(jīng)遠(yuǎn)遠(yuǎn)超過普通的紅外遙控小車和無線射頻遙控小車。方案的意義在于將電腦軟件技術(shù)、網(wǎng)絡(luò)技術(shù)和單片機(jī)技術(shù)有效結(jié)合,突出體現(xiàn)并且深化了“物聯(lián)網(wǎng)”的含義,未來必將廣泛應(yīng)用于社會(huì)生活和生產(chǎn)中。方案的應(yīng)用領(lǐng)域主要有無人駕駛、遠(yuǎn)程監(jiān)控和智能家居等。