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