arduino循跡小車畢業(yè)論文_第1頁
arduino循跡小車畢業(yè)論文_第2頁
arduino循跡小車畢業(yè)論文_第3頁
arduino循跡小車畢業(yè)論文_第4頁
arduino循跡小車畢業(yè)論文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 目錄摘要2引 言21 Arduino智能小車設(shè)計方案與參數(shù)31.1 Arduino智能小車設(shè)計方案簡介 31.1.1 功能要求3 1.1.2 基本原理3 1.2 循跡小車參數(shù)42 Arduino與51單片機的區(qū)別5 2.1 Arduino單片機5 2.1.1 Arduino單片機的介紹5 2.1.2 Arduino單片機的特色5 2.1.3 Arduino單片機的功能5 2.2 51單片機6 2.2.1 51單片機的介紹6 2.2.2 51單片機的功能6 2.3 Arduino比51更好的地方73 循跡小車設(shè)計8 3.1 硬件設(shè)計8 3.1.1 單片機最小系統(tǒng)8 3.1.2 灰度傳感器模塊

2、9 3.1.3 電機驅(qū)動電路10 3.2 軟件設(shè)計12 3.2.1 系統(tǒng)主程序13 3.2.2 本系統(tǒng)編譯器13 3.3 實物展示14 3.4 部分程序展示15結(jié) 論20致 謝21參考文獻(xiàn)22Arduino循跡小車設(shè)計與實現(xiàn)摘要:循跡小車是Arduino單片機的一種典型應(yīng)用。本智能小車是由ardiuno單片機和外部電路組成,包括檢測模塊,控制模塊,電源模塊。循跡車設(shè)計采用Arduino單片機作為小車的控制核心,采用灰度傳感器作為小車的檢測模塊來識別綠色路面中央的黑色引導(dǎo)線,采集信號并將信號轉(zhuǎn)換為能被ardiuno單片機識別的數(shù)字信號;采用驅(qū)動芯片L298N構(gòu)成雙H橋控制直流電機。其中軟件系統(tǒng)采

3、用C程序。關(guān)鍵詞:Arduino單片機,自動循跡,驅(qū)動電路。引言自第一臺工業(yè)機器人誕生以來,機器人的民展已經(jīng)遍及機械、電子、冶金、交通、宇航、國防等領(lǐng)域。近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們在不斷探討、改造、認(rèn)識自然的過程中,制造能替代人工作的機器一直是人類的目標(biāo)。單片機是一種可通過編程控制的微處理器,雖其自身不能單獨用在某項工程或產(chǎn)品上,但當(dāng)其與外圍數(shù)字器件和模擬器件結(jié)合時便可發(fā)揮強大的功能,現(xiàn)在單片機已廣泛應(yīng)用于眾多領(lǐng)域。例如:工業(yè)自動化,智能儀器儀表,消費類電子產(chǎn)品,通信方面,武器裝備等。作為與自動化技術(shù)和電子密切相關(guān)的理工科學(xué)生,掌握單片機是最基礎(chǔ)的要求

4、。為進(jìn)一步豐富和鞏固單片機知識,也為能更好的聯(lián)系實際應(yīng)用,本次畢業(yè)設(shè)計選擇了基于單片機Arduino循跡車,并做出實物。鑒于電子技術(shù)、計算機技術(shù)以及各種更先進(jìn)的仿真軟件的出現(xiàn),使用高級語言如C代替匯編語言進(jìn)行編程和控制已成為現(xiàn)實,單片機C語言編程相對于MC51匯編語言編程有如下優(yōu)點:對單片機的指令系統(tǒng)不需要有很深的理解就可以編程操作單片機。寄存器分配、不同存儲器的尋址及數(shù)據(jù)類型等細(xì)節(jié)完全由編輯器自動處理。程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),可使程序結(jié)構(gòu)化。庫中包括許多標(biāo)準(zhǔn)子程序,具有較強的處理能力,使用方便。具有方便的模塊化編程技術(shù),使已編好的程序便于移植,可極大縮短開發(fā)時間,增加程序的可讀性

5、和可維護性。事實上,當(dāng)今許多硬件的開發(fā)都已開始用C語言編程,如各種單片機、DSP、ARM等,用C語言進(jìn)行工業(yè)控制也已成為一種趨勢,為了更好的適應(yīng)當(dāng)今社會形勢,為了更好的面對挑戰(zhàn)、把握機遇,此次畢業(yè)設(shè)計決定嘗試用C語言編程完成。也希望能在進(jìn)一步熟悉單片機控制的同時,對數(shù)字電子技術(shù)、模擬電子技術(shù)、計算控制技術(shù)以及常用外圍芯片有更深層次的了解,提高自己的綜合能力。1 Arduino智能小車設(shè)計方案與參數(shù)根據(jù)設(shè)計要求,Arduino智能小車要沿著山道環(huán)山跑一圈。Arduino智能小車主要由四部分組成:分別為大腦-微控制器Arduino、眼睛-灰度傳感器、軀體-電機驅(qū)動模塊和心臟-電源模塊。1.1 Ar

6、duino智能小車方案簡介依據(jù)所需功能的要求,設(shè)計計價器系統(tǒng)的結(jié)構(gòu)圖和硬件電路,繪制出智能小車的電路圖,再繪制程序框圖,之后編程并燒錄到單片機;將各模塊組合進(jìn)行調(diào)試。功能要求小車以Arduino 為控制核心, 用單片機產(chǎn)生PWM波,控制小車速度。利用灰度傳感器對路面黑色軌跡進(jìn)行檢測,并將路面檢測信號反饋給單片機內(nèi)。單片機對采集到的信號予以分析判斷,及時控制驅(qū)動電機以調(diào)整小車轉(zhuǎn)向,從而使小車能夠沿著黑色軌跡自動行駛,實現(xiàn)小車自動尋跡的目的?;驹碇悄苄≤囅到y(tǒng)主要由四部分組成:大腦-微控制器Arduino、眼睛-灰度傳感器、手腳-電機驅(qū)動模塊、能源-電源模塊, 智能車循跡行駛過程是:首先灰度傳感

7、器將檢測到黑線的信號傳送給單片機最小系統(tǒng),然后通過單片機最小系統(tǒng)的控制算法對信號進(jìn)行計算處理,將此信號在通過控制算法驅(qū)動電機,最后實現(xiàn)對智能車運動軌跡進(jìn)行實時控制。微控制器-Arduino為內(nèi)部核心處理處理單元,將外部給予的電平信號通過以植入的c語言程序為主進(jìn)行處理?;叶葌鞲衅鳛橹悄苄≤嚨难劬Γㄟ^辨別地面的黑色線條的物理信號,灰度再將之轉(zhuǎn)換為單片機能夠處理的電平信號。單片機將信號傳輸給電機驅(qū)動模塊,即我們小車結(jié)構(gòu)的手腳接受指令運行。智能車總體模塊設(shè)計圖如圖1-1所示。 L298N 驅(qū)動模塊 Arduino 單片機 電源模塊灰度傳感器模塊 直流電機 小車 路徑 圖1-1 循跡車總體模塊設(shè)計圖

8、1.2 循跡小車參數(shù)系統(tǒng)參數(shù)如下表所示:微控制器Arduino路徑檢測模塊灰度傳感器倆輪驅(qū)動車模配套直流電機直流電機驅(qū)動模塊芯片:LM298N電機電源9V 3A參數(shù)2 Arduino與51單片機的區(qū)別2.1 Arduino單片機 Arduino單片機的介紹 Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它適用于愛好者、藝術(shù)家、設(shè)計師和對于"互動"有興趣的朋友們。是一個基于開放原始碼的軟硬件平臺,構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing

9、/Wiring開發(fā)環(huán)境。Arduino包含兩個主要的部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。2.1.2 Arduino單片機的特色 開放源代碼的電路圖設(shè)計,程序開發(fā)接口可以免費下載,也可依個人需求自己修改。而且低價格的微處理控制器 (AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。Arduino支持ISP在線燒,可以將新的"bootloader"

10、固件燒入AVR芯片。有了bootloader之后,可以通過串口或者USB to RS232線更新固件。也可依據(jù)官方提供的Eagle格式PCB和SCH電路圖簡化Arduino模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),等)支持多種互動程序,如:Flash、Max/Msp、vvvv、PD、C、Processing等。應(yīng)用方面:利用Arduino,突破以往只能使用鼠標(biāo)、鍵盤、CCD等輸入的裝置的互動內(nèi)容,可以更簡單地達(dá)成單人或多人游戲互動。2.1.3 Arduino單片機的功能在功能上可以快速使用Arduino與Ado

11、be Flash, Processing, Max/MSP, Pure Data, SuperCollider等軟件結(jié)合,作出互動作品。 Arduino可以使用現(xiàn)有的電子元件例如開關(guān)或者傳感器或者其他控制器件、LED、步進(jìn)馬達(dá)或其他輸出裝置。 Arduino也可以獨立運行,并與軟件進(jìn)行交互,例如: Macromedia Flash, Processing, Max/MSP, Pure Data, VVVV或其他互動軟件等。 Arduino的IDE界面基于開放源代碼,可以免費下載使用,開發(fā)出更多令人驚艷的互動作品。在更多功能上有基于知識共享開放元源碼的電路圖設(shè)計,有基于知識共享開放源碼的程式開發(fā)

12、環(huán)境。Arduino可使用ICSP線上燒入器,將bootloader燒入新的IC晶片,可依據(jù)官方電路圖,簡化Arduino模組,完成獨立運作的微處理控制,可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超聲波,熱敏電阻,光敏電阻,伺服馬達(dá)等),USB接口上,不需外接電源。另外有提供9V直流電源輸入。2.2 51單片機2.2.1 51單片機的介紹 51單片機是對所有兼容Intel 8031指令系統(tǒng)的單片機的統(tǒng)稱。該系列單片機的始祖是Intel的8031單片機,后來隨著Flash rom技術(shù)的發(fā)展,8031單片機取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機之一,其代表型號是ATMEL公司的

13、AT89系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。很多公司都有51系列的兼容機型推出,今后很長的一段時間內(nèi)將占有大量市場。51單片機是基礎(chǔ)入門的一個單片機,還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機一般不具備自編程能力。 51單片機的功能51單片機的功能特點分別有:8位CPU·4kbytes程序存儲器(ROM) (52為8K),128bytes的數(shù)據(jù)存儲器(RAM) (52有256bytes的RAM),32條I/O口線·111條指令,大部分為單字節(jié)指令,21個專用寄存器,2個可編程定時/計數(shù)器·5個中斷源,2個優(yōu)先級(52有6個),一個全雙工串行通信口,外部數(shù)據(jù)

14、存儲器尋址空間為64kB,外部程序存儲器尋址空間為64kB,邏輯操作位尋址功能·雙列直插40PinDIP封裝。51單片機的內(nèi)部結(jié)構(gòu)分別為CPU:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;五個中斷源的中斷控制系統(tǒng); 一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信;

15、片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M-12M。2.3 Arduino比51更好的地方Arduino與51單片機相比:變更人性化,編程相對人性化和直觀,沒有單片機基礎(chǔ)的人也能很快上手。硬件性能上,Arduino更加穩(wěn)定,不會像51一樣時常出現(xiàn)跑飛的現(xiàn)象。Arduino作為開源的一款的單片機,更重要的是在這個4g時代可搜尋的學(xué)習(xí)資料是非常多的。綜上所述,Arduino無疑是比51更適合新手和用于比賽專用的。3 循跡小車設(shè)計3.1 硬件設(shè)計單片機最小系統(tǒng)主控機系統(tǒng)采用Arduino mega2560單片機,采用USB接口的核心電路板,它最大的特點就是具有多達(dá)54路

16、數(shù)字輸入輸出,特別適合需要大量IO接口的設(shè)計。Mega2560的處理器核心是ATmega2560, 同時具有54路數(shù)字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,一個16MHz晶體振蕩器,一個USB口,一個電源 插座,一個ICSP header和一個復(fù)位按鈕。單片機最小系統(tǒng)電路圖如圖3-1所示。圖3-1 單片機最小系統(tǒng)Arduino mega2560的主要參數(shù):處理器 ATmega2560,工作電壓 5V,輸入電壓(推薦) 7-12V,輸入電壓(范圍) 6-20V,數(shù)字IO腳 54 (其中16路作為PWM輸出),模擬輸入腳 16,IO腳直流電流 40 mA,3

17、.3V腳直流電流 50 mA,F(xiàn)lash Memory 256 K,(ATmega328,其中8 KB 用于 bootloader),SRAM 8 KB,EEPROM 4 KB,工作時鐘 16 MHz。存儲器:ATmega2560包括了片上256KB Flash,其中8KB用于Bootloader。同時還有8KB SRAM和4KB EEPROM。輸入輸出:一共有數(shù)字輸入輸出口,4路串口信號,6路外部中斷,14路脈沖寬度調(diào)制PWM(0-13),SPI(53(SS),51(MOSI),50(MISO),52(SCK)):SPI通信接口,16路模擬輸入,特別LED(13號):Arduino專門用于測

18、試LED的保留接口,和TWI接口(專門支持通信)。 灰度傳感器模塊灰度傳感器是利用黑線對紅外線不同的反射能力通過光敏二極管或光敏三極管,接收反射回的不同光強信號,把不同光強轉(zhuǎn)換為電流信號,最后通過電阻,轉(zhuǎn)換為單片機可識別的高低電平。灰度傳感器實現(xiàn)循跡的基本電路如3-2所示。圖3-2 灰度傳感器電路圖(1)灰度傳感器工作原理傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處于關(guān)斷狀態(tài),此時模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);而當(dāng)紅外線被反射回來且強度足夠大,光敏三極管飽和,此時模塊的輸出端為高電平,指示二極管被點亮。小車

19、行駛過程中向地面發(fā)射紅外光,當(dāng)紅外光遇到綠色路線,地板發(fā)生漫反射,安裝在小型車的反射光接收器會接收;如果是遇到黑色路線,紅外光將被黑線吸收,安裝在小車上的接收管沒有收到紅外光。控制器會根據(jù)是否收到反射的紅外光為判斷依據(jù)來確定的黑線的位置和小車的路線。這種探測方法,即利用紅外線在不同顏色的表面特征,具有不同的反射性能。紅外發(fā)射和接收紅外線感應(yīng)器,可以直接使用集成的紅外探頭,選擇寬度為3-5厘米的黑線。該傳感器的靈敏度是可調(diào)的,傳感器有時遇到黑線卻不能送出相應(yīng)的信號,通過調(diào)節(jié)傳感器上的可調(diào)電阻,適當(dāng)?shù)脑龃蠡驕p小可改變靈敏度。(2)傳感器分布傳感器通過信號采集,向單片機提供信息。因此傳感器合理的布局

20、很重要,傳感器布局需要考慮小車行駛過程中信息檢測的準(zhǔn)確度和前瞻性,能使在相同數(shù)量的傳感器下,獲得更多的數(shù)據(jù)。而由于考慮到我們改造車的車座較窄、不平整,且車身較請,適合放多的傳感器,最終決定選用對6個傳感器來進(jìn)行布局,即在車子底座前端放6個傳感器。這種布局是目前最適合我們改造車的布局方法。 電機驅(qū)動電路本設(shè)計采用L298N電機專用驅(qū)動芯片帶動兩個5V的直流電動機。L298N是一個內(nèi)部有兩個H橋的高電壓大電流全橋式驅(qū)動芯片,可以用來驅(qū)動直流電動機、步進(jìn)電動機。使用標(biāo)準(zhǔn)邏輯電平信號控制,直接連接單片機管腳,具有兩個使能控制端,使能端在不受輸入信號影響的情況下不允許器件工作。L298N有一個邏輯電源輸

21、入端,使內(nèi)部邏輯電路部分在低電壓下工作。(1) L298N引腳結(jié)構(gòu)如表3-1圖3-3 L298N 驅(qū)動芯片表3-1 L298N引腳編號與功能:引腳編號名稱功能1電流傳感器A在該引腳和地之間接小阻值電阻可用來檢測電流2輸出引腳1內(nèi)置驅(qū)動器A的輸出端1,接至電機A3輸出引腳2內(nèi)置驅(qū)動器A的輸出端2,接至電機A4電機電源端電機供電輸入端,電壓可達(dá)46V5輸入引腳1內(nèi)置驅(qū)動器A的邏輯控制輸入端16使能端A內(nèi)置驅(qū)動器A的使能端7輸入引腳2內(nèi)置驅(qū)動器A的邏輯控制輸入端28邏輯地邏輯地9邏輯電源端邏輯控制電路的電源輸入端為5V10輸入引腳3內(nèi)置驅(qū)動器B的邏輯控制輸入端111使能端B內(nèi)置驅(qū)動器B的使能端12輸

22、入引腳4內(nèi)置驅(qū)動器B的邏輯控制輸入端213輸出引腳3內(nèi)置驅(qū)動器B的輸出端1,接至電機B14輸出引腳4內(nèi)置驅(qū)動器B的輸出端2,接至電機B15電流傳感器B在該引腳和地之間接小阻值電阻可用來檢測電流(2) 電機驅(qū)動原理電路的形狀很像字母H。四個三極管就是H橋的四條垂直線,而電機就是H中的橫線,如圖3-4所示。圖3-4 L298N內(nèi)部H橋驅(qū)動電路H橋電機驅(qū)動電路包含四個三極管和一個電機。電機運轉(zhuǎn),必須遵循導(dǎo)通對角線上的一對三極管?;诓煌龢O管對的導(dǎo)通情況可以控制電機的轉(zhuǎn)向,電流可可以從左至右流過電機,也可以從右至左流過電機。當(dāng)Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右流過電機,然后再經(jīng)Q4

23、回到電源負(fù)極,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。下面分析另一對三極管Q2和Q3,當(dāng)兩個三極管同時導(dǎo)通的情況下,電流將從右至左流過電機。從而驅(qū)動電機沿逆時針方向轉(zhuǎn)動。電機控制邏輯如下:以電機A為例,當(dāng)使能端ENA為高電平時,如果輸入引腳IN1為低電平而輸入引腳IN2為高電平,電機A反轉(zhuǎn);如果輸入引腳IN1為高電平而輸入引腳IN2為低電平,電機A正轉(zhuǎn)。電機A電機B圖3-5 L298N驅(qū)動芯片和直流電機接線圖3.2 軟件設(shè)計本設(shè)計的目的是以Arduino單片機為控制核心,將紅外光電傳感器輸出的電信號送至單片機電路,再由單片機向L298N電機驅(qū)動模塊發(fā)送指令,控制后輪電機驅(qū)動小車行進(jìn),控制前輪電機驅(qū)動

24、小車轉(zhuǎn)向,從而自動循跡。 系統(tǒng)主程序在主程序模塊中,需要完成對各參量和接口的初始化、檢測黑線、前進(jìn)或轉(zhuǎn)向判斷等工作。當(dāng)小車探測到黑線后,根據(jù)檢測到黑線的傳感器的編號不同,小車要做出相應(yīng)的動作。當(dāng)小車左邊的傳感器檢測到黑線時,說明小車車頭向右邊偏移,這時主控芯片控制前輪電機反轉(zhuǎn),車體向左邊修正;同理當(dāng)小車的右邊傳感器檢測到黑線時,主控芯片控制前輪電機正轉(zhuǎn),車體向右邊修正;當(dāng)黑線在車體的中間,中間的傳感器一直檢測到黑線,這樣小車就會沿著黑線自動循跡。主程序流程如圖3-6所示。圖3-6 循跡車程序流程圖 本系統(tǒng)編譯器本設(shè)計采用C語言來編譯程序。模塊化結(jié)構(gòu)程序的設(shè)計,可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使

25、其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計。因此,軟件的設(shè)計上,運用了模塊化程序的結(jié)構(gòu)對軟件進(jìn)行設(shè)計,使得程序變得更加直觀易懂。隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,ARDUINO IDE軟件是目前Arduino專用開發(fā)的軟件,界面清晰整潔,編程簡便。.ARDUINO IDE開發(fā)系統(tǒng)可用于編輯C。由編譯器編譯可以生成目標(biāo)文件(.ino)。 實物展示圖3-7 小車全景圖3.4 部分程序展示unsigned int p_1=22; unsigned int p_2=24;unsigned int p_3=26;unsigned int p_

26、4=28;unsigned int p_5=30;unsigned int p_6=32;#define l 1 #define r 2 #define rl 3unsigned int num,co,c=0,mum,d=0;int t;void setup() pinMode(2,OUTPUT);/lift back pinMode(3,OUTPUT);/lift go pinMode(4,OUTPUT);/right back pinMode(5,OUTPUT);/right go for(t=22;t<=52;t+) pinMode(t, INPUT); void stop (un

27、signed char m)switch(m) case r : analogWrite(5,0); analogWrite(4,0); case l : analogWrite(3,0); analogWrite(2,0); case rl : analogWrite(5,0); analogWrite(4,0); analogWrite(3,0); analogWrite(2,0); default : break; void FOLL_FINE(unsigned int ti) while(1) num=0; p_1=digitalRead(22); p_2=digitalRead(24

28、); p_3=digitalRead(26); p_4=digitalRead(28); p_5=digitalRead(30); p_6=digitalRead(32); if(p_1) num+; if(p_2) num+; if(p_3) num+; if(p_4) num+; if(p_5) num+; if(p_6) num+; if(num>3) /for(co=0;co<200;co+); num=0; p_1=digitalRead(22); p_2=digitalRead(24); p_3=digitalRead(26); p_4=digitalRead(28);

29、 p_5=digitalRead(30); p_6=digitalRead(32); if(p_1) num+; if(p_2) num+; if(p_3) num+; if(p_4) num+; if(p_5) num+; if(p_6) num+; if(num>3) c=c+1; if(c=ti) analogWrite(2,0); analogWrite(4,0); analogWrite(3,40); analogWrite(5,40); delay(350); return; if(p_3) analogWrite(2,0); analogWrite(4,0); analog

30、Write(3,90); analogWrite(5,90); else if(p_4) analogWrite(2,0); analogWrite(4,0); analogWrite(3,90); analogWrite(5,90); else if(p_2) analogWrite(2,30); analogWrite(4,0); analogWrite(3,0); analogWrite(5,40); else if(p_5) analogWrite(2,0); analogWrite(4,30); analogWrite(3,40); analogWrite(5,0); else if

31、(p_1) analogWrite(2,40); analogWrite(4,0); analogWrite(3,0); analogWrite(5,50); else if(p_6) analogWrite(2,0); analogWrite(4,40); analogWrite(3,50); analogWrite(5,0); void TURN_90(unsigned char e) stop(rl); delay (500); if(e=r) delay (10); analogWrite(2,0); analogWrite(4,70); analogWrite(3,60); anal

32、ogWrite(5,0); delay (450); do p_1=digitalRead(22); p_2=digitalRead(24); p_3=digitalRead(26); p_4=digitalRead(28); p_5=digitalRead(30); p_6=digitalRead(32); if(p_4|p_3) delay (3); p_1=digitalRead(22); p_2=digitalRead(24); p_3=digitalRead(26); p_4=digitalRead(28); p_5=digitalRead(30); p_6=digitalRead(

33、32); while(!(p_4|p_3); else if(e=l) delay (10); analogWrite(2,70); analogWrite(4,0); analogWrite(3,0); analogWrite(5,60); delay (450); do p_1=digitalRead(22); /讀取12位灰度 p_2=digitalRead(24); p_3=digitalRead(26); p_4=digitalRead(28); p_5=digitalRead(30); p_6=digitalRead(32); if(p_3|p_4) delay (3); p_1=

34、digitalRead(22); p_2=digitalRead(24); p_3=digitalRead(26); p_4=digitalRead(28); p_5=digitalRead(30); p_6=digitalRead(32); while(!(p_3|p_4); stop(rl);delay (100); void loop() while(1) FOLL_FINE(1); 結(jié) 論經(jīng)過努力Arduino循跡小車設(shè)計與實現(xiàn)實務(wù)專題的畢業(yè)設(shè)計終于接近尾聲。較好地實現(xiàn)了小車自動循跡行駛功能。但是仍舊有許多不足的地方,循跡車部分由于是遙控車改造所以無法進(jìn)行大幅度的拐彎,循跡行駛的靈敏度不高,循跡部分的這兩個問題造成拍攝視頻時難度加大。以為學(xué)的知識已經(jīng)很完善,但是通過這次對Arduino智能小車實務(wù)專題

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論