智能小車實(shí)訓(xùn)報(bào)告
《智能小車實(shí)訓(xùn)報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《智能小車實(shí)訓(xùn)報(bào)告(22頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 項(xiàng)目實(shí)訓(xùn)報(bào)告 目 錄 1.1 項(xiàng)目概述 1 1.2 設(shè)計(jì)要求 1 1.3 系統(tǒng)設(shè)計(jì) 1 1.3.1 設(shè)計(jì)方案 2 1.3.2 知識點(diǎn) 2 1.4 硬件模塊介紹 2 1.4.1 STC89C52RC單片機(jī) 2 1.4.2 電機(jī)驅(qū)動(dòng)L293D 3 1.4.3 尋跡模塊 4 1.4.4 避障模塊 5 1.4.5 電源模塊 5 1.5 機(jī)械系統(tǒng)設(shè)計(jì) 5 1.6 硬件設(shè)計(jì) 5 1.6.1 小車工作原理 5 1.6.2 電路框圖設(shè)計(jì) 5 1.6.3 知識點(diǎn) 6 1.6.4 元件
2、清單 6 1.6.5 信號檢測模塊設(shè)計(jì)7 1.7 軟件設(shè)計(jì) 9 1.7.1尋跡避障程序 9 1.7.2 紅外遙控程序 15 1.8 系統(tǒng)調(diào)試 17 心得體會 17 參考文獻(xiàn) 18 1.1 項(xiàng)目概述 自第一臺工業(yè)機(jī)器人誕生以來,機(jī)器人的發(fā)展已經(jīng)遍及機(jī)械、電子、冶金、交通、宇航、國防等領(lǐng)域。近年來機(jī)器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認(rèn)識自然的過程中,制造能替代人勞動(dòng)的機(jī)器一直是人類的夢想。 隨著科學(xué)技術(shù)的發(fā)展,機(jī)器人的感覺傳感器種類越來越多,其中視覺傳感器成為自動(dòng)行走和駕駛的重要
3、部件。視覺的典型應(yīng)用領(lǐng)域?yàn)樽灾魇街悄軐?dǎo)航系統(tǒng),對于視覺的各種技術(shù)而言圖像處理技術(shù)已相當(dāng)發(fā)達(dá),而基于圖像的理解技術(shù)還很落后,機(jī)器視覺需要通過大量的運(yùn)算也只能識別一些結(jié)構(gòu)化環(huán)境簡單的目標(biāo)。視覺傳感器的核心器件是攝像管或CCD,目前的CCD已能做到自動(dòng)聚焦。但CCD傳感器的價(jià)格、體積和使用方式上并不占優(yōu)勢,因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中考慮使用接近覺傳感器是一種實(shí)用有效的方法。 機(jī)器人要實(shí)現(xiàn)自動(dòng)導(dǎo)引功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機(jī)器人一個(gè)視覺功能。避障控制系統(tǒng)是基于自動(dòng)導(dǎo)引小車(AVG—auto-guide vehicle)系統(tǒng),基于它的智能小車實(shí)現(xiàn)自動(dòng)識別
4、路線,判斷并自動(dòng)避開障礙,選擇正確的行進(jìn)路線。使用傳感器感知路線和障礙并作出判斷和相應(yīng)的執(zhí)行動(dòng)作。 現(xiàn)智能小車發(fā)展很快,從智能玩具到其它各行業(yè)都有實(shí)質(zhì)成果。其基本可實(shí)現(xiàn)循跡、避障、檢測貼片、尋光入庫、避崖等基本功能,這幾節(jié)的電子設(shè)計(jì)大賽智能小車又在向聲控系統(tǒng)發(fā)展。比較出名的飛思卡爾智能小車更是走在前列。我們小組此次的設(shè)計(jì)主要實(shí)現(xiàn)循跡、避障、無線遙控這三個(gè)功能。 該智能小車可以作為機(jī)器人的典型代表。它可以分為三大組成部分:傳感器檢測部分、執(zhí)行部分、CPU。機(jī)器人要實(shí)現(xiàn)自動(dòng)避障、循跡、無線遙控等功能,感知導(dǎo)引線和障礙物??梢詫?shí)現(xiàn)小車自動(dòng)識別路線,選擇正確的行進(jìn)路線,并檢測到障礙物自動(dòng)躲避?;?/p>
5、上述要求,傳感檢測部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可,所以可以舍棄昂貴的CCD傳感器而考慮使用價(jià)廉物美的紅外反射式傳感器來充當(dāng)。智能小車的執(zhí)行部分,是由直流電機(jī)來充當(dāng)?shù)?,主要控制小車的行進(jìn)方向和速度。單片機(jī)驅(qū)動(dòng)直流電機(jī)一般有兩種方案:第一,勿需占用單片機(jī)資源,直接選擇有PWM功能的單片機(jī),這樣可以實(shí)現(xiàn)精確調(diào)速;第二,可以由軟件模擬PWM輸出調(diào)制,需要占用單片機(jī)資源,難以精確調(diào)速,但單片機(jī)型號的選擇余地較大??紤]到實(shí)際情況,本文選擇第二種方案。CPU使用STC89C52單片機(jī),配合軟件編程實(shí)現(xiàn)。 關(guān)鍵詞:智能小車 STC89C52RC單片機(jī) L293D驅(qū)動(dòng)
6、尋跡 避障 遙控 1.2 設(shè)計(jì)要求: 整個(gè)系統(tǒng)的設(shè)計(jì)以單片機(jī)為核心,利用了多組紅外線對管,將軟件和硬件相結(jié)合。本系統(tǒng)能實(shí)現(xiàn)如下功能: (1)自動(dòng)沿預(yù)設(shè)軌道行駛小車在行駛過程中,能夠自動(dòng)檢測預(yù)先設(shè)好的軌道,實(shí)現(xiàn)直道和弧形軌道的前進(jìn)。若有偏離,能夠自動(dòng)糾正,返回到預(yù)設(shè)軌道上來。 (2)當(dāng)小車探測到前進(jìn)前方的障礙物時(shí),可以自動(dòng)報(bào)警調(diào)整,躲避障礙物,從無障礙區(qū)通過。小車通過障礙區(qū)后,能夠自動(dòng)循跡。 (3)無線遙控小車左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、后退、停止。 19 第 頁 共 17 頁 1.3
7、系統(tǒng)設(shè)計(jì) 根據(jù)要求,確定如下方案:在車體上加裝光電檢測器,實(shí)現(xiàn)對電動(dòng)車的速度、位置、運(yùn)行狀況的實(shí)時(shí)檢測,并將檢測到的開關(guān)量信號傳送至單片機(jī)進(jìn)行處理,然后由單片機(jī)根據(jù)所檢測的各種數(shù)據(jù)實(shí)現(xiàn)對電動(dòng)車的智能控制。這種方案能實(shí)現(xiàn)對電動(dòng)車的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項(xiàng)要求。 1.3.1 設(shè)計(jì)方案 采用單片機(jī)作為整個(gè)系統(tǒng)的核心,用其控制行進(jìn)中的小車,以實(shí)現(xiàn)其既定的性能指標(biāo)。充分分析我們的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)小車的自動(dòng)控制,而在這一點(diǎn)上,單片機(jī)就顯現(xiàn)出來它的優(yōu)勢 控制簡單、方便、快捷。這樣一來,單片機(jī)就可以充分發(fā)揮其資源豐富、有較為強(qiáng)大的控制功能及可位尋址
8、操作功能、價(jià)格低廉等優(yōu)點(diǎn)。因此,這種方案是一種較為理想的方案。 針對本設(shè)計(jì)特點(diǎn) 多開關(guān)量輸入的復(fù)雜程序控制系統(tǒng),需要擅長處理多開關(guān)量的標(biāo)準(zhǔn)單片機(jī),而不能用精簡I/O口和程序存儲器的小體積單片機(jī),D/A、A/D功能也不必選用。根據(jù)這些分析,我選定了51單片機(jī)作為本設(shè)計(jì)的主控裝置,51單片機(jī)具有功能強(qiáng)大的位操作指令,I/O口均可按位尋址,程序空間多達(dá)8K,對于本設(shè)計(jì)也綽綽有余,更可貴的是51單片機(jī)價(jià)格非常低廉。 在綜合考慮了傳感器、兩部電機(jī)的驅(qū)動(dòng)等諸多因素后,我們決定采用一片STC89C52單片機(jī)(如圖1-1),充分利用單片機(jī)的資源。 1.4 硬件模塊介紹 1.4.1 STC8
9、9C52RC單片機(jī) STC89C52RC單片機(jī)結(jié)構(gòu)圖如 圖1-4-1所示。 圖1-4-1 STC89C52RC單片機(jī)結(jié)構(gòu)圖 STC89C52RC單片機(jī)的特點(diǎn)如下: (1)增強(qiáng)型6時(shí)鐘/機(jī)器周期、12時(shí)鐘/機(jī)器周期任意設(shè)置。 (2)工作電壓:5.5V~3.4V(5V單片機(jī))/2.0V~3.8V(3V單片機(jī))。 (3)工作頻率:0~40MHZ,相當(dāng)于普通80C51單片機(jī);實(shí)際使用范圍0~80HZ。 (4)8KB片內(nèi)程序存儲器,擦寫次數(shù)10萬次以上。 (5)片上集成512B RAM數(shù)據(jù)存儲。 (6)通過I/O(32/36個(gè)),復(fù)位后為:P1、P2、P3、P4是弱上拉
10、/準(zhǔn)雙向口(與普通MCS~51 I/O口功能一樣);P0口是開漏輸出口,作為總線擴(kuò)展時(shí)用,不用加上拉電阻;P0口作為I/O口用時(shí),需加上拉電阻。 (7)ISP在系統(tǒng)可編程,無需專用編程器/仿真器,可通過串口直接下載用戶程序,8KB程序3S即可完成一片。 (8)芯片內(nèi)置EEPROM功能。 (9)硬件看門狗(WDT)。 (10)共3個(gè)16位定時(shí)器/計(jì)數(shù)器,兼容普通MSC-51單片機(jī)的定時(shí)器,其中定時(shí)器T0還可以當(dāng)成2個(gè)8位定時(shí)器時(shí)用。 (11)外部中斷4路,下降沿中斷或低電平觸發(fā)中斷,掉電模式可有外部中斷喚醒。 (12)全雙工異步串行口(UART),兼容普通的80C51單片機(jī)的串口。
11、 (13)工作溫度范圍:0℃~75℃/-40℃~+85攝氏度。 1.4.2 電機(jī)驅(qū)動(dòng)L293D 采用功率三極管作為功率放大器的輸出控制直流電機(jī)。線性型驅(qū)動(dòng)的電路結(jié)構(gòu)和原理簡單,加速能力強(qiáng),采用由達(dá)林頓管組成的 H型橋式電路(如圖1-4-2)。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài)下,精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高,H型橋式電路保證了簡單的實(shí)現(xiàn)轉(zhuǎn)速和方向的控制,電子管的開關(guān)速度很快,穩(wěn)定性也極強(qiáng),是一種廣泛采用的 PWM調(diào)速技術(shù)。所以這里我們選用L293D。 圖1-4-2 H型橋式電路 L293D(圖1-4-3)采用16
12、引腳DIP封裝,其內(nèi)部集成了雙極型H-橋電路,所有的開量都做成N型。 這種雙極型脈沖調(diào)寬方式具有很多優(yōu)點(diǎn),如電流連續(xù);電機(jī)可四角限運(yùn)行;電機(jī)停止時(shí)有微 圖1-4-3 L293D驅(qū)動(dòng)芯片 振電流,起到“動(dòng)力潤滑”作用,消除正反向時(shí)的靜摩擦死區(qū);低速平穩(wěn)性好等。L293D通過內(nèi)部邏輯生成使能信號。H-橋電路的輸入量可以用來設(shè)置馬達(dá)轉(zhuǎn)動(dòng)方向,使能信號可以用于脈寬調(diào)整(PWM)。另外,L293D將2個(gè)H-橋電路集成到1片芯片上,這就意味著用1片芯 片可以同時(shí)控制2個(gè)電機(jī)。每1個(gè)電機(jī)需要3個(gè)控制信號EN12、IN1、IN2,其中EN12是使能信號,IN1、IN2為電機(jī)轉(zhuǎn)動(dòng)方向控制信號,IN1、
13、IN2分別為1,0時(shí),電機(jī)正轉(zhuǎn),反之,電機(jī)反轉(zhuǎn)。選用一路PWM連接EN12引腳,通過調(diào)整PWM的占空比可以調(diào)整電機(jī)的轉(zhuǎn)速。 1.4.3 循跡模塊 采用五只紅外對管(如圖1-4-4)模塊,分別置于小車車身前排,根據(jù)兩只光電開關(guān)接受到白線與黑線的情況來控制小車轉(zhuǎn)向來調(diào)整車向,測試表明,只要合理安裝好兩只光電開關(guān)的位置就可以很好的實(shí)現(xiàn)循跡的功能。 圖1-4-4 紅外對管(TCRT5000)實(shí)物圖 1.4.4 避障模塊 采用兩塊只紅外對管模塊置于小車前方。通過測試此種方案就能很好的實(shí)現(xiàn)小車避開障礙物,且充分的利用資源而不浪費(fèi)。 1.4.5 電源模塊 方案:智能小車系統(tǒng)需
14、要5V~6V電源才能正常工作,所以采用1支1.5V與1支4V電池混合并聯(lián)使用。 1.5 機(jī)械系統(tǒng)設(shè)計(jì) 本題目要求小車的機(jī)械系統(tǒng)穩(wěn)定、靈活、簡單,而三輪運(yùn)動(dòng)系統(tǒng)具備以上特點(diǎn)。但為了車體運(yùn)動(dòng)過程中更加穩(wěn)定,前后分別用一個(gè)萬向輪,左、右輪子由電機(jī)驅(qū)動(dòng)轉(zhuǎn)向。 驅(qū)動(dòng)部分:智能小車的直流電機(jī)功率較小,而小車上裝有電池、電機(jī)、電子器件等,使得電機(jī)負(fù)擔(dān)較重。為使小車能夠順利啟動(dòng),且運(yùn)動(dòng)平穩(wěn),在直流電機(jī)和輪車軸之間加裝了三級減速齒輪。 電池的安裝:將電池盒盡量安置在車體的電機(jī)前或后位置,降低車體重心,提高穩(wěn)定性,同時(shí)可增加驅(qū)動(dòng)輪的抓地力,減小輪子空轉(zhuǎn)所引起的誤差。 1.6 硬件設(shè)計(jì) 1.6.1 小車
15、工作原理 智能小車采用左右輪兩邊各用一個(gè)電機(jī)驅(qū)動(dòng),調(diào)制左右兩個(gè)輪子的轉(zhuǎn)速起停從而達(dá)到控制轉(zhuǎn)向的目的,前、后輪是萬象輪,起支撐的作用。將五路循跡光電對管模塊分別裝在車頭下的前排(貼地面稍近效果更佳)。例如:當(dāng)車身下的1號傳感器檢測到黑線時(shí),主控芯片控制右輪電機(jī)停止,車向右修正,當(dāng)車身下右邊5號傳感器檢測到黑線時(shí),主控芯片控制左輪電機(jī)停止,車向左修正。小車各種運(yùn)動(dòng)狀態(tài)如表1-6-1。 表1-6-1 小車工作狀態(tài)表 狀態(tài)號 1號 2號 3號 4號 5號 左輪電機(jī) 右輪電機(jī) 小車狀態(tài) 1 0 1 1 1 1 快速正轉(zhuǎn) 不轉(zhuǎn) 右轉(zhuǎn)彎 2 1 0 1 1
16、 1 慢速正轉(zhuǎn) 不轉(zhuǎn) 右微轉(zhuǎn)彎 3 1 1 0 1 1 快速正轉(zhuǎn) 快速正轉(zhuǎn) 快速前進(jìn) 4 1 1 1 0 1 不轉(zhuǎn) 慢速正轉(zhuǎn) 左轉(zhuǎn)彎 5 1 1 1 1 0 不轉(zhuǎn) 快速正轉(zhuǎn) 左微轉(zhuǎn)彎 避障的原理和循線一樣,在車身右邊裝一個(gè)光電對管模塊,當(dāng)其檢測到障礙物時(shí),主控芯片給出信號控制小車倒退,轉(zhuǎn)向,從而避開障礙物。 1.6.2電路框圖設(shè)計(jì) 由以上設(shè)計(jì)思路可設(shè)計(jì)出智能小車電路框圖(圖1-6-1) 蜂鳴 LED數(shù)顯 驅(qū)動(dòng) 電機(jī) 尋跡、避障模塊 時(shí)鐘 電路 復(fù)位電路 紅外遙控接收電路 STC89C
17、52 圖1-6-1 電路設(shè)計(jì)框圖 1.6.3知識點(diǎn) 本實(shí)訓(xùn)項(xiàng)目需要通過學(xué)習(xí)和查閱資料,了解和掌握以下知識。 (1)電路原理圖設(shè)計(jì)。 (2)單片機(jī)復(fù)位電路工作原理設(shè)計(jì)。 (3)單片機(jī)晶振帶工作原理設(shè)計(jì) (4)驅(qū)動(dòng)器L293D直流電機(jī)驅(qū)動(dòng)的特性及使用。 (5)4位共陰極數(shù)顯的使用方法 (6)STC89C52RC單片機(jī)引腳。 (7)Keil uVision3編程工具的使用方法。 (8)單片機(jī)C語言程序設(shè)計(jì)。 (9)PCB板的設(shè)計(jì)。 (10)SPI程序下載工具的使用。 (11)紅外對管的原理。 (12)無線遙控電
18、路設(shè)計(jì)。 1.6.4 元件清單 基于STC89C52RC單片機(jī)智能小車的設(shè)計(jì)元件清單如表1-6-2所示。 表1-6-2 智能小車元件清單表 元件名稱 型號 數(shù)量 用途 單片機(jī) STC89C52RC 1個(gè) 控制核心 晶振 12.0598MHz 1個(gè) 晶振電路 三極管 S8050 4個(gè) 數(shù)碼管顯示電路 發(fā)光二極管 LED-RED 1個(gè) 指示燈 電容 100F 4個(gè) 電源電路 30PF 2個(gè) 晶振電路 電解電容 10F 1個(gè) 消振電路 紅外避障模塊 TCRT5000 2個(gè) 臂章電路 紅外線接收頭 V34838
19、1個(gè) 遙控接收電路 紅外尋跡模塊 TCRT5000 5個(gè) 尋跡電路 電阻 10KΩ、300Ω、1KΩ 若干 關(guān)機(jī)電路 直流電機(jī)驅(qū)動(dòng) L293D 1個(gè) 電機(jī)驅(qū)動(dòng) 銅柱 5mm、10mm、20mm 共20根 固定模塊 直流減速電機(jī) 小型 #1017 2個(gè) 驅(qū)動(dòng)小車 排針 KF332K-3P 若干 杜邦線插座 杜邦線 帶針孔 若干 制作插線頭 數(shù)碼管 7SEG-MPX4-CC 1個(gè) 顯示電路 蜂鳴器 HUDZ 1個(gè) 報(bào)警電路 電源 5V~6V 1個(gè) 小車電源 1.6.5信號檢測模塊設(shè)計(jì) 小車循跡原理是小車在畫有黑線
20、的白紙 “路面”上行駛,由于黑線和白紙對光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”—黑線。所以在該模塊中利用了簡單、應(yīng)用也比較普遍的檢測方法——紅外探測法。市面上有很多紅外傳感器,在這里我選用TCRT5000型光電對管。 紅外探測法,即利用紅外線在不同顏色的物理表面具有不同的反射性質(zhì)的特點(diǎn)。在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色地面時(shí)發(fā)生漫發(fā)射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,則小車上的接收管接收不到信號,再通過LM339(比較器)作比較來采集高低電平,從而實(shí)現(xiàn)信號的檢測。設(shè)計(jì)出尋跡模塊電路圖(圖1-6-2)。
21、圖1-6-2 protel仿真尋跡電路 小車避障模塊則與尋跡模原理相同。如果遇到障礙物,反射光被裝在小車上的避障模塊接收管接收。再通過多個(gè)74LS00(與非門)來采集高低電平,從而實(shí)現(xiàn)信號的檢測,通過單片機(jī)處理數(shù)據(jù)輸入PWM波,從而控制電機(jī)正反轉(zhuǎn)來控制小車前進(jìn)方向避開障礙物。避障模塊上有多圈精密可調(diào)電位器,可根據(jù)使用環(huán)境調(diào)節(jié).調(diào)節(jié)范圍從3cm-30cm。因?yàn)槭欠瓷湓?跟具體的反射目標(biāo)相關(guān),可根據(jù)情況調(diào)節(jié)。設(shè)計(jì)出電路原理圖(圖1-6-3)。 圖1-6-3 protel仿真避障電路 主控模塊主要是對采集信號進(jìn)行分析,在L239D的EN 端輸入PWM波,同時(shí)通過調(diào)整PWM波的占空比控
22、制電機(jī)速度,起停。其電路圖如圖1-6-4。 圖1-6-4 protel仿真主控電路 1.7軟件設(shè)計(jì) 1.7.1 尋跡避障程序流程圖 由于智能小車的設(shè)計(jì)主要用紅外對管進(jìn)行數(shù)據(jù)采集,來實(shí)現(xiàn)小車的尋跡、避障、無線遙控等功能。主要涉及開關(guān)量信號的處理問題,所以程序用C語言編寫最為簡單。設(shè)計(jì)出尋跡、避障程序流程圖(圖1-7-1) YES YES YES YES NO YES NO NO NO NO YES !K1 !K2 快速右轉(zhuǎn) 右微轉(zhuǎn) 前進(jìn) !K3 !K4 !K5 快速左轉(zhuǎn) 左微轉(zhuǎn) !KIN1 !KIN2 左轉(zhuǎn)后右轉(zhuǎn) 右
23、轉(zhuǎn)后左轉(zhuǎn)
NO
NO
YES
尋跡程序
主函數(shù)
開始
避障程序
圖1-7-1 尋跡加避障程序流程圖
程序清單如下:
#include
24、sbit KIN1=P1^5; sbit KIN2=P1^6; sbit out1 = P2^0 ; sbit out2 = P2^1 ; sbit out3 = P2^2 ; sbit out4 = P2^3 ; void delay(uint t) //延時(shí)程序1 { uchar j; while(t--) {for(j=5;j>0;j--);} } //左轉(zhuǎn) void comeleft() { uchar i; out1=0; out2=0; out3=1; out4=0; for(i=0;i<
25、10;i++) { out1=!out1; delay(1); } } //左微轉(zhuǎn) void sleft() { uchar i; out1=0; out2=0; out3=1; out4=0; for(i=0;i<5;i++) { out1=!out1; delay(1); } } //右微轉(zhuǎn) void sright() { uchar i; out1=1; out2=0; out3=0; out4=0; for(i=0;i<5;i++) { out3=
26、!out3; delay(1); } } //右轉(zhuǎn) void comeright () { uchar i; out1=1; out2=0; out3=0; out4=0; for(i=0;i<10;i++) { out3=!out3; delay(10); } } //前進(jìn)加速; void comeon() { out2=0; out4=0; out1=1; out3=1; } //避障原路返回 void shunback() { if((!KIN1)
27、|(!KIN2)) { out1=0; out2=1; out3=1; out4=0; delay(4000); comeon(); delay(4000); out1=1; out2=0; out3=0; out4=0; delay(1000); comeon(); delay(2000); while(K1&&K2&&K3&&K4&&K5){ comeright ();} ; } else{;} } //循跡 void scanline(
28、) { P1=0XFF; if(K5==0){comeleft();} else if(!K1) { comeright ();} else if(!K4) { sleft();comeon(); } else if(!K2) { sright();comeon(); } else if(!K3) { comeon();comeon(); } else {P2=P2;} } void main(void) { P1=0XFF; P2=0XFF; while(1) { shunback(); scanline(
29、);
}
}
1.7.2 紅外遙控程序
設(shè)計(jì)出紅外線遙控接收程序流程圖(圖1-7-2)。
中斷開始
關(guān)中斷
按鍵識別
返回?cái)?shù)據(jù)
中斷結(jié)束
初始化
開始
調(diào)數(shù)據(jù)處理子程序
調(diào)驅(qū)動(dòng)小車子程序
圖1-7-2 遙控接收程序流程圖
紅外線遙控小車程序清單
#include
30、6; sbit out1 = P2^0 ; sbit out2 = P2^1 ; sbit out3 = P2^2 ; sbit out4 = P2^3 ; unsigned long xdata rec_code; unsigned long xdata time_us; unsigned char xdata rec_cnt; unsigned char xdata kbuf; uchar sdata; bit rec_b; bit key_save; bit keyp; uchar code seg7code[]={0x3f,0x06,0x5b,0x4f
31、,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(uchar t) //延時(shí)程序1 { uchar j; while(t--) {for(j=50;j>0;j--);} } void Init() { TMOD = 0x09; //T/C1采用16位定時(shí)器/計(jì)數(shù)器 ET1 = 1; //定時(shí)器1開中斷 TH0 = 0x00; TL0 = 0x00; ET0 = 0; TR0 = 1; //定時(shí)計(jì)數(shù)器啟動(dòng)計(jì)數(shù) EX0 = 1; //外部中斷0關(guān)中斷
32、 EX1 = 0; //外中斷1關(guān)中斷 EA = 1; //CPU開中斷 } void stop() { out1=0; out2=0; out3=0; out4=0; delay(10); } //左轉(zhuǎn) void comeleft() { out1=0; out2=1; out3=1; out4=0; delay(200); } //右轉(zhuǎn) void comeright () { out1=1; out2=0; out3=0; out4=1; delay(200); } //前進(jìn)加速
33、; void comeon() { out2=0; out4=0; out1=1; out3=1; } //后退 void comeback() { out1=0; out3=0; out2=1; out4=1; delay(200); } //避開障礙物 void shunout() { if(sdata==157){ comeon();rec_code=0;sdata=0;} else if (sdata==87){comeback();rec_code=0;sdata=0;} else
34、 if (sdata==253){stop();rec_code=0;sdata=0;} else if (sdata==61){comeright();rec_code=0;sdata=0;} else if (sdata==221){comeleft();rec_code=0;sdata=0;} else{;} } void inter_x0() interrupt 0 { TR0 = 0; time_us = (unsigned long)(TH0<<8) + TL0; TH0 = 0; TL0 = 0; TR
35、0 = 1; if(time_us>3800&&time_us<4500) { rec_cnt = 0; rec_code = 0; } else if(time_us>300&&time_us<700) { rec_cnt ++; rec_code = rec_code<<1; //rec_code = rec_code &0x00000000; } else if(time_us>1300&&time_us<17
36、50) { rec_cnt ++; rec_code = rec_code<<1; rec_code = rec_code|0x00000001; //IO_buzz = 0; } else if(time_us>1800&&time_us<2200) { rec_code = rec_code; rec_cnt++; // if(rec_cnt>1) { rec_cnt = 0
37、; key_save = 1; } } if(rec_cnt==32) { rec_b = 1; key_save = 0; rec_cnt = 0; } } void GetKeyValue() { if(rec_b) { unsigned char da; rec_b = 0; kbuf = (rec_code&0x0000ff00)>>8;
38、 da = rec_code&0x000000ff; if(kbuf==~da) { sdata=da; } } } void main() { P1=0XFF; P2=0XFF; P3=0XFF; P0=0XFF; Init(); while(1) { GetKeyValue(); shunout(); } } 1.8 系統(tǒng)調(diào)試 在在Keil軟件中調(diào)試尋跡加避障程序并生成Hex文件。將在Keil下生成的HEX文件下載到STC89C52單片機(jī)中
39、。將下車加上電源(注意:如果加的電源電壓大于6V將跳線插到大于6V的針腳上,5V則插在5V所對應(yīng)的針腳上,否則單片機(jī)會燒壞),將小車至于預(yù)先設(shè)計(jì)好的黑色膠帶地面上。按下電源按鈕啟動(dòng)小車,小車按照黑色膠帶路線行駛。當(dāng)在黑色軌道上放置一障礙物,小車能夠繞開障礙物自動(dòng)修正方向繼續(xù)尋跡。以上測試說明智能小車尋跡、避障功能調(diào)試成功。 同上下載遙控程序,按下紅外遙控器相應(yīng)的鍵能夠控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等。說明小車無線遙控功能測試成功。 根據(jù)測試的情況來看,尋跡效果比較好。避障功能不是很完美,當(dāng)遇到不反光的障礙物時(shí)紅外線接收頭接收不到反射光導(dǎo)致小車避障功能大打折扣。遙控小車轉(zhuǎn)彎時(shí),小車沒有
40、固定的轉(zhuǎn)彎角度。當(dāng)小車運(yùn)行速度快時(shí),遙控小車轉(zhuǎn)彎會使小車原地打轉(zhuǎn)。 心得體會 這次實(shí)訓(xùn)題目是基于STC89C52RC單片機(jī)智能小車的設(shè)計(jì)與開發(fā)。實(shí)訓(xùn)中自己焊接主板又一次提升了我們的焊接技術(shù),這對作為即將畢業(yè)的計(jì)算機(jī)應(yīng)用專業(yè)的學(xué)生走向工作崗位至關(guān)重要。熟悉了很多我們曾今從未認(rèn)識的元器件,比如紅外線對管、無線遙控以及一些簡單的傳感器。STC89C52RC單片機(jī)雖然我們從未用過,但在以前學(xué)習(xí)C51單片機(jī)的基礎(chǔ)上遇到問題也能迎刃而解。實(shí)訓(xùn)中不但拓展了我們的思維,還能夠把這次實(shí)訓(xùn)理論和經(jīng)驗(yàn)與以后的工作和實(shí)際生活相結(jié)合應(yīng)用。 通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)
41、不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足。 系統(tǒng)調(diào)試中,許多小組都因?yàn)樗玫碾娫措妷哼^高導(dǎo)致單片機(jī)被燒壞,我們小組也未能幸免。這次給了我們極大的教訓(xùn),在以后的項(xiàng)目實(shí)訓(xùn)和工作中一定要按照規(guī)定進(jìn)行設(shè)計(jì)。 在這次實(shí)訓(xùn)中,我們學(xué)到了該怎樣去擬定一個(gè)項(xiàng)目計(jì)劃并去實(shí)現(xiàn)它。本次項(xiàng)目的設(shè)計(jì)與開發(fā)能夠順利完成,還要感謝各位老師的指導(dǎo)和身邊許多同學(xué)的幫助。在設(shè)計(jì)過程中,許多老師給予了悉心的指導(dǎo),最重要的是給了我們解決問題的思路和方法,在此,再次對你們表示最真摯的感謝! 參考文獻(xiàn) [1]郭惠,吳迅.單片機(jī)C語言程序設(shè)計(jì)完全自學(xué)手冊[M].電子工業(yè)出版社,2008.10:1-200. [2]王東鋒,王會良,董冠強(qiáng). 單片機(jī)C語言應(yīng)用100例[M]. 電子工業(yè)出版社,2009.3:145-300. [3]韓毅,楊天. 基于HCS12單片機(jī)的智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)[J].學(xué)術(shù)期刊,2008,2 9(18):1535-1955. [4] 王曉明. 電動(dòng)機(jī)的單片機(jī)控制[J]. 學(xué)術(shù)期刊,2002,13(15):1322-1755.
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備采購常用的四種評標(biāo)方法
- 車間員工管理須知(應(yīng)知應(yīng)會)
- 某公司設(shè)備維護(hù)保養(yǎng)工作規(guī)程
- 某企業(yè)潔凈車間人員進(jìn)出管理規(guī)程
- 企業(yè)管理制度之5S管理的八個(gè)口訣
- 標(biāo)準(zhǔn)化班前會的探索及意義
- 某企業(yè)內(nèi)審員考試試題含答案
- 某公司環(huán)境保護(hù)考核管理制度
- 現(xiàn)場管理的定義
- 員工培訓(xùn)程序
- 管理制度之生產(chǎn)廠長的職責(zé)與工作標(biāo)準(zhǔn)
- 某公司各級專業(yè)人員環(huán)保職責(zé)
- 企業(yè)管理制度:5S推進(jìn)與改善工具
- XXX公司環(huán)境風(fēng)險(xiǎn)排查及隱患整改制度
- 生產(chǎn)車間基層管理要點(diǎn)及建議