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