南京信息職業(yè)技術(shù)學(xué)院 徐開軍 劉飛龍
基于Arduino平臺的多功能智能小車的設(shè)計
南京信息職業(yè)技術(shù)學(xué)院 徐開軍 劉飛龍
在眾多智能化機器人項目中,智能小車可以稱得上是一項最早走出實驗室的實用發(fā)明。本文設(shè)計的多功能智能小車,以Arduino這款便捷靈活、容易上手的開源平臺作為主控單元,小車驅(qū)動由L293D驅(qū)動電路完成,速度由單片機輸出的PWM波控制。其中,以手機藍牙作為客戶端,以Arduino HC-06藍牙模塊作為接受端,實現(xiàn)對小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止的操作;以HC-SR04超聲波傳感器通過發(fā)送檢測與障礙物的距離,結(jié)合對SG90舵機的控制進行轉(zhuǎn)向,從而實現(xiàn)自動避障的功能。
Arduino;智能小車;藍牙遙控;超聲波避障
隨著現(xiàn)代科學(xué)技術(shù)的快速發(fā)展,智能機器人技術(shù)已廣泛應(yīng)用于人類社會的各個領(lǐng)域。為了提高社會的生產(chǎn)水平和人們生活質(zhì)量,常常讓智能機器人替人們做一些人類做不了或做不好的工作。在當(dāng)今的生產(chǎn)制造、物流倉儲、軌道交通、工程機械、醫(yī)療手術(shù)等諸多行業(yè),智能機器人已經(jīng)無所不在。從生產(chǎn)制造業(yè)的無人搬運車,到特種行業(yè)的災(zāi)難救援、拆彈機器人,再到軍事領(lǐng)域的防御和偵察機器人以及航天領(lǐng)域的星球表面探測器,處處可以見到智能小車的身影。通過各類傳感器件來采集相關(guān)的信息,送入主控單元 Arduino 單片機處理數(shù)據(jù)后完成相應(yīng)動作,以達到自身控制。電機驅(qū)動電路采用H橋驅(qū)動模塊驅(qū)動2個直流電機;藍牙遙控采用手機藍牙用戶界面和HC-06藍牙模塊完成,測距與避障采用HC-SR04超聲波模塊和舵機模塊完成,最后由控制單元處理數(shù)據(jù)后通過編程,并有序合理的將各模塊信號整合在一起并完成相應(yīng)動作,實現(xiàn)了智能控制,相當(dāng)于簡易機器人。
2.1 平臺選擇
同其他系統(tǒng)相比,Arduino在很多方面更具優(yōu)越性,成本低,跨平臺,簡易的編程環(huán)境,軟硬件開源并且可以擴展,尤其適合教學(xué)和業(yè)余愛好者們使用。因為Arduino UNO R3是Arduino USB接口系列的最新版本,是Arduino平臺的參考標準模板,也是目前使用最多的版本。它不僅十分穩(wěn)定而且還能滿足本設(shè)計中智能小車功能的完美實現(xiàn),因此選擇Arduino UNO R3作為智能小車的控制單元。要完成本設(shè)計所要求的智能機器小車,還要滿足藍牙遙控和超聲波避障的功能,起碼要有兩件必備之物——微控制器和傳感器,這樣智能小車才有自己的大腦和感官。
2.2 系統(tǒng)功能設(shè)計
本設(shè)計主要是制作一款能夠進行智能判斷并能做出正確反應(yīng)的智能小車,小車具有手機藍牙遙控、自動避障的功能。本設(shè)計以兩個直流電動機為主驅(qū)動,通過各類傳感器件來采集相關(guān)信息,并送入主控制單元Arduino單片機處理數(shù)據(jù)后完成相應(yīng)的動作,以達到自身控制。電機驅(qū)動電路采用H橋驅(qū)動模塊,驅(qū)動2個直流電機;藍牙遙控采用藍牙傳感器完成;測距、避障用超聲波傳感器完成,最后由控制單元處理數(shù)據(jù)后通過編程,有序合理的將模塊信號整合在一起并完成相應(yīng)動作,實現(xiàn)智能控制,相當(dāng)于簡易機器人。
圖1 系統(tǒng)功能模塊圖
2.3 電源的選擇
對于一輛智能機器小車來說,電池就是它的動力源。如果使用太陽能電池,無法使智能小車在室內(nèi)運行,而且現(xiàn)在的太陽能電池板的能效不高,要達到理想的狀態(tài)必須有很大的面積。最后考慮到方便和可持續(xù)性,本設(shè)計采用可充電的鉛酸電池。
2.4 電機的選擇
電機是智能小車的驅(qū)動裝置,選擇一個適合的電機會使制作更順利,機器性能更好。能用于智能機器小車的電機種類很多,而制作智能小車會選用直流電機、減速電機以及步進電機,考慮到價格、功率、尺寸、轉(zhuǎn)速等因素,本設(shè)計采用直流電機。
3.1 設(shè)計方案
本設(shè)計是以Arduino單片機為核心,通過‘Arduino Car Control’手機控制界面,進行簡單的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等功能操作,控制小車進行不同的運動。Arduino模塊通過控制電機驅(qū)動,從而控制電機的正反轉(zhuǎn),使小車做出相應(yīng)的動作。通過手機藍牙與藍牙接收模塊HC-06進行配對之后,先通過一個測試程序測試‘Arduino Car Control’各個按鍵所對應(yīng)的數(shù)字代碼,(經(jīng)過測試程序測試出各按鍵代碼為:前進102,停止115,左轉(zhuǎn)108,右轉(zhuǎn)114,后退98)以便編寫主程序。編寫并下載程序以后,便可以接收到從手機端傳輸過來的動作指令。接收到指令之后,藍牙模塊會傳遞給Arduino單片機,再通過微處理器分析辨別傳輸過來的指令,使程序跳轉(zhuǎn)到不同的子程序,產(chǎn)生不同的響應(yīng),從而控制電機驅(qū)動,實現(xiàn)小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等功能。
3.2 程序流程圖
圖2 藍牙遙控模塊程序流程圖
圖3 超聲波避障模塊程序流程圖
4.1 設(shè)計方案
超聲波避障由接收機或者單片機發(fā)出控制信號給舵機模塊,將獲得的直流偏置電壓與電位器的電壓進行比較,獲得電壓差輸出。經(jīng)由電路板上的IC判斷轉(zhuǎn)動方向,再驅(qū)動無核心馬達開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)定位。
避障小車在行進過程中,超聲波傳感器不斷檢測小車行進方向是否有障礙物,當(dāng)超聲波傳感器檢測到有障礙物時,小車先后退減速至停止。然后測距并判斷左右距離是否符合程序里所設(shè)定的值,哪邊比較寬闊,就轉(zhuǎn)向那邊。如果左右都有障礙物,則后退掉頭。
4.2 程序流程圖(見圖3)
本文設(shè)計了一種基于Arduino平臺的智能小車,實現(xiàn)了手機藍牙遙控和超聲波避障的功能。試驗結(jié)果表明,以藍牙手機作為客戶端,智能小車上的藍牙模塊作為服務(wù)端,通過串口仿真協(xié)議進行通信。它具有編程靈活、自由、易于控制、穩(wěn)定性能好、擴展容易等優(yōu)點。實現(xiàn)了小車的前行、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止等功能,將手機變身為遙控器,為人們的生活帶來無限方便。以超聲波傳感器作為測距避障模塊更可靠,能夠精確的測距,結(jié)合舵機后能夠全自動行駛,達到了理想中的效果。
[1]戴鳳智,海玉.Arduino輕松入門[M].北京:化學(xué)工業(yè)出版社,2014.
[2]黃文凱,伍馮潔.Arduino開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2014.
[3]戈惠梅,徐曉慧,顧志華,等.基于Arduino的智能小車避障系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2014,11.
[4]聶茹,嚴明.基于Arduino開發(fā)板的智能小車設(shè)計[J].微處理機,2015,04.
[5]顧志華,戈惠梅,徐曉慧,等.基于多傳感器的智能小車避障系統(tǒng)設(shè)計[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2014,01.
[6]趙津,朱三超.基于Arduino單片機的智能避障小車設(shè)計[J].自動化與儀表,2013,05.
項目資助:南京信息職業(yè)技術(shù)學(xué)院青藍工程骨干教師項目、江蘇省政府留學(xué)獎學(xué)金資助項目。