尋跡避障小車原理_第1頁
尋跡避障小車原理_第2頁
尋跡避障小車原理_第3頁
尋跡避障小車原理_第4頁
尋跡避障小車原理_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

循跡避障小車原理小車功能實現(xiàn)利用光電傳感〔紅外對射管,紅外發(fā)射與接收二極管組成〕檢測黑白線,實現(xiàn)小車能跟著白線〔或黑線〕行走,同時也可避開障礙物,即小車尋跡過程中,假設遇障礙物可自行繞開,繞開后繼續(xù)尋跡。電路分析光電傳感循跡光電傳感器原理,利用黑白線對紅外線不同的反射能力。然后通過光敏二極管或光敏三極管,接收反射回的不同光強信號,把不同光強轉換為電流信號,最后通過電阻,轉換為單片機可識別的上下電平。光電傳感器實現(xiàn)循跡的根本電路如下列圖所示、循跡傳感器根本電路

電路解釋:TC端是傳感器工作控制端,為高電平時,發(fā)光二極管不工作,傳感器休眠,為低電平時,傳感器啟動。Signal端為檢測信號輸出,當遇到黑線,黑線吸收大量的紅外線,反射的紅外線很弱,光敏三極管不導通,signal輸出高電平,當遇到白線,與黑線相反,反射的紅外線很強,使光敏三極管導通,signal輸出低電平。尋跡局部調(diào)整左右傳感器之間的距離,兩探頭距離約等于白線寬度最適宜,一般白線寬度選擇范圍為3–5厘米比擬適宜。注意:該傳感器的靈敏度是可調(diào)的,偶爾傳感器遇到白線卻不能送出相應的信號,通過調(diào)節(jié)傳感器上的可調(diào)電阻,適當?shù)脑龃蠡驕p小靈敏度。另外,循跡傳感器的安放也算是比擬有講究的,有兩種方法,一種是兩個都是放置在白線內(nèi)側但緊貼白線邊緣,第二種是都放置在白線的外側,同樣緊貼白線邊緣。我們通常采用第二種方法。編寫程序使小車遇白線時,小車跟著白線走。當小車先前前進時,如果向左偏離了白線。那么右邊傳感器會產(chǎn)生一個低電平,單片機判斷這個信號,然后向右拐。回到白線后。兩傳感器輸出信號為高電平。小車前進。如果小車向右偏離白線,左邊傳感器產(chǎn)生一個低電平,單片機判斷這個信號,然后向左拐。如此如此,小車必不偏離白線。假設小車的兩對光電傳感器同時輸出的信號為高電平〔黑底〕或低電平〔白底〕,即單片機判斷的都為高電平或低電平,小車向前直走,在此過程中〔直走〕小車假設遇白線,小車又重復上面動作跟著白線走。避障局部當小車在尋跡〔沿著白線走或直走〕過程中遇障礙物,小車亦可自行轉彎,轉彎動作完成后,又繼續(xù)尋跡。電機驅動電路電機驅動芯片采用L298N,是一款承受高壓大電流的全橋型直流/步進電壓驅動器,如下列圖電機控制芯片L298N的引腳排列L298N引腳編號與功能引腳編號名稱功能1電流傳感器A在該引腳和地之間接小阻值電阻可用來檢測電流2輸出引腳1內(nèi)置驅動器A的輸出端1,接至電機A3輸出引腳2內(nèi)置驅動器A的輸出端2,接至電機A4電機電源端電機供電輸入端,電壓可達46V5輸入引腳1內(nèi)置驅動器A的邏輯控制輸入端16使能端A內(nèi)置驅動器A的使能端7輸入引腳2內(nèi)置驅動器A的邏輯控制輸入端28邏輯地邏輯地9邏輯電源端邏輯控制電路的電源輸入端為5V10輸入引腳3內(nèi)置驅動器B的邏輯控制輸入端111使能端B內(nèi)置驅動器B的使能端12輸入引腳4內(nèi)置驅動器B的邏輯控制輸入端213輸出引腳3內(nèi)置驅動器B的輸出端1,接至電機B14輸出引腳4內(nèi)置驅動器B的輸出端2,接至電機B15電流傳感器B在該引腳和地之間接小阻值電阻可用來檢測電流L298N內(nèi)部原理圖電機驅動A/B的控制邏輯如下表所示輸入信號電機運動方式使能端A/B輸入引腳1/3輸入引腳2/4110前進101后退111緊急停車100緊急停車0XX自由轉動電機驅動A/B的工作原理電機控制邏輯如下:以電機A為例,當使能端A為高電平是,如果輸入端M1Direction引腳為高電平,三極管導通,輸入引腳1為低電平而輸入引腳2為高電平,電機A反轉;如果輸入端M1Direction引腳為底電平,三極管截止,輸入引腳1為高電平而輸入引腳2為低電平,電機A正轉。電機驅動原理圖中文液晶顯示器128x64帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊。其顯示分辨率為128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字,也可完成圖形顯示。具有低電壓低功耗特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不管硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。根本特性:低電源電壓〔VDD:+3.0--+5.5V〕

顯示分辨率:128×64點

內(nèi)置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)

內(nèi)置128個16×8點陣字符

2MHZ時鐘頻率

顯示方式:STN、半透、正顯

驅動方式:1/32DUTY,1/5BIAS

視角方向:6點

背光方式:側部高亮白色LED,功耗僅為普通LED的1/5—1/10

通訊方式:串行、并口可選

內(nèi)置DC-DC轉換電路,無需外加負壓

無需片選信號,簡化軟件設計

工作溫度:0℃-+55℃,存儲溫度:-20℃-+60℃模塊接口說明:PIN15LED+背光正極,接4.8V-5VPIN116LED-背光負極,接0V*注:1:如在實際應用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC〞用焊錫短接;2:模塊內(nèi)部接有上電復位電路,因此在不需要經(jīng)常復位的場合可將該端懸空;3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。引腳控制信號應用D/I,R/W的配合選擇決定控制界面的4種模式:D/IR/W功能說明LLMPU寫指令到指令暫存器〔IR〕LH讀出忙標志〔BF〕及地址記數(shù)器〔AC〕的狀態(tài)HLMPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器〔DR〕HHMPU從數(shù)據(jù)暫存器〔DR〕中讀出數(shù)據(jù)E信號操作:E狀態(tài)執(zhí)行動作結果高——>低I/O緩沖——>DR配合/W進行寫數(shù)據(jù)或指令高DR——>I/O緩沖配合R進行讀數(shù)據(jù)或指令低/低——>高無動作內(nèi)部存放器信號●忙標志:BF

BF標志提供內(nèi)部工作情況,BF=1表示模塊在進行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。利用STATUSRD指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態(tài)?!褡中彤a(chǎn)生ROM〔CGROM〕

字型產(chǎn)生ROM〔CGROM〕提供8192個此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示〔DISPLAYON),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關顯示〔DISPLAYOFF)。DFF的狀態(tài)是指令DISPLAYON/OFF和D/IT信號控制的?!?/p>

顯示數(shù)據(jù)RAM〔DDRAM〕

模塊內(nèi)部顯示數(shù)據(jù)RAM提供64×2個位元組的空間,最多可控制4行16字〔64個字〕的中文字型顯示,當寫入顯示數(shù)據(jù)RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在此階段0000H—0006H的編碼中〔其代碼分別是0000、0002、0004、0006共4個〕將選擇CGRAM的自定義字型,02H—7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5〔A140—D75F〕,GB〔A1A0-F7FFH〕。●字型產(chǎn)生RAM(CGRAM)

字型產(chǎn)生RAM提供圖象定義(造字)功能,可以提供四組16×16點的自定義圖象空間,使用者可以將內(nèi)部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。●地址計數(shù)器AC地址計數(shù)器AC地址計數(shù)器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數(shù)器的值就會自動加一,當D/I為“0”時而R/W為“1”時,地址計數(shù)器的值會被讀取到DB6——DB0中?!窆鈽?閃爍控制電路

此模塊提供硬體光標及閃爍控制電路,由地址計數(shù)器的值來指定DDRAM中的光標或閃爍位置。指令操作模塊控制芯片提供兩套控制命令,根本指令和擴充指令如下:指令表1:〔RE=0:根本指令〕指令

指令碼功能D/IR/WD7D6D5D4D3D2D1D0去除顯示0000000001地址歸位000000001X顯示狀態(tài)

開/關0000001DCBD=1:整體顯示ONC=1:游標ON

B=1:游標位置反白允許進入點設定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時,設定游標的移動方向及指定顯示的移位游標或顯示移位控制000001S/CR/LXX設定游標的移動與顯示的移位控制位;這個指令不改變DDRAM的內(nèi)容功能

設定00001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1:擴充指令操作RE=0:根本指令操作設定CGRAM地址0001AC5AC4AC3AC2AC1AC0設定CGRAM地址設定DDRAM地址0010AC5AC4AC3AC2AC1AC0設定DDRAM地址〔顯示位址〕第一行:80H-87H第二行:90H-97H讀取忙標志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7——D0寫入到內(nèi)部的RAM(DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7——D0(DDRAM/CGRAM/IRAM/GRAM)指令表2:〔RE=1:擴充指令〕指令指令碼功能D/IR/WD7D6D5D4D3D2D1D0待命

模式0000000001進入待命模式,執(zhí)行其他指令都終止000000001SR反白

選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R0=00,第一次設定為反白顯示,再次設定變回正常睡眠

模式0000001SLXXSL=0:進入睡眠模式

SL=1:脫離睡眠模式擴充功能設定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1:擴充指令操作RE=0:根本指令操作G=1/0:繪圖開關設定

繪圖RAM

地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設定繪圖RAM

先設定垂直(列)

AC6AC5…AC0

再設定水平(行)地址AC3AC2AC1AC0

將以上16位地址連續(xù)寫入即可注:當IC1在接受指令前,微處理器必須先確認其內(nèi)部處于非忙碌狀態(tài),即讀取BF標志時,BF需為零,方可接受新的指令;如果在送出一個指令前并不檢查BF標志,那么在前一個指令和這個指令中間必須延長一段較長的時間,即是等待前一個指令確實執(zhí)行完成。三、顯示應用1、字符顯示帶中文字庫的128X64-0402B每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現(xiàn)32個中文字符或64個ASCII碼字符的顯示。帶中文字庫的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)〔DDRAM〕。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM〔中文字庫〕、HCGROM〔ASCII碼字庫〕及CGRAM〔自定義字形〕的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:0000~0006H〔其代碼分別是0000、0002、0004、0006共4個〕顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應的關系,其對應關系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH其中,C語言編譯器具有直接把中文轉換成ASCII碼字符功能。對照下面原理圖,編譯程序例如,并下載到實驗板上,觀測現(xiàn)象。尋跡避障程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitRM1=P0^0;sbitRM2=P0^1;//右電機sbitLM1=P0^2;sbitLM2=P0^3;//左電機sbitbzh=P2^6;sbitRAD=P0^6;//紅外接收右電機轉sbitLBD=P0^7;//紅外接收左電機轉sbitrs=P3^5;// LCD的RSsbitrw=P3^6;// LCD的R/Wsbiten=P3^7;// LCD的Evoidlcd_string(uchar*strpoint);voiddelay(uinta){uintb,c;for(b=a;b>0;b--)for(c=120;c>0;c--);}uchari=0;voidcheckbusy()//檢查LCD忙{ uchardat; rs=0; //rs=1為數(shù)據(jù),=0為命令. rw=1; //rw=1為讀,=0為寫.do{P1=0x00;en=1;//E信號下降沿鎖存DB7~DBOdat=P1;//讀入P1的值en=0;//鎖存dat=0x80&dat;//BUSY:1內(nèi)部在工作,0正常狀態(tài)}while(!(dat==0x00));rw=0;}voidsentcom(ucharcom){checkbusy();//檢查Busyrs=0;en=0;P1=com;delay(5);en=1;delay(5);en=0;}voidsentdata(uchardate)//寫數(shù)據(jù){checkbusy();rs=1;en=0;P1=date;delay(5);en=1;delay(5); en=0;}//初始化LCMvoidlcd_init(){sentcom(0x38);//功能設置,一次送8位數(shù)據(jù),根本指令集sentcom(0x0C);//0000,1100整體顯示,游標off,游標位置offsentcom(0x01);//0000,0001清DDRAMsentcom(0x02);//0000,0010DDRAM地址歸位sentcom(0x80);//1000,0000設定DDRAM7位地址000,0000到地址計數(shù)器AC}voidlcd_string(char*strpoint)//在當前顯示位置顯示LCD字符串{ registeri=0; while(strpoint[i]!=0){ sentdata(strpoint[i]); i++; }}voidstop(){lcd_init(); sentcom(0x80); lcd_string("現(xiàn)代創(chuàng)新實訓室");//C編譯系統(tǒng)本省也具有轉換功能,所以也可以這樣寫 sentcom(0x90); lcd_string("尋跡避障一體小車"); sentcom(0x88); lcd_string("--指導:文方老師"); sentcom(0x98); lcd_string("--設計:劉志聰");}voidtracing(){ sentcom(0x80); lcd_string("現(xiàn)代創(chuàng)新實訓室"); sentcom(0x90); lcd_string("--指導:文方老師"); sentcom(0x88); lcd_string("--設計:劉志聰"); sentcom(0x9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論