久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: Atmega128單片機控制的智能小車設(shè)計論文 [打印本頁]

作者: wang1262123    時間: 2018-5-23 14:40
標題: Atmega128單片機控制的智能小車設(shè)計論文
摘要
隨著我國科學(xué)技術(shù)的進步,智能化和自動化技術(shù)越來越普及,各種高科技也廣泛應(yīng)用于智能小車和機器人玩具制造領(lǐng)域,使智能機器人越來越多樣化。智能小車是一個多種高薪技術(shù)的集成體,它融合了機械、電子、傳感器、計算機硬件、軟件、人工智能等許多學(xué)科的知識,可以涉及到當(dāng)今許多前沿領(lǐng)域的技術(shù)。
本系統(tǒng)采用2片AVR Atmega128單片機作為智能小車的檢測和控制核心。一片用在在小車上,負責(zé)控制循跡、無線和電機驅(qū)動功能;一片在控制端上,負責(zé)控制語音播報、無線發(fā)送、液晶顯示和按鍵功能。通過控制端的液晶顯示和按鍵輸入設(shè)定模式信息,再通過無線發(fā)送給車載控制器,車載控制器根據(jù)接收到的不同無線信息,控制小車進入不同的模式,實現(xiàn)不同的功能。
本系統(tǒng)中的無線傳輸距離,空曠地為100米左右,室內(nèi)可以隔著一層樓,接收端能收到發(fā)射端發(fā)射的無線信號。

目錄
第1章 緒論
1.1              選題背景和意義
1.2              智能小車發(fā)展概況
1.2.1 國外智能小車發(fā)展概況
1.2.2 國內(nèi)智能小車發(fā)展概況
1.3 研究設(shè)計的目標
1.4 方案選擇
1.4.1控制器選擇分析
1.4.2 電源模塊選擇分析
1.4.3 電機驅(qū)動模塊選擇分析
1.4.4 循跡模塊選擇分析
1.4.5無線模塊選擇分析
1.4.6語音模塊選擇分析
1.4.7顯示模塊選擇分析
1.4.8按鍵模塊選擇分析
1.5 可行性分析
第2章 系統(tǒng)整體設(shè)計
2.1 系統(tǒng)結(jié)構(gòu)框圖
2.1.1 車載控制器部分
2.1.2 控制端控制器部分
第3章 系統(tǒng)硬件設(shè)計
3.1 單片機最小系統(tǒng)
3.1.1 電源電路
3.1.2 復(fù)位電路
3.1.3 時鐘電路
3.2 電源模塊
3.3 電機驅(qū)動模塊
3.4 循跡模塊
3.5 無線模塊
3.6 語音模塊
3.7 顯示模塊
3.10 按鍵模塊
第4章 系統(tǒng)軟件設(shè)計
4.1 主程序設(shè)計
4.1.1車載控制器主程序設(shè)計
4.1.2控制端控制器主程序設(shè)計
4.2 電機驅(qū)動子程序設(shè)計
4.3 循跡子程序設(shè)計
4.4 語音子程序設(shè)計
4.4.1錄音子程序設(shè)計
4.4.2放音子程序設(shè)計
4.5 無線程序設(shè)計
4.5.1 無線發(fā)送子程序設(shè)計
4.5.2 無線接收子程序設(shè)計
4.6 顯示子程序設(shè)計
4.7 按鍵子程序設(shè)計
第5章 系統(tǒng)調(diào)試
5.1 硬件調(diào)試
5.2 軟件調(diào)試
結(jié)  論
致  謝
參考文獻
附 錄 一
附 錄 二

第1章 緒論1.1          選題背景和意義
自第一臺工業(yè)機器人誕生以來,機器人的民展已經(jīng)遍及機械、電子、冶金、交通、宇航、國防等領(lǐng)域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認識自然的過程中,制造能替代人工作的機器一直是人類的夢想。其中智能小車可以作為機器人的典型代表。其需要實現(xiàn)自動導(dǎo)引功能和避障功能就必須要感知導(dǎo)引線和障礙物,實現(xiàn)自動識別路線,選擇正確的行進路線,使用傳感器感知路線并作出判斷和相應(yīng)的執(zhí)行動作。智能小車設(shè)計與開發(fā)涉及控制、模式識別、傳感技術(shù)、汽車電子、電氣、計算機、機械等多個學(xué)科。它可以分為三大部分:傳感器檢測部分,執(zhí)行部分,CPU。現(xiàn)智能小車發(fā)展很快,從智能玩具到各行業(yè)都有實質(zhì)成果,其基本可實現(xiàn)循跡、避障、檢測貼片,尋光入庫、避崖等基本功能,有向聲控系統(tǒng)發(fā)展的趨勢。
1.2          智能小車發(fā)展概況1.2.1 國外智能小車發(fā)展概況
國外的智能小車發(fā)展的也很火,這其中要數(shù)韓國的智能小車發(fā)展最為迅速。韓國漢陽大學(xué)汽車控制實驗室在飛思卡爾半導(dǎo)體公司資助下,以HCS12飛思卡爾單片機為核心構(gòu)造的智能小車系統(tǒng)。該智能小車系統(tǒng)主要功能為尋跡。利用紅外、電磁、CCD攝像頭等設(shè)備進行,這其中有數(shù)CCD攝像頭最為常見,行駛速度快,過彎靈敏,控制算法上大多采用PID算法進行閉環(huán)控制。
1.2.2 國內(nèi)智能小車發(fā)展概況
國內(nèi)智能小車系統(tǒng)做的比較成熟的有北京博創(chuàng)科技有限公司。隨著全世界范圍內(nèi)汽車炸彈襲擊事件的不斷增多,因此安全檢查部門對重大活動的汽車檢查也逐步升級,由過去僅檢查車內(nèi)和車箱,升級為對包括車底的全方位檢查。在全國兩會安保工作中采用了北京博創(chuàng)科技的UP_UVSR智能小車機器人。UP_UVSR既是一款針對車底檢查任務(wù)研發(fā)的機器人系統(tǒng),該產(chǎn)品體積小、重量輕,便于攜帶,作業(yè)效率高;可以駛?cè)胲嚨走M行檢查,也可以固定安裝與車輛通道口對過往車輛進行檢查。
1.3 研究設(shè)計的目標
設(shè)計一個多功能智能小車系統(tǒng)。通過控制端的單片機檢測按鍵的輸入,根據(jù)輸入的不同模式,控制無線模塊發(fā)送不同的命令,小車上的車載控制器接收到無線信號,然后判斷接收到的無線信號,來控制小車進入不同的模式,控制端的單片機通過LCD和語音模塊進行參數(shù)信息的顯示和播報。
1.4 方案選擇1.4.1控制器選擇分析
控制器主要用于各個傳感器信號的接收和辨認、控制小車的電機的動作,是整個智能車系統(tǒng)的心臟,考慮到需要實現(xiàn)多個功能的要求及各個模塊引腳的數(shù)目,列出以下方案,對其分析、論證、選擇。
方案一:采用ATMEL公司的AT89S52。AT89S52單片機支持在線編程,易于操作,價格便宜,技術(shù)成熟,應(yīng)用廣泛,但是功能單一,如果系統(tǒng)電機驅(qū)動需要增加硬件,軟件實現(xiàn)較為復(fù)雜;另外AT89S52 單片機引腳數(shù)較少,達不到各個模塊端口的要求。
方案二:采用ATMEL公司的ATmega128。ATmega128是一款基于AVR內(nèi)核,采用RISC結(jié)構(gòu),高性能,低功耗CMOS的8位單片機。32個通用工作寄存器,53個通用I/O口,實時時鐘計數(shù)器(RTC),4個帶有比較模式靈活的定時器/計數(shù)器,2個可編程的USART接口,1個8位面向字節(jié)的TWI(IIC)總線接口,8通道單端或差分輸入的10位ADC(其中一個差分通道為增益可調(diào)的),可編程帶內(nèi)部振蕩器的看門狗定時器,一個SPI接口,一個兼容IEEE1149.1標準的JTAG接口(用于在線仿真調(diào)試和程序下載),6種可通過軟件選擇的節(jié)電模式。兩個具有預(yù)分頻器、比較功能和捕捉功能的16 位定時器 /計數(shù)器。兩路8 位PWM。6路分辨率可編程 (2 到16 位)的 PWM。
方案三:采用更加高端的處理器S3C2410。S3C2410是一款A(yù)RM內(nèi)核的處理器,雖然具備了AVR的資源,但是根據(jù)本設(shè)計的實際情況,成本比較高,編程難度較大。
綜合以上三種方案,考慮到系統(tǒng)的可行性,及功耗,性能,硬軟件的成本,我選擇方案二。
1.4.2 電源模塊選擇分析
方案一:采用傳統(tǒng)的7805三端穩(wěn)壓電路,小車鋰電池(7.4V)經(jīng)過7805穩(wěn)壓后供給小車電機驅(qū)動電路和單片機、各傳感器用電。由于小車電機啟動瞬間需要消耗大量電流,長時間行使后,7805芯片會有明顯的發(fā)燙現(xiàn)象,而且效率也很低,電池充滿一次電后,小車行駛沒多久,就得再次充電。   
方案二:采用LM2596開關(guān)型穩(wěn)壓芯片,配合電感和電容,一起搭配構(gòu)成整體的電源電路。效率更高,性能也更加穩(wěn)定。
綜合以上兩種方案,考慮到系統(tǒng)的性能和穩(wěn)定性方面,選擇方案二。
1.4.3 電機驅(qū)動模塊選擇分析
電機的驅(qū)動電路主要通過電機的正轉(zhuǎn)和反轉(zhuǎn)實現(xiàn)小車的前后或者左右方向的行駛。對于電機驅(qū)動模塊有下面的幾種方案。
方案一:使用功率三極管作為功率放大器的輸出控制直流電機。線性型驅(qū)動的電路結(jié)構(gòu)和原理簡單,成本低,加速能力強,但功率損耗大,特別是低速大轉(zhuǎn)距運行時,通過電阻R的電流大,發(fā)熱厲害,損耗大,對于小車的長時間運行不利。
方案二:采用繼電器對電機的開或關(guān)進行控制,通過開關(guān)的切換對小車的速度進行調(diào)整。此方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢,易損壞,壽命較短,可靠性不高。
方案三:采用專用電機驅(qū)動芯片L298N,實現(xiàn)框圖如圖1-1所示。該芯片集成度高,占用空間小,主要應(yīng)用于電機調(diào)速場合。L298N是恒壓恒流雙H橋集成電機芯片,可同時控制兩個電機,且輸出電流可達到2A。L298N的數(shù)據(jù)口分別與單片機的I/O口相連,作為調(diào)制信號。這樣精度高并且穩(wěn)定,可行性好,而且通過編程能實現(xiàn)人機分離,利于調(diào)試。
綜合以上三種方案,考慮到AVR單片機自帶有PWM功能,能實現(xiàn)直流減速電機精準控制,選擇方案三。
1.4.4 循跡模塊選擇分析
循跡模塊確保了小車在黑色邊界線的區(qū)域內(nèi)行駛。考慮到邊界線是黑色的,可以考慮利用傳感器辨認賽車場地黑白兩種不同狀態(tài)。對傳感器的選擇有以下方案。
方案一:采用熱探測器。熱探測器是利用所接收到的紅外輻射后,會引起溫度的變化,溫度的變化引起電信號不同的輸出,且輸出的電信號與溫度的變化成比例,當(dāng)紅外線被黑色線吸收時,溫度會降低,電壓變低,而紅外線沒有被吸收時,電壓不變,單片機可以根據(jù)電壓的變化來判斷小車顯示的情況。由于溫度受環(huán)境的影響很大,當(dāng)溫度變高時,即使黑色線吸收了紅外線,但是也會有很高的電壓,導(dǎo)致單片機判斷出錯。
方案二:采用紅外對射管。紅外發(fā)射接收管測量距離近,但反應(yīng)靈敏、準確。由于測量的高度離場地僅1 cm,距離很近,符合其特點。相比熱探測器而言,其體積較小,價格低,安裝較容易。
綜合以上兩種方案,考慮到系統(tǒng)的穩(wěn)定性和安裝的簡便性,選擇方案二。
1.4.5無線模塊選擇分析
無線模塊是用來進行控制端和小車之間的通信,控制小車進入不同的功能模式。
方案一:采用目前流行的WiFi無線模式。WiFi覆蓋面廣,傳輸里遠,但是其硬件開銷成本太高,需要很深厚的理論知識基礎(chǔ)。短時間內(nèi)實現(xiàn)有一定的難度。
方案二:采用TI的CC1101無線傳輸方案。有效傳輸距離為100米,工作頻率為387~464MHZ。主從一體,既可以作為發(fā)送端,也可以作為接收端,軟件控制靈活、簡單。此模塊高靈敏度(1.2kbps下-110dDm,0.1%數(shù)據(jù)包誤碼率)、內(nèi)置硬件CRC 檢錯和點對多點通信地址控制、較低的電流消耗(RX中,15.6mA,2.4kbps,433MHz、可編程控制的輸出功率,最大輸出功率+10dBm、無線喚醒功能,支持低功率電磁波激活功能,無線喚醒低功耗睡眠狀態(tài)的設(shè)備等優(yōu)點。
綜合以上兩種方案,考慮到系統(tǒng)開發(fā)成本和開發(fā)時間,選擇方案二。
1.4.6語音模塊選擇分析
語音模塊是用來進行在小車進入不同的功能模式和小車轉(zhuǎn)向時,進行語音播報,使整個系統(tǒng)更加人性化些。
方案一:采用555定時器,發(fā)出特定頻率的聲波。缺點:只能發(fā)出一定頻率的波,難以發(fā)出人類的聲音。
方案二:采用ISD1760專業(yè)語音錄放芯片。ISD1760可錄、放音十萬次,存儲內(nèi)容可以斷電保留一百年。兩種錄放模式:獨立按鍵錄放模式和SPI總線操作錄放模式。可處理多達 255 段信息。錄音數(shù)據(jù)存儲在芯片的 FLASH 內(nèi),沒有經(jīng)過任何壓縮,所以有較好的音質(zhì)和斷電存儲。多種采樣頻率對應(yīng)多種錄放時間。工作電壓:2.4V-5.5V。靜態(tài)電流:0.5 - 1 μA。工作電流:20mA
綜合以上兩種方案,考慮到系統(tǒng)的功能要求和控制的靈活性,選擇方案二。
1.4.7顯示模塊選擇分析
方案一:采用LCD 1602液晶進行小車參數(shù)的信息顯示。1602為2行16列式的液晶,可以顯示一些數(shù)字和英文字母以及一些簡單的圖案,但是1602內(nèi)部無字庫,要想顯示漢字就得自己編寫漢字碼了,軟件開發(fā)繁瑣。
方案二:采用LCD 12864 字符式液晶。由于12864液晶內(nèi)部帶字庫,且能夠顯示的信息也足夠多,LCD1284和LCD1602二者在時序控制上差別不大,軟件一直很容易。
綜合以上兩種方案,考慮到系統(tǒng)的要求,選擇方案二。
1.4.8按鍵模塊選擇分析
方案一:采用4*4矩陣鍵盤,共計需要16個獨立按鍵,占用單片機8個IO端口。
方案二:采用獨立的按鍵,結(jié)合本系統(tǒng),只需要6個獨立按鍵即可滿足要求,單片機只要檢測對應(yīng)的引腳電平幾個判斷那一按鍵被按下。
綜合以上兩種方案,考慮到硬件的開發(fā)成本和軟件程序上的簡便性,選擇方案二。
1.5 可行性分析
采用ATmega128A單片機作為控制核心,其標準工作頻率為8MHz,可以為本系統(tǒng)提供高速的計算能力和實時控制能力。學(xué)校的硬件基礎(chǔ)實驗室可以提供焊接和調(diào)試場地,調(diào)試設(shè)備只需要電烙鐵、萬用表、示波器等常用設(shè)備即可。
對大學(xué)開設(shè)的《C語言編程》、《單片機技術(shù)》、《模擬電子技術(shù)》、《Protel應(yīng)用技術(shù)》等相關(guān)課程的學(xué)習(xí),可以為該系統(tǒng)的設(shè)計與實現(xiàn)提供理論知識。
2系統(tǒng)整體設(shè)計2.1 系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)主要分為兩個大模塊,車載控制器模塊和控制端的控制器模塊。
2.1.1 車載控制器部分
車載控制器模塊如圖2-1所示。

圖 2-1 車載控制器模塊結(jié)構(gòu)框圖
從圖2-1中可以看出,車載部分的控制器模塊主要包括電源模塊、電機驅(qū)動模塊、循跡模塊、避障模塊、無線模塊。各個模塊的功能介紹如下。
1.電源模塊:
采用7.4V的鋰電池,經(jīng)過降壓電路,降到5V后供給整個系統(tǒng)。
2.電機驅(qū)動模塊:
使用兩片L298N驅(qū)動小車的電機。利用單片機的PWM功能,控制驅(qū)動芯片,驅(qū)動芯片再控制電機,實現(xiàn)小車的行駛轉(zhuǎn)向功能。
3.循跡模塊:
采用7對紅外對射管作為單片機輸入,來檢測黑色循跡線路。
4.無線模塊:
車載控制器控制無線模塊,接收控制端的無線信號,然后根據(jù)所接收到的無線信號,車載控制器控制小車執(zhí)行不同的功能。
2.1.2 控制端控制器部分
車載控制器模塊如圖2-2所示。
圖 2-2控制端控制器結(jié)構(gòu)框圖
從圖2-2中可以看出,車載控制器主要包括電源模塊、無線模塊、顯示模塊、按鍵模塊、語音模塊。各個模塊的功能如下。
1.電源模塊
利用4節(jié)5號干電池經(jīng)過7805穩(wěn)壓到5V后供給控制端的系統(tǒng)使用。
2.語音模塊:
使用ISD1760芯片存儲聲音信息,外接揚聲器,當(dāng)按鍵設(shè)定小車進入不同的功能模式時,實現(xiàn)聲音播報功能。
3.按鍵電路:
共使用6個獨立按鍵,4個方向鍵,一個菜單鍵,一個確定鍵,負責(zé)設(shè)定小車進入不同的功能模式。
4:顯示模塊:
使用LCD12864,當(dāng)按鍵設(shè)定小車的功能模式時,以文字的形式顯示模式設(shè)定。在進入無線模式時,負責(zé)顯示小車的操縱方向。
3章 系統(tǒng)硬件設(shè)計
本章從硬件系統(tǒng)上設(shè)計單片機最小系統(tǒng)模塊、電源模塊、電機驅(qū)動模塊、循跡模塊、無線模塊、語音模塊、顯示模塊、按鍵模塊。
3.1 單片機最小系統(tǒng)3.1.1 電源電路
電源電路把直流5V輸入給降壓芯片LM117,然后降壓到3.3V后供給單片機和其他3.3V模塊使用。電源電路如圖3-1所示。
圖 3-1 電源電路

3.1.2 復(fù)位電路
單片機的復(fù)位方式有上電自總復(fù)位和手工復(fù)位兩種。本設(shè)計中復(fù)位電路采用的是手工復(fù)位電路,如圖3-2所示。
圖 3-2 復(fù)位電路
單片機的REST引腳為主機提供一個外部復(fù)位信號輸入端口。復(fù)位信號是低電平有效,低電平有效的持續(xù)時間大于最小脈沖寬度(1.5us)時即觸發(fā)復(fù)位過程。復(fù)位后,單片機內(nèi)各部件都恢復(fù)到初始狀態(tài),單片機從ROM地址的0000H開始執(zhí)行程序。
3.1.3 時鐘電路
時鐘電路如圖3-3所示。
(空白處補上)
圖 3-3 時鐘電路
單片機的工作時間基準是由時鐘電路提供的,在單片機的XTAL1和XTAL2的兩個引腳間,接入一個8MHz晶振及兩個22pF電容即構(gòu)成了單片機最小系統(tǒng)的時鐘電路。
時鐘電路中的器件可以從ATmega128的芯片資料上確定,也可以參考一些常見的電路的參數(shù)。
3.2 電源模塊
電源模塊采用的是LM2596開關(guān)型穩(wěn)壓芯片。7.4V的鋰電池經(jīng)過LM2596穩(wěn)壓到5V后供給整個系統(tǒng)。電源模塊電路圖如圖3-4所示。
(空白處補上)

圖3-4電源模塊電路圖
鋰電池電壓從J1輸入給LM2596降壓電路,5V從J2輸出,供給整個系統(tǒng)。R2為可調(diào)電阻,可以調(diào)節(jié)輸出電壓。D1為SS34肖特基二極管,具有開關(guān)速度快,正向壓降低的特點,在電路中配合L1電感,構(gòu)成回路,起到續(xù)流的作用。
3.3 電機驅(qū)動模塊
電機驅(qū)動模塊采用了2片L298N芯片,進行對小車的4個電機的控制。其中一片L298N電機驅(qū)動電路圖如圖3-5所示。
(空白處補上)

圖3-5電機驅(qū)動模塊電路圖
圖中QIN1~QIN4為芯片輸入端,接單片機PD4,PD5,PD6,PD7口,O1~O4為芯片輸出端,接電機。JDY1和JDJY2為電機線插座。PWA和PWMB為PWM輸入腳,接車載控制器的PB5(OC1A)和PB6(OC1B)PWM輸出引腳。D2~D9為1N4007二極管,在電路中起到保護L98N芯片的作用,防止電機在正反轉(zhuǎn)的瞬間,產(chǎn)生的電動勢擊穿L298N芯片。
3.4 循跡模塊
循跡模塊采用了共計7對紅外對射管,7路循跡接車載控制器的PA0~PA7口。其中一對紅外對射管的電路如圖3-6所示。
(空白處補上)

圖3-6 循跡模塊電路圖
紅外對射管為DT2和DR2。LM339N為比較器,RW1為10K的可調(diào)電阻。當(dāng)DR2接收到DT2發(fā)射的紅外光時導(dǎo)通,此時339的反相輸入端為邏輯0,正向輸入端VREF電平高于反相輸入端電平,根據(jù)比較器的特性,比較器輸出端為高電平,車載控制器的PA1口也為高電平。當(dāng)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, 車載控制器從該引腳接收來自無線模塊傳來的信號。
圖3-8 無線模塊和車載控制器的連接圖
3.6 語音模塊
語音模塊是本系統(tǒng)中的重要功能模塊。當(dāng)按鍵設(shè)定小車進入不同的功能模式時,語音模塊能夠播報相應(yīng)的模式信息,防止設(shè)定進入錯誤的模式。
語音模塊實物圖如圖3-9所示。
圖中MIC為錄音輸入麥克,按鍵也可實現(xiàn)錄音和放音的操作。
(空白處補上)

圖3-9 語音模塊實物圖
語音模塊和控制端的控制器連接圖如圖3-10所示。
ISD1760與ATmega128A接口為SPI串行總線接口,單片機通過片選線SS(SS=0時允許ISD1760工作)、串行數(shù)據(jù)輸入MISO、串行數(shù)據(jù)輸出MOSI和串行時鐘SCLK和ISD1760進行連接。
單片機B ATmega128A的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從該引腳接收來自語音芯片傳來的信號。
(空白處補上)

圖3-10 語音模塊和車載控制器的連接圖
3.7 顯示模塊
顯示模塊的硬件原理圖如圖3-11所示。
VSS、LED_K接地;VDD、/RST接+5V電源。液晶數(shù)據(jù)線DB0~DB7連接AVR128的PC口。RS接單片機PE2,當(dāng)為高電平時,表示DB0~DB7為顯示數(shù)據(jù);為低電平時,表示DB0~DB7為顯示指令數(shù)據(jù)。R/W接單片機PE3口,使能信號E接單片機PE4口,R/W為高電平,E為高電平,數(shù)據(jù)被讀到DB0~DB7;R/W為低電平,E從高電平轉(zhuǎn)換到低電平,DB0~DB7被寫到液晶內(nèi)部的DDRAM里。
(空白處補上)

圖3-11 顯示模塊電路圖

3.10 按鍵模塊
按鍵模塊電路圖如圖3-12所示。
圖3-12 按鍵模塊電路圖
6個按鍵作為輸入方式接入控制器端控制器的PD0~PD5 IO口。當(dāng)有按鍵按下時,對應(yīng)的端口電平變?yōu)榈碗娖剑?dāng)按鍵抬起時,對應(yīng)的電平變?yōu)楦唠娖健?/font>
K1~K4分別為Up、Down、Left、Right鍵,當(dāng)小車進入無線遙控模式時,負責(zé)小車的前進、后退、左轉(zhuǎn)和右轉(zhuǎn)功能。
K5為菜單鍵,負責(zé)小車進入何種模式菜單的設(shè)定顯示。當(dāng)K5按下時,K1~K3分別對應(yīng)無線模式、循跡模式和避障模式。
K6為確定鍵,當(dāng)K5按下,K1~K3設(shè)定某種模式后,按下K6,然后通過無線模塊把模式字碼發(fā)送給車載控制器。
4 系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計采用C語言,對單片機進行編程實現(xiàn)各項功能。
程序是在Windows XP環(huán)境下采用CodeVisionAVR C Compliler軟件編譯的。
4.1 主程序設(shè)計
本系統(tǒng)主要分為兩個主程序,即車載控制器上的主程序和控制端控制器的主程序。
4.1.1車載控制器主程序設(shè)計
主程序采用模塊化的思想設(shè)計,車載控制器的主程序流程圖如圖4-1所示。
從圖4-1中可以看出,車載空控制器首先進行對電機模塊、循跡模塊和無線模塊的初始化,初始化主要包括各個模塊和控制器相連接的IO端口的輸入/輸出初始化,以及一些功能寄存器的初始化。
初始化完成后,程序進入while循環(huán),開始判斷無線接收到的數(shù)據(jù),如果無線接收到的數(shù)據(jù)是循跡模式字碼(0xa0),則進入循跡子程序,小車開始循跡;如果無線接收到的數(shù)據(jù)是無線遙控模式字碼(0xa1),則進入無線遙控模式,開始小車的無線遙控行駛功能。如果沒有接收到任何模式字碼或者接收到的不是這三種模式字碼的任意一個,則小車停止。
圖4-1 車載控制器主程序流程圖
4.1.2控制端控制器主程序設(shè)計
控制端控制器的主程序流程圖如圖4-2所示。

圖4-2 控制端控制器主程序流程圖

從圖4-2中可以看出,控制端空控制器首先進行對按鍵模塊、液晶模塊、語音模塊和無線模塊的初始化。初始化主要包括各個模塊和控制器相連接的IO端口的輸入/輸出初始化,以及一些功能寄存器的初始化。
初始化完成后,顯示一初始界面信息,然后判斷是否有任意按鍵按下,如有任意按鍵按下,則清屏顯示信息,顯示模式設(shè)定信息,然后主程序開始開始處理按鍵程序。
4.2 電機驅(qū)動程序設(shè)計
根據(jù)電機驅(qū)動芯片L298的文檔資料,IN1(5)、IN2(7)、IN3(10)、IN4(12)分別對應(yīng)OUT1(2)、OUT2(3)、OUT3(13)、OUT4(14),即輸入高低電平對應(yīng),(例如IN1為高則OUT1為高),當(dāng)然這要是建立在使能端滿足的情況下才可以; ENA(6)、ENB(11)為使能端,ENA控制OUT1、OUT2,ENB控制OUT3、OUT4,高電平有效,即在低電平情況下,無論輸入為何信號,輸出都為低電平。
現(xiàn)以IN1、IN2、OUT1、OUT2為例控制電機的轉(zhuǎn)向。詳見表4-1。
表4-1電機轉(zhuǎn)動狀態(tài)真值表
IN1
IN2
OUT1
OUT2
狀態(tài)
1
1
1
1
停止
1
0
1
0
轉(zhuǎn)動
0
1
0
1
轉(zhuǎn)動
0
0
0
0
停止

電機驅(qū)動子程序的流程圖如圖4-3所示。
圖4-3 電機驅(qū)動子程序流程圖
從圖4-3中可以看出,電機驅(qū)子動程序首先要對電機模塊初始化,初始化主要包括電機驅(qū)動芯片的輸入端口PORTD.4~PORTD.7的端口輸出方向初始化,PWM輸出通道 PORTB.5和PORTB.6的輸出方向初始化,定時器1的PWM輸出頻率及PWM計數(shù)器頂端值的初始化。然后進入主程序,開始判斷各個標志位。如果是前進標志,則調(diào)用前進函數(shù),先設(shè)定PWM占空比,然后令電機驅(qū)動芯片的輸入端in1=1,in2=0(左輪正轉(zhuǎn)),in3=1,in4=0(右輪正轉(zhuǎn)),小車即向前行駛;如果是左轉(zhuǎn)標志,則調(diào)用左轉(zhuǎn)函數(shù),先設(shè)定PWM占空比,然后令電機驅(qū)動芯片的輸入端in1=0,in2=1(左輪反轉(zhuǎn)),in3=1,in4=0(右輪正轉(zhuǎn)),小車即開始左轉(zhuǎn)。其他的后退、右轉(zhuǎn)和停止函數(shù)和前面所講類似,在此不再贅述。
4.3 循跡程序設(shè)計
本系統(tǒng)邊界檢測模塊采用的是紅外對射模塊。在小車的正前方位置安裝了7支紅外對射管,這些紅外對射管是用來檢測和探知黑色循跡道路的。
小車循跡是通過7對紅外對射管來檢測的,表4-2列出了小車的各個狀態(tài):
表4-2紅外對射管狀態(tài)真值表
     傳感器
     編號

小車狀態(tài)


Sig1  


Sig2


Sig3


Sig4


Sig5


Sig6


Sig7
輕微左偏
0
1
1
1
1
1
1
嚴重左偏
0
0
1
1
1
1
1
輕微左偏
1
0
1
1
1
1
1
輕微左偏
1
0
0
1
1
1
1
輕微左偏
1
1
0
1
1
1
1
輕微左偏
1
1
0
0
1
1
1
中間位置
1
1
1
0
1
1
1

具體程序可根據(jù)循跡流程圖4-4所示進行程序編寫。
從圖4-4中可以看出,循跡子程序首先要對循跡模塊初始化。初始化主要包括對循跡模塊和車載控制器的接口PORTA.0~PORTA.6的端口輸入方向初始化。
初始化完畢后,主程序開始判斷循跡模塊的中間一個傳感器Sig4的輸出狀態(tài)是否為0(低電平),如果Sig4為0,則說明小車此時處于黑色循跡線路的中間位置,車載控制器調(diào)用小車直走函數(shù),控制小車直走即可;如果Sig4不為0,則程序進對循跡模塊的左邊的傳感器Sig1的狀態(tài)進行判斷。如果Sig1的輸出狀態(tài)為0(低電平),則說明小車車身現(xiàn)在處于黑線的右邊位置,車載控制器需調(diào)用小車左轉(zhuǎn)函數(shù)。如果Sig1的輸出狀態(tài)不為0,則進入下一個傳感器的輸出狀態(tài)判斷。如果7個傳感器的輸出狀態(tài)都不為0,車載控制器則控制小車直走。
圖4-4 循跡子程序流程圖
4.4 語音程序設(shè)計
控制端的控制器通過SPI總線的方式來控制語音模塊的錄放音操作。SPI的英文名稱為Serial Peripheral Interface。串行外設(shè)接口SPI是由Freescale公司(原Motoroal公司半導(dǎo)體部)提出的一種采用串行同步方式的3線或4線通訊接口,使用信號有使能信號(SS)、同步時鐘(SCK)、同步數(shù)據(jù)輸入和輸出(MOSI、MISO)。在 SPI 模式下,對芯片進行更多功能操作。如對任意存儲地址進行錄放,對模擬通道配置寄存器進行讀寫等。
通信協(xié)議
MOSI 的數(shù)據(jù)在 SCLK的上升沿進入錄音芯片,MISO 的數(shù)據(jù)在 SCLK的下降沿進入主控芯片。8位為一字節(jié),先發(fā)低位。
4.4.1錄音子程序設(shè)計

ISD錄音子程序流程圖如圖4-5所示。

圖4-5 語音錄音子程序流程圖
從圖4-5中可以看出,ISD錄音子程序首先要對語音模塊進行初始化,包括語音模塊和單片機相連接的IO口PORTA.0~PORTA.3的輸入輸出方向初始化、語音模塊的復(fù)位、清除語音模塊內(nèi)部的中斷。
初始化完成后,開始讀取狀態(tài)寄存器,如果語音芯片準備就緒,則發(fā)送錄音模式指令,從起始地址開始錄音,遇到結(jié)束地址后,結(jié)束錄音,單片機發(fā)送下電指令給語音模塊。如果語音芯片沒有準備繼續(xù),則控制器一直讀取語音芯片內(nèi)部的狀態(tài)。
4.4.2音子程序設(shè)計

圖4-6 語音放音子程序流程圖
從圖4-6中可以看出,ISD放音子程序首先要對語音模塊進行初始化,包括語音模塊和單片機相連接的IO口PORTA.0~PORTA.3的輸入輸出方向初始化、語音模塊的復(fù)位、清除語音模塊內(nèi)部的中斷。
初始化完成后,開始讀取狀態(tài)寄存器,如果語音芯片準備就緒,則發(fā)送放音模式指令,從起始地址開始放音,遇到結(jié)束地址后,結(jié)束放音,單片機發(fā)送下電指令給語音模塊。如果語音芯片沒有準備繼續(xù),則控制器一直讀取語音芯片內(nèi)部的狀態(tài)。
4.5 無線程序設(shè)計4.5.1 無線發(fā)送程序設(shè)計
無線發(fā)送子程序流程圖如圖4-7所示。
從圖4-7中可以看出,無線發(fā)送子程序首先對無線模塊CC1101進行初始化,包括無線模塊和控制端控制器接口的PORTB.0~PORTB.3的端口輸入輸出方式初始化、SPI狀態(tài)初始化、無線模塊上電復(fù)位初始化、配置CC1101內(nèi)部各寄存器、無線模塊發(fā)射功率設(shè)置初始化。
初始化完成后, 設(shè)定發(fā)送字節(jié)長度,然后寫入要發(fā)送的數(shù)據(jù),進入發(fā)送模式發(fā)送數(shù)據(jù),然后檢查發(fā)送標志位,看是否發(fā)送完成,如果發(fā)送完成,則清發(fā)送緩沖區(qū)。如果沒有發(fā)送完成,則再開始發(fā)送數(shù)據(jù)。
圖4-7 無線發(fā)送子程序流程圖
4.5.2 無線接收子程序設(shè)計
無線接收子程序流程圖如圖4-8所示。

圖4-8 無線接收子程序流程圖

從圖4-8中可以看出,無線發(fā)送子程序首先對無線模塊CC1101進行初始化,包括無線模塊和控制端控制器接口的PORTB.0~PORTB.3的端口輸入輸出方式初始化、SPI狀態(tài)初始化、無線模塊上電復(fù)位初始化、配置CC1101內(nèi)部各寄存器、無線模塊發(fā)射功率設(shè)置初始化。
初始化完成后, 設(shè)定接收字節(jié)長度,然后進入接收模式,如果接收的字節(jié)為0,則一直在接收模式下。如果接收的字節(jié)數(shù)不為0,則開始接收數(shù)據(jù),接收完成活,清接收緩沖區(qū)。
4.6 顯示子程序設(shè)計
顯示子程序流程圖如圖4-9所示。

圖4-9 顯示子程序流程圖
從圖4-10可以看出,液晶顯示子程序首先要對液晶模塊進行初始化,包括液晶控制端口、液晶數(shù)據(jù)端口和控制器相連接的IO口PE2~PE6、PC口的端口輸入輸出方向初始化。
初始化完畢后,液晶先顯示初始界面信息,這時如果有任意的一個按鍵按下,則液晶清楚界面信息,然后顯示模式設(shè)定信息,按鍵輸入相應(yīng)模式。如果沒有按鍵按下,則液晶一直顯示初始界面信息。
4.7 按鍵子程序設(shè)計
按鍵子程序如圖4-10所示。
從圖4-10可以看出,按鍵顯示子程序首先要按鍵模塊進行初始化,對按鍵和控制端的控制器的接口PD0~PD5端口輸入/輸出方向初始化。
初始化完畢后,開始處理按鍵程序,判斷有無按鍵按下,并執(zhí)行相應(yīng)的按鍵處理程序。

圖4-10 按鍵子程序流程圖




第5章 系統(tǒng)調(diào)試
              本系統(tǒng)經(jīng)過總體設(shè)計,完成了硬件開發(fā)和軟件開發(fā)。通過硬件和軟件的相互配合,使得整個系統(tǒng)正常運行。但是一個工程項目或者一個系統(tǒng)的最終開發(fā)成功,期間必然會碰到好多錯誤,例如硬件焊接上的錯誤,軟件編程上的錯誤等,這就需要通過調(diào)試來發(fā)現(xiàn)錯誤并及時的改正錯誤。系統(tǒng)調(diào)試分為硬件調(diào)試和軟件調(diào)試兩個部分。
5.1 硬件調(diào)試
硬件調(diào)試用到的工具是示波器和萬用表。
車載部分的硬件實物圖和控制端的硬件實物圖分別如圖5-1和5-2所示。
圖5-1 車載硬件實物圖
圖5-2 控制端硬件實物圖
硬件調(diào)試應(yīng)從以下4個步驟開始:
1.查看線路
根據(jù)硬件設(shè)計原理圖,仔細檢查各線路焊接是否正確,有誤虛焊或者短路問題。
2.檢查板上各元器件
檢查各個芯片、電阻有無焊接正確,有無芯片焊反等情況出現(xiàn)。
3.檢查電源和地
電源和地是一個系統(tǒng)中必不可少的組成部分,通電之前,首先要將萬用表開關(guān)調(diào)到測試二極管擋位,然后檢查電源和地之間有誤短路。檢查各個模塊的電源和地是否連接正常。
4.上電檢查
在保證電源和地的電路沒有問題的情況下,接通電源,檢查各個模塊是否正常,有誤發(fā)熱、發(fā)燙現(xiàn)象發(fā)生。必要時,可以用萬用表測量系統(tǒng)電路中的電流。如果測量電流很大,則說明系統(tǒng)電路中有短路或者故障,此時應(yīng)立即斷開電源,然后仔細檢查電路。
5.系統(tǒng)整體檢查
上電后,檢查系統(tǒng)中各個模塊的電壓是否正常,單片機相應(yīng)的引腳輸入輸出電平是否正常等。
5.2 軟件調(diào)試
對于本系統(tǒng)而言,軟件程序時序圖要求太多,所以軟件程序的調(diào)試顯得相當(dāng)?shù)臒┈崱U麄程序是使用C語言。
              軟件調(diào)試分為以下2個步驟:
              (1)各個模塊程序的調(diào)試
              在本系統(tǒng)設(shè)計中采用CodeVisionAVR 軟件對程序進行編譯和修改。利用AVRStudio4仿真軟件和JTAG工具對程序進行仿真調(diào)試,檢查各寄存器內(nèi)值是否正常,堆棧地址是否溢出等。
              2.整體程序調(diào)試:各個模塊程序調(diào)試完畢后,需要把各個模塊和主程序連接起來,進行系統(tǒng)的整體調(diào)試,看看是否能實現(xiàn)系統(tǒng)的預(yù)期功能。在此階段出現(xiàn)的問題可以采取在出現(xiàn)問題的前后點亮LED燈的方式,來確定是哪部分出現(xiàn)的問題。

結(jié)
本設(shè)計實現(xiàn)了多功能智能小車系統(tǒng)的功能。當(dāng)按鍵輸入設(shè)定好的模式時,進行語音提示文字顯示同步發(fā)出,然后經(jīng)過無線傳輸把模式字碼發(fā)送給車載控制器端,然后車載控制器根據(jù)接收到的模式字碼,控制小車,實現(xiàn)循跡、無線遙控功能。如果沒有收到無線信號或者收到的無線信號是停止模式字碼,則車載控制器控制小車處于停止等待狀態(tài),
智能小車系統(tǒng)主要應(yīng)用與環(huán)境監(jiān)控和檢測、車體環(huán)境的檢查、軍用上的排爆排雷等。是一個涉及多領(lǐng)域、多學(xué)科的工程。
本系統(tǒng)的特點是,采用無線傳輸?shù)哪J剑ㄟ^控制端控制車載控制器,繼而通過車載控制器控制小車,避免了人和車體的直接接觸,增加了控制的靈活性,突破了空間的限制。但本系統(tǒng)也有局限性,由于采用的是無線傳輸?shù)姆绞剑魏螣o線設(shè)備,其穩(wěn)定性和傳輸距離上都有一定的限制,本無線設(shè)備有效傳輸距離在空曠地帶為100米左右,此外,隨著距離的增加,在系統(tǒng)的實時性控制方面,也會有一定程度的遲緩現(xiàn)象出現(xiàn)。
在畢業(yè)設(shè)計過程中,鞏固了在大學(xué)4年內(nèi)學(xué)過的知識,尤其是單片機和模擬電子方面的知識,同時通過這次畢設(shè)提高了單片機編程的能力,尤其是獲得的軟件調(diào)試經(jīng)驗,同時加強了我的實際編程能力,同時也讓自己更加的知道了自己知識領(lǐng)域里的不足和缺陷。
由于時間太倉促,經(jīng)驗不足,理論方面也相應(yīng)的存在不足,加上條件有限,仍存在著一些設(shè)計方面的問題,個人技能也有待提高。理論知識還要鞏固加強。
致  謝
本課題在選題及研究過程中得到馮老師的悉心指導(dǎo)。馮老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。馮老師一絲不茍的作風(fēng),嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,雖歷時半年,卻給以終生受益無窮之道。對馮老師的感激之情是無法用言語表達的。
在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!

附 錄
電機驅(qū)動頭文件和C文件代碼


完整的Word格式文檔51黑下載地址(含源碼):
智能小車畢業(yè)設(shè)計.doc (3.98 MB, 下載次數(shù): 53)



作者: chendaying    時間: 2021-6-27 18:47
謝謝共享,已拜讀!

作者: sh-fluke    時間: 2021-8-9 06:36
謝謝共享,下載拜讀!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成年无码av片在线 | 天天草狠狠干 | 亚洲v区| 婷婷在线免费 | 亚洲精品亚洲人成人网 | www亚洲成人 | 欧美一区视频 | 日韩在线免费视频 | 亚洲一区自拍 | 国产小视频在线 | 精品视频久久久久久 | 成人性生交大片免费看中文带字幕 | 欧美成人一区二免费视频软件 | 欧美日韩久久久 | 国产色99精品9i | 久久久久久蜜桃一区二区 | 操久久久| 欧美6一10sex性hd | 久久国产精品精品 | 精品久久久久久久 | 国产精品视频播放 | 黄视频网址| 欧美天堂| 一区二区高清 | 日韩视频在线一区 | 国产99免费 | 国产精品久久久亚洲 | 亚洲成人一区二区三区 | 国产成人自拍av | 国产在线永久免费 | 青青草一区二区 | av电影手机在线看 | 四虎影音 | 亚洲 欧美 另类 综合 偷拍 | 中文字幕亚洲在线 | 黑人精品| avhd101在线成人播放 | 久久久久久天堂 | 久久中文字幕一区 | 黄在线免费观看 | 国产1区2区在线观看 |