博客專欄

EEPW首頁(yè) > 博客 > 使用Arduino開發(fā)板設(shè)計(jì)的智能小車

使用Arduino開發(fā)板設(shè)計(jì)的智能小車

發(fā)布人:utmel 時(shí)間:2023-06-02 來(lái)源:工程師 發(fā)布文章

  芯片是從很早的六七十年代簡(jiǎn)單的單片機(jī),發(fā)展到現(xiàn)在先進(jìn)的處理器,已經(jīng)變得越來(lái)越強(qiáng)大。它給人們的生活帶來(lái)了不少的便利,不管是電腦,電視,空調(diào),手機(jī)還是相機(jī),都離不開芯片技術(shù)的發(fā)展和進(jìn)步。但是隨著人們的要求越來(lái)越高,對(duì)芯片的性能要求也不斷提高,51單片機(jī)陳舊的結(jié)構(gòu)和落后的性能已經(jīng)越來(lái)越不能滿足人們對(duì)知識(shí)的渴望,所以一種嶄新的硬件平臺(tái)應(yīng)運(yùn)而生——Arduino開發(fā)板。本文將介紹Arduino開發(fā)板的一些知識(shí)以及利用其各種便利特性設(shè)計(jì)的一款智能小車。


  1.Arduino開發(fā)板

  Arduino開發(fā)板(如圖1所示)是一個(gè)開源平臺(tái),適合沒(méi)有基礎(chǔ)的學(xué)生學(xué)習(xí)和使用。Arduino是一塊基于開放源代碼的USB接口Simple LO接口板(包括12通道數(shù)字GPIO,4通道PWM輸出,6-8通道10bit ADC輸入通道),該系統(tǒng)的硬件主要由Arduino UNO主控板、Arduino Xbee傳感器擴(kuò)展板、藍(lán)牙串口模塊和數(shù)字溫度傳感器組成。它構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語(yǔ)言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個(gè)的部分:硬件部分是可以用來(lái)做電路連接的Arduino開發(fā)板;另外一個(gè)則是Arduino IDE,你的計(jì)算機(jī)中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino開發(fā)板后,程序便會(huì)告訴Arduino開發(fā)板要做些什么了。


  Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。對(duì)Arduino的編程是通過(guò)Arduino編程語(yǔ)言 (基于Wiring)和Arduino開發(fā)環(huán)境(基于Processing)來(lái)實(shí)現(xiàn)的?;贏rduino的項(xiàng)目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運(yùn)行的軟件,它們之間進(jìn)行通信(比如Flash, Processing, MaxMSP)來(lái)實(shí)現(xiàn)。

20230602Arduino開發(fā)板.jpg

圖1 Arduino開發(fā)板

  2.系統(tǒng)硬件設(shè)計(jì)

  2.1尋線功能的實(shí)現(xiàn)

  小車想要完成尋線功能,希望它能夠跟著黑線走,那么它首先也要能夠“看見”那些黑線,因此需要用到傳感器。傳感器,簡(jiǎn)單的說(shuō)就是一種檢測(cè)裝置,能夠感受到被測(cè)量的信息,并將檢測(cè)到的信息,按一定規(guī)律變換成為電信號(hào)或者是其他所需形式的信息輸出,以滿足信息的傳輸,處理,存儲(chǔ),顯示,記錄,控制等要求。這里選擇一個(gè)紅外巡線傳感器,而這個(gè)紅外傳感器就將充當(dāng)智能小車的眼睛來(lái)檢測(cè)黑線。紅外巡線傳感器模塊的原理是利用紅外對(duì)管檢測(cè)自己發(fā)出的紅外線反射光(深色反射弱,淺色反射強(qiáng))。尋線傳感器可以幫助機(jī)器人進(jìn)行白線或者黑線跟蹤,可以檢測(cè)白底中的黑線,也可以檢測(cè)黑底中的白線,檢測(cè)到黑線返回低電平。

  設(shè)計(jì)的小車采用前置驅(qū)動(dòng),由兩個(gè)電機(jī)分別控制左右兩個(gè)前輪,后面是個(gè)萬(wàn)向輪,可以自由轉(zhuǎn)動(dòng)。當(dāng)確定了小車模型之后,如果小車的兩個(gè)前輪同時(shí)以相同的速度向前轉(zhuǎn)的話那么小車就往前走。當(dāng)小車右輪向前轉(zhuǎn)左輪不動(dòng)那么小車就會(huì)向左轉(zhuǎn),同理小車左輪向前轉(zhuǎn)右輪不動(dòng)那么小車就向右轉(zhuǎn),兩個(gè)輪子同時(shí)以相同的速度向后轉(zhuǎn)那么小車就會(huì)倒車。接下來(lái)就是由傳感器控制小車運(yùn)行了,在這里設(shè)置三個(gè)尋線傳感器,三個(gè)傳感器也就有三種情況,分別是每個(gè)傳感器遇到黑線而兩外兩個(gè)沒(méi)有遇到黑線時(shí)的三種情況。中間一個(gè)用于檢測(cè)黑線,當(dāng)中間的一個(gè)檢測(cè)到黑線時(shí)就返回低電平,此時(shí)小車直走;當(dāng)黑線向左邊轉(zhuǎn)彎,此時(shí)小車若直走則左邊的傳感器則會(huì)檢測(cè)到黑線,此時(shí)返回低電平,此時(shí)就要右輪轉(zhuǎn),左輪停,小車就會(huì)向左轉(zhuǎn)彎;當(dāng)轉(zhuǎn)過(guò)彎后左邊的傳感器已經(jīng)檢測(cè)不到黑線,中間的又能檢測(cè)到黑線了,那么就繼續(xù)向前直走。同理,當(dāng)黑線向右轉(zhuǎn)彎時(shí)右邊的傳感器也會(huì)檢測(cè)到黑線,返回低電平,此時(shí)小車左輪轉(zhuǎn),右輪停止,那么小車就會(huì)像右轉(zhuǎn),直到中間的傳感器檢測(cè)到黑線為止。

  2.2避障功能的實(shí)現(xiàn)

  至于小車的避障功能,首先要選用傳感器,在這里選用紅外避障傳感器,由一個(gè)紅外****管和一個(gè)  紅外接收管構(gòu)成。工作原理是:傳感器****紅外線,根據(jù)反射紅外光探測(cè)前方障礙物,無(wú)障礙物時(shí)輸出高電平,有障礙時(shí)輸出低電平。這樣看來(lái)其實(shí)這個(gè)傳感器的原理和之前的尋線傳感器是差不多的,因此可以如法炮制,先將傳感器裝在小車的前端來(lái)感受環(huán)境變化,在這里一樣使用三個(gè)傳感器,分別放在正前方,左前方,右前方。這里情況會(huì)比前面的尋線功能要稍微復(fù)雜一點(diǎn),因?yàn)閷ぞ€只有一條,但是這里有可能是只有一個(gè)傳感器被遮擋,也有可能有兩個(gè)傳感器被遮擋,也有可能是三個(gè)傳感器都被遮擋,因此就需要把這幾種情況都要考慮進(jìn)去。

  2.3超聲波測(cè)距功能的實(shí)現(xiàn)

  對(duì)于超聲波測(cè)距功能,使用的是HC-SRO4,它是最常見的超聲波傳感器之一,價(jià)格便宜,好用;如圖2所示。超聲波的****和接收采用HC-SR04模塊,模塊包括超聲波****、接收器和控制電路3。超聲波的原理是非常簡(jiǎn)單的,想要在Arduino平臺(tái)中實(shí)現(xiàn)也是—件非常方便的事情,不過(guò)因?yàn)橐@示到電腦上,所以別忘了串口的波特率設(shè)置。

20230602HC-SR04模塊.jpg

  2.4 溫度傳感功能的實(shí)現(xiàn)

  溫度傳感功能,在這里選用的是DS18B20數(shù)字溫度傳感器。DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器,具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用接口線少等優(yōu)點(diǎn)。從主機(jī)CPU到DSI820僅需一條線(和地線),DS1820的電源可以由數(shù)據(jù)線提供而不需要外部電源。因?yàn)槊恳粋€(gè)DS1820在出廠時(shí)已經(jīng)給定了唯一的序號(hào),因此任意多個(gè)DS1820可以連接在同一條單線總線上。DS1820的測(cè)量范圍從- 55℃到+125℃增量值為0.5℃,可在ls(典型值)內(nèi)把溫度變換成數(shù)字。簡(jiǎn)單的理解DS18B20測(cè)溫原理就是芯片把感知到的溫度換成數(shù)值放在數(shù)據(jù)寄存器里面,要想得到寄存器里面的數(shù)據(jù),只有按照DALLAS規(guī)定的一種時(shí)序才能正確傳出數(shù)據(jù),這種時(shí)序被稱為單總線,CPU就可通過(guò)單總線協(xié)議,取得DS18B20里面的溫度值。圖3是DS18B20引腳排列。

20230602DS18B20引腳圖.jpg

圖3 DS18B20引腳圖

  2.5紅外控制功能的實(shí)現(xiàn)

  為了實(shí)現(xiàn)紅外控制功能,所選擇的是38K紅外接收模塊,并且還帶有一個(gè)小遙控器以方便控制。這里要實(shí)現(xiàn)的目標(biāo)是對(duì)小車行走進(jìn)行控制,也就是控制小車前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn)。前面的尋線也好,紅外避障也好,都提供了一個(gè)對(duì)小車行走的控制函數(shù),在這里進(jìn)行調(diào)用就好了,這不是問(wèn)題。限于紅外****的本質(zhì),也就是紅外線本身的限制,所以在控制范圍上是有限制的,就好比家里的電視遙控器,必須對(duì)準(zhǔn)了才能遙控,所以把紅外接收頭裝在小車后面,在后面進(jìn)行控制。

  2.6智能小車系統(tǒng)結(jié)構(gòu)

  圖4是小車被三個(gè)傳感器控制的運(yùn)行狀態(tài),另外還有兩個(gè)傳感器的結(jié)果是要輸出到電腦用專用軟件的監(jiān)視窗口去進(jìn)行監(jiān)視的,如圖5所示。

20230602小車控制框圖.jpg

圖4 小車控制框圖

智能小車控制框圖5.jpg

 圖5 智能小車控制框圖

  3.系統(tǒng)軟件設(shè)計(jì)

  3.1超聲波傳感器程序設(shè)計(jì)

  超聲波傳感器測(cè)距是通過(guò)先****超聲波然后檢測(cè)傳回的超聲波所耗費(fèi)的時(shí)間從而計(jì)算距離,圖6是其流程圖。

20230602超聲波測(cè)距流程圖.jpg

圖6 超聲波測(cè)距流程圖

  3.2紅外遙控程序設(shè)計(jì)

  紅外模塊,因?yàn)榕鋫淞艘粋€(gè)遙控器,所以先讀取出每個(gè)遙控中按鈕的值,然后將每個(gè)按鈕的值記錄下來(lái),將每個(gè)值作為一個(gè)操作命令。當(dāng)遙控器中的某個(gè)按鈕按下時(shí),就會(huì)****出那個(gè)對(duì)應(yīng)的值,然后當(dāng)紅外接收頭接收到信號(hào)時(shí),處理器就會(huì)讀取到那個(gè)值并按照程序做出相應(yīng)的反應(yīng),圖7是紅外控制邏輯框圖。

20230602紅外控制邏輯框圖.jpg

 圖7 紅外控制邏輯框圖

  結(jié)束語(yǔ)

  以上就是使用Arduino開發(fā)板設(shè)計(jì)的智能小車介紹了,該設(shè)計(jì)實(shí)現(xiàn)了小車的自動(dòng)循跡、避障、超聲波測(cè)距等功能,在設(shè)計(jì)中軟件采用模塊化設(shè)計(jì)思想。實(shí)驗(yàn)結(jié)果表明,利用傳感器自動(dòng)采集環(huán)境數(shù)據(jù)從而按照程序自動(dòng)運(yùn)行。設(shè)計(jì)的智能小車操作簡(jiǎn)單,穩(wěn)定可靠,該系統(tǒng)具有寬廣潛力和應(yīng)用價(jià)值。

關(guān)注公眾號(hào)“優(yōu)特美爾商城”,獲取更多電子元器件知識(shí)、電路講解、型號(hào)資料、電子資訊,歡迎留言討論。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: Arduino開發(fā)板 智能小車

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉