博客專欄

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

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

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

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


  1.Arduino開發(fā)板

  Arduino開發(fā)板(如圖1所示)是一個開源平臺,適合沒有基礎(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語言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個的部分:硬件部分是可以用來做電路連接的Arduino開發(fā)板;另外一個則是Arduino IDE,你的計算機(jī)中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino開發(fā)板后,程序便會告訴Arduino開發(fā)板要做些什么了。


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

20230602Arduino開發(fā)板.jpg

圖1 Arduino開發(fā)板

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

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

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

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

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

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

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

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

20230602HC-SR04模塊.jpg

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

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

20230602DS18B20引腳圖.jpg

圖3 DS18B20引腳圖

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

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

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

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

20230602小車控制框圖.jpg

圖4 小車控制框圖

智能小車控制框圖5.jpg

 圖5 智能小車控制框圖

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

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

  超聲波傳感器測距是通過先****超聲波然后檢測傳回的超聲波所耗費的時間從而計算距離,圖6是其流程圖。

20230602超聲波測距流程圖.jpg

圖6 超聲波測距流程圖

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

  紅外模塊,因為配備了一個遙控器,所以先讀取出每個遙控中按鈕的值,然后將每個按鈕的值記錄下來,將每個值作為一個操作命令。當(dāng)遙控器中的某個按鈕按下時,就會****出那個對應(yīng)的值,然后當(dāng)紅外接收頭接收到信號時,處理器就會讀取到那個值并按照程序做出相應(yīng)的反應(yīng),圖7是紅外控制邏輯框圖。

20230602紅外控制邏輯框圖.jpg

 圖7 紅外控制邏輯框圖

  結(jié)束語

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

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

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



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

相關(guān)推薦

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

關(guān)閉