欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      智能尋跡小車實訓(xùn)報告[大全]

      時間:2019-05-12 12:01:27下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《智能尋跡小車實訓(xùn)報告[大全]》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《智能尋跡小車實訓(xùn)報告[大全]》。

      第一篇:智能尋跡小車實訓(xùn)報告[大全]

      目錄

      1、引言

      1.1智能小車的設(shè)計意義和作用………………………3

      2、系統(tǒng)總體設(shè)計……………………………………………4

      3、硬件設(shè)計

      3.1循線模塊……………………………………………5

      4、軟件設(shè)計

      4.1軟件調(diào)試平臺………………………………………7 4.2系統(tǒng)軟件流程………………………………………8 4.3系統(tǒng)軟件程序………………………………………9

      5、調(diào)試及性能分析………………………………………12

      6、設(shè)計總結(jié)………………………………………………13

      7、作品實物圖……………………………………………14

      8、參考文獻(xiàn)………………………………………………15

      1、引言

      1.1智能小車的設(shè)計意義和作用

      智能小車是移動式機(jī)器人的重要組成部分,介紹一種基于AT89S52單片機(jī)的智能小車。通過不斷檢測各個模塊傳感器的輸入信號,根據(jù)內(nèi)置的程序分別控制小車左右兩個直流電機(jī)運轉(zhuǎn),實現(xiàn)小車自動識別路線,尋找光源,判斷并避開障礙物,檢測道路上的鐵片、發(fā)出聲光信息并計數(shù)顯示,智能停車等功能。

      作為20世紀(jì)自動化領(lǐng)域的重大成就,機(jī)器人已經(jīng)和人類社會的生產(chǎn)、生活密不可分。因此為了使智能小車工作在最佳狀態(tài),進(jìn)一步研究及完善其速度和方向的控制是非常有必要的。智能小車要實現(xiàn)自動尋跡功能和避障功能就必須要感知導(dǎo)引線和障礙物,感知導(dǎo)引線相當(dāng)給機(jī)器人一個視覺功能。避障控制系統(tǒng)是基于自動導(dǎo)引小車(avg—auto-guide vehicle)系統(tǒng),基于它的智能小車實現(xiàn)自動識別路線,判斷并自動避開障礙,選擇正確的行進(jìn)路線。使用傳感器感知路線和障礙并作出判斷和相應(yīng)的執(zhí)行動作。該智能小車可以作為機(jī)器人的典型代表.它可以分為三大組成部分:傳感器檢測部分,,執(zhí)行部分,cpu。機(jī)器人要實現(xiàn)自動避障功能,還可以擴(kuò)展循跡等功能,感知導(dǎo)引線和障礙物。可以實現(xiàn)小車自動識別路線,選擇正確的行進(jìn)路線,并檢測到障礙物自動躲避??紤]使用價廉物美的紅外反射式傳感器來充當(dāng)。智能小車的執(zhí)行部分,是由直流電機(jī)來充當(dāng)?shù)模饕刂菩≤嚨男羞M(jìn)方向和速度。

      2、系統(tǒng)總體設(shè)計

      AT89S52單片機(jī)作為總的控制核心,利用傳感器,在循線信號、尋光信號、檢測障礙物信號等的輸入作用下,控制電機(jī)采取相應(yīng)的動作,從而調(diào)整小車做合適的選擇。同時,如果有檢測到金屬片的信號,則將該信號以聲光的形式表現(xiàn)出來并令數(shù)碼管計數(shù)顯示。主要有循線、尋光、避障、金屬檢測、數(shù)碼顯示、電機(jī)驅(qū)動、電源、單片機(jī)控制等8大模塊,如2-1圖所示。

      圖2-1 功能模塊圖

      3、硬件設(shè)計

      3.1循線模塊

      循線模塊,循跡是指小車在白紙地板上循黑線行走通常采取的方法是紅外探測法,紅外探測法即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點,可以根據(jù)黑帶和白紙對光線的發(fā)射系數(shù)不同,可以利用車底接收到的發(fā)射光的強(qiáng)弱來判斷“道路”黑帶。采用四個紅外光電管分別置于移動智能小車前板底座的兩側(cè),確保沿著黑線行駛。紅外光電管由一個發(fā)射管和一個接收管組成,安裝在同一面上。紅外光電管的工作原理是由發(fā)射管發(fā)射出的紅外線,經(jīng)檢測面反射后被接收管吸收,由于檢測面顏色的不同,對紅外線的吸收程度也不同,從而反映在接收管的阻值變化上。這種阻值變化通過外接通路就能轉(zhuǎn)換成單片機(jī)能夠識別的信號。由于紅外光電管發(fā)出的是紅外線,日光對小車的檢測不會產(chǎn)生影響,因而其抗干擾性能好,從而實現(xiàn)小車的循跡功能。但紅外探測器探測距離有限,一般最大不應(yīng)超過3cm。循跡功能如3-1,3-2圖所示。

      圖 3-1 循跡功能圖

      圖3-2循跡功能圖

      本設(shè)計需要檢測小車的運動狀態(tài),沿著路面黑線運動。采用發(fā)射取樣式,單光束紅外傳感器接收信號,電路在5V電壓下工作,根據(jù)該型號傳感器紅外發(fā)射管所需的工作降壓(紅外發(fā)射管的正向降壓在1-1.3V)和工作電流(紅外發(fā)射管的電流為2-10mA),選取負(fù)載電阻R=15千歐,紅外發(fā)射管負(fù)載電阻R=220歐。

      4、軟件設(shè)計

      4.1 軟件調(diào)試平臺

      Keil for C51是美國Keil Software公司出品的C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,Keil C51軟件還提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,生成的目標(biāo)代碼效率非常高,且容易理解。

      C51開發(fā)中除了必要的硬件外,同樣離不開軟件,我們寫的源程序要變?yōu)镃51可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,但現(xiàn)在已極少使用手工匯編。Keil提供了包括C編譯器、宏匯編、連接線、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision2)將這些部分組合在一起。如圖4-1所示。

      圖4-1 Keil for C51開發(fā)平臺

      4.2系統(tǒng)軟件流程

      系統(tǒng)軟件流程圖如圖4-2所示

      圖4-2系統(tǒng)流程圖

      4.3系統(tǒng)軟件程序

      #include #define LED P1 //定義數(shù)據(jù)顯示端口

      sbit D1=P2^0;//定義前方左側(cè)指示燈端口 sbit D2=P0^7;//定義前方側(cè)右指示燈端口 sbit ZIR=P3^5;//定義前方左側(cè)紅外探頭端口 sbit YIR=P3^6;//定義前方右側(cè)紅外探頭端口 sbit QIR=P3^7;//定義前方正前方紅外探頭端口 sbit M1A=P0^0;//定義左側(cè)電機(jī)驅(qū)動A端 sbit M1B=P0^1;//定義左側(cè)電機(jī)驅(qū)動B端 sbit M2A=P0^2;//定義右側(cè)電機(jī)驅(qū)動A端 sbit M2B=P0^3;//定義右側(cè)電機(jī)驅(qū)動B端 sbit SB1=P0^4;//定義語音識別傳感器端口 sbit MIC=P0^6;//定義蜂鳴器端口 void delay(unsigned int z){ while(z--);SB1=!SB1;

      return;} void car(unsigned char a){ M1A=0;M2A=0;M1B=0;M2B=0;switch(a){ case 1:{M1A=1;M2A=1;break;};case 2:{M1B=1;M2B=1;D1=0;D2=0;break;};case 3:{M1B=1;M2A=1;D2=0;break;};case 4:{M1A=1;M2B=1;D1=0;break;};} } void main(){ car(1);while(1);{ D1=1;D2=1;LED=0x00;if(QIR==0){ car(2);delay(15000);car(1);} if(YIR==0&&ZIR==1){ car(3);delay(15000);if(YIR==0&&ZIR==1){ car(1);} } if(ZIR==0){ car(4);delay(15000);if(YIR==0&&ZIR==1)

      { car(1);} } if(YIR==0&&ZIR==0){ car(2);delay(30000);} } }

      5、調(diào)試及性能分析

      整機(jī)焊接完畢,首先對硬件進(jìn)行檢查聯(lián)線有無錯誤,再逐步對各模塊進(jìn)行調(diào)試。首先寫入電機(jī)控制小程序,控制其正反轉(zhuǎn),停機(jī)均正常。加入避障子程序,小車運轉(zhuǎn)正常,調(diào)整靈敏度達(dá)最佳效果。加入顯示時間子程序,顯示正常。鐵片檢測依靠接近開關(guān),對檢測信號進(jìn)行處理并實時顯示和發(fā)出聲光信息,無異常狀況。路程顯示部分是對霍爾管脈沖進(jìn)行計數(shù),為了盡量達(dá)到精確,車輪加裝小磁片。接著對黑帶檢測模塊調(diào)試,發(fā)現(xiàn)有時小車會跑出黑帶,經(jīng)判斷是因為紅外線收發(fā)對管靈敏度不高,調(diào)整靈敏度后仍然達(dá)不到滿意效果,疑是受環(huán)境光影響,利用塑料套包圍紅外線收發(fā)后問題解決。趨光電路主要由三個光敏電阻構(gòu)成,調(diào) 整三個光敏電阻的角度同時測試軟件,以最佳效果完成趨光功能。

      整機(jī)綜合調(diào)試,上電后對系統(tǒng)進(jìn)行初始化,接著控制電機(jī)使小車向前行駛,突然發(fā)現(xiàn)系統(tǒng)即刻進(jìn)入外部中斷1,重復(fù)多次測試,結(jié)果都是自動進(jìn)入該中斷。推斷是由剛上電時電機(jī)起動所引起,為了避免上電瞬間的影響,在啟動小車后延時幾毫秒,再開外部中斷,結(jié)果問題解決。允許的話應(yīng)采用雙電源供電,即電機(jī)和電路應(yīng)分開供電,L293D與單片機(jī)之間采用隔離信號控制。這樣就不會出現(xiàn)小車啟動時程序出錯和數(shù)碼管顯示閃動的問題。在計程精度上,可用紅外線原理獲 得較高精度。

      6、設(shè)計總結(jié)

      通過本次實訓(xùn)設(shè)計,不僅是對我們課本所學(xué)知識的考查,更是對我們的自學(xué)能力和收集資料能力及動手能力的考驗,本次實訓(xùn)使我們對一個項目整體設(shè)計有了初步認(rèn)識。再有對電路板的制作有了一定的了解。并學(xué)會了使用keil軟件設(shè)計。本次實訓(xùn)使我們意識到實驗的更重要性,在硬件制作和軟件調(diào)試過程中,出現(xiàn)了很多問題,最終都

      是通過實驗的方法來解決的。還有以前對程序只是一個模糊的概念。通過這次實訓(xùn)極大的鍛煉了我們的思考和分析問題能力。并對單片機(jī)有利益更深的認(rèn)識。

      總之,實訓(xùn)過程中,無論是對學(xué)習(xí)方法還是理論知識,我們都有了新的認(rèn)識。受益匪淺。這將激勵我們今后再接再勵,不斷完善自己的理論知識提高實踐運作能力。

      8、作品實物圖

      9、參考文獻(xiàn)

      1)、《單片機(jī)應(yīng)用技術(shù)》 2)、《周立功單片機(jī)》 3)、《單片機(jī)原理與應(yīng)用》

      4)、《8051單片機(jī)程序設(shè)計與實例》 5)、《MCS-51單片機(jī)實驗指導(dǎo)》

      第二篇:智能小車實訓(xùn)報告

      智能小車實訓(xùn)報告

      摘要:

      本課題是基于AT89C52單片機(jī)的智能小車的設(shè)計與實現(xiàn),小車完成的主要功能是能夠自主識別黑色引導(dǎo)線并根據(jù)黑線走向?qū)崿F(xiàn)快速穩(wěn)定的尋線行駛。小車系統(tǒng)以 AT89S52 單片機(jī)為系統(tǒng)控制處理器;

      采用紅外傳感獲取賽道的信息,來對小車的方向和速度進(jìn)行控制。此外,對整個控制軟件進(jìn)行設(shè)計和程序的編制以及程序的調(diào)試,并最終完成軟件和硬件的融合,實現(xiàn)小車的預(yù)期功能。

      一、實驗?zāi)康模?/p>

      通過設(shè)計進(jìn)一步掌握51單片機(jī)的應(yīng)用,特別是在嵌入式系統(tǒng)中的應(yīng)用。進(jìn)一步學(xué)習(xí)51單片機(jī)在系統(tǒng)中的控制功能,能夠合理設(shè)計單片機(jī)的外圍電路,并使之與單片機(jī)構(gòu)成整個系統(tǒng)。

      二、設(shè)計方案

      該智能車采用紅外傳感器對賽道進(jìn)行道路檢測,單片機(jī)根據(jù)采集到的信號的不同狀態(tài)判斷小車當(dāng)前狀態(tài),通過電機(jī)驅(qū)動芯片L298N發(fā)出控制命令,控制電機(jī)的工作狀態(tài)以實現(xiàn)對小車姿態(tài)的控制。

      三.報告內(nèi)容安排

      本技術(shù)報告主要分為三個部分。第一部分是對整個系統(tǒng)實現(xiàn)方法的一個概要說明,主要內(nèi)容是對整個技術(shù)原理的概述;第二部分是對硬件電路設(shè)計的說明,主要介紹系統(tǒng)傳感器的設(shè)計及其他硬件電路的設(shè)計原理等;第三部分是對系統(tǒng)軟件設(shè)計部分的說明,主要內(nèi)容是智能模型車設(shè)計中主要用到的控制理論、算法說明及代碼設(shè)計介紹等。

      技術(shù)方案概要說明

      本模型車的電路系統(tǒng)包括電源管理模塊、單片機(jī)模塊、傳感

      器模塊、電機(jī)驅(qū)動模塊。

      工作原理:

      ? 利用紅外采集模塊中的紅外發(fā)射接收對管檢測路面上的軌跡 ? 將軌跡信息送到單片機(jī)

      ? 單片機(jī)采用模糊推理求出轉(zhuǎn)向的角度,然后去控制

      行走部分

      ? 最終完成智能小車可以按照路面上的軌跡運行。

      硬件電路的設(shè)計

      1、最小系統(tǒng):

      小車采用atmel公司的AT89C52單片機(jī)作為控制芯片,圖1是其最小系統(tǒng)電路。主要包括:時鐘電路、電源電路、復(fù)位電路。其中各個部分的功能如下:

      1、時鐘電路:給單片機(jī)提供一個外接的16MHz的石英晶振。

      2、電源電路:給單片機(jī)提供5V電源。

      3、復(fù)位電路:在電壓達(dá)到正常值時給單片機(jī)一個復(fù)位信號。

      圖1

      單片機(jī)最小系統(tǒng)原理圖

      2、電源電路設(shè)計:

      模型車通過自身系統(tǒng),采集賽道信息,獲取自身速度信息,加以處理,由芯片給出指令控制其前進(jìn)轉(zhuǎn)向等動作,各部分都需要由電路支持,電源管理尤為重要。在本設(shè)計中,51單片機(jī)使用5V電源,電機(jī)及舵機(jī)使用6V電源??紤]到電源為充電電池組,額定電壓為7.2V,實際充滿電穩(wěn)壓后的5V電源供電,舵機(jī)及電機(jī)直接由電池供電。

      3、傳感器電路:

      光電尋線方案一般由多對紅外收發(fā)管組成,通過檢測接收到的反射光強(qiáng),判斷黑白線。原理圖由紅外對管和電壓比較器兩部分組成,紅外對管輸出的模擬電壓通過電壓比較器轉(zhuǎn)換成數(shù)字電平輸出到單片機(jī)。

      4、電機(jī)驅(qū)動電路:

      電機(jī)驅(qū)動芯片L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動 電路。是一種二相和四相電機(jī)的專用驅(qū)動器,即內(nèi)含二個H橋的高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯電平信號,可驅(qū)動46V、2A以下的電機(jī)。其引腳排列如圖1中U4所示,1腳和15腳可單獨引出連接電流采樣電阻器,形成電流傳感信號。L298可驅(qū)動2個電機(jī),OUT1、OUT2和OUT3、OUT4之間分別接2個電動機(jī)。5、7、10、12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),ENA,ENB接控制使能端,控制電機(jī)的停轉(zhuǎn)。也利用單片機(jī)產(chǎn)生PWM信號接到ENA,ENB端子,對電機(jī)的轉(zhuǎn)速進(jìn)行調(diào)節(jié)。

      由于一片L298N可以直接驅(qū)動兩個電機(jī),但是為了加大驅(qū)動力,我們采用兩路并聯(lián)的方式來驅(qū)動電機(jī)。

      軟件系統(tǒng)的實現(xiàn)

      小車循跡規(guī)則:

      若小車偏左的時候,車輪將向右偏轉(zhuǎn);若小車偏右,車輪將向左偏轉(zhuǎn);若沒有偏移,小車將繼續(xù)向前;若小車完全偏離黑色軌跡,小車后退以尋找黑色軌跡。

      心得總結(jié)

      根據(jù)本次設(shè)計要求,我們小組系統(tǒng)地閱讀了大量的資料,并認(rèn)真分析了設(shè)計課題的需求,還系統(tǒng)學(xué)習(xí)了51系列單片機(jī)的工作原理及其使用方法,并獨自設(shè)計智能小車的整個項目。

      雖然條件艱苦,但經(jīng)過不懈鉆研和努力,購買到了所有所需的元器件,并系統(tǒng)的進(jìn)行了多項試驗,最終做出了整個小車的硬件系統(tǒng),然后結(jié)合課題任務(wù)和小車硬件進(jìn)行了程序的編制,本系統(tǒng)能夠基本滿足設(shè)計要求,能夠較快較平穩(wěn)的是小車沿引導(dǎo)線行駛,但由于經(jīng)驗?zāi)芰τ邢?,該系統(tǒng)還存在著許多不盡人意的地方有待于進(jìn)一步的完善與改進(jìn)。

      通過本次課題設(shè)計,不僅是對我們課本所學(xué)知識的考查,更是對我的自學(xué)能力和收集資料能力以及動手能力的考驗。本次畢業(yè)設(shè)計使我們對一個項目的整體設(shè)計有了初步認(rèn)識,還認(rèn)識了幾種傳感器,并能獨立設(shè)計出其接口電路,再有對電路板的制作有了一定的了解,并學(xué)會了使用Protel設(shè)計電路。本次畢業(yè)設(shè)計使我們意識到了實驗的重要性,在硬件制作和軟件調(diào)試的過程中,出現(xiàn)了很多問題,最終都是通過實驗的方法來解決的。還有以前對程序只是一個很模糊的概念,通過這次的課題設(shè)計使我對程序完全有了一個新的認(rèn)識,并能使用C熟練的進(jìn)行編程了。通過本次課題設(shè)計,極大的鍛煉了我們的思考和分析問題的能力,并對單片機(jī)有了一個更深的認(rèn)識。

      總之,在課題設(shè)計的過程中,無論是對于學(xué)習(xí)方法還是理論知識,我們都有了新的認(rèn)識,受益匪淺,這將激勵我們在今后再接再厲,不斷完善自己的理論知識,提高實踐運作能力。

      感謝老師在本次實訓(xùn)中對我們的指導(dǎo)。

      第三篇:智能小車的自動尋跡實驗

      智能小車的自動尋跡實驗

      【實驗?zāi)康摹?熟悉光敏電阻的性質(zhì) 熟悉ICCAVR 編譯環(huán)境

      進(jìn)一步熟悉單片機(jī)各端口的特性和作用 能夠編寫程序,利用光敏電阻的性質(zhì)對小車進(jìn)行控制

      【實驗器材】

      小車一輛 導(dǎo)線五根 下載線一根

      【實驗原理】

      (一)光敏電阻

      當(dāng)光照射在物體上,物體內(nèi)部的原子釋放出電子并不逸出物體表面,而仍留在內(nèi)部,使 物體的電阻率1/R 發(fā)生變化的效應(yīng)稱為光電導(dǎo)效應(yīng)。光敏電阻是一種光電導(dǎo)效應(yīng)半導(dǎo)體器 件。由于光敏電阻沒有極性,工作是可加直流偏壓或交流電壓。當(dāng)無光照時,光敏電阻的阻 值(暗電阻)很大,電路中電流很小。當(dāng)它受到一定波長范圍的光照射時,其阻值(亮電阻)

      急劇減小,電路中電流迅速增加,用電流表可以測量出電流。

      本實驗所采用的光敏電阻是硫化鎘光敏電阻,下圖是硫化鎘光敏電阻的光照特

      光敏電阻的檢測

      1. 用黑紙片將光敏電阻的透光窗口遮住,此時萬用表的指針基本保持不動,阻值接近無窮 大。此值越大說明光敏電阻性能越好。若此值很小或接近為零,說明光敏電阻已燒穿損

      壞,不能再繼續(xù)使用。

      2. 用一光源對準(zhǔn)光敏電阻的透光窗口,此時萬用表的指針應(yīng)有較大幅度的擺動,阻值明顯 減小。此值越小說明光敏電阻性能越好。若此值很大甚至無窮大,表明光敏電阻內(nèi)部開

      路損壞,也不能再繼續(xù)使用。

      3. 將光敏電阻透光窗口對準(zhǔn)入射光線,用小黑紙片在光敏電阻的遮光窗上部晃動,使其間 斷受光,此時萬用表指針應(yīng)隨黑紙片的晃動而左右擺動。如果萬用表指針始終停在某一

      位置不隨紙片晃動而擺動,說明光敏電阻的光敏材料已經(jīng)損壞。

      (二)Atmega8515的端口特性

      由于本實驗主要用到I/O輸入輸出的PA端口,因此主要介紹PA端口的特性。端口 A(PA7..PA0)端口A為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱 的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外 部電路拉低時將輸出電流。在復(fù)位過程中,即使系統(tǒng)時鐘還未起振,端口A處于高阻狀態(tài)。作為通用數(shù)字I/O使用時,所有AVRI/O端口都具有真正的讀-修改-寫功能。這意味著用 SBI或CBI指令改變某些管腳的方向(或者是端口電平、禁止/使能上拉電阻)時不會無意地改 變其他管腳的方向(或者是端口電平、禁止/使能上拉電阻)。輸出緩沖器具有對稱的驅(qū)動能 力,可以輸出或吸收大電流,直接驅(qū)動LED。所有的端口引腳都具有與電壓無關(guān)的上拉電阻。

      并有保護(hù)二極管與VCC和地相連。

      每個端口都有三個I/O存儲器地址:數(shù)據(jù)寄存器–PORTx、數(shù)據(jù)方向寄存器–DDRx和端 口輸入引腳–PINx。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/寫寄存器,而端口輸入引腳為只讀 寄存器。當(dāng)寄存器SFIOR 的上拉禁止位PUD置位時所有端口的全部引腳的上拉電阻都被禁 止。不論如何配置DDxn,都可以通過讀取PINxn寄存器來獲得引腳電平。PINxn寄存器的各 個位與其前面的鎖存器組成了一個同步器。這樣就可以避免在內(nèi)部時鐘狀態(tài)發(fā)生改變的短

      時間范圍內(nèi)由于引腳電平變化而造成的信號不穩(wěn)定。

      本實驗主要應(yīng)用PA端口的輸入引腳PINA。因此當(dāng)我們把與光敏電阻的輸出電壓相連的 五個數(shù)據(jù)線連接到PA端口時可以通過讀取寄存器PINAx來獲得光探測裝置輸出的電平,在 AVR中PA端口的反轉(zhuǎn)電壓是2.1V為高電平。即當(dāng)外部輸入電壓高于2.1V時,PINAx讀取的輸 入邏輯電平值為“1”,當(dāng)外部輸入電壓低于2.1V時,PINAx讀取的輸入邏輯電平值為“0”。

      根據(jù)PINA寄存器放置的五個數(shù)據(jù)來判斷小車的走向。

      (三)本實驗實現(xiàn)原理

      當(dāng)電路接通電源時,由小車主板的穩(wěn)壓電源電路穩(wěn)定輸出5 伏電壓為小車下部的光探測 電路提供電源使二極管發(fā)光,當(dāng)路面是白色時,二極管發(fā)出的光大部分被反射,光敏電阻就 接收到比較強(qiáng)的光照射,阻值變小,流過光敏電阻的電流變大。由于電阻的分壓作用,使得 光敏電阻的輸出電壓較小,約為1.5V 左右。當(dāng)路面是黑色時,由于黑色對光有吸收作用,使得二極管發(fā)出的光大部分被吸收,只有小部分被反射,光敏電阻接收到的光照就比較小,阻值變大,流過光敏電阻的電流變小,光敏電阻的輸出電壓變大,約為2.5V 左右。共有五個 光敏電阻也就是有五個數(shù)據(jù)輸出。這五個信號通過數(shù)據(jù)線與單片機(jī)的PA 口相連,最左邊的

      電阻連接PA 口的最低位PA0,依次類推,一直連到PA4 口。

      【實驗步驟】

      (1)連接好電路,把導(dǎo)線,下載線連接好,打開電源

      (2)進(jìn)入ICCAVR 編譯環(huán)境,編寫并調(diào)試程序直至沒有錯誤,編譯環(huán)境簡介請參見

      附錄一

      (3)下載,燒錄進(jìn)單片機(jī),看實驗結(jié)果(4)反復(fù)修改調(diào)試程序,逐漸增強(qiáng)其功能(5)寫好實驗報告,實驗心得體會

      【實驗電路】 小車的硬件連接圖

      小車輪子的驅(qū)動詳見實驗一

      【程序示例】

      由于在實驗中黑線的寬度不同,尋跡中所用到的光敏電阻的部位也不同。下面程序的

      例子是黑線的寬度只能覆蓋一個光敏電阻時對小車的驅(qū)動程序

      #include

      #include //定義t 為中間變量

      unsigned char t;//******************系統(tǒng)自動生成的初始化程序**********************

      void port_init(void)

      {

      PORTA = 0x00;DDRA = 0x00;PORTB = 0x00;DDRB = 0x00;PORTC = 0x00;DDRC = 0x00;PORTD = 0x00;DDRD = 0xFF;PORTE = 0x00;DDRE = 0x04;

      } //call this routine to initialize all peripherals

      void init_devices(void)

      {

      //stop errant interrupts until set up

      CLI();//disable all interrupts

      port_init();MCUCR = 0x00;EMCUCR = 0x00;GICR = 0x00;TIMSK = 0x00;

      SEI();//re-enable interrupts //all peripherals are now initialized

      } //****************小車前進(jìn)的子程序*********************

      void runforth(void)

      {

      PORTE=0x04;PORTD=0x70;

      } //*****************小車左轉(zhuǎn)的子程序*********************

      void zuozhuan(void)

      {

      PORTE=0x00;PORTD=0X70;

      } //****************小車右轉(zhuǎn)的子程序*********************

      void youzhuan(void)

      {

      PORTE=0x04;PORTD=0x50;

      } //***************小車停止不動的子程序****************

      void stop(void)

      {

      PORTE=0x00;PORTD=0x00;

      } //****************主程序***************************

      void main(void)

      { while(1)//設(shè)置一個死循環(huán),不斷讀取PA口的輸入邏輯電平

      {

      init_devices();//調(diào)用初始化函數(shù)

      t=PINA&0x1f;//屏蔽掉PA口的高三位數(shù)據(jù)位

      if(t==0x00){stop();} else { switch(t)

      { case 0x01:zuozhuan();break;case 0x07:zuozhuan();break;case 0x02:zuozhuan();break;case 0x03:zuozhuan();break;case 0x04:runforth();break;case 0x0e:runforth();break;case 0x06:zuozhuan();break;case 0x08:youzhuan();break;case 0x10:youzhuan();break;case 0x0c:youzhuan();break;case 0x18:youzhuan();break;case 0x1c:youzhuan();break;

      } } } }

      第四篇:尋跡小車報告

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      尋跡小車設(shè)計報告

      指導(dǎo)教師:

      2011年6月12日13:30

      小組成員:智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      C8051F單片機(jī)的智能尋跡小車

      本課題是基于C8051F單片機(jī)的智能小車的設(shè)計與應(yīng)用,小車完成的主要功能是能夠自主識別黑色引導(dǎo)線并根據(jù)黑色引線能快速自主穩(wěn)定的尋線行駛。小車系統(tǒng)以單片機(jī)為系統(tǒng)控制處理器,對整個控制軟件進(jìn)行程序的設(shè)計和程序的調(diào)試,并最終完成軟硬件的結(jié)合,完成小車的預(yù)期功能。

      一、實驗?zāi)康模?/p>

      通過設(shè)計能進(jìn)一步掌握單片機(jī)的原理、以及能剛好的運用編程實現(xiàn)對小車的控制。

      使小車能自主尋找路線,并且能夠合理設(shè)計單片機(jī)的外圍電路,并使之與單片機(jī)能構(gòu)成整個 系統(tǒng)。

      二、設(shè)計方案:

      本組小車以單片機(jī)為控制處理器、以298為驅(qū)動器結(jié)合程序,通過芯片發(fā)出驅(qū)動命令,控制電機(jī)的驅(qū)動以實現(xiàn)對小車的控制。

      三、技術(shù)方案概要說明

      本模塊車的電路系統(tǒng)包括電源管理模塊、單片機(jī)模塊、傳感器模塊、電機(jī)驅(qū)動模塊、人機(jī)界面。

      四、工作原理

      1、利用紅外采集塊中的紅外發(fā)射接收對關(guān)檢測路面上的軌跡

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      2、將軌跡信號傳給單片機(jī)

      3、單片機(jī)采用模糊推理求出轉(zhuǎn)向角度和行走速度,然后去控制行走部分

      4、最終完成智能小車可以按照路面上的軌跡運行

      五、報告內(nèi)容安排

      第一部分為對整個報告的概括說明,第二部分為整個電路硬件的介紹和說明,第三部分為整個設(shè)計的軟件程序設(shè)計的說明。

      硬件電路的設(shè)計

      一、尋跡模塊

      尋跡共有8路,前后各4路,它通過TCRT5000是否接受到紅外反射光來改變電壓大小,從而使單片機(jī)發(fā)出指令,使小車進(jìn)行前進(jìn)、后退、停止、走正等一系列動作。

      1、尋跡電路圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      焊接時,可用一個電位器來代替四個電位器,這樣即省材料,也使電路板更加精巧。甚至還能將除TCRT5000以外的部件全部安放到車體板上面。

      TCRT5000實物圖與內(nèi)部結(jié)構(gòu)(與地面距離0.2mm~0.8mm之間)

      LM393引腳圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      2、檢測

      將5V電源連接好,萬用表與各組尋跡的GND與輸出端相連,用白紙來使紅外燈反射,當(dāng)TCRT5000接收到反射紅外光時輸出低電平,未接收時輸出高電平,最后通過改變電位器阻值來調(diào)節(jié)尋跡靈敏度。

      二、驅(qū)動模塊

      驅(qū)動的核心部件是L298N,它通過單片機(jī)指令直接控制小車電機(jī)電機(jī)轉(zhuǎn)速,從而來使小車行駛。

      驅(qū)動電路圖

      5,7,10,12與P2.1,P2.2,P2.5,P2.6相連,使能1,2與P0.0,2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      P0.1相連,2,3,13,14與小車電機(jī)相連,驅(qū)動要加散熱片,防止過熱燒壞。

      L298n引腳分辨

      電機(jī)驅(qū)動的檢測:

      連接好電源,將使能1,2都與電源5V相連,5,10與7,12兩組,一組與5V相連,另一組與GND相連,用萬用表分別測量2,3與13,14兩組引腳,有12V電源輸出,則驅(qū)動正常。

      三、電源模塊

      電源主要是將12V電壓降為5V,輸給小車的各部分模塊。

      電源電路圖

      電源最好需由兩組并聯(lián)而成,以免7805過載而燒壞。J2與外電源12V

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      相連,需要兩個引腳,5V引腳與GND引腳都需要多個,以滿足對各模塊的供電需求。

      LM7805

      電源模塊的檢測:

      將12V與GND連接好,輸出端有穩(wěn)定的5V電源輸出,則電源正常。

      四、1602顯示屏(主要用于顯示小車運動時間)

      1602電路圖

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      五、語音模塊

      當(dāng)小車完成所有指令動作到達(dá)終點時,蜂鳴器發(fā)出響聲。

      蜂鳴器的電路圖

      六、C8051F020單片機(jī)

      它是由Cygnal出的一種混合信號系統(tǒng)級單片機(jī)。片內(nèi)含CIP-51的CPU內(nèi)核,它的指令系統(tǒng)與MCS-51完全兼容。其中的C8051F020單片機(jī)含有64kB片內(nèi)Flash程序存儲器,4352B的RAM、8個I/O端口共64根I/O口線、一個12位A/D轉(zhuǎn)換器和一個8位A/D轉(zhuǎn)換器以及一個雙12位D/A轉(zhuǎn)換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數(shù)/定時器陣列、看門狗定時器、VDD監(jiān)視器和溫度傳感器等部分。C8051F020單片機(jī)支持雙時鐘,其工作電壓范圍為2.7~3.6V(端口I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機(jī)相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      五、組裝小車

      用適當(dāng)大小的單孔電路板作為小車底板,在適當(dāng)位置打上小孔,將各個模塊安在上面,使小車質(zhì)量分布均勻,以免小車走歪。

      六、焊接的注意事項

      1.呈圓焊接順序,元器件裝焊順序依次為:電阻器、電容器、二極管、三極管、集成電路、大功率管,其它元器件為先小后大。

      2.芯片與底座都是有方向的,焊接時,要嚴(yán)格按照PCB板上的缺口所指的方向,使芯片,底座與PCB三者的缺口都對應(yīng)。

      3.焊接時,要使焊點周圍都有錫,將其牢牢焊住,防止虛焊。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      4.在焊接圓形的極性電容器時(一般電容值都是比較大的),其電容器的引腳是分長短的,以長腳對應(yīng)“+”號所在的孔。

      5.芯片在安裝前最好先兩邊的針腳稍稍彎曲,使其有利于插入底座對應(yīng)的插口中。

      6.電位器也是有方向的,其旋鈕要與PCB板上凸出方向相對應(yīng)。7.取電阻時,找到所需電阻后,拿剪刀剪下所需數(shù)目電阻,并寫上電阻,以便查找。

      8.裝完同一種規(guī)格后再裝另一種規(guī)格,盡量使電阻器的高低一致。焊完后將露在印制電路板表面多余引腳齊根剪去。

      9.焊接集成電路時,先檢查所用型號,引腳位置是否符合要求。焊接時先焊邊沿對腳的二只引腳,以使其定位,然后再從左到右自上而下逐個焊接。

      10.對引腳過長的電器元件(如電容器,電阻等),焊接完后,要將其剪短。

      11.焊接后用放大鏡查看焊點,檢查是否有虛焊以及短路的情況的發(fā)生。

      12.當(dāng)有連線接入時,要注意不要使連線深入過長,以至于將其旋在電線的橡膠皮上,出現(xiàn)斷路的情況。

      13.當(dāng)電路連接完后,最好用清洗劑對電路的表面進(jìn)行清洗,以防電路板表面附著的鐵屑使電路短路。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      14.在多臺儀器老化的時候,要注意電線的連接,零線對零線,火線對火線。

      15.當(dāng)最后組轉(zhuǎn)時,應(yīng)將連線扎起,以防線路混亂交叉。16.要進(jìn)行老化工藝,可發(fā)現(xiàn)很多問題,連線要接緊,螺絲要旋緊,當(dāng)反復(fù)插拔多次后,要注意連線接頭是否有破損。

      17.焊接上錫時,錫不宜過多,當(dāng)焊點焊錫錐形時,即為最好。

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

      若小車偏左的時候,左輪將向右偏轉(zhuǎn);若小車偏右,車輪將向左偏轉(zhuǎn);若沒有偏移,小車將繼續(xù)向前;若完全偏離黑色軌跡,小車后退以尋找黑色軌跡。

      一、程序設(shè)計方法

      1、確定程序功能。根據(jù)機(jī)電硬件中的人機(jī)界面、電力電子器件和傳感器件的物理特點和運行方式確定外圍部件軟件功能,根據(jù)控制系統(tǒng)設(shè)計方案確定控制軟件功能,根據(jù)系統(tǒng)的功能結(jié)構(gòu)確定前面沒有提到的其他軟件功能。

      2、劃分任務(wù)。將各類軟件功能劃分成具體的任務(wù)。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      3、確定任務(wù)的組合方式。通過分析任務(wù)的優(yōu)先級和相互關(guān)系來確定組合方式。因為這個組合方式通常并不是唯一的,可以采取如前文所介紹的概念設(shè)計方法的方案排列和方案選擇方法。

      4、確定編程方法。根據(jù)任務(wù)劃分、任務(wù)的組合方式、軟件開發(fā)能力和軟件開發(fā)環(huán)境可以確定具體程序編制方法。在確定過程中,也可以采用如前文所介紹的概念設(shè)計方法的方案排列和方案選擇方法。

      5、編程與調(diào)試。

      二、資源分配

      P0^0----電機(jī)1用的PWM輸出信號(左輪)P0^1----電機(jī)2用的PWM輸出信號(右輪)L_DIR1A=P3^6----左輪電機(jī)方向控制 L_DIR1B=P3^7----左輪電機(jī)方向控制 R_DIR1A=P3^4----右輪電機(jī)方向控制 R_DIR1B=P3^5----右輪電機(jī)方向控制 P3^1----蜂鳴器控制

      PCA0CPM0----電機(jī)1PWM輸出,工作在8位定時器模式,允許比較器匹配中斷,每次中斷加載新的比較值,實現(xiàn)電機(jī)輸出的脈寬、周期控制。

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      PCA0CPM1----電機(jī)2PWM輸出,工作在8位定時器模式,允許比較器匹配中斷,每次中斷加載新的比較值,實現(xiàn)電機(jī)輸出的脈寬、周期控制。

      P5.0-P5.7;傳感器接口 lcdrw=P3^2;----讀寫控制5 lcdcs=P3^0;----E使能6 lcdrs=P3^3;命令數(shù)據(jù)選擇控制4

      三、小車程序

      #include #include #include //包含頭文件

      typedef unsigned char uchar;typedef unsigned long ulong;typedef unsigned int uint;

      //變量定義#define L_MOTO_BREAK L_DIR1A=L_DIR1B #define L_MOTO_BACK L_DIR1A=0;L_DIR1B=1 #define L_MOTO_FORD L_DIR1A=1;L_DIR1B=0

      2011年6月12日13:30

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      #define R_MOTO_BREAK R_DIR1A=R_DIR1B #define R_MOTO_BACK R_DIR1A=0;R_DIR1B=1 #define R_MOTO_FORD R_DIR1A=1;R_DIR1B=0 //前走與后走的定義 sbit L_DIR1A=P3^6;sbit L_DIR1B=P3^7;sbit R_DIR1A=P3^4;sbit R_DIR1B=P3^5;sbit P3_1=P3^1;

      sbit lcdrw=P3^2;//5 sbit lcdcs=P3^0;//6 sbit lcdrs=P3^3;//4

      int a=0;//定時器計數(shù)用 uchar minute=0,second=0,sign=0;uchar fb=0;//控制前后方向

      //全局變量的聲明

      //1602液晶的管腳定義

      //I/O管腳的定義

      /********************************************/ /* 名稱:config

      */ /* 用途:初始化配置, 以保證單片機(jī)控制功能工作 */ /********************************************/ void config(void)

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      {

      WDTCN = 0x07;

      //看門狗禁止

      WDTCN = 0xde;

      WDTCN = 0xad;

      XBR0 = 0x50;

      XBR1 = 0x00;XBR2 = 0x40;

      //配置交叉開關(guān),//交叉開關(guān)允許

      P0MDOUT=0x00;

      P1MDOUT=0x00;

      P2MDOUT=0x00;

      P3MDOUT=0xfd;//I/O口的推挽與漏極輸出 P74OUT=0x00;

      //p4--p6 I/O口的推挽與漏極輸出

      P5=0xff;

      OSCXCN = 0x00;

      OSCICN = 0x16;//采用內(nèi)部晶振,頻率為 8MHZ }

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      /********************************************/ /* 名稱: delay1ms

      */ /* 用途: 延時

      */ /********************************************/ void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);

      }

      void delay1(uint time){ uint ii;uint jj;for(ii=0;ii

      }

      //兩個延遲子程序

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      /********************************************/ /* 名稱: PCA_Init

      */ /* 用途: PCA初始化

      */ /********************************************/ void PCA_Init(){

      PCA0MD=0x08;

      //PCA采用系統(tǒng)時鐘,且PCA溢出中斷禁止

      PCA0CN=0x40;

      //啟動PCA計數(shù)器

      } void PCA0_Init(){

      PCA0CPM0=0x42;//CEX0為8位PWM輸出模式

      PCA0CPM1=0x42;//CEX1為8bit PWM輸出模式

      }

      /********************************************/ /* 名稱: PWM_Init

      /* */ /********************************************/ void PWM0_set(uchar val){ PCA0CPH0=~val+1;

      2011年6月12日13:30

      產(chǎn)

      */ 生

      PWM

      調(diào)

      用途:

      //高電平占空比為val/256 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      } void PWM1_set(uchar val){

      }

      /********************************************/ /* 名稱: L_Operation R_Operation

      /* */ /********************************************/ void L_FORD(uchar L_spe_ford){

      L_MOTO_FORD;

      PWM0_set(L_spe_ford);} void R_FORD(uchar R_spe_ford){

      R_MOTO_FORD;

      PWM1_set(R_spe_ford);} void L_BACK(uint L_spe_back){

      L_MOTO_BACK;

      PWM0_set(L_spe_back);

      }

      2011年6月12日13:30

      //高電平占空比為val/256 PCA0CPH1=~val+1;

      */ 用途:

      電機(jī)正反轉(zhuǎn)及速度的控制

      //電機(jī)速度 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      void R_BACK(uint R_spe_back){

      R_MOTO_BACK;

      PWM1_set(R_spe_back);

      } void L_BREAK(){

      L_MOTO_BREAK;

      } void R_BREAK(){

      R_MOTO_BREAK;

      }

      /********************************************/ /* 名稱: 定時器_Init

      */ /* 用途: 定時器初始化

      */ /********************************************/ void time_init()

      { CKCON=0X08;

      //12分頻與原分頻的選擇。把定時器1選為系統(tǒng)時鐘 TMOD=0X01;//定時器1的方式選擇為,把定時器1選為16位定時功能

      2011年6月12日13:30 智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      TH0=0X00;TL0=0X00;//定時器1重裝初值 ET0=1;//使能定時器1 TR0=1;//開定時器1 } /********************************************/ /* 名稱:lcddisplay顯示函數(shù)

      */ /* 用途:初始化

      */ /********************************************/

      void sendc(uchar c)//給1602的lcd送命令 {

      } void sendd(uchar c)//給1602的lcd送數(shù)據(jù)

      2011年6月12日13:30 lcdrs=0;lcdrw=0;lcdcs=1;//E的高脈沖 P7=c;delay(10);lcdcs=0;//E的高脈沖

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      { lcdrs=1;lcdrw=0;lcdcs=1;P7=c;delay(10);lcdcs=0;}

      void lcd_pos(uchar pos){ sendc(pos|0x80);}

      //發(fā)送地址定位函數(shù)

      void lcd_init(void)

      //lcd初始化函數(shù) { sendc(0x38);//8位,2行,5*7字體

      sendc(0x08);//顯示開,光標(biāo)關(guān);不閃

      sendc(0x01);//清屏

      sendc(0x06);delay1(1);

      2011年6月12日13:30

      智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      sendc(0x0C);}

      /********************************************/ /* 名稱:lcddisplay1

      */ /* 用途:第一次顯示

      */ /********************************************/ void lcddisplay1(void)

      //顯示主函數(shù) {

      line1[5]=table[sign%10];line1[4]=table[sign/10];line1[11]=table[second%10];line1[10]=table[second/10];line1[8]=table[minute%10];line1[7]=table[minute/10];sendc(0x01);lcd_pos(0x00);

      2011年6月12日13:30 uchar table[]={“0123456789”};uchar line1[]={“time00/00:00”};uchar i=0;sign++;智能尋跡小車

      組員:趙一鵬 艾博文 董羽曦

      for(i=0;i<12;i++)

      {

      sendd(line1[i]);

      delay(1);

      } }

      //時間顯示

      void display()

      //最后的顯示子函數(shù),顯示總時間,與結(jié)束標(biāo)志。{ uchar table[]={“0123456789”};uchar i=0;uchar table1[]={“all_time:00:00”};uchar table2[]={“finish”};table1[13]=table[second%10];table1[12]=table[second/10];table1[10]=table[minute%10];table1[9]=table[minute/10];sendc(0x01);lcd_pos(0x00);while(table1[i]!='