智能小車畢業(yè)設計_第1頁
智能小車畢業(yè)設計_第2頁
智能小車畢業(yè)設計_第3頁
智能小車畢業(yè)設計_第4頁
智能小車畢業(yè)設計_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要隨著我國科學技術的進步,智能化和自動化技術越來越普及,各種高科技也廣泛應用于智能小車和機器人玩具制造領域,使智能機器人越來越多樣化。智能小車是一個多種高薪技術的集成體,它融合了機械、電子、傳感器、計算機硬件、軟件、人工智能等許多學科的知識,可以涉及到當今許多前沿領域的技術。本系統(tǒng)采用2片AVRAtmega128單片機作為智能小車的檢測和控制核心。一片用在在小車上,負責控制循跡、無線和電機驅動功能;一片在控制端上,負責控制語音播報、無線發(fā)送、液晶顯示和按鍵功能。通過控制端的液晶顯示和按鍵輸入設定模式信息,再通過無線發(fā)送給車載控制器,車載控制器根據(jù)接收到的不同無線信息,控制小車進入不同的模式,實現(xiàn)不同的功能。本系統(tǒng)中的無線傳輸距離,空曠地為100米左右,室內可以隔著一層樓,接收端能收到發(fā)射端發(fā)射的無線信號。關鍵詞:單片機,傳感器,智能小車AbstractAlongwiththedevelopmentofscienceandtechnology,intelligentandautomationtechnologyismoreandmorepopular,allkindsofhi-techalsowidelyusedinintelligentrobottoycarandmanufacturingfield,makeintelligentrobotmoreandmorediverse.Intelligentcarisavarietyofhigh-payingtechnologyintegrationbody,itincorporatesmechanical,electronic,sensors,computerhardware,software,artificialintelligenceandmanyothersubjectknowledge,caninvolvesmanyoftoday'scurrentareasoftechnology.ThesystemUSES2slicesofAVRAtmega128single-chipprocessorasintelligentcardetectionandcontrolcore.Ausedinonthecar,isresponsibleforthecontrolfollowtrace,obstacleavoidance,wirelessandmotordrivefunction.Ainthecontrol,beresponsibleforcontrollingspeechbroadcast,thewirelessdelivery,liquidcrystaldisplayandkeyboard.Throughthecontrolofliquidcrystaldisplay(LCD)andkeyinputinformationsetmode,againthroughwirelesssenttothecontroller,thecontrolleraccordingtothedifferentwirelessreceivedinformation,controlthecarintoadifferentpattern,therealizationofdifferentfunctions.Thissystemofwirelesstransmissiondistance,aclearingfor100metersorso,intheinterior,youcanfromafloor,thereceivercanalsoreceivethelaunchofthelaunchwirelesssignals.Keywords:single-chipprocessor,sensor,intelligence目錄第1章緒論51.1選題背景和意義51.2智能小車開展概況51.2.1國外智能小車開展概況51.2.2國內智能小車開展概況61.3研究設計的目標61.4方案選擇6控制器選擇分析61.4.2電源模塊選擇分析7電機驅動模塊選擇分析81.4.4循跡模塊選擇分析9無線模塊選擇分析9語音模塊選擇分析10顯示模塊選擇分析10按鍵模塊選擇分析111.5可行性分析11第2章系統(tǒng)整體設計122.1系統(tǒng)結構框圖122.1.1車載控制器局部122.1.2控制端控制器局部13第3章系統(tǒng)硬件設計153.1單片機最小系統(tǒng)153.1.1電源電路153.1.2復位電路16時鐘電路163.2電源模塊173.3電機驅動模塊183.4循跡模塊193.5無線模塊203.6語音模塊223.7顯示模塊253.10按鍵模塊26第4章系統(tǒng)軟件設計274.1主程序設計27車載控制器主程序設計27控制端控制器主程序設計294.2電機驅動子程序設計314.3循跡子程序設計334.4語音子程序設計36錄音子程序設計37放音子程序設計394.5無線程序設計404.5.1無線發(fā)送子程序設計404.5.2無線接收子程序設計424.6顯示子程序設計434.7按鍵子程序設計44第5章系統(tǒng)調試475.1硬件調試475.2軟件調試49結論50致謝51參考文獻52附錄一54附錄二55第1章緒論選題背景和意義自第一臺工業(yè)機器人誕生以來,機器人的民展已經普及機械、電子、冶金、交通、宇航、國防等領域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認識自然的過程中,制造能替代人工作的機器一直是人類的夢想。其中智能小車可以作為機器人的典型代表。其需要實現(xiàn)自動導引功能和避障功能就必須要感知導引線和障礙物,實現(xiàn)自動識別路線,選擇正確的行進路線,使用傳感器感知路線并作出判斷和相應的執(zhí)行動作。智能小車設計與開發(fā)涉及控制、模式識別、傳感技術、汽車電子、電氣、計算機、機械等多個學科。它可以分為三大局部:傳感器檢測局部,執(zhí)行局部,CPU?,F(xiàn)智能小車開展很快,從智能玩具到各行業(yè)都有實質成果,其根本可實現(xiàn)循跡、避障、檢測貼片,尋光入庫、避崖等根本功能,有向聲控系統(tǒng)開展的趨勢。智能小車開展概況1.2.1國外智能小車開展概況國外的智能小車開展的也很火,這其中要數(shù)韓國的智能小車開展最為迅速。韓國漢陽大學汽車控制實驗室在飛思卡爾半導體公司資助下,以HCS12飛思卡爾單片機為核心構造的智能小車系統(tǒng)。該智能小車系統(tǒng)主要功能為尋跡。利用紅外、電磁、CCD攝像頭等設備進行,這其中有數(shù)CCD攝像頭最為常見,行駛速度快,過彎靈敏,控制算法上大多采用PID算法進行閉環(huán)控制。1.2.2國內智能小車開展概況國內智能小車系統(tǒng)做的比擬成熟的有北京博創(chuàng)科技。隨著全世界范圍內汽車炸彈襲擊事件的不斷增多,因此平安檢查部門對重大活動的汽車檢查也逐步升級,由過去僅檢查車內和車箱,升級為對包括車底的全方位檢查。在全國兩會安保工作中采用了北京博創(chuàng)科技的UP_UVSR智能小車機器人。UP_UVSR既是一款針對車底檢查任務研發(fā)的機器人系統(tǒng),該產品體積小、重量輕,便于攜帶,作業(yè)效率高;可以駛入車底進行檢查,也可以固定安裝與車輛通道口對過往車輛進行檢查。1.3研究設計的目標設計一個多功能智能小車系統(tǒng)。通過控制端的單片機檢測按鍵的輸入,根據(jù)輸入的不同模式,控制無線模塊發(fā)送不同的命令,小車上的車載控制器接收到無線信號,然后判斷接收到的無線信號,來控制小車進入不同的模式,控制端的單片機通過LCD和語音模塊進行參數(shù)信息的顯示和播報。1.4方案選擇控制器選擇分析控制器主要用于各個傳感器信號的接收和識別、控制小車的電機的動作,是整個智能車系統(tǒng)的心臟,考慮到需要實現(xiàn)多個功能的要求及各個模塊引腳的數(shù)目,列出以下方案,對其分析、論證、選擇。方案一:采用ATMEL公司的AT89S52。AT89S52單片機支持在線編程,易于操作,價格廉價,技術成熟,應用廣泛,但是功能單一,如果系統(tǒng)電機驅動需要增加硬件,軟件實現(xiàn)較為復雜;另外AT89S52單片機引腳數(shù)較少,達不到各個模塊端口的要求。方案二:采用ATMEL公司的ATmega128。ATmega128是一款基于AVR內核,采用RISC結構,高性能,低功耗CMOS的8位單片機。32個通用工作存放器,53個通用I/O口,實時時鐘計數(shù)器〔RTC〕,4個帶有比擬模式靈活的定時器/計數(shù)器,2個可編程的USART接口,1個8位面向字節(jié)的TWI(IIC)總線接口,8通道單端或差分輸入的10位ADC〔其中一個差分通道為增益可調的〕,可編程帶內部振蕩器的看門狗定時器,一個SPI接口,一個兼容IEEE1149.1標準的JTAG接口〔用于在線仿真調試和程序下載〕,6種可通過軟件選擇的節(jié)電模式。兩個具有預分頻器、比擬功能和捕捉功能的16位定時器/計數(shù)器。兩路8位PWM。6路分辨率可編程〔2到16位〕的PWM。方案三:采用更加高端的處理器S3C2410。S3C2410是一款ARM內核的處理器,雖然具備了AVR的資源,但是根據(jù)本設計的實際情況,本錢比擬高,編程難度較大。綜合以上三種方案,考慮到系統(tǒng)的可行性,及功耗,性能,硬軟件的本錢,我選擇方案二。電源模塊選擇分析方案一:采用傳統(tǒng)的7805三端穩(wěn)壓電路,小車鋰電池(7.4V)經過7805穩(wěn)壓后供應小車電機驅動電路和單片機、各傳感器用電。由于小車電機啟動瞬間需要消耗大量電流,長時間行使后,7805芯片會有明顯的發(fā)燙現(xiàn)象,而且效率也很低,電池充滿一次電后,小車行駛沒多久,就得再次充電。方案二:采用LM2596開關型穩(wěn)壓芯片,配合電感和電容,一起搭配構成整體的電源電路。效率更高,性能也更加穩(wěn)定。綜合以上兩種方案,考慮到系統(tǒng)的性能和穩(wěn)定性方面,選擇方案二。1.4.3電機驅動模塊選擇分析電機的驅動電路主要通過電機的正轉和反轉實現(xiàn)小車的前后或者左右方向的行駛。對于電機驅動模塊有下面的幾種方案。方案一:使用功率三極管作為功率放大器的輸出控制直流電機。線性型驅動的電路結構和原理簡單,本錢低,加速能力強,但功率損耗大,特別是低速大轉距運行時,通過電阻R的電流大,發(fā)熱厲害,損耗大,對于小車的長時間運行不利。方案二:采用繼電器對電機的開或關進行控制,通過開關的切換對小車的速度進行調整。此方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應時間慢,易損壞,壽命較短,可靠性不高。方案三:采用專用電機驅動芯片L298N,實現(xiàn)框圖如圖1-1所示。該芯片集成度高,占用空間小,主要應用于電機調速場合。L298N是恒壓恒流雙H橋集成電機芯片,可同時控制兩個電機,且輸出電流可到達2A。L298N的數(shù)據(jù)口分別與單片機的I/O口相連,作為調制信號。這樣精度高并且穩(wěn)定,可行性好,而且通過編程能實現(xiàn)人機別離,利于調試。綜合以上三種方案,考慮到AVR單片機自帶有PWM功能,能實現(xiàn)直流減速電機精準控制,選擇方案三。1.4.4循跡模塊選擇分析循跡模塊確保了小車在黑色邊界線的區(qū)域內行駛??紤]到邊界線是黑色的,可以考慮利用傳感器識別賽車場地黑白兩種不同狀態(tài)。對傳感器的選擇有以下方案。方案一:采用熱探測器。熱探測器是利用所接收到的紅外輻射后,會引起溫度的變化,溫度的變化引起電信號不同的輸出,且輸出的電信號與溫度的變化成比例,當紅外線被黑色線吸收時,溫度會降低,電壓變低,而紅外線沒有被吸收時,電壓不變,單片機可以根據(jù)電壓的變化來判斷小車顯示的情況。由于溫度受環(huán)境的影響很大,當溫度變高時,即使黑色線吸收了紅外線,但是也會有很高的電壓,導致單片機判斷出錯。方案二:采用紅外對射管。紅外發(fā)射接收管測量距離近,但反響靈敏、準確。由于測量的高度離場地僅1cm,距離很近,符合其特點。相比熱探測器而言,其體積較小,價格低,安裝較容易。綜合以上兩種方案,考慮到系統(tǒng)的穩(wěn)定性和安裝的簡便性,選擇方案二。1.4.5無線模塊選擇分析無線模塊是用來進行控制端和小車之間的通信,控制小車進入不同的功能模式。方案一:采用目前流行的WiFi無線模式。WiFi覆蓋面廣,傳輸里遠,但是其硬件開銷本錢太高,需要很深厚的理論知識根底。短時間內實現(xiàn)有一定的難度。方案二:采用TI的CC1101無線傳輸方案。有效傳輸距離為100米,工作頻率為387~464MHZ。主從一體,既可以作為發(fā)送端,也可以作為接收端,軟件控制靈活、簡單。此模塊高靈敏度〔1.2kbps下-110dDm,0.1%數(shù)據(jù)包誤碼率〕、內置硬件CRC檢錯和點對多點通信地址控制、較低的電流消耗〔RX中,15.6mA,2.4kbps,433MHz、可編程控制的輸出功率,最大輸出功率+10dBm、無線喚醒功能,支持低功率電磁波激活功能,無線喚醒低功耗睡眠狀態(tài)的設備等優(yōu)點。綜合以上兩種方案,考慮到系統(tǒng)開發(fā)本錢和開發(fā)時間,選擇方案二。1.4.6語音模塊選擇分析語音模塊是用來進行在小車進入不同的功能模式和小車轉向時,進行語音播報,使整個系統(tǒng)更加人性化些。方案一:采用555定時器,發(fā)出特定頻率的聲波。缺點:只能發(fā)出一定頻率的波,難以發(fā)出人類的聲音。方案二:采用ISD1760專業(yè)語音錄放芯片。ISD1760可錄、放音十萬次,存儲內容可以斷電保存一百年。兩種錄放模式:獨立按鍵錄放模式和SPI總線操作錄放模式??商幚矶噙_255段信息。錄音數(shù)據(jù)存儲在芯片的FLASH內,沒有經過任何壓縮,所以有較好的音質和斷電存儲。多種采樣頻率對應多種錄放時間。。靜態(tài)電流:0.5-1μA。工作電流:20mA綜合以上兩種方案,考慮到系統(tǒng)的功能要求和控制的靈活性,選擇方案二。1.4.7顯示模塊選擇分析方案一:采用LCD1602液晶進行小車參數(shù)的信息顯示。1602為2行16列式的液晶,可以顯示一些數(shù)字和英文字母以及一些簡單的圖案,但是1602內部無字庫,要想顯示漢字就得自己編寫漢字碼了,軟件開發(fā)繁瑣。方案二:采用LCD12864字符式液晶。由于12864液晶內部帶字庫,且能夠顯示的信息也足夠多,LCD1284和LCD1602二者在時序控制上差異不大,軟件一直很容易。綜合以上兩種方案,考慮到系統(tǒng)的要求,選擇方案二。1.4.8按鍵模塊選擇分析方案一:采用4*4矩陣鍵盤,共計需要16個獨立按鍵,占用單片機8個IO端口。方案二:采用獨立的按鍵,結合本系統(tǒng),只需要6個獨立按鍵即可滿足要求,單片機只要檢測對應的引腳電平幾個判斷那一按鍵被按下。綜合以上兩種方案,考慮到硬件的開發(fā)本錢和軟件程序上的簡便性,選擇方案二。1.5可行性分析采用ATmega128A單片機作為控制核心,其標準工作頻率為8MHz,可以為本系統(tǒng)提供高速的計算能力和實時控制能力。學校的硬件根底實驗室可以提供焊接和調試場地,調試設備只需要電烙鐵、萬用表、示波器等常用設備即可。對大學開設的《C語言編程》、《單片機技術》、《模擬電子技術》、《Protel應用技術》等相關課程的學習,可以為該系統(tǒng)的設計與實現(xiàn)提供理論知識。第2章系統(tǒng)整體設計2.1系統(tǒng)結構框圖本系統(tǒng)主要分為兩個大模塊,車載控制器模塊和控制端的控制器模塊。車載控制器局部車載控制器模塊如圖2-1所示。車車載控制器電機驅動電機驅動模塊避障避障模塊電源電源模塊無線無線模塊圖2-1車載控制器模塊結構框圖從圖2-1中可以看出,車載局部的控制器模塊主要包括電源模塊、電機驅動模塊、循跡模塊、避障模塊、無線模塊。各個模塊的功能介紹如下。1.電源模塊:采用7.4V的鋰電池,經過降壓電路,降到5V后供應整個系統(tǒng)。2.電機驅動模塊:使用兩片L298N驅動小車的電機。利用單片機的PWM功能,控制驅動芯片,驅動芯片再控制電機,實現(xiàn)小車的行駛轉向功能。3.循跡模塊:采用7對紅外對射管作為單片機輸入,來檢測黑色循跡線路。4.無線模塊:車載控制器控制無線模塊,接收控制端的無線信號,然后根據(jù)所接收到的無線信號,車載控制器控制小車執(zhí)行不同的功能。2.1.2控制端控制器局部車載控制器模塊如圖2-2所示。控控制端控制器顯示模塊無線模塊語音模塊電源模塊按鍵模塊圖2-2控制端控制器結構框圖從圖2-2中可以看出,車載控制器主要包括電源模塊、無線模塊、顯示模塊、按鍵模塊、語音模塊。各個模塊的功能如下。1.電源模塊利用4節(jié)5號干電池經過7805穩(wěn)壓到5V后供應控制端的系統(tǒng)使用。2.語音模塊:使用ISD1760芯片存儲聲音信息,外接揚聲器,當按鍵設定小車進入不同的功能模式時,實現(xiàn)聲音播報功能。3.按鍵電路:共使用6個獨立按鍵,4個方向鍵,一個菜單鍵,一個確定鍵,負責設定小車進入不同的功能模式。4:顯示模塊:使用LCD12864,當按鍵設定小車的功能模式時,以文字的形式顯示模式設定。在進入無線模式時,負責顯示小車的操縱方向。第3章系統(tǒng)硬件設計本章從硬件系統(tǒng)上設計單片機最小系統(tǒng)模塊、電源模塊、電機驅動模塊、循跡模塊、無線模塊、語音模塊、顯示模塊、按鍵模塊。3.1單片機最小系統(tǒng)電源電路電源電路把直流5V輸入給降壓芯片LM117,然后降壓到3.3V后供應單片機和其他3.3V模塊使用。電源電路如圖3-1所示。圖3-1電源電路3.1.2復位電路單片機的復位方式有上電自總復位和手工復位兩種。本設計中復位電路采用的是手工復位電路,如圖3-2所示。圖3-2復位電路單片機的REST引腳為主機提供一個外部復位信號輸入端口。復位信號是低電平有效,低電平有效的持續(xù)時間大于最小脈沖寬度(1.5us)時即觸發(fā)復位過程。復位后,單片機內各部件都恢復到初始狀態(tài),單片機從ROM地址的0000H開始執(zhí)行程序。3.1.3時鐘電路時鐘電路如圖3-3所示?!部瞻滋幯a上〕圖3-3時鐘電路單片機的工作時間基準是由時鐘電路提供的,在單片機的XTAL1和XTAL2的兩個引腳間,接入一個8MHz晶振及兩個22pF電容即構成了單片機最小系統(tǒng)的時鐘電路。時鐘電路中的器件可以從ATmega128的芯片資料上確定,也可以參考一些常見的電路的參數(shù)。3.2電源模塊電源模塊采用的是LM2596開關型穩(wěn)壓芯片。7.4V的鋰電池經過LM2596穩(wěn)壓到5V后供應整個系統(tǒng)。電源模塊電路圖如圖3-4所示?!部瞻滋幯a上〕圖3-4電源模塊電路圖鋰電池電壓從J1輸入給LM2596降壓電路,5V從J2輸出,供應整個系統(tǒng)。R2為可調電阻,可以調節(jié)輸出電壓。D1為SS34肖特基二極管,具有開關速度快,正向壓降低的特點,在電路中配合L1電感,構成回路,起到續(xù)流的作用。3.3電機驅動模塊電機驅動模塊采用了2片L298N芯片,進行對小車的4個電機的控制。其中一片L298N電機驅動電路圖如圖3-5所示?!部瞻滋幯a上〕圖3-5電機驅動模塊電路圖圖中QIN1~QIN4為芯片輸入端,接單片機PD4,PD5,PD6,PD7口,O1~O4為芯片輸出端,接電機。JDY1和JDJY2為電機線插座。PWA和PWMB為PWM輸入腳,接車載控制器的PB5(OC1A)和PB6(OC1B)PWM輸出引腳。D2~D9為1N4007二極管,在電路中起到保護L98N芯片的作用,防止電機在正反轉的瞬間,產生的電動勢擊穿L298N芯片。3.4循跡模塊循跡模塊采用了共計7對紅外對射管,7路循跡接車載控制器的PA0~PA7口。其中一對紅外對射管的電路如圖3-6所示?!部瞻滋幯a上〕圖3-6循跡模塊電路圖紅外對射管為DT2和DR2。LM339N為比擬器,RW1為10K的可調電阻。當DR2接收到DT2發(fā)射的紅外光時導通,此時339的反相輸入端為邏輯0,正向輸入端VREF電平高于反相輸入端電平,根據(jù)比擬器的特性,比擬器輸出端為高電平,車載控制器的PA1口也為高電平。當DR2未接收到紅外光是截止,此時339的反相輸入端為高電平且高于正向輸入端VREF的電壓值,比擬器輸出端為低電平,車載控制器的PA1口也為低電平。3.5無線模塊無線模塊采用從網(wǎng)上購置的CC1101模塊,無線模塊實物圖如圖3-7所示。圖3-7無線模塊實物圖CC1101工作電壓為1.8V~3.6V,最高不超過3.8V,本系統(tǒng)無線模塊工作電壓供應的是3.3V。車載控制器通過IO模擬SPI串行總線的方式和無線模塊進行相連接。無線模塊和車載控制器的連接圖如圖3-8所示。車載控制器ATmega128A的PB0接CC1101的片選引腳/SS,控制CC1101是否被選通;車載控制器ATmega128A的PB1接CC1101的串行時鐘輸入腳SCLK,用于同步MOSI和MISO的數(shù)據(jù)傳輸;車載控制器ATmega128A的PB2接CC1101的串行數(shù)據(jù)輸入腳MOSI,CC1101從該引腳讀入發(fā)送/接收命令字;車載控制器ATmega128A的PB3接CC1101的串行數(shù)據(jù)輸出腳MISO,車載控制器從該引腳接收來自無線模塊傳來的信號。無SS線SCLK模MISO塊MOSIPB0車PB1載PB2控PB3制器圖3-8無線模塊和車載控制器的連接圖3.6語音模塊語音模塊是本系統(tǒng)中的重要功能模塊。當按鍵設定小車進入不同的功能模式時,語音模塊能夠播報相應的模式信息,防止設定進入錯誤的模式。語音模塊實物圖如圖3-9所示。圖中MIC為錄音輸入麥克,按鍵也可實現(xiàn)錄音和放音的操作?!部瞻滋幯a上〕獨立按鍵錄放音外接MIC接口獨立按鍵錄放音外接MIC接口外接喇叭接口圖3-9語音模塊實物圖語音模塊和控制端的控制器連接圖如圖3-10所示。ISD1760與ATmega128A接口為SPI串行總線接口,單片機通過片選線SS(SS=0時允許ISD1760工作)、串行數(shù)據(jù)輸入MISO、串行數(shù)據(jù)輸出MOSI和串行時鐘SCLK和ISD1760進行連接。單片機BATmega128A的PA3接ISD的片選引腳/SS,控制ISD1760是否被選通;ATmega128A的PA2接ISD的串行時鐘輸入腳SCLK,用于同步MOSI和MISO的數(shù)據(jù)傳輸;ATmega128A的PA1接ISD的串行數(shù)據(jù)輸入腳MOSI,ISD從該引腳讀入錄、放音的地址;Tmega128A的PA0接ISD的串行數(shù)據(jù)輸出腳MISO,單片機B從該引腳接收來自語音芯片傳來的信號。〔空白處補上〕語SS音SCLK模MISO塊MOSIPA3車PA2載PA1控PA0制器圖3-10語音模塊和車載控制器的連接圖3.7顯示模塊顯示模塊的硬件原理圖如圖3-11所示。VSS、LED_K接地;VDD、/RST接+5V電源。液晶數(shù)據(jù)線DB0~DB7連接AVR128的PC口。RS接單片機PE2,當為高電平時,表示DB0~DB7為顯示數(shù)據(jù);為低電平時,表示DB0~DB7為顯示指令數(shù)據(jù)。R/W接單片機PE3口,使能信號E接單片機PE4口,R/W為高電平,E為高電平,數(shù)據(jù)被讀到DB0~DB7;R/W為低電平,E從高電平轉換到低電平,DB0~DB7被寫到液晶內部的DDRAM里?!部瞻滋幯a上〕圖3-11顯示模塊電路圖3.10按鍵模塊按鍵模塊電路圖如圖3-12所示。圖3-12按鍵模塊電路圖6個按鍵作為輸入方式接入控制器端控制器的PD0~PD5IO口。當有按鍵按下時,對應的端口電平變?yōu)榈碗娖?,當按鍵抬起時,對應的電平變?yōu)楦唠娖?。K1~K4分別為Up、Down、Left、Right鍵,當小車進入無線遙控模式時,負責小車的前進、后退、左轉和右轉功能。K5為菜單鍵,負責小車進入何種模式菜單的設定顯示。當K5按下時,K1~K3分別對應無線模式、循跡模式和避障模式。K6為確定鍵,當K5按下,K1~K3設定某種模式后,按下K6,然后通過無線模塊把模式字碼發(fā)送給車載控制器。第4章系統(tǒng)軟件設計系統(tǒng)的軟件設計采用C語言,對單片機進行編程實現(xiàn)各項功能。程序是在WindowsXP環(huán)境下采用CodeVisionAVRCCompliler軟件編譯的。4.1主程序設計本系統(tǒng)主要分為兩個主程序,即車載控制器上的主程序和控制端控制器的主程序。車載控制器主程序設計主程序采用模塊化的思想設計,車載控制器的主程序流程圖如圖4-1所示。從圖4-1中可以看出,車載空控制器首先進行對電機模塊、循跡模塊和無線模塊的初始化,初始化主要包括各個模塊和控制器相連接的IO端口的輸入/輸出初始化,以及一些功能存放器的初始化。初始化完成后,程序進入while循環(huán),開始判斷無線接收到的數(shù)據(jù),如果無線接收到的數(shù)據(jù)是循跡模式字碼(0xa0),那么進入循跡子程序,小車開始循跡;如果無線接收到的數(shù)據(jù)是無線遙控模式字碼(0xa1),那么進入無線遙控模式,開始小車的無線遙控行駛功能。如果沒有接收到任何模式字碼或者接收到的不是這三種模式字碼的任意一個,那么小車停止。循跡循跡開始電機、循跡、無線初始化掃描無線接收數(shù)據(jù)遙控停止YNNN循跡子程序無線子程序YY停止程序結束圖4-1車載控制器主程序流程圖4.1.2控制端控制器主程序設計控制端控制器的主程序流程圖如圖4-2所示。任意按鍵任意按鍵按下開始按鍵、液晶、語音無線初始化清屏顯示進入模式設定界面結束YN初始界面顯示等待掃描是否有按鍵按下YN執(zhí)行相應的按鍵處理程序圖4-2控制端控制器主程序流程圖從圖4-2中可以看出,控制端空控制器首先進行對按鍵模塊、液晶模塊、語音模塊和無線模塊的初始化。初始化主要包括各個模塊和控制器相連接的IO端口的輸入/輸出初始化,以及一些功能存放器的初始化。初始化完成后,顯示一初始界面信息,然后判斷是否有任意按鍵按下,如有任意按鍵按下,那么清屏顯示信息,顯示模式設定信息,然后主程序開始開始處理按鍵程序。4.2電機驅動子程序設計根據(jù)電機驅動芯片L298的文檔資料,IN1〔5〕、IN2〔7〕、IN3〔10〕、IN4〔12〕分別對應OUT1〔2〕、OUT2〔3〕、OUT3〔13〕、OUT4〔14〕,即輸入上下電平對應,〔例如IN1為高那么OUT1為高〕,當然這要是建立在使能端滿足的情況下才可以;ENA〔6〕、ENB〔11〕為使能端,ENA控制OUT1、OUT2,ENB控制OUT3、OUT4,高電平有效,即在低電平情況下,無論輸入為何信號,輸出都為低電平?,F(xiàn)以IN1、IN2、OUT1、OUT2為例控制電機的轉向。詳見表4-1。表4-1電機轉動狀態(tài)真值表IN1IN2OUT1OUT2狀態(tài)1111停止1010轉動0101轉動0000停止電機驅動子程序的流程圖如圖4-3所示。前進?前進?結束開始電機模塊初始化后退?左轉?右轉?PWM設定in1=1int2=0in3=1int4=00停止?NNNNNYYYYYPWM設定in1=0int2=1in3=0int4=10PWM設定in1=0int2=1in3=1int4=00PWM設定in1=1int2=0in3=0int4=10PWM清零in1=0int2=0in3=0int4=00圖4-3電機驅動子程序流程圖從圖4-3中可以看出,電機驅子動程序首先要對電機模塊初始化,初始化主要包括電機驅動芯片的輸入端口PORTD.4~PORTD.7的端口輸出方向初始化,PWM輸出通道PORTB.5和PORTB.6的輸出方向初始化,定時器1的PWM輸出頻率及PWM計數(shù)器頂端值的初始化。然后進入主程序,開始判斷各個標志位。如果是前進標志,那么調用前進函數(shù),先設定PWM占空比,然后令電機驅動芯片的輸入端in1=1,in2=0(左輪正轉),in3=1,in4=0(右輪正轉),小車即向前行駛;如果是左轉標志,那么調用左轉函數(shù),先設定PWM占空比,然后令電機驅動芯片的輸入端in1=0,in2=1(左輪反轉),in3=1,in4=0(右輪正轉),小車即開始左轉。其他的后退、右轉和停止函數(shù)和前面所講類似,在此不再贅述。4.3循跡子程序設計本系統(tǒng)邊界檢測模塊采用的是紅外對射模塊。在小車的正前方位置安裝了7支紅外對射管,這些紅外對射管是用來檢測和探知黑色循跡道路的。小車循跡是通過7對紅外對射管來檢測的,表4-2列出了小車的各個狀態(tài):表4-2紅外對射管狀態(tài)真值表傳感器編號小車狀態(tài)Sig1Sig2Sig3Sig4Sig5Sig6Sig7輕微左偏0111111嚴重左偏0011111輕微左偏1011111輕微左偏1001111輕微左偏1101111輕微左偏1100111中間位置1110111具體程序可根據(jù)循跡流程圖4-4所示進行程序編寫。從圖4-4中可以看出,循跡子程序首先要對循跡模塊初始化。初始化主要包括對循跡模塊和車載控制器的接口PORTA.0~PORTA.6的端口輸入方向初始化。初始化完畢后,主程序開始判斷循跡模塊的中間一個傳感器Sig4的輸出狀態(tài)是否為0(低電平),如果Sig4為0,那么說明小車此時處于黑色循跡線路的中間位置,車載控制器調用小車直走函數(shù),控制小車直走即可;如果Sig4不為0,那么程序進對循跡模塊的左邊的傳感器Sig1的狀態(tài)進行判斷。如果Sig1的輸出狀態(tài)為0(低電平),那么說明小車車身現(xiàn)在處于黑線的右邊位置,車載控制器需調用小車左轉函數(shù)。如果Sig1的輸出狀態(tài)不為0,那么進入下一個傳感器的輸出狀態(tài)判斷。如果7個傳感器的輸出狀態(tài)都不為0,車載控制器那么控制小車直走。開始開始循跡初始化小車直走Sig4=0NSig1=0Sig7=0Sig2=0Sig5=0Sig3=0Sig6=0小車左拐小車右拐小車左拐小車右拐小車左拐小車右拐NNNNNNYYYYYYY小車直拐結束圖4-4循跡子程序流程圖4.4語音子程序設計控制端的控制器通過SPI總線的方式來控制語音模塊的錄放音操作。SPI的英文名稱為SerialPeripheralInterface。串行外設接口SPI是由Freescale公司〔原Motoroal公司半導體部〕提出的一種采用串行同步方式的3線或4線通訊接口,使用信號有使能信號〔SS〕、同步時鐘〔SCK〕、同步數(shù)據(jù)輸入和輸出〔MOSI、MISO〕。在SPI模式下,對芯片進行更多功能操作。如對任意存儲地址進行錄放,對模擬通道配置存放器進行讀寫等。通信協(xié)議MOSI的數(shù)據(jù)在SCLK的上升沿進入錄音芯片,MISO的數(shù)據(jù)在SCLK的下降沿進入主控芯片。8位為一字節(jié),先發(fā)低位。4.4.1錄音子程序設計ISD錄音子程序流程圖如圖4-5所示。開始開始讀取狀態(tài)存放器芯片準備就緒設定錄音模式,開始錄音錄音語音初始化結束地址錄音完成下電YNNY圖4-5語音錄音子程序流程圖從圖4-5中可以看出,ISD錄音子程序首先要對語音模塊進行初始化,包括語音模塊和單片機相連接的IO口PORTA.0~PORTA.3的輸入輸出方向初始化、語音模塊的復位、去除語音模塊內部的中斷。初始化完成后,開始讀取狀態(tài)存放器,如果語音芯片準備就緒,那么發(fā)送錄音模式指令,從起始地址開始錄音,遇到結束地址后,結束錄音,單片機發(fā)送下電指令給語音模塊。如果語音芯片沒有準備繼續(xù),那么控制器一直讀取語音芯片內部的狀態(tài)。4.4.2放音子程序設計開始開始讀取狀態(tài)存放器芯片準備就緒進入放音模式,開始放音語音初始化結束地址放音完成下電YNNY圖4-6語音放音子程序流程圖從圖4-6中可以看出,ISD放音子程序首先要對語音模塊進行初始化,包括語音模塊和單片機相連接的IO口PORTA.0~PORTA.3的輸入輸出方向初始化、語音模塊的復位、去除語音模塊內部的中斷。初始化完成后,開始讀取狀態(tài)存放器,如果語音芯片準備就緒,那么發(fā)送放音模式指令,從起始地址開始放音,遇到結束地址后,結束放音,單片機發(fā)送下電指令給語音模塊。如果語音芯片沒有準備繼續(xù),那么控制器一直讀取語音芯片內部的狀態(tài)。4.5無線程序設計4.5.1無線發(fā)送子程序設計無線發(fā)送子程序流程圖如圖4-7所示。從圖4-7中可以看出,無線發(fā)送子程序首先對無線模塊CC1101進行初始化,包括無線模塊和控制端控制器接口的PORTB.0~PORTB.3的端口輸入輸出方式初始化、SPI狀態(tài)初始化、無線模塊上電復位初始化、配置CC1101內部各存放器、無線模塊發(fā)射功率設置初始化。初始化完成后,設定發(fā)送字節(jié)長度,然后寫入要發(fā)送的數(shù)據(jù),進入發(fā)送模式發(fā)送數(shù)據(jù),然后檢查發(fā)送標志位,看是否發(fā)送完成,如果發(fā)送完成,那么清發(fā)送緩沖區(qū)。如果沒有發(fā)送完成,那么再開始發(fā)送數(shù)據(jù)。開始開始CC1101初始化發(fā)送字節(jié)長度設置寫入要發(fā)送的數(shù)據(jù)進入發(fā)送模式發(fā)送完成清發(fā)送緩沖區(qū)NY結束圖4-7無線發(fā)送子程序流程圖4.5.2無線接收子程序設計無線接收子程序流程圖如圖4-8所示。開始開始CC1101初始化接收字節(jié)長度設置進入接收模式接的字節(jié)數(shù)不為0接收數(shù)據(jù)N結束Y圖4-8無線接收子程序流程圖從圖4-8中可以看出,無線發(fā)送子程序首先對無線模塊CC1101進行初始化,包括無線模塊和控制端控制器接口的PORTB.0~PORTB.3的端口輸入輸出方式初始化、SPI狀態(tài)初始化、無線模塊上電復位初始化、配置CC1101內部各存放器、無線模塊發(fā)射功率設置初始化。初始化完成后,設定接收字節(jié)長度,然后進入接收模式,如果接收的字節(jié)為0,那么一直在接收模式下。如果接收的字節(jié)數(shù)不為0,那么開始接收數(shù)據(jù),接收完成活,清接收緩沖區(qū)。4.6顯示子程序設計顯示子程序流程圖如圖4-9所示。開始開始液晶初始化顯示初始界面是否有按鍵按下顯示模式設定界面N結束Y等待按鍵按下圖4-9顯示子程序流程圖從圖4-10可以看出,液晶顯示子程序首先要對液晶模塊進行初始化,包括液晶控制端口、液晶數(shù)據(jù)端口和控制器相連接的IO口PE2~PE6、PC口的端口輸入輸出方向初始化。初始化完畢后,液晶先顯示初始界面信息,這時如果有任意的一個按鍵按下,那么液晶清楚界面信息,然后顯示模式設定信息,按鍵輸入相應模式。如果沒有按鍵按下,那么液晶一直顯示初始界面信息。4.7按鍵子程序設計按鍵子程序如圖4-10所示。從圖4-10可以看出,按鍵顯示子程序首先要按鍵模塊進行初始化,對按鍵和控制端的控制器的接口PD0~PD5端口輸入/輸出方向初始化。初始化完畢后,開始處理按鍵程序,判斷有無按鍵按下,并執(zhí)行相應的按鍵處理程序。開始開始按鍵初始化任意按鍵按下去除當前顯示內容,顯示模式選擇界面NK1按下顯示無線模式被選中圖案K2按下?顯示循跡模式被選中圖案K6按下?無線發(fā)送設定的模式字碼K5按下?結束顯示設定模式界面YYNYN圖4-10按鍵子程序流程圖第5章系統(tǒng)調試本系統(tǒng)經過總體設計,完成了硬件開發(fā)和軟件開發(fā)。通過硬件和軟件的相互配合,使得整個系統(tǒng)正常運行。但是一個工程工程或者一個系統(tǒng)的最終開發(fā)成功,期間必然會碰到好多錯誤,例如硬件焊接上的錯誤,軟件編程上的錯誤等,這就需要通過調試來發(fā)現(xiàn)錯誤并及時的改正錯誤。系統(tǒng)調試分為硬件調試和軟件調試兩個局部。5.1硬件調試硬件調試用到的工具是示波器和萬用表。車載局部的硬件實物圖和控制端的硬件實物圖分別如圖5-1和5-2所示。圖5-1車載硬件實物圖圖5-2控制端硬件實物圖硬件調試應從以下4個步驟開始:1.查看線路根據(jù)硬件設計原理圖,仔細檢查各線路焊接是否正確,有誤虛焊或者短路問題。2.檢查板上各元器件檢查各個芯片、電阻有無焊接正確,有無芯片焊反等情況出現(xiàn)。3.檢查電源和地電源和地是一個系統(tǒng)中必不可少的組成局部,通電之前,首先要將萬用表開關調到測試二極管擋位,然后檢查電源和地之間有誤短路。檢查各個模塊的電源和地是否連接正常。4.上電檢查在保證電源和地的電路沒有問題的情況下,接通電源,檢查各個模塊是否正常,有誤發(fā)熱、發(fā)燙現(xiàn)象發(fā)生。必要時,可以用萬用表測量系統(tǒng)電路中的電流。如果測量電流很大,那么說明系統(tǒng)電路中有短路或者故障,此時應立即斷開電源,然后仔細檢查電路。5.系統(tǒng)整體檢查上電后,檢查系統(tǒng)中各個模塊的電壓是否正常,單片機相應的引腳輸入輸出電平是否正常等。5.2軟件調試對于本系統(tǒng)而言,軟件程序時序圖要求太多,所以軟件程序的調試顯得相當?shù)臒┈崱U麄€程序是使用C語言。軟件調試分為以下2個步驟:〔1〕各個模塊程序的調試 在本系統(tǒng)設計中采用CodeVisionAVR軟件對程序進行編譯和修改。利用AVRStudio4仿真軟件和JTAG工具對程序進行仿真調試,檢查各存放器內值是否正常,堆棧地址是否溢出等。 2.整體程序調試:各個模塊程序調試完畢后,需要把各個模塊和主程序連接起來,進行系統(tǒng)的整體調試,看看是否能實現(xiàn)系統(tǒng)的預期功能。在此階段出現(xiàn)的問題可以采取在出現(xiàn)問題的前后點亮LED燈的方式,來確定是哪局部出現(xiàn)的問題。結論本設計實現(xiàn)了多功能智能小車系統(tǒng)的功能。當按鍵輸入設定好的模式時,進行語音提示文字顯示同步發(fā)出,然后經過無線傳輸把模式字碼發(fā)送給車載控制器端,然后車載控制器根據(jù)接收到的模式字碼,控制小車,實現(xiàn)循跡、無線遙控功能。如果沒有收到無線信號或者收到的無線信號是停止模式字碼,那么車載控制器控制小車處于停止等待狀態(tài),智能小車系統(tǒng)主要應用與環(huán)境監(jiān)控和檢測、車體環(huán)境的檢查、軍用上的排爆排雷等。是一個涉及多領域、多學科的工程。本系統(tǒng)的特點是,采用無線傳輸?shù)哪J?,通過控制端控制車載控制器,繼而通過車載控制器控制小車,防止了人和車體的直接接觸,增加了控制的靈活性,突破了空間的限制。但本系統(tǒng)也有局限性,由于采用的是無線傳輸?shù)姆绞?,任何無線設備,其穩(wěn)定性和傳輸距離上都有一定的限制,本無線設備有效傳輸距離在空曠地帶為100米左右,此外,隨著距離的增加,在系統(tǒng)的實時性控制方面,也會有一定程度的緩慢現(xiàn)象出現(xiàn)。在畢業(yè)設計過程中,穩(wěn)固了在大學4年內學過的知識,尤其是單片機和模擬電子方面的知識,同時通過這次畢設提高了單片機編程的能力,尤其是獲得的軟件調試經驗,同時加強了我的實際編程能力,同時也讓自己更加的知道了自己知識領域里的缺乏和缺陷。由于時間太倉促,經驗缺乏,理論方面也相應的存在缺乏,加上條件有限,仍存在著一些設計方面的問題,個人技能也有待提高。理論知識還要穩(wěn)固加強。致謝本課題在選題及研究過程中得到馮老師的悉心指導。馮老師屢次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。馮老師一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,雖歷時半年,卻給以終生受益無窮之道。對馮老師的感謝之情是無法用言語表達的。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!參考文獻[1]張毅剛,彭喜元,姜守達,喬立巖編著《新編MCS-51單片機應用設計〔第3版〕》,哈爾濱大業(yè)大學出版社,2009.8[2]康華光,陳大欽,張林編著《電子技術根底》——模擬局部(第五版),2005[3]黃開勝,卓晴,邵貝貝編著《學做智能車挑戰(zhàn)飛思卡爾杯》,北京:北京航空航天大學出版社,2007[4]董濤,劉進英,蔣蘇編著《基于單片機的智能小車的設計與制作》,2009,17(2)[5]陳迎,韓麗娜編著《智能小車系統(tǒng)的設計》,2011,30(9)[6]李磊,曹生煒編著《智能小車避障技術的實現(xiàn)》,2011,44(6)[7]朱向慶,陳志雄編著《一種語音控制的自主尋跡和避障智能小車設計》,2011,19(7)[8]董宗祥,石紅瑞,楊杰編著《嵌入式智能小車測控系統(tǒng)的設計與實現(xiàn)》,2010,18(2)[9]謝自美.《電子線路設計、實驗、測試〔第三版〕》,武漢:華中科技大學,2006[10]謝維成,楊加國.《單片機原理與應用及C51程序設計》,清華大學出版社,2006[11]譚浩強.《C程序設計〔第三版〕》.北京:清華大學出版社,2005[12]S.L.Loyka.ASimpleFormulafortheGroundResistanceCalculation.IEEETrans.OnElectromagneticCompatibility,1999,41(2):152-154.[13]Jullian,E,Electromagneticradiation.RBM-RevueEuropeennedetechnologieBiomedicale,Vol.20NO.4.June,1998.12-23[14]MocrochipTechnologyInc..Microchip2006ProductSelectorGuide.2006.(40)[15]W.HaroldParady,J.HowardTurnered.ElectricMotors.Georgia:theamericanassociationForvocationalinstructionalmaterials,1978.附錄一附錄二電機驅動頭文件和C文件代碼#ifndef_motor_h_#define_motor_h_#defineM_Forward0//前#defineM_Back1//后#defineM_Left2//左#defineM_Right3//右#defineM_Stop4//停#definePWM_TOP4000//1KHZ#definePWMA_LEFTPORTB.5#definePWMB_RIGHTPORTB.6#defineMotor_Left_1PORTD.4#defineMotor_Left_2PORTD.5#defineMotor_Right_1PORTD.6#defineMotor_Right_2PORTD.7externvoidMotor_Init();//電機初始化externvoidMotor(unsignedcharfx,unsignedintpwm_left,unsignedintpwm_right,unsignedinttime);//電機控制函數(shù)#endif#include<mega128.h>#include<delay.h>#include"motor.h"http://包含電機頭文件voidMotor_Init()//電機初始化{DDRD|=0XF0;//電機接口PD4567PORTD|=0XF0;//設置為輸出方向DDRB|=0X60;//通道1B,1A翻開,端口PB5,PB6設置:輸出PORTB|=0X60;//PWM的頻率為400HzTCCR1A|=0XA0;//通道1A,1B翻開,升序計數(shù)清零,降序計數(shù)置位,TCCR1B|=0X11;//8M晶振,無分頻,ICR1H=PWM_TOP>>8;//ICR1L=PWM_TOP;//4000}voidMotor(unsignedcharfx,unsignedintpwm_left,unsignedintpwm_right,unsignedinttime){OCR1BH=(PWM_TOP/100*pwm_left)>>8;;OCR1BL=(PWM_TOP/100*pwm_left);OCR1AH=(PWM_TOP/100*pwm_right)>>8;OCR1AL=(PWM_TOP/100*pwm_right);switch(fx){caseM_Forward:Motor_Left_1=1;//左輪正轉Motor_Left_2=0;Motor_Right_1=1;Motor_Right_2=0;//

溫馨提示

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

評論

0/150

提交評論