陶冶 李馳新
摘要:系統(tǒng)以Arduino單片機為控制核心,超聲波傳感器測距,L298N驅動4個直流電機帶動小車運行,利用Arduino語言編程控制小車運動軌跡。當檢測到小車前方有障礙物時,單片機發(fā)指令讓小車左轉一定角度,無障礙物則直行并繼續(xù)探測,小車還具有紅外尋跡功能,按照預先設置的軌道運行并完成特定任務。
關鍵詞:Arduino單片機;超聲波傳感器;避障
中圖分類號:TP31 ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)15-0222-02
隨著現代計算機技術的不斷發(fā)展和普及,機器人進入各行各業(yè)并使人們的生活方式更加便捷。 機器人要實現避障和引導功能就要有感知功能,紅外傳感器給機器人一個視覺感知功能[1]。以Arduino單片機為控制核心的智能避障機器人,主要研究小車在一個特定的環(huán)境里自動運作的避障功能[2]。利用超聲波傳感器檢測軌跡上的障礙物,通過單片機程序控制小車直行或偏轉一定角度繼續(xù)運行,不斷探測和實施控制。
1 設計原理與方法
本系統(tǒng)中直流電機的正傳、反轉、加速、減速的智能控制,由PWM控制系統(tǒng)的控制實現[3]。 調制脈沖信號由Arduino Uno單片機產生并控制直流電機工作[4]。該PWM 控制系統(tǒng)由設計控制模塊和驅動模塊組成。避障機器人采用四輪驅動,后輪是支撐和轉向的萬向輪,前輪用兩個電機。
2 硬件設計
避障機器人的硬件組成:Arduino單片機、電機驅動模塊、超聲波傳感器、紅外傳感器、電源、直流電機模塊。電源給整個小車供電,避障機器人以Arduino單片機為核心,通過電機驅動模塊控制直流電機的運行,實現機器人按預期規(guī)則運動[5]。車身的最前端安裝有超聲波傳感器,通過收發(fā)超聲波探測障礙物。當檢測到障礙物,單片機程序做出向左旋轉的操作,沒有檢測到就繼續(xù)直行,然后繼續(xù)循環(huán)檢測,從而實現機器人的循跡避障功能。硬件框架圖如圖1所示。
2.1 單片機模塊
本設計采用Atmel Atmega328微處理。其模塊為:5V穩(wěn)壓電路,程序下載電路,電源接口,6路AD采樣,USB供電,ISP下載接口,IO備用接口等。Arduino Uno實物圖如圖2所示。
2.2 電機、電機驅動模塊
本設計采用L298N的H橋電路。通過單片機控制占空比調整電機轉速,H橋電路效率非常高,實現轉速和方向的簡單控制,穩(wěn)定性高、速度快、驅動能力強。L298N有過壓保護、過電流保護、反壓保護功能,當出現異常時保護電機和電路[6]。這種調速方式有調速范圍廣、調速特性優(yōu)良、過載能力大、調整平滑、無級快速反轉、制動和啟動等優(yōu)點。L298N電路原理圖如圖3所示。
2.3 避障模塊
超聲波測距模塊HC-SR04,提供非接觸式2CM-400CM距離的感測功能,測量精確度達到3mm;模塊組成:超聲波接收器,發(fā)射器和控制電路。避障模塊實物圖如圖4所示。
基本工作原理:
(1)采用10us的高電平信號觸發(fā)TRIG測距;
(2)自動檢測時發(fā)送8個40khz的方波,模塊檢測是否有自動信號返回;
(3)ECHO輸出一個高電平代表有信號返回,超聲波從發(fā)射到返回的時間就是高電平持續(xù)時間。距離=(聲速(340M/S)*高電平時間)/2;
3 軟件設計
3.1 Arduino語言
Arduino可以讓我快速使用與Macromedia Flash, Processing, Max/MSP, Pure Data等軟件。Arduino可以使用各種傳感器、控制器、電子元件、步進電機、LED等裝置[7]。Arduino基于源碼開放的IDE界面,可以與上面軟件交互,也可以獨立運行。
3.2 Arduino IDE
Arduino IDE運行界面如圖5所示。Arduino語言是一種類c的語言。在這個界面里有我編程時最常用的東西,當我把鼠標放在上面就會在右側出現按鍵的功能。
下載程序到機器人控制器Arduino中的操作如圖6所示,在此標示了位置上傳功能。最右邊的圖標是我需要熟知的串口監(jiān)視器,快捷鍵是:Ctrl+Shift+M。點這個圖標的前提是插上了串口設備,當然Arduino插在USB上也可以,Arduino Uno主板上內置了USB轉串口芯片[8]。
4 系統(tǒng)調試
避障機器人的系統(tǒng)調試分兩大模塊:超聲波測距模塊和L298N驅動模塊。先把兩大模塊分別獨立調試,正常后把所有硬件模塊組合起來進行綜合調試。
4.1 電機調試
在電機驅動板上。有EA,I1,I2,EB,I3,I4六個端子用于控制電機。EA,EB為兩路電機的控制使能,PWM調制實現電機轉速控制。程序編譯下載后出現小問題,通過右側車輪的電機線修改解決了小車不停旋轉的現象。
4.2 調試超聲波模塊
超聲波傳感器的引腳:發(fā)射引腳、接收引腳、電源VCC,地GND, Arduino Uno的對應引腳分別連接這四根插線,完成測試程序的下載和燒制[9],測試超聲波模塊結果如圖7所示。
5 結束語
智能機器人可以精確操作,提高效率解決難題,基于Arduino智能小車系統(tǒng)實現了調節(jié)偏離和自動避障的功能,通過遠程監(jiān)測和自動報警實現了人機實時交互,實現小車根據外部環(huán)境和遠程指令,做出前進、后退和轉向等動作,這樣的避障小車還用于環(huán)境探測等多種用途,減少了人們的工作危險系數,解決了惡劣環(huán)境下勘探的需求,具有一定的實用價值。
參考文獻:
[1] 于洋.基于Arduino的自動避障及通信控制智能小車系統(tǒng)的研究與設計[J].吉林大學,2017.
[2] 劉洪濤,熊家. 嵌入式應用程序設計綜合教程:微課版[M].北京:人民郵電出版社,2017.
[3] 孫建朋. 基于Arduino的智能小車避障系統(tǒng)設計[J].黑龍江科技信息,2016(15).
[4]王紅紅. 基于雙橋矩陣變換器的異步電動機控制系統(tǒng)[J].山東工業(yè)技術,2018(7).
[5] 彭芳.基于PLC的步進電動機控制系統(tǒng)設計[J].電子世界,2019(4).
[6]徐根耀.電子元器件與電子制作[M].北京:機械工業(yè)出版社,2017.
[7] 趙建偉.機器人系統(tǒng)設計及其應用技術[M].北京:清華大學出版社,2017.
[8] 王飛,楊娟娟.基于Visual Basic的串口通訊和Arduino的智能小車控制系統(tǒng)設計[J].科技與創(chuàng)新,2016(1).
[9] 李飛.“智能化”電子產品中單片機技術的應用[J].電子技術與軟件工程,2019(6).
【通聯編輯:梁書】