《單片機(jī)智能小車的設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)智能小車的設(shè)計(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、51單片機(jī)智能小車
一、智能小車開發(fā)板介紹
智能小車好玩、有趣,很多單片機(jī)愛好者就是靠玩小車而走上了單片機(jī)開發(fā)的職業(yè)。關(guān)于智能小車,市場上有一些,經(jīng)過對照,發(fā)現(xiàn)市場上的很多“智能小車”其實就是一個個“四肢發(fā)達(dá),頭腦簡單”的白癡,一點點都不智能,之所以這樣說,主要是基于以下兩點:
一是很多小車太注重小車的機(jī)械結(jié)構(gòu),致使小車整體價格偏高;
二是沒有提供源程序或提供的源程序很少,不能充分發(fā)揮小車的智能性。
頂頂電子設(shè)計的這款智能小車,機(jī)械和電機(jī)部分由廣州某公司專門定做,采用二個驅(qū)動輪、二個從動輪(也可使用一個萬向輪),即簡單,又靈活。電路部分由我們自己獨立設(shè)計,并配備了豐富多彩的實用源
2、程序,可讓那些“智能小車”的粉絲們快快樂樂玩?zhèn)€夠!
頂頂電子設(shè)計的這款簡易智能小車,采用STC89C51/52單片機(jī)作為小車的檢測和控制核心;采用光電開關(guān)、聲控傳感器、光敏傳感器、溫度傳感器、紅外接收器等來檢測和感應(yīng)各種外界情況,從而把反饋到的信號送單片機(jī),使單片機(jī)按照預(yù)定的工作模式控制小車在各區(qū)域按預(yù)定的速度行駛;智能小車既可以采用LED數(shù)碼管來顯示有關(guān)信息,也可以采用1602LCD實時顯示小車行駛的距離。
機(jī)器小車主要由底盤(含2個帶電機(jī)的驅(qū)動輪、2個從動輪,底板)、電路板和6節(jié)5號電池盒三部分組成,其正面和底面外形如圖所示:
下圖是51單片機(jī)智能小車的電路組成框
3、圖:
下圖是智能小車中主要元件在小車中的位置實物圖:
二、產(chǎn)品配置
智能小車產(chǎn)品配置如下:
1.小車底板1塊、車軸插片4片
2.車輪4只
3.車軸2根,墊片2只,銅螺帽2只
4.帶齒輪箱的電機(jī)及104電容各2只
5.智能小車開發(fā)板1塊(除DS18B20外,板上集成電路配備完整)
6.避障光電傳感器1只(TCR T5000)、循跡光電傳感器2只(RPR220)、速度光電傳感器1只(RPR220)
7.雙向插頭排線4根
8.串口線1根
9.紅外遙控器1只
10.固定電路板與底板的長螺絲、橡皮墊圈各2只
11.6
4、節(jié)5號電池盒(因電池屬易燃易爆物品,故不配送,請自行購買)
12.豐富的源程序、電路原理圖和操作使用手冊
用戶購買后,只需要再另外購502膠水(1元左右)、雙面膠(1元左右)和6節(jié)5號電池(采用普通的華太電池即可,6節(jié)約1.5元)即可進(jìn)行組裝與實驗了。
需要說明的是,小車的組裝非常簡單,有關(guān)詳細(xì)的組裝方法,我們將在智能小車操作使用手冊上,采用圖解的形式進(jìn)行說明。
三、選配件
用戶購買產(chǎn)品后,可進(jìn)行小車的基本實驗,如果用戶想進(jìn)行一些特殊的實驗,需要購買以下產(chǎn)品,說明如下:
1.溫度傳感器DS18B20,價格6元。
鏈接:
配置DS18B20后,可進(jìn)行溫度顯
5、示的實驗。
2.1602液晶顯示器,價格16元。
鏈接:
配置1602液晶顯示器后,可進(jìn)行液晶顯示方面的實驗。
3.高性能光電開關(guān)E3F-DS10C4,價格16元。
鏈接:
配置E3F-DS10C4后,可大大提供小車避障和循跡的效果。
4.無線遙控套件,價格26元。
鏈接:
配置無線遙控套件后,可進(jìn)行無線遙控小車實驗。
5.ISD1700語音模塊,價格66元。
鏈接:
配置ISD1700語音模塊后,可使小車具有說話的功能。
以上為選配件,請用戶根據(jù)情況進(jìn)行選擇。
四、實驗說明
智能小車附帶的程序十分豐富,全部采用C語言編寫,非常方便使用和移植,主要
6、程序如下:
實驗1——電池電壓檢測程序
實現(xiàn)功能:開機(jī)后,數(shù)碼管上顯示出電池電壓的值,當(dāng)電池電壓低于7V時,蜂鳴器鳴叫,表示電池電壓低,需要更換電池。
下圖是小車顯示的電池電壓情況(顯示的電壓值為8.5V):
實驗2——模擬PWM控制小車速度程序
實現(xiàn)功能:用單片機(jī)的IO口模擬PWM信號,控制小車的轉(zhuǎn)速,具體要求是:開機(jī)后,小車按全速運轉(zhuǎn),當(dāng)按下K1鍵時,小車運行的速度是全速的0.1,當(dāng)按下K2鍵時,小車的轉(zhuǎn)速是全速的0.5。
實驗3——用定時中斷控制小車速度程序
實現(xiàn)功能:采用定時中斷方法,控制小車的轉(zhuǎn)速,具體要求是:開機(jī)后,小車按全速的0.2運轉(zhuǎn)。
實驗時,為了便于
7、對照,讀者可在源程序的基礎(chǔ)上修改定時器0中斷處理函數(shù):
void Timer0(void) interrupt 1//定時器0中斷處理函數(shù)入口
{
TH0=0xfc; //定時1ms
TL0=0x66;
EA=0; //關(guān)中斷
tim=tim+1; //時間計數(shù)加1
if(tim<20){EN1=0;EN2=0;}
else {EN1=1;EN2=1;}
if(tim==100)tim=0;
EA=1; //開中斷
}
修改的方法是:改變上述語句if(tim<20){EN1=0;EN2=0;}中的tim的值,例如,將此改為if(tim<50){EN1=0;EN2=0;}
8、,重新編譯源程序,再下載到小車的單片機(jī)中,此時會發(fā)現(xiàn)小車的運轉(zhuǎn)速度快了很多。
實驗4——話筒控制小車起停程序
實現(xiàn)功能:在智能小車上安裝有話筒,要求采用聲音可以控制小車的起停,具體要求是:開機(jī)后,小車運轉(zhuǎn),LED1、LED2指示燈亮;當(dāng)拍一下巴掌或敲擊一下器物發(fā)出響亮的聲音時,小車停轉(zhuǎn),LED1、LED2指示燈熄滅;再次拍一下,小車?yán)^續(xù)運轉(zhuǎn),LED1、LED2指示燈又點亮。
實驗5——光控小車程序
實現(xiàn)功能:在智能小車上安裝有光敏電阻,能夠感受到光線的變化情況,要求通過光敏電阻判斷出白天和黑夜,當(dāng)白天時(光線正常時,小車前面的兩個指示燈LED1、LED2不亮),當(dāng)夜晚時(光線暗時),小
9、車前面的兩個指示燈LED1、LED2點亮。
實驗6——紅外遙控數(shù)碼管顯示程序
實現(xiàn)功能:在智能小車上安裝有紅外遙控接收頭,能夠接收遙控器發(fā)出的信號,要求按下遙控器的01H鍵時,小車前進(jìn)(前方的兩個指示燈熄滅);按下遙控器上的05H鍵時,小車停止(前方的兩個指示燈熄滅);按下遙控器上的04H鍵時,小車左轉(zhuǎn)(左前方的指示燈點亮);按下遙控器上的06H鍵時,小車右轉(zhuǎn)(右前方的指示燈點亮);按下遙控器上的09H鍵時,小車后退(前方的兩個指示燈點亮)。遙控器上的鍵值能同時在LED數(shù)碼管上顯示出來。
以下是按下遙控器上的05H時,小車顯示的情況:
實驗7——紅外遙控LCD顯示程序
實
10、現(xiàn)功能:在智能小車上安裝有紅外遙控接收頭,能夠接收遙控器發(fā)出的信號,開機(jī)時,LCD顯示如下畫面:
要求按下遙控器的01H鍵時,小車前進(jìn)(前方的兩個指示燈熄滅);按下遙控器上的05H鍵時,小車停止(前方的兩個指示燈熄滅);按下遙控器上的04H鍵時,小車左轉(zhuǎn)(左前方的指示燈點亮);按下遙控器上的06H鍵時,小車右轉(zhuǎn)(右前方的指示燈點亮);按下遙控器上的09H鍵時,小車后退(前方的兩個指示燈點亮)。遙控器上的鍵值和狀態(tài)能同時在LCD上顯示出來(前時時顯示FRONT,后退時顯示BACK,左轉(zhuǎn)時顯示LEFT,右轉(zhuǎn)時顯示RIGHT,停止時顯示STOP)。
以下是按下遙控器上的05H時,小車顯示
11、的情況:
實驗8——數(shù)碼管溫度顯示程序
實現(xiàn)功能:在智能小車上設(shè)有溫度傳感器DS18B20的安裝位置,DS18B20安裝好后,能夠感知外界的溫度,要求外界溫度能通過LED數(shù)碼管顯示出來。
以下是顯示的溫度情況:
實驗9——LCD溫度顯示程序
實現(xiàn)功能:在智能小車上設(shè)有溫度傳感器DS18B20的安裝位置,DS18B20安裝好后,能夠感知外界的溫度,要求外界溫度能通過LCD顯示出來。
以下是顯示的溫度情況:
實驗10——避障小車程序
實現(xiàn)功能:在智能小車的頭部,設(shè)有避障光電開關(guān)安裝位置,如果裝上此光電開關(guān)后,就能夠感受到前方障礙物的,當(dāng)檢測到有障礙物
12、時,可控制小車后退并轉(zhuǎn)向,從而避開障礙物,達(dá)到避障的目的。
特別說明:本實例采用的是普通的光電開關(guān)(TCR T5000)進(jìn)行避障,由于該開關(guān)檢測距離較短(一般只有1cm左右),因此,避障效果不是很好,只有當(dāng)小車離障礙物較近時,才能檢測到障礙物的存在,容易發(fā)生車頭觸碰障礙物的情況;要真正達(dá)到比較好的效果,需要采用性能較好的光電開關(guān),如E3F-DS10C4等,其檢測距離達(dá)10cm以上,既使小車速度較快,一般也不會發(fā)生撞車的現(xiàn)象。另外,如果想全方位進(jìn)行避障,還需要在小車的前面多裝幾個光電開關(guān),對不同方位的障礙物進(jìn)行檢測,用戶可根據(jù)情況自行設(shè)計和安裝。
實驗11——小車循跡程序
實現(xiàn)功能:在智
13、能小車的頭部,設(shè)有兩個循跡光電開關(guān)安裝位置,如果裝上這個光電開關(guān)后,就能夠感受到地面鋪設(shè)的道路情況,從而控制小車按事先制作的黑色道路行進(jìn)。
以下是小車循跡實驗效果圖:
特別說明:本實例采用的是普通的光電開關(guān)(RPR220)進(jìn)行循跡,由于該開關(guān)檢測距離較短,因此,循跡效果不是很好,另外,還需要根據(jù)鋪設(shè)的道路情況對源程序中的延時程序進(jìn)行調(diào)整(當(dāng)轉(zhuǎn)向大時,將延時常數(shù)調(diào)小一些,當(dāng)轉(zhuǎn)向小時,將延時常數(shù)調(diào)大一些),以便使小車偏離道路時,能夠及時轉(zhuǎn)到正常的軌道上來。
為了能夠達(dá)到比較好的循跡效果,建議采用性能較好的光電開關(guān),如兩只E3F-DS10C4等,其檢測靈敏度較高,檢測距離較遠(yuǎn),當(dāng)然,既
14、使采用性能較好的光電開關(guān),也需要根據(jù)實際的道路情況,對源程序中的延時時間進(jìn)行調(diào)整。
這個源程序?qū)嶒灂r有一定難度,用戶一定要鋪設(shè)好道路,對源程序進(jìn)行簡單的修改,并保持一定的耐心,否則,不易成功!
實驗12——小車?yán)锍逃嬎愠绦?
實現(xiàn)功能:當(dāng)小車運行時,在數(shù)碼管上可以顯示出小車轉(zhuǎn)動的圈數(shù),并且每轉(zhuǎn)一圈,指示燈LED3會閃爍一次,當(dāng)按下K1鍵時,小車停止,同時,在數(shù)碼管上顯示出小車運行的距離。
以下顯示的是小車轉(zhuǎn)動的圈數(shù):
特別說明:本實例采用的是普通的光電開關(guān)(RPR220)進(jìn)行檢測,由于該開關(guān)檢測距離較短(一般只有1cm左右),因此,安裝速度光電開關(guān)時,應(yīng)盡量靠近車輪的內(nèi)側(cè),如果
15、小車轉(zhuǎn)動時,指示燈LED3不閃爍,說明光電開關(guān)安裝位置不正確,需要反復(fù)進(jìn)行調(diào)整,直至正常為止。
實驗13——無線控制小車程序
實現(xiàn)功能:將無線遙控接收模塊的+5V、GND、10(D0)、11(D1)、12(D2)、13(D3)、VT腳用杜邦線分別接智能小車開發(fā)板的VCC、GND、P00~P04腳,如下圖所示:
連接好后,可實現(xiàn)以下功能:按無線發(fā)射器的A鍵小車前進(jìn)(再按按壓則停止),按B鍵小車后退(再按按壓則停止),按C鍵小車左轉(zhuǎn)(再按按壓則停止),按D鍵小車右轉(zhuǎn)(再按按壓則停止)。
實驗14——具有語音功能的小車程序
實現(xiàn)功能:將ISD1700語音模塊J1中的VCC、GND插針用杜邦線分別接智能小車開發(fā)板的VCC、GND腳,將ISD1700語音模塊J4中的PLAY、FWD插針用杜邦線分別接智能小車開發(fā)板的P00~P01腳,如下圖所示:
連接好后,可實現(xiàn)以下功能:打開電源開關(guān),按下K1鍵后,小車開始前進(jìn),當(dāng)遇到障礙特時,小車發(fā)出“太危險了”,然后后退并轉(zhuǎn)向,進(jìn)行避障。
特別說明:本實驗是在實驗10的基礎(chǔ)上改編的,在進(jìn)行本實驗之前,請先進(jìn)行實驗10。