王飛 楊娟娟

摘 要:針對智能小車中存在的問題提出相關改進措施,并介紹了一種新的控制系統。該系統是將Arduino作為主控單元,利用Visual Basic開發的上位機軟件進行控制,從而進一步提高了智能小車人機交互的功能性。
關鍵詞:Visual Basic;智能小車;Arduino;上位機軟件
中圖分類號:TP23 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.01.073
智能化是當今世界發展的方向之一,有大批科研人員投身這項工作中。智能化的主控核心在于其控制系統,它的水平決定了智能化的水平。此次設計的智能小車使用兩后輪驅動,前輪安裝一個導向輪,同時,還為小車安裝了超聲波測距傳感器。此傳感器可以讓小車在行進的過程中成功避開障礙物,并按指令行駛,這是智能小車的關鍵部分。它雖然是智能的,但可控性比較差,并不能完全按照人的想法動作。至此,引入上位機軟件直接控制智能小車具有操作性強、易于控制的特點。
1 Visual Basic串口通訊簡介
利用VB實現串口通信的方法有2種,一種是利用其自身集成的MSComm通訊控件實現與外接設備的通信,另一種是利用通信API函數實現串口通信。
MSComm通訊控件通過串行端口傳輸和接收數據,并為應用程序提供串行通信功能。PC機通過此控件利用串行口與其他設備連接,從而實現兩設備的數據通信。
MSComm通訊控件的主要屬性和方法:
Setting:設置并返回通訊參數。
PortOpen:通過設置其值打開或關閉串口。
Input:返回并刪除接收緩沖區的數據流。
Output:向傳輸緩沖區寫數據流。
根據程序的功能及其用途,在使用過程中,用OnComm事件和CommEvent屬性監視并檢測通信事件和錯誤值。
ComEvSend:發送緩沖區的字符數比Sthreshold。
ComEventRxParity:其值為1 009,奇偶位校驗。
ComEvEOF:其值為7,接收文件中出現的結束符。
2 系統設計
2.1 上位機
該系統使用的上位機采用Visual Basic編程(圖形化編程),易于理解。上位機主要用于設置該控制系統開關的初始狀態,同時,給出Arduino主控單元的控制信號。在控制小車的行進過程中,小車上集成的傳感器將信號傳送給上位機,上位機實時監控小車的運行速度、方向。
2.2 Arduino模塊
在該設計中,將Arduino Uno作為車載核心控制單元。Arduino作為一款便捷、靈活、方便開發的開源平臺,通過外接各種傳感器感知環境,通過電機、燈光和其他裝置作出反饋。Arduino Uno主要包括1個9 V DC輸入、1個USB接口、14個數字IO口、6個模擬IO口、1個5 V DV輸出和1個3.3 V DC輸出。其核心是1片ATmega328芯片。
2.3 電機模塊
小車采用雙直流電機驅動模式,2臺電機分別安裝在小車后側,前輪采用導向輪導向。2臺直流電機利用直流電機驅動芯片LN298驅動。因為LN298無法控制電機轉速,所以,可以通過調節驅動電機的PWM信號脈寬改變電機輸出功率,從而控制電機轉速。
2.4 超聲波測距模塊
該超聲波測距模塊的有效距離為2~30 cm,工作電壓為3.3~5 V,是由發射電路和接收電路組成的。在探測距離時,當經由發射電路發射管發出的管線遇到障礙物時,反射回來的光線會經過電路處理后輸出1個數字信號給主控單元。此外,此模塊還具有易于調節和控制、使用方便的特性。
3 算法分析
3.1 系統流程分析
在智能小車行進的過程中,它四周安裝的4個傳感器可實時檢測小車周圍是否有障礙物。當信號經過電路處理后,通過Arduino控制單元轉換,不斷地將數據傳送給電腦終端,在上位機上顯示與障礙物的距離,并利用上位機發送控制信號,從而實現對小車行進的控制。系統流程如圖1所示。
3.2 避障代碼
根據避障原理編寫程序,實現小車的避障功能。該程序主要分為電機、超聲波測距2部分。電機部分由analogWrite()、digitalWrite()分別控制車速和小車行進的方向;超聲波測距部分由Trig-Pin控制超聲波輸出,控制模塊通過處理接收到的脈沖時間,將其轉化為距離參數,從而求得小車與障礙物的實際距離。
4 試驗測試
智能小車制作完成后,要測試小車的避障功能。試驗時,選用一塊有多種障礙的平板,讓智能小車在行進過程中判斷周圍是否有障礙物,然后將其與障礙物的距離實時傳送到上位機,通過上位機發出的動作指令控制小車的運行方向。
5 結論
基于Visual Basic的串口通訊和Arduino的智能小車控制系統采用上位機與控制單元聯合控制的方式,控制過程體現了交互式設計的優勢,能有效提高智能小車的使用率。
參考文獻
[1]李江全.Visual Baisc串口通信及測控應用實例講解[M].北京:電子工業出版社,2013.
[2]戴圣偉,陳白帆,范紹成.無線遙控智能車的控制研究[J].計算機測量與控制,2011(09).
[3]戈惠梅,徐曉慧,顧志華,等.基于Arduino的智能小車避障系統的設計[J].現代電子技術,2014(11).
〔編輯:白潔〕