花 勇,岳 春
(江蘇食品藥品職業技術學院,江蘇 淮安 223003)
基于Arduino的智能遙控小車設計
花 勇,岳 春
(江蘇食品藥品職業技術學院,江蘇 淮安 223003)
智能遙控小車作為運輸機器人研究的一個重要組成部分,在貨物的搬運分揀中被廣泛的使用。本次設計以Arduino為控制單元,通過藍牙模塊發出控制指令,結合L298N電機驅動芯片、紅外光電傳感器模塊、超聲波發射與接收模塊等構成外圍擴展電路,實現了智能小車的自動避障、自動循跡等功能。對智能小車的控制與開發進行了有效的嘗試,具有一定的參考價值。
Arduino; 智能遙控;避障;循跡
Αrduino作為一款全球知名的開源硬件,全球有數以萬計的開發者使用Αrduino開發項目和電子產品[1]。利用Αrduino開發的遙控智能小車具有體積小、成本低、可在多種設備上遠程控制等特點。其在飼料生產企業的袋包碼垛倉儲、化肥廠顆粒粉體袋包碼垛,印刷制品運輸以及物流企業中的貨物的搬運分揀中被廣泛使用。本文以Αrduino UNO開發板作為控制單元,手機端傳遞控制指令給藍牙穿透模塊,通過超聲波模塊,紅外線循跡模塊采集的信息配合控制程序實現一種具有無線遙控、避障、自動循跡等多功能智能小車。
1.1 系統組成
智能遙控小車控制系統硬件由Αrduino UNO開發板、HC05藍牙穿透模塊,超聲波傳感器、紅外循跡傳感器和直流電機及驅動電路組成[2]。
1.2 智能小車設計方案
基于Αrduino的智能小車通過無線串口實現對小車的無線遙控,通過相應的傳感器和控制程序能夠實現以下功能:
(1)利用藍牙使小車可以遠程控制小車運行方向和速度。(2)利用超聲波傳感器探測前方的障礙物,從而實現自動避障的功能。(3)利用紅外循跡傳感器探測下方的軌跡線,從而實現自動循跡的功能。(4)安裝蜂鳴器和三色LED燈,實現報警和功能指示的作用。
智能遙控小車程序編寫采用了模塊化的結構設計方法。小車Αrduino程序的基本結構由setup()、loop()、LEDBlin()、bizhang()和Line()五個函數構成。Αrduino通電后Setup()函數中的程序只執行一次,用于Αrduino的初始化設置,如I/O口的初始化操作和速度狀態的定義。Loop()函數完成程序的主要功能和子程序的調用,如小車的藍牙遙控、自動避障和循跡等函數的調用。LEDBlin()函數用來定義WS2812B RGB三色LED閃爍和蜂鳴器發聲,bizhang()函數實現小車的自動避障功能,Line()函數實現小車的循跡功能,而yaokong()函數實現小車的手動遙控功能,通過手機客戶端的SPP藍牙串口軟件,在名稱文本框內輸入要傳送的字符,如字符Α、B、C用來設置小車運動的工作模式(手動遙控、自動避障、循跡運行)。字符R1、R2、R3用來設置小車的移動速度,、、、分別用來控制小車的前進、后退、左轉、和右轉。
2.1 手動遙控
避障程序主要由主函數Loop()和電機L298N驅動函數來實現。首先在函數Loop()中通過函數BT_COM()讀取藍牙串口的數據[3],通過switch()多選擇分支函數比對接收字符對應的電機驅動函數,如符號“↑”則調用Forward()函數小車前進,符號“↓”調用Backup()函數小車后退,“→”調用Turnright()函數小車右轉,“←”調用Turnleft()函數小車左轉,實現小車通過無線藍牙的遙控控制。
2.2 避障代碼
避障程序主要由超聲波測距函數Distance(),電機L298N驅動函數和避障模式函數BiZhang()等構成[4]。首先在主程序中選擇自動避障模式B,則調用測距模塊函數Distance()通過Triq引腳輸送一個大于10us的高電平,然后檢測Echo引腳反饋回來的高電平持續時間,通過公式:距離=344m/s*高電/2將時間轉換成距離。然后再調用BiZhang()函數來判斷檢測的距離:如果在20mm<us<40mm范圍內小車左轉,us>40mm小車直行,us<20mm小車后退。
2.3 循跡代碼
循跡程序主要由循跡函數Line()和電機L298N驅動函數等構成。首先在主程序中選擇自動避障模式C,當Line()函數返回值為0時表示小車沒有在軌跡上,小車調用電機控制函數Forward()控制電機繼續前進,當Line()函數返回值為1時表示小車在軌跡的右側,小車調用電機控制函數Turnright()函數控制電機右轉,同理當Line()函數返回值為2時,小車調用電機控制函數Turnleft()函數控制電機左轉,當Line()函數返回值為3時表示小車在軌跡中間,小車調用電機控制函數Forward()控制電機繼續前進。
2.4 實驗研究
經實驗測試小車成功地實現了無線藍牙遙控功能,能夠實現三種控制模式的切換。在前方遇到障礙物時能夠自動的避障,輕松的避開障礙物,達到了預定的目標,效果如圖1所示。
借助Αrduino資源豐富的開源硬件平臺和高效率的Αrduino類庫函數實現了對智能遙控小車控制系統的設計。實驗結果表明小車能夠很好地實現自動的避障和循跡的功能,通過HC-05藍牙模塊還可以方便地實現無線遙控和控制模式的切換。基于Αrduino智能小車的控制系統的研究將有助于把Αrduino引入到智能產品的設計當中去,具有一定的實用價值,為后續開發工業智能貨物運輸機器人進行了一次有效的嘗試。
[1]陳呂洲.Arduino程序設計基礎[M].北京∶北京航空航天大學出版社,2015.
[2]宋楠,韓廣義.Arduino開發從零開始學∶學電子的都玩這個[M].北京∶清華大學出版社,2009.
[3]聶茹.基于藍牙遙控的多功能智能小車設計[J].自動化與儀器儀表,2016(04).
[4]戈惠梅.基于Arduino的智能小車避障系統的設計[J].現代電子技術,2014(06).
10.16640/j.cnki.37-1222/t.2016.19.084
花勇(1979-),江蘇淮安人,碩士研究生,講師,主要從事機電一體化設計研究。