王尊冉+龐俊騰+陳均健+裴宇+杜啟亮??



摘要:為實現具有環境數據采集功能的智能小車控制,設計并實現了基于Arduno控制板的控制系統。選用Arduino Mega 2560控制板為控制核心,搭配DS1B20溫度傳感器、DHT11濕度傳感器、MQ2煙霧傳感器、超聲波測距傳感器、EP8266Wifi通訊模塊組成硬件系統;采用PWM脈寬調制技術調節小車行進速度,PID算法調節小車的行進方向。調試結果表明,小車具有基于Wifi的無線遙控操作功能,能夠對起所處環境中的溫度、濕度、煙霧數據進行實時測量、采集和傳輸,并能自動檢測前方障礙物。證明了基于Arduino控制板的控制系統在環境數據采集智能小車中應用的可行性。
關鍵詞:Arduino;數據采集智能小車;Labview;脈寬調制;PID
中圖分類號:TP29文獻標識碼:ADOI:10.3969/j.issn.10036199.2017.01.014
1引言
在特定環境下,比如隧道、沙漠、危險區域等,如果采用傳統的人工方式采集環境數據,實現難度大,可操作性不強,甚至會有安全隱患。而具有數據采集功能的智能小車,可代替或輔助人力完成數據采集的任務,與傳統的人工采集方式相比,可操作和實用性更強,環境數據采集難度大大降低,且實現成本一般低于人工采集方式,性價比高。數據采集智能小車應具有遠程控制和自適應控制的功能,通過安裝各種傳感器可實現對溫度、濕度、煙霧顆粒度等物理量的采集,并能通過無線通訊返回所采集的環境數據,同時還應具有自動避障的功能。
Arduino是一個開放源代碼的單芯片微控制器采用基于開放源代碼的軟硬件平臺,建構于簡易輸出/輸入(simple I/O)界面板,并且具有使用類似Java、C語言的Processing/Wiring開發環境[1]。它將單片機編程中許多常用的功能模塊化后封裝成一個個子函數,可供開發者調用,所以開發者只需著眼于程序的邏輯實現而不必關心底層函數的具體設計,降低了開發的難度。此外,開發人員可將編寫好的程序通過USB下載到Arduino開發板,程序的調試也變得相對容易[2]。
本文基于Arduino控制板設計了數據采集智能小車的控制系統方案,使其具有遠程控制和視頻傳輸功能,可實時采集并傳輸數據信息。
2總體架構
2.1機電結構
本文所述智能小車采用亞克力材料制作車架,采用2主動輪+2從動輪的運動機構,兩個直流電機直接驅動主動輪,利用差速實現轉向,采用鋰電池供電。
2.2控制系統的總體架構
智能小車的控制系統分為幾大模塊,包括Arduino控制板模塊、傳感器數據采集模塊、電源模塊、電機及驅動模塊、上位機模塊[3]。圖1所示為智能小車控制系統的總體架構。
4.1.1整體程序
在程序設計中,一開始程序進行初始條件設置,比如設置波特率、中斷條件以及管腳屬性。然后進入循環結構,在循環結構中接收數據和處理數據、執行命令、收集數據和發送數據。
當上位機向下位機發送數據,下位機檢測有數據輸入,則將數據存在接收數據緩沖器中,再利用相關算法將數據轉化為可執行命令,從而改變小車的狀態,如向左、向右或者進行PID調節等等;當下位機收集完有關環境參數數據后,準備發送數據,則會將數據放在發送數據寄存器,等待程序去執行發送;同時下位機會根據小車狀態進行必要的調節,如當小車向前或向后運行時,下位機會通過PID調節去控制小車左右輪子的速度一致。整個過程是不斷循環進行。程序流程圖如圖9所示。
4.1.2運動控制子程序
在整個程序運行中,程序不斷循環檢測是否有數據輸入,如果有就將字符串數據轉化為單個字符,然后存到一個數組中,再通過for循環判斷命令,對命令做出動作。流程如下:
4.1.3數據采集子程序
各種傳感器將數據送到I/O口,等待CPU處理其他事件,然后CPU到達提取數據階段,會從I/O口提取數據,并轉化為字符串類型,儲存到內存塊中,等待發送[6]。數據采集子程序如圖11所示。
4.1.4無線通訊模塊
當CUP將數據送到輸出數據緩沖區時,WIFI模塊會直接在TXD端口將數據送到上位機接口;當上位機將數據送給WIFI模塊時,WIFI模塊會直接將數據送到Arduino的RXD端口,并存在數據緩沖區。無線通訊模塊程序流程圖如圖12所示。
4.2Labview上位機設計
4.2.1開發工具及關鍵技術
基于對數據采集和遠程控制的需求,以Labview為平臺開發一套數據采集系統,通過TCP協議實現PC端上位機界面經Wifi模塊與Arduino小車的通訊,具有數據接收、參數設置等功能。程序主要包括兩個部分:前面板(即人機界面)和流程圖程序[7]。根據TCP協議,設定PC機為服務器,Arduino小車作為客戶端,其通訊流程包括:PC 機先對指定的小車Wifi模塊端口監聽并處于等待連接狀態;而作為客戶端的數據采集端經Wifi模塊端口向服務器端發出連接請后,若PC端響應則可,向客戶端發送參數指令,同時也可讀取客戶端發送的數據,并讀取客戶端反饋的表示確認握手成功。
4.2.2上位機軟件結構設計
上位機結構主要由三部分組成,分別是:
(1)讀取并顯示客戶端發送的數據,其Labview程序圖如圖13所示,其對應的程序流程圖如圖14所示。
設置參數,并將其發送到客戶端,其Labview程序圖如圖15所示,其對應的程序流程圖如圖16所示。
(2)顯示客戶端采集的視頻,其對應的Labview程序圖如圖17所示,其對應的程序流程圖如圖18所示。5調試
5.1硬件制作裝配調試
整體實物圖如下圖,超聲波測距模塊和攝像頭安裝在車頭前中間,其余傳感器安裝在兩邊,WiFi模塊放置在車的中間,兩個電機驅動器安裝在中間兩邊,如圖19所示。