聶 茹,嚴(yán) 明
(1.華南理工大學(xué)廣州學(xué)院,廣州510800;2.沈陽(yáng)軍區(qū)65042部隊(duì),沈陽(yáng)110035)
基于Arduino開發(fā)板的智能小車設(shè)計(jì)
聶 茹1,嚴(yán) 明2
(1.華南理工大學(xué)廣州學(xué)院,廣州510800;2.沈陽(yáng)軍區(qū)65042部隊(duì),沈陽(yáng)110035)
隨著科技發(fā)展,芯片技術(shù)已經(jīng)越來(lái)越與人們的生活緊密聯(lián)系,它給人們的生活帶來(lái)了不少的便利,不管是智能手機(jī)還是相機(jī)和電腦,都離不開芯片技術(shù)的發(fā)展與進(jìn)步。Arduino成本低廉,開發(fā)簡(jiǎn)單方便,而且功能強(qiáng)大,可以非常方便的連接各種傳感器,是一款便捷靈活、方便上手的開源電子原型平臺(tái),包含硬件(各種型號(hào)的開發(fā)板)和軟件(arduino IDE)。這里使用Arduino開發(fā)平臺(tái),充分利用其各種便利特性設(shè)計(jì)了一款智能小車,這款智能小車可以利用傳感器自動(dòng)采集環(huán)境數(shù)據(jù)從而按照程序自動(dòng)運(yùn)行,具有寬廣潛力和應(yīng)用價(jià)值。
Arduino開發(fā)板;智能小車;芯片
信息化時(shí)代,計(jì)算機(jī)技術(shù)和芯片技術(shù)的進(jìn)步,各種科技產(chǎn)品,其中不管是電腦,電視,空調(diào),手機(jī)還是相機(jī),都離不開芯片技術(shù)的發(fā)展和進(jìn)步。芯片從很早的六七十年代簡(jiǎn)單的單片機(jī),到現(xiàn)在先進(jìn)的處理器,已經(jīng)變得越來(lái)越強(qiáng)大。現(xiàn)在51單片機(jī)早已為人們所熟知,學(xué)習(xí)電子專業(yè)的大學(xué)生們基本上51單片機(jī)都是他們的必修課。但是隨著人們的要求越來(lái)越高,對(duì)芯片的性能要求也不斷提高,51單片機(jī)陳舊的結(jié)構(gòu)和落后的性能已經(jīng)越來(lái)越不能滿足人們對(duì)知識(shí)的渴望,所以一種嶄新的硬件平臺(tái)應(yīng)運(yùn)而生。其開發(fā)簡(jiǎn)單,操作方便,硬件電路成本低廉,非常適于開發(fā)和設(shè)計(jì),用它可以方便的完成各種以前需要復(fù)雜步驟的功能,它就是Arduino開發(fā)平臺(tái),是一個(gè)開源平臺(tái),適合沒(méi)有基礎(chǔ)的學(xué)生學(xué)習(xí)和使用。Arduino是一塊基于開放源代碼的USB接口Simple I/O接口板(包括12通道數(shù)字GPIO,4通道PWM輸出,6-8通道10bit ADC輸入通道),該系統(tǒng)的硬件主要由Arduino UNO主控板、Arduino Xbee傳感器擴(kuò)展板、藍(lán)牙串口模塊和數(shù)字溫度傳感器組成[1]?;贏rduino開發(fā)板設(shè)計(jì)的智能小車,具有以下功能:尋線功能,也就是會(huì)跟著地上的黑線來(lái)走;其次是紅外避障功能,利用紅外傳感器來(lái)感知外界環(huán)境從而避開障礙;超聲波測(cè)距功能,利用超聲波傳感器來(lái)測(cè)量距離;使用BS18B20溫度傳感器測(cè)量溫度的功能和用紅外遙控器進(jìn)行小車控制。
2.1 智能小車控制系統(tǒng)整體設(shè)計(jì)
2.1.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.1.2 避障功能的實(shí)現(xiàn)
至于小車的避障功能,首先要選用傳感器,在這里選用紅外避障傳感器,由一個(gè)紅外發(fā)射管和一個(gè)紅外接收管構(gòu)成。工作原理是:傳感器發(fā)射紅外線,根據(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.1.3 超聲波測(cè)距功能的實(shí)現(xiàn)
對(duì)于超聲波測(cè)距功能,使用的是HC-SR04,它是最常見的超聲波傳感器之一,價(jià)格便宜,好用。超聲波的發(fā)射和接收采用HC-SR04模塊,模塊包括超聲波發(fā)射器、接收器和控制電路[2]。超聲波的原理是非常簡(jiǎn)單的,想要在Arduino平臺(tái)中實(shí)現(xiàn)也是一件非常方便的事情,不過(guò)因?yàn)橐@示到電腦上,所以別忘了串口的波特率設(shè)置。
2.1.4 溫度傳感功能的實(shí)現(xiàn)
溫度傳感功能,在這里選用的是DS18B20數(shù)字溫度傳感器。DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器[3],DS18B20具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用接口線少等優(yōu)點(diǎn)[4]。從主機(jī)CPU到DSl820僅需一條線(和地線),DSl820的電源可以由數(shù)據(jù)線提供而不需要外部電源。因?yàn)槊恳粋€(gè)DSl820在出廠時(shí)已經(jīng)給定了唯一的序號(hào),因此任意多個(gè)DSl820可以連接在同一條單線總線上。DSl820的測(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里面的溫度值。
2.1.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)題。限于紅外發(fā)射的本質(zhì),也就是紅外線本身的限制,所以在控制范圍上是有限制的,就好比家里的電視遙控器,必須對(duì)準(zhǔn)了才能遙控,所以把紅外接收頭裝在小車后面,在后面進(jìn)行控制。
2.2 智能小車系統(tǒng)結(jié)構(gòu)框圖
圖1是小車被三個(gè)傳感器控制的運(yùn)行狀態(tài),另外還有兩個(gè)傳感器的結(jié)果是要輸出到電腦用專用軟件的監(jiān)視窗口去進(jìn)行監(jiān)視的,如圖2所示。
圖1 小車控制框圖Fig.1 Control car block diagram
圖2 小車控制框圖Fig.2 Control car block diagram
3.1 超聲波傳感器程序設(shè)計(jì)
超聲波傳感器測(cè)距是通過(guò)先發(fā)射超聲波然后檢測(cè)傳回的超聲波所耗費(fèi)的時(shí)間從而計(jì)算距離,圖3是其流程圖。
圖3 超聲波測(cè)距圖Fig.3 Ultrasonic ranging chart
3.2 紅外遙控程序設(shè)計(jì)
紅外模塊,因?yàn)榕鋫淞艘粋€(gè)遙控器,所以先讀取出每個(gè)遙控中按鈕的值,然后將每個(gè)按鈕的值記錄下來(lái),將每個(gè)值作為一個(gè)操作命令。當(dāng)遙控器中的某個(gè)按鈕按下時(shí),就會(huì)發(fā)射出那個(gè)對(duì)應(yīng)的值,然后當(dāng)紅外接收頭接收到信號(hào)時(shí),處理器就會(huì)讀取到那個(gè)值并按照程序做出相應(yīng)的反應(yīng),圖4是紅外控制邏輯框圖。
圖4 紅外遙控圖Fig.4 Infrared remote control chart
對(duì)基于Arduino開發(fā)板的智能小車系統(tǒng)的硬件和軟件進(jìn)行設(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à)值。
[1] 鄭昊,鐘志峰,郭昊.基于Arduino/Android的藍(lán)牙通信系統(tǒng)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2012,(5):50-51.Zheng Hao,ZHONG Zhifeng,GUO Hao.Design of Bluetooth communication system based on Arduino/Android[J].Internet of Things Technologies,2012(5):50-51.
[2] 蘇琳.基于HC-SR04的超聲波測(cè)距器的設(shè)計(jì)[J].科技信息,2012(9):124-125.SU Lin.Design of ultrasonic range finder based on HCSR04[J].Science&Technology Information,2012(9):124-125.
[3] 趙海蘭.智能溫度傳感器DS18B20[J].電子世界,2003(7):46-47.ZHAO Hailan.Intelligent temperature sensor DS18B20[J].Electronics World,2003(7):46-47.
[4] 高云紅.?dāng)?shù)字溫度傳感器在多點(diǎn)溫度測(cè)量系統(tǒng)中的應(yīng)用[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2006,23(2):61-63.GAO Yunhong.Application of digital temperature sensor in multi-point temperature measurement system[J].Journal of Shenyang Institute of Aeronautical Engineering,2006,23(2):61-63.
Design of Intelligent Car Based on Arduino Development Board
Nie Ru1,Yan Ming2
(1.Guangzhou College of South China University of Technology,Guangzhou 510800,China;2.The Army 65042,Shenyang Military Region,Shenyang 110035,China)
As the development of science and technology,the microchip technology provides more convenient for our life and becomes closer to us,not only the telephone but computers and digital cameras can't work without the microchip's development.Arduino,cheap and easy to develop with high performance,can be easily connected to kinds of sensors.It is really an open-source digital platform including hardware and software(arduino IDE).Now,the arduino board is used to develop an intelligent car which can automatically acquire the environmental date by sensors and runs as per the program.So,it has good potential and wide application.
Arduino development board;Intelligent car;Microchip
10.3969/j.issn.1002-2279.2015.04.023
TN91
A
1002-2279(2015)04-0089-03
聶茹(1982-),女,江西人,碩士研究生,講師,主研方向:智能控制。
2014-10-08