基于Arduino單片機(jī)控制的WiFi智能小車(chē)
《基于Arduino單片機(jī)控制的WiFi智能小車(chē)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Arduino單片機(jī)控制的WiFi智能小車(chē)(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、. 呼倫貝爾學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 本科生畢業(yè)論文(設(shè)計(jì)) 題目:基于Arduino控制的 WIFI智能小車(chē) 學(xué)生:苑偉 **: 2011121138 專業(yè)班級(jí):2011級(jí)計(jì)算機(jī)科學(xué)與技術(shù)一班 指導(dǎo)教師:銳 完成時(shí)間: 2015年5月22日 . > . 目錄 摘要II AbstractII 第1章緒論2 1.1 論文選題背景2 1.2 論文選題的意義2 1.3 論文論述2
2、 第2章系統(tǒng)方案選擇與總體設(shè)計(jì)2 2.1 設(shè)計(jì)任務(wù)2 2.2 設(shè)計(jì)中考慮到的問(wèn)題2 2.3 系統(tǒng)方案的選擇與比擬2 2.4 總體設(shè)計(jì)方案2 整體系統(tǒng)2 2.4.2 整體工作原理2 第3章硬件介紹及設(shè)計(jì)2 3.1 Arduino Uno R3 單片機(jī)系統(tǒng)2 3.1.1 概要2 主控芯片ATmege328P-PU2 3.1.3 Arduino Uno最小系統(tǒng)[3]2 3.1.4 Arduino Uno R3單片機(jī)系統(tǒng)的使用2 3.2 路由器WR703N2 3.2.1 路由器硬件介紹2 3.2.2 路由器改裝2 路由器刷OpenWRT2 3.3 電機(jī)驅(qū)動(dòng)電路2
3、 3.3.1 電機(jī)驅(qū)動(dòng)模塊使用2 驅(qū)動(dòng)原理及電路圖2 3.4 攝像頭介紹2 3.4.1 攝像頭簡(jiǎn)介2 3.4.2 攝像頭的分類(lèi)2 攝像頭的工作原理2 攝像頭的主要構(gòu)造和組件2 3.5 測(cè)速傳感器2 測(cè)速傳感器說(shuō)明2 3.5.2 測(cè)速傳感器使用2 3.6 超聲波傳感器2 傳感器說(shuō)明及原理2 3.6.2 HC-SR04傳感器的使用2 3.7舵機(jī)模塊2 舵機(jī)的控制2 舵機(jī)的作用2 3.9 硬件系統(tǒng)整體設(shè)計(jì)2 第4章系統(tǒng)軟件安裝及設(shè)計(jì)2 4.1系統(tǒng)程序簡(jiǎn)介2 4.2單片機(jī)程序流程圖2 主程序流程圖2 外部串口中斷函數(shù)流程圖2 定時(shí)器中斷子函數(shù)流程圖2 4
4、.2.4 控制小車(chē)程序流程圖2 避障子程序流程圖2 舵機(jī)子程序流程圖2 4.3路由器軟件安裝及程序流程圖2 軟件的安裝及配置2 4.3.2 程序設(shè)計(jì)及流程圖2 第5章系統(tǒng)調(diào)試及問(wèn)題解決2 5.1 系統(tǒng)仿真2 5.1.1 常用軟件介紹2 5.1.2 仿真測(cè)試2 5.2硬件設(shè)計(jì)問(wèn)題及調(diào)試2 5.2.1 測(cè)速模塊的調(diào)試及問(wèn)題解決2 5.2.2 攝像頭調(diào)試及問(wèn)題解決2 5.3 軟件設(shè)計(jì)問(wèn)題及調(diào)試2 單片機(jī)軟件調(diào)試及問(wèn)題2 路由器軟件調(diào)試及問(wèn)題2 第6章總結(jié)2 參考文獻(xiàn):2 致2 附錄1元器件明細(xì)表2 附錄2 單片機(jī)局部程序源碼2 附錄3路由器局部程序源碼2
5、 . > . 摘要 本次設(shè)計(jì)wifi智能小車(chē)主要采用Arduino作為底層硬件控制核心,接收來(lái)自路由器的指令執(zhí)行相關(guān)操作;采用PWM脈沖調(diào)節(jié)小車(chē)速度、舵機(jī)控制以及燈光亮度;采用定時(shí)器實(shí)現(xiàn)小車(chē)數(shù)據(jù)的發(fā)送、小車(chē)的避障及計(jì)算小車(chē)的行駛速度;運(yùn)用簡(jiǎn)單的PID算法實(shí)現(xiàn)輪胎直接的差速控制;采用路由器發(fā)射無(wú)線wifi,使用Lua腳本實(shí)現(xiàn)了接收單片機(jī)數(shù)據(jù)及發(fā)送操作指令,設(shè)計(jì)了web頁(yè)面控制小車(chē)的B/S模式構(gòu)造。 關(guān)鍵字: Arduino;PWM脈沖
6、;PID算法;web控制 Abstract The design of wi-fi smart cars mainly adopts the Arduino as the control core to receive instructions from the router perform related operations; Using PWM pulse to adjust the vehicle speed, steering gear control and lighting brightness; using timer to realise the transmission
7、 of car data , the breakdown of the car and calculate the car speeds; Using the simple PID algorithm tyre direct differential control; Using wireless wifi router launch, using the Lua script implements receiving MCU data and send operation instructions,and at last, it designs a web page to control
8、the car B/S mode structure. Keyword: Arduino; PWM Pulse; PID arithmetic; Web manage . > . 第1章緒論 1.1 論文選題背景 21世紀(jì)是一個(gè)遍布智能化設(shè)備的時(shí)代,我們身邊充滿了各式各樣的智能化設(shè)備,智能電視,智能冰箱,智能洗衣機(jī)等,然而這些設(shè)備都離不開(kāi)嵌入式系統(tǒng)與單片機(jī)系統(tǒng)。并且現(xiàn)如今又出現(xiàn)了物聯(lián)網(wǎng)這一個(gè)概念使得無(wú)線控制、無(wú)線傳輸變的更加熾熱,因
9、此物聯(lián)網(wǎng)將會(huì)是我們說(shuō)有設(shè)備之間連接通信不可缺少的一局部。也許有人會(huì)問(wèn)什么是物聯(lián)網(wǎng)。 物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成局部,也是"信息化〞時(shí)代的重要開(kāi)展階段。[9]英文名稱:"Internet of things〔IoT〕〞。物聯(lián)網(wǎng)是物與物相連的互聯(lián)網(wǎng)。它的兩種含義:一、物聯(lián)網(wǎng)其實(shí)仍然是互聯(lián)網(wǎng),只是互聯(lián)網(wǎng)的一種延伸和擴(kuò)展的網(wǎng)絡(luò);二、其用戶互聯(lián)網(wǎng)絡(luò)伸展到了任何物品與物品之間,并且進(jìn)展信息交互和通信,這可以稱為物物相息了。物聯(lián)網(wǎng)通過(guò)各種通信感知技術(shù)〔智能感知、識(shí)別技術(shù)、普適計(jì)算〕廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也被稱為繼計(jì)算機(jī)。 對(duì)于我們的家庭設(shè)備來(lái)說(shuō)物聯(lián)網(wǎng)的核心設(shè)備與出口就是路由器,而路由器的系統(tǒng)Op
10、enwrt更是這個(gè)網(wǎng)絡(luò)控制的主腦設(shè)備。 Openwrt是一個(gè)嵌入式的Linu*體統(tǒng),它的特點(diǎn)是高度自動(dòng)化、模塊化,并且擁有強(qiáng)大的網(wǎng)絡(luò)組件與擴(kuò)展性。在智能家居、小型機(jī)器人、工控設(shè)備、VOIP設(shè)備及路由器??梢砸?jiàn)到它的身影。如果對(duì)Linu*體統(tǒng)有一定的了解,對(duì)于想學(xué)習(xí)嵌入式Linu*的人來(lái)說(shuō)openwrt是一個(gè)不錯(cuò)的選擇。它的好處在于對(duì)于開(kāi)發(fā)人員,OpenWrt 擁有完整的框架來(lái)構(gòu)建應(yīng)用程序,并且無(wú)需建立一個(gè)固件來(lái)支持,同時(shí)還支持很多種不同芯片的路由器以及源碼開(kāi)放;對(duì)于用戶來(lái)說(shuō),可以完全制定想要的功能,互聯(lián)網(wǎng)上提供很多應(yīng)用程序,可以以不一樣的方式玩轉(zhuǎn)設(shè)備。這意味著其擁有完全定制的能力,可以用前所未
11、有的方式使用該設(shè)備。 對(duì)于現(xiàn)代的智能設(shè)備來(lái)說(shuō)遠(yuǎn)程無(wú)線遙控已成為一種趨勢(shì),我們可以通過(guò)遠(yuǎn)程遙控家里的電源開(kāi)關(guān),網(wǎng)絡(luò)攝像頭,空調(diào)等。在軍用方面我們可以通過(guò)遠(yuǎn)程遙控?zé)o人偵察機(jī)查看軍情,可以遙控智能機(jī)器人撤除炸彈等,這可以減少人員的傷亡。 1.2 論文選題的意義 但當(dāng)我們出門(mén)在外時(shí)家里缺少一位智能管家,他可以監(jiān)控管理我們的房屋及家具設(shè)備,而他的前身就是由WiFi智能小車(chē),WiFi智能機(jī)器人開(kāi)展而來(lái)。同時(shí)其他的遠(yuǎn)程遙控設(shè)備,如無(wú)人機(jī),智能機(jī)器人及其他遠(yuǎn)程智能設(shè)備都離不開(kāi)單片機(jī),無(wú)線模塊等設(shè)備。而wifi智能小車(chē)的研究可以學(xué)習(xí)了解到這些技術(shù),同時(shí)通過(guò)wifi小車(chē)的精準(zhǔn)控制等研究可以也可以運(yùn)用到其他的
12、遠(yuǎn)程設(shè)備上。wifi小車(chē)可以實(shí)現(xiàn)室的室外的遠(yuǎn)程監(jiān)控,使得網(wǎng)絡(luò)視頻監(jiān)控更加靈活。 1.3 論文論述 本系統(tǒng)能夠?qū)崿F(xiàn)通過(guò)攝像頭遠(yuǎn)程監(jiān)控周?chē)h(huán)境,對(duì)小車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)展實(shí)時(shí)監(jiān)控,系統(tǒng)要求控制靈活、可靠、精準(zhǔn)度高、可實(shí)現(xiàn)與其他設(shè)備的連接與通信。本系統(tǒng)采用的單片機(jī)是Arduino Uno。它是Arduino USB接口系列的最新版本,作為Arduino平臺(tái)的參考標(biāo)準(zhǔn)模板。UNO的處理器核心是ATmega328,同時(shí)具有14路數(shù)字輸入/輸出口〔其中6路可作為PWM輸出〕,6路模擬輸入,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕。ATmega328置的U
13、ART可以同數(shù)字口0〔R*〕和1〔T*〕與外部實(shí)現(xiàn)串口通信。14路數(shù)字輸入端口工作電壓為5v、最大電流為40mA。外部中斷端口為數(shù)字口2號(hào)和3號(hào),觸發(fā)條件為上升沿、下降沿或同時(shí)觸發(fā)。由于Arduino Uno R3 的性能滿足wifi小車(chē)的數(shù)據(jù)傳輸及時(shí)間精度的要求,而且產(chǎn)品為開(kāi)源硬件提供相當(dāng)完善的硬件構(gòu)造,產(chǎn)品來(lái)源豐富應(yīng),用也相當(dāng)成熟,是一款適合大學(xué)生學(xué)習(xí)研究的性價(jià)比很高的產(chǎn)品。 本設(shè)計(jì)中要研究的容是基于Arduino開(kāi)源硬件及WR703N路由器設(shè)計(jì)的一部wifi智能小車(chē)。小車(chē)能夠?qū)崿F(xiàn)前方物體自動(dòng)避障,超聲波車(chē)輛距離,無(wú)線視頻監(jiān)控,小車(chē)差速控制,攝像頭燈光控制等。Wifi智能小車(chē)系統(tǒng)包括了兩
14、路電機(jī)、兩個(gè)光電測(cè)試模塊、Arduino單片機(jī)控制板、電機(jī)驅(qū)動(dòng)模塊、超聲波測(cè)速模塊、無(wú)線路由器、usb燈光攝像頭等硬件設(shè)備。 本工程主要論述的是wifi小車(chē)設(shè)計(jì)方案的選擇、硬件設(shè)計(jì)、軟件設(shè)計(jì)以及測(cè)試方法等。在第2章我們主要涉及到的容就是系統(tǒng)方案的整體設(shè)計(jì)與選擇,以及選擇這種方案的原因與優(yōu)缺點(diǎn);第3章我們主要講到的是單片機(jī)的詳細(xì)電氣特性,各個(gè)引腳接口的使用,路由器ttl串口的查找與增益天線的焊接,電機(jī)驅(qū)動(dòng)與測(cè)距模塊的詳細(xì)說(shuō)明,各個(gè)設(shè)備之間的電源供應(yīng)情況,以及模塊的電路圖簡(jiǎn)單說(shuō)明與整體的電路圖設(shè)計(jì)。第4章我們主要講到的是單片機(jī)的軟件編程,路由器的軟件安裝與選擇,Android控制端的軟件設(shè)計(jì)等,
15、在路由器過(guò)lua腳本、stty串口軟件等配合控制單片機(jī)。第5章我們主要講到的是軟件與硬件的測(cè)試與調(diào)試,以及在在調(diào)試過(guò)程中的問(wèn)題解決。 第2章系統(tǒng)方案選擇與總體設(shè)計(jì) 2.1 設(shè)計(jì)任務(wù) 本設(shè)計(jì)主要是通過(guò)無(wú)線網(wǎng)絡(luò)或者遠(yuǎn)程連接WiFi小車(chē)實(shí)現(xiàn)小車(chē)的前進(jìn)、后退、轉(zhuǎn)彎、監(jiān)控視頻采集、其他數(shù)據(jù)的采集以及前方距離探測(cè)等功能。本設(shè)計(jì)要求通過(guò)web瀏覽器端進(jìn)展控制。 1. 實(shí)現(xiàn)pc端、手機(jī)與小車(chē)wifi的連接。 2. 能夠通過(guò)web網(wǎng)頁(yè)對(duì)小車(chē)進(jìn)展實(shí)時(shí)控制。 2.2 設(shè)計(jì)中考慮到的問(wèn)題 1. 由于設(shè)計(jì)中的小車(chē)底層硬件控制是通過(guò)單片機(jī)控制,單片機(jī)與無(wú)線模塊的通信如何實(shí)現(xiàn),啟動(dòng)設(shè)備時(shí)如何初始化。 2.
16、如果前方有障礙物時(shí)小車(chē)行駛速度太快,如何防止撞到前方障礙物,以及小車(chē)如何轉(zhuǎn)彎時(shí)角度的測(cè)量與小車(chē)當(dāng)前方向。 3. 各元件之間額定電壓與電流各不一樣如何控制各元件電壓與電流的供應(yīng)以及整個(gè)系統(tǒng)電源的穩(wěn)定性。 4. 由于單片機(jī)IO口的電流為mA級(jí)的,無(wú)法直接驅(qū)動(dòng)電機(jī),如何進(jìn)展電機(jī)的驅(qū)動(dòng)。 5.對(duì)于通過(guò)Android客戶端控制wifi小車(chē)是如何進(jìn)展通信,選擇何種協(xié)議進(jìn)展通信,在軟件設(shè)計(jì)方面如何實(shí)現(xiàn)不同手機(jī)設(shè)備之間的兼容性。 2.3 系統(tǒng)方案的選擇與比擬 1. 通過(guò)設(shè)計(jì)任務(wù)及要求,設(shè)計(jì)前考了到的問(wèn)題等,在網(wǎng)上搜索大量資料提煉出以下幾種設(shè)計(jì)方案。 方案一:選擇網(wǎng)上最典型的且容易上手的TP—LIN
17、K WR703N無(wú)線路由器作為wifi小車(chē)的wifi通信模塊,使用51系列單片機(jī)作為wifi小車(chē)的底層控制芯片。該方案路由器功耗小相關(guān)資料齊全。 方案二:選擇網(wǎng)上比擬耗電功率大性能較好的大亞db120-wg無(wú)線路由器作為wifi小車(chē)的wifi通信模塊,使用STC11F02F單片機(jī)〔核心為8051〕作為wifi小車(chē)的底層控制芯片,需要電源穩(wěn)定容量大。 方案三:網(wǎng)上購(gòu)置直接與單片機(jī)相連的wifi控制模塊作為wifi小車(chē)的通信模塊。使用近幾年出現(xiàn)的開(kāi)源硬件arduino單片機(jī)作為wifi小車(chē)的底層控制芯片,缺點(diǎn)是要求單片機(jī)性能較高、本錢(qián)高,需要編寫(xiě)大量的驅(qū)動(dòng)程序,設(shè)計(jì)復(fù)雜,優(yōu)點(diǎn)無(wú)線設(shè)備與單片機(jī)聯(lián)
18、系嚴(yán)密且之間通信較好。 2. 通過(guò)上述方案的比擬以及我們對(duì)于本錢(qián)制作性的考慮設(shè)計(jì)出方案四,下面為方案四的選件理由 方案四:我們選擇TP-LINK WR703N無(wú)線路由器,特點(diǎn)是功耗小性能比擬強(qiáng)大,相關(guān)資料齊全,不需要編寫(xiě)大量的驅(qū)動(dòng)程序;wifi小車(chē)的控制芯片我們選擇Arduino Uno單片機(jī),特點(diǎn)是:Arduino系列的單片機(jī)為開(kāi)源硬件,相關(guān)硬件軟件資源齊全,單片機(jī)燒寫(xiě)容易,無(wú)需其他的編碼器下載器等,而且Arduino IDE中工具可以通過(guò)圖形界面進(jìn)展編程。 2.4 總體設(shè)計(jì)方案 Wifi智能小車(chē)包含的模塊有:wifi模塊、電機(jī)驅(qū)動(dòng)模塊、單片機(jī)控制模塊、攝像頭模塊、超聲波測(cè)距模塊、光
19、電測(cè)速模塊、舵機(jī)模塊等構(gòu)成。 2.4.1 整體系統(tǒng) 系統(tǒng)整體設(shè)計(jì)方案如以下圖2-1 攝像頭 路由器 Pc/android端 測(cè)速模塊 舵機(jī)模塊 攝像頭燈光 電機(jī)驅(qū)動(dòng) Arduino Uno R3 編碼器 電機(jī) 超聲波感應(yīng) 圖2-1 方案設(shè)計(jì)圖 工程系統(tǒng)包括路由器、Arduino Uno單片機(jī)、電機(jī)驅(qū)動(dòng)電路、電機(jī)、電平轉(zhuǎn)換電路、光感測(cè)速電路、舵機(jī)電路、電源電路、攝像頭、攝像頭燈光電路,超聲波感應(yīng)電路等。 路由器用于接收PC或手機(jī)等終端設(shè)備發(fā)來(lái)的指令和將采集到的視頻信號(hào)傳送到pc或手機(jī)登終端設(shè)備;Arduino Uno R3單片機(jī)是整個(gè)小車(chē)的控制核心,控制著各個(gè)
20、模塊統(tǒng)一協(xié)調(diào)工作;電機(jī)驅(qū)動(dòng)電路用于驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),可以使電機(jī)產(chǎn)生正轉(zhuǎn)、反轉(zhuǎn),從而使車(chē)體產(chǎn)生前進(jìn)、后退、轉(zhuǎn)彎等動(dòng)作;電機(jī)的作用就是使整個(gè)車(chē)體運(yùn)動(dòng);電平轉(zhuǎn)換電路是將路由器輸出的3.3V串口電平轉(zhuǎn)換為單片機(jī)能判斷的上下電平;電源電路作用是為整個(gè)小車(chē)系統(tǒng)供電;攝像頭用于采集視頻信號(hào);攝像頭燈光電路通過(guò)單片機(jī)控制調(diào)節(jié)燈光亮度方便為小車(chē)在夜間行駛提供照明;超聲波感應(yīng)電路用于防止小車(chē)行駛速度過(guò)快撞到前方物體以及測(cè)量前方障礙物距離;光感測(cè)速電路用于測(cè)量小車(chē)左右輪胎的差速,防止小車(chē)不能正確向前行駛;舵機(jī)電路用于控制攝像頭的旋轉(zhuǎn)方向。 2.4.2 整體工作原理 指令傳送,由pc等終端,通過(guò)WIFI無(wú)線網(wǎng)絡(luò)連接到
21、路由器,再通過(guò)web網(wǎng)頁(yè)向路由器發(fā)送控制命令及數(shù)據(jù)。路由器接收到數(shù)據(jù)后通過(guò)部的串口發(fā)送軟件,將接收到的命令和數(shù)據(jù)通過(guò)路由器串口發(fā)送到Arduino Uno單片機(jī)的串口端,單片機(jī)接收到這些命令后執(zhí)行相應(yīng)的指令,如:驅(qū)動(dòng)小車(chē)運(yùn)動(dòng)、調(diào)節(jié)照明燈光電路、調(diào)節(jié)小車(chē)行駛等。 信息采集,通過(guò)測(cè)速模塊測(cè)量行駛速度,超聲波感應(yīng)測(cè)量前方距離、舵機(jī)等獲取到數(shù)據(jù)傳輸給單片機(jī),再由單片機(jī)通過(guò)串口發(fā)送給路由器,再由路由器將這些數(shù)據(jù)與視頻信息,發(fā)送到pc或手機(jī)終端,并在其應(yīng)用軟件中顯示攝像頭采集到的視頻信號(hào)和行駛速度等信息。 第3章硬件介紹及設(shè)計(jì) 3.1 Arduino Uno R3 單片機(jī)系統(tǒng) Arduino是一
22、個(gè)能夠用來(lái)感應(yīng)和控制現(xiàn)實(shí)物理世界的一套工具。它由一個(gè)基于單片機(jī)并且開(kāi)放源碼的硬件平臺(tái),和一套為Arduino板編寫(xiě)程序的開(kāi)發(fā)環(huán)境組成。準(zhǔn)確的說(shuō)Arduino是一塊簡(jiǎn)單、方便的以AVR單片機(jī)為核心的GPIO接口板,并可以通過(guò)USB接口和電腦通信。它基于開(kāi)放的源代碼編程,具有使用類(lèi)似Java,C語(yǔ)言的IDE集成開(kāi)發(fā)環(huán)境,提供豐富的庫(kù)函數(shù)。[10] 3.1.1 概要 圖3-1 Arduino Uno R3 Arduino Uno 是Arduino 開(kāi)源平臺(tái)中最典型的參考標(biāo)準(zhǔn),其處理器為ATmega328p,工作電壓為5v,輸入電壓〔推薦7-12v〕圍6-20v,數(shù)字io腳14路〔其中6路作為P
23、WM輸出〕,模擬輸入腳6路,IO腳直流電流40mA,3.3V腳直流電流50mA,F(xiàn)lash Menory 32Kb〔其中0.5Kb用于bootloader〕,靜態(tài)隨機(jī)存儲(chǔ)器〔SRAM〕為2Kb,電可擦除只讀存儲(chǔ)器〔EEPROM〕為1Kb,工作時(shí)鐘為16MHz,產(chǎn)品樣式如圖3-1,電路圖如圖3-2 圖3-2 Arduino Uno R3電路圖 主控芯片ATmege328P-PU ATmege328P-PU〔如圖3-3〕屬于美國(guó)ATMEL公司AVR單片機(jī)成員之一,它采用8位高性能,低功耗?AVR?微控制器以及先進(jìn)的RISC構(gòu)造有131條指令,絕大多數(shù)為單時(shí)鐘周期執(zhí)行,32個(gè)8位通用工作存放器
24、全靜態(tài)工作,片上2周期乘法器;高耐久性非易失性存段:系統(tǒng)可編程Flash程序存儲(chǔ)器32Kbytes,1KBytes的EEPROM,2KBytes部SRAM,寫(xiě)/擦除周期10,000 Flash/100,000的EEPROM,數(shù)據(jù)保存20年〔85°C〕-100年〔2°C〕,可選Boot代碼區(qū)具有獨(dú)立鎖定位在系統(tǒng)編程的片上引導(dǎo)程序,且真正的同時(shí)讀寫(xiě)操作,還有編程軟件平安;工作電壓為1.8 - 5.5V,溫度圍-40°C到85°C;速度等級(jí): 0 - 4MHz工作電壓為1.8 - 5.5V、 0 - 10MHz工作電壓為、 0 - 20MHz 工作電壓為 4.5 - 5.5V;功耗在1MHz,1.8
25、V,25°C,主動(dòng)模式為0.2mA,掉電模式為0.1μA- 省電模式功為0.75μA。 圖3-3 ATmege328P-PU 主要功能特性: 外設(shè)特性有兩個(gè)8-bit定時(shí)器/計(jì)數(shù)器具有獨(dú)立預(yù)分頻器和比擬模式,1個(gè)16位定時(shí)器/計(jì)數(shù)器具有獨(dú)立預(yù)分頻器,比擬功能和捕捉功能,實(shí)時(shí)計(jì)數(shù)器具有獨(dú)立振蕩器,六個(gè)PWM通道,8通道10位ADC在TQFP和QFN / MLF封裝, 6通道10位ADC PDIP封裝,可編程的串行USART,主/從SPI串行接口,面向字節(jié)的兩線串行接口〔飛利浦I2C兼容〕,片模擬比擬器- 中斷和引腳電平變化喚醒;單片機(jī)的特殊功能有上電復(fù)位和可編程的掉電檢測(cè),部校準(zhǔn)振蕩器
26、,外部和部中斷源,6種睡眠模式:空閑,ADC降噪,省電,掉電,待機(jī),和擴(kuò)展待機(jī); 23可編程I / O線, 28引腳PDIP,32引腳TQFP封裝,28焊盤(pán)QFN / MLF以及32引腳QFN / MLF。 管腳說(shuō)明: VCC:數(shù)字電源電壓。 GND:接地。 端口B〔PB7:0〕:*TAL1/*TAL2/TOSC1/TOSC2 端口B為8位雙向帶部上拉電阻的I / O端口〔每個(gè)選定位〕.該端口B輸出緩沖器具有高匯和源能力對(duì)稱的驅(qū)動(dòng)特性.作為輸入,端口B pins被外部拉低,將輸出電流,如果上拉電阻被激活. 端口B pins為三態(tài)時(shí)復(fù)位條件變得活潑,即使系統(tǒng)時(shí)鐘沒(méi)有運(yùn)行。 根據(jù)不同的
27、時(shí)鐘選擇熔絲設(shè)置,PB6可以作為輸入到反相振蕩放大器和輸入到部時(shí)鐘工作電路。 根據(jù)不同的時(shí)鐘選擇熔絲設(shè)置,PB7可作為反向輸出振蕩放大器.如果部標(biāo)定RC振蕩器作為芯片時(shí)鐘源,PB7 ... 6作為T(mén)OSC2 ... 1為輸入異步T/C2存放器ASSR的AS2置位。 端口C〔PC5:0〕: 端口C為7位雙向帶部上拉電阻的I / O端口〔每個(gè)選定位〕。該P(yáng)C5 ... 0輸出緩沖器具有高匯和源能力對(duì)稱的驅(qū)動(dòng)特性.作為輸入,端口C pins被外部拉低,將輸出電流,如果上拉電阻被激活。端口C pins為三態(tài)時(shí)復(fù)位條件變得活潑,即使系統(tǒng)時(shí)鐘沒(méi)有運(yùn)行。 PC6/RESET: 如果RSTDISBL
28、位被編程,PC6作為一個(gè)I / O引腳.請(qǐng)注意,PC6的電氣特性與端口C的其他引腳不同如果RSTDISBL熔絲位未編程,PC6作為復(fù)位輸入.該引腳上的低電平持續(xù)時(shí)間大于最小脈沖長(zhǎng)度將產(chǎn)生復(fù)位,即使系統(tǒng)時(shí)鐘沒(méi)有運(yùn)行。 端口D〔PD7:0〕: 端口D為8位雙向帶部上拉電阻的I / O端口〔每個(gè)選定位〕。該端口D輸出緩沖器具有高匯和源能力對(duì)稱的驅(qū)動(dòng)特性.作為輸入,端口D pins被外部拉低,將輸出電流,如果上拉電阻被激活.港口D pins為三態(tài)時(shí)復(fù)位條件變得活潑,即使系統(tǒng)時(shí)鐘沒(méi)有運(yùn)行。 AVcc AVcc是電源電壓引腳為A / D轉(zhuǎn)換器,PC3:0,ADC7:6.它應(yīng)在外部連接到VCC即使不
29、使用ADC.如果ADC被使用時(shí),它應(yīng)連接到VCC通過(guò)一個(gè)低通濾波器.請(qǐng)注意,PC6- 4使用數(shù)字電源電壓,VCC。 AREF: AREF是模擬參考引腳為A / D轉(zhuǎn)換器。 ADC7:6〔TQFP和QFN / MLF封裝〕: 在TQFP和QFN / MLF封裝的ADC7:6作為模擬輸入到A / D轉(zhuǎn)換器.這些引腳從模擬電源供電,并作為10位ADC通道。 3.1.3 Arduino Uno最小系統(tǒng)[11] 3.1.3.1 電源 Arduino UNO可以通過(guò)3種方式供電,而且能自動(dòng)選擇供電方式:外部直流電源通過(guò)電源插座供電,電池連接電源連接器的GND和VIN引腳以及USB接口直接供
30、電。 使用外接電源進(jìn)展輸入時(shí)〔如圖3-4〕, A是電源輸入口,電源的輸入的圍為7V到12V. 圖中B是二極管,二極管的特性是單向?qū)?。使用二極管的目的是:即使電源輸入的正反極性反轉(zhuǎn),也不會(huì)燒毀線路板上的元器件。C是穩(wěn)壓管,把輸入電壓穩(wěn)定在5V。由于C器件的輸入和輸出間需要一定的壓差,所以A的輸入電壓不能低于7V. 另外,如果A的輸入電壓過(guò)高,會(huì)使得器件C輸入和輸出電壓差過(guò)大,從而使得C因?yàn)闇囟冗^(guò)高也燒毀。在使用外接電源輸入時(shí),請(qǐng)把輸入電源的電壓圍控制在7V到12V之間。原則上,越靠近7V越好。 圖3-4 外部直流電源通過(guò)電源插座供電 使用USB口直接供電時(shí)〔如圖3-5〕。圖中A是US
31、B接頭,可以給Arduino UNO提供5V的電壓。B是保險(xiǎn)管,當(dāng)UNO所需要的電流大于500mA的時(shí)候,該保險(xiǎn)管會(huì)自動(dòng)斷開(kāi),以防止損壞電腦。保險(xiǎn)管B是帶自我恢復(fù)功能的,當(dāng)Arduino UNO所需要的5V電流恢復(fù)到允許的圍后,保險(xiǎn)管會(huì)自動(dòng)恢復(fù)連接,繼續(xù)為Arduino UNO提供5V電壓。圖中C是10K的排阻,用來(lái)對(duì)外接電源輸入進(jìn)展分壓。當(dāng)外接電源輸入電壓VIN大于7V時(shí),D器件的第3腳由于電壓高于D器件的第2腳(3.3V),所以D器件的第1腳輸出高電平。器件E是PMOS,當(dāng)D器件的第1腳輸出高電平時(shí),器件E處于截至狀態(tài),從而切斷了USB接口的供電。當(dāng)外接電源輸入電壓VIN小于6V時(shí),D器件
32、的第3腳由于電壓低于D器件的第2腳(3.3V),所以D器件的第1腳輸出低電平。器件E處于導(dǎo)通狀態(tài),此時(shí),Arduino UNO由USB口進(jìn)展供電。器件F是線性穩(wěn)壓器,負(fù)責(zé)把5V電源轉(zhuǎn)變成3V電源,該器件能給Arduino UNO提供大約50mA的電流。 圖3-5 USB接口直接供電 電源引腳說(shuō)明: VIN --- 當(dāng)外部直流電源接入電源插座時(shí),可以通過(guò)VIN向外部供電;也可以通過(guò)此引腳向UNO直接供電;VIN有電時(shí)將忽略從USB或者其他引腳接入的電源。 5V --- 通過(guò)穩(wěn)壓器或USB的5V電壓,為UNO上的5V芯片供電。 3.3V --- 通過(guò)穩(wěn)壓器產(chǎn)生的3.3V電壓,最大驅(qū)
33、動(dòng)電流50mA。 GND --- 地腳。 3.1.2.2 存儲(chǔ)器 ATmega328p包括了片上32KB Flash,其中0.5KB用于Bootloader。同時(shí)還有2KB SRAM和1KB EEPROM 3.1.3.3 輸入輸出 14路數(shù)字輸入輸出口:工作電壓為5V,每一路能輸出和接入最大電流為40mA。每一路配置了20-50K歐姆部上拉電阻〔默認(rèn)不連接)。除此之外,有些引腳有特定的功能。 串口信號(hào)R*〔0號(hào)〕、T*〔1號(hào)〕: 與部 ATmega8U2 USB-to-TTL 芯片相連,提供TTL電壓水平的串口接收信號(hào)。 外部中斷〔2號(hào)和3號(hào)〕:觸發(fā)中斷引腳,可設(shè)成上升沿、下降沿
34、或同時(shí)觸發(fā)。 脈沖寬度調(diào)制PWM〔3、5、6、9、10 、11〕:提供6路8位PWM輸出。 SPI〔10(SS),11(MOSI),12(MISO),13(SCK)〕:SPI通信接口。 LED〔13號(hào)〕:Arduino專門(mén)用于測(cè)試LED的保存接口,輸出為高時(shí)點(diǎn)亮LED,反之輸出為低時(shí)LED熄滅。 6路模擬輸入A0到A5:每一路具有10位的分辨率〔即輸入有1024個(gè)不同值〕,默認(rèn)輸入信號(hào)圍為0到5V,可以通過(guò)AREF調(diào)整輸入上限。除此之外,有些引腳有特定功能 TWI接口〔SDA A4和SCL A5〕:支持通信接口〔兼容I2C總線〕。 AREF:模擬輸入信號(hào)的參考電壓。 Reset:
35、信號(hào)為低時(shí)復(fù)位單片機(jī)芯片。 3.1.3.4 通信接口 串口:ATmega328置的UART可以通過(guò)數(shù)字口0〔R*〕和1〔T*〕與外部實(shí)現(xiàn)串口通信;ATmega16U2可以訪問(wèn)數(shù)字口實(shí)現(xiàn)USB上的虛擬串口。 TWI〔兼容I2C〕接口:SDA〔A4〕是雙向數(shù)據(jù)線,SCL〔A5〕是時(shí)鐘線SCL。在TWI總線上傳送數(shù)據(jù),首先送最高位,由主機(jī)發(fā)出啟動(dòng)信號(hào),SDA在SCL 高電平期間由高電平跳變?yōu)榈碗娖?,然后由主機(jī)發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。數(shù)據(jù)傳送完畢,由主機(jī)發(fā)出停頓信號(hào),SDA在SCL 高電平期間由低電平跳變?yōu)楦唠娖健? SPI 接口:它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至
36、少4根線,事實(shí)上3根也可以〔單向傳輸時(shí)〕。也是所有基于SPI的設(shè)備共有的,它們是SDI〔數(shù)據(jù)輸入〕、SDO〔數(shù)據(jù)輸出〕、SCLK〔時(shí)鐘〕、CS〔片選〕。 下載程序 Arduino UNO上的ATmega328已經(jīng)預(yù)置了bootloader程序,因此可以通過(guò)Arduino軟件直接下載程序到UNO中。 可以直接通過(guò)UNO上ICSP header直接下載程序到ATmega328p。 注意要點(diǎn) Arduino UNO上USB口附近有一個(gè)可重置的保險(xiǎn)絲,對(duì)電路起到保護(hù)作用。當(dāng)電流超過(guò)500mA是會(huì)斷開(kāi)USB連接。 Arduino UNO提供了自動(dòng)復(fù)位設(shè)計(jì),可以通過(guò)主機(jī)復(fù)位。這樣通過(guò)Ardui
37、no軟件下在程序到UNO中軟件可以自動(dòng)復(fù)位,不需要在復(fù)位按鈕。在印制板上絲印"RESET EN"處可以使能和制止該功能 3.1.4 Arduino Uno R3單片機(jī)系統(tǒng)的使用 本次設(shè)計(jì),使用到了Arduino Uno單片機(jī)的I/O口的輸入輸出功能、串口通信R*〔0號(hào)〕T*〔1號(hào)〕功能、外部中斷〔2號(hào)3號(hào)〕功能、脈沖寬頻調(diào)制PWM〔9、10、11〕功能、TWI通信〔SDA A4和SCL A5〕功能、部定時(shí)器功能。 Arduino微控制器的數(shù)字端口和模擬端口與ATMEGA 328芯片引腳的對(duì)應(yīng)關(guān)系如圖3-4。標(biāo)有0~13標(biāo)號(hào)的引腳對(duì)應(yīng)的是數(shù)字端口,在0~13前面有符號(hào)"~〞的引腳對(duì)應(yīng)的端
38、口具有PWM輸出功能。標(biāo)有A0~A5標(biāo)號(hào)的是模擬端口。 圖3-7 Arduino Uno端口與ATmege328引腳關(guān)系 圖3-6 Arduino Uno端口與ATmege328P引腳關(guān)系 Arduino Uno微控制器的數(shù)字I/O口輸出,通過(guò)4、5端口〔6、7端口〕給驅(qū)動(dòng)模塊送控制信號(hào)用于控制左側(cè)〔右側(cè)〕電機(jī)的轉(zhuǎn)動(dòng)方向、通過(guò)9端口〔10端口〕向驅(qū)動(dòng)模塊送PWM控制信號(hào)控制左側(cè)〔右側(cè)〕電機(jī)的轉(zhuǎn)速、通過(guò)2端口〔3端口〕接收左側(cè)測(cè)速模塊〔右側(cè)測(cè)試模塊〕信息。通過(guò)11端口向攝像頭發(fā)送PWM控制信號(hào)調(diào)節(jié)燈光亮度,通過(guò)TWI通信端口接收舵機(jī)的數(shù)據(jù)信息,單片機(jī)的部定時(shí)器的使用是用于結(jié)算測(cè)速模塊測(cè)
39、量的速度,以及其他需要準(zhǔn)確時(shí)間的地方。單片機(jī)的串口通信,用于與路由器進(jìn)展的串口通訊,接收電腦終端發(fā)送的串口指令,從而控制小車(chē)的運(yùn)動(dòng)。 3.2 路由器WR703N TP-LINK的TL-WR703N是一款小而強(qiáng)大的路由器,缺乏百元的價(jià)格,擁有一款無(wú)線路由器具有的根本功能〔如圖3-8〕,而且可以支持USB 3G無(wú)線網(wǎng)卡。但703N的潛力不止如此,目前有不少電子愛(ài)好者開(kāi)場(chǎng)了基于703N的折騰,OpenWrt通用固件已經(jīng)出現(xiàn)在常用的家庭路由器中,也是一款特別不錯(cuò)的嵌入式系統(tǒng)。 圖3-8 TP-Link WR703N 3.2.1 路由器硬件介紹 TP-Link WR703N采用Athero
40、s的AR9331-AL1A處理器,主頻400MHz,它是一個(gè)高度集成和本錢(qián)效益的IEEE 802.11n1*1的2.4 GHz系統(tǒng)單晶片〔SoC〕的無(wú)線局域網(wǎng)〔WLAN〕AP和路由器platforms.In的一個(gè)單芯片,AR9331包括一個(gè)MIPS24K五端口處理器,IEEE802.3快速以太網(wǎng)交換機(jī)的MAC/ PHY,一個(gè)USB 2.0 MAC/ PHY和外部存儲(chǔ)器接口串行閃存,SDRAM,DDR1或DDR2,音頻接口I2S/SPDIF-Out,SLIC的VOIP / PCM接口, UART,GPIO,可以用于LED控制或其他通用接口配置。AR9331集成了兩個(gè)千兆互助委員會(huì)加一個(gè)五端口快速
41、以太網(wǎng)交換機(jī),交通四個(gè)一流的效勞質(zhì)量〔QoS〕的AR9331集成引擎。的802.11n1*1的MAC/ BB/無(wú)線電與部PA和LNA。它支持802.11n操作高達(dá)72 Mbps的為20 MHz和150 Mbps的分別為40 MHz信道,IEEE802.11b / g的數(shù)據(jù)傳輸速率。其他功能還包括片上一次性可編程〔OTP〕存儲(chǔ)器。 WR703N的SPI FLASH為4MB,RAM為32MB,為了安裝跟多的程序需要改裝FLASH為8M,如果為了減小CPU的壓力就要改RAM為64MB。有一個(gè)USB接口,一個(gè)10/100Mbps Lan/WAN服用口最高傳輸功率為150Mbps。 路由器固件:編程
42、器固件中包含uboot、fw和art。uboot就像電腦的bios,是底層的管理系統(tǒng); fw就像電腦的操作系統(tǒng),實(shí)現(xiàn)路由器的各種功能; art就像電腦的無(wú)線驅(qū)動(dòng)程序,是無(wú)線校驗(yàn)碼; uboot的長(zhǎng)度為128KB〔0*20000〕;art為64KB〔0*10000〕;fw有4M和8M的區(qū)別,4M的為3840K〔0*3c0000〕,8M的為7936KB〔0*7c0000〕。在刷機(jī)之前要對(duì)要刷入flash的uboot、fw、art的文件長(zhǎng)度用ultraedit或winhe*進(jìn)展校驗(yàn)。尤其是uboot,如果大小不對(duì),千萬(wàn)不要嘗試刷入,那是一定會(huì)變磚的。 4M的FLASH:flash地址從0*000
43、000~0*3FFFFF〔如表3-1〕 ttl訪問(wèn)flash的地址從0*9F000000~0*9F3FFFFF〔如表3-1〕 表3-1 4MB的FLASH地址 flash起始地址 TTL起始地址 flash終止地址 TTL終止地址 uboot 0*000000 0*9F000000 0*01FFFF 0*9F01FFFF fw 0*020000 0*9F020000 0*3DFFFF 0*9F3DFFFF art 0*3F0000 0*9F3F0000 0*3FFFFF 0*9F3FFFFF 3.2.2 路由器改裝 我們可用過(guò)WR703N改裝各
44、種不同功能的電子設(shè)備,如掛載優(yōu)盤(pán)硬盤(pán)當(dāng)網(wǎng)絡(luò)硬盤(pán)或者離線下載電影等、掛載攝像頭當(dāng)網(wǎng)絡(luò)監(jiān)控器、掛載音響當(dāng)wifi音響等等,自己喜歡的設(shè)備。我們要通過(guò)路由器與單片機(jī)通信實(shí)現(xiàn)wifi小車(chē)的控制,如圖3-9為wr703n路由器的部電路板。要想控制單片機(jī)要有串口通信接口TTL,WR703N有兩種方式實(shí)現(xiàn)TTL串口通信,一種是連接USB轉(zhuǎn)TTL,另一種是直接在電路板上焊接TTL串口,我們采用第二種方式連接獲得TTL信號(hào)如圖3-10。 圖3-9 TP-LINK WR703N電路板 WR703N的TTL串口圖的右上角靠近存的位置〔圖3-10〕,當(dāng)焊接好ttl線以后要連接USB轉(zhuǎn)TTL線查看連接是否通暢,
45、TP-OUT連接USB—TTL線的R*端,TP-IN連接USB—TTL線的T*端。 圖3-10 WR703N路由器TTL串口 為了增加WR703N路由器的WIFI信號(hào)的傳輸功率我們需要為路由圖添加SMA天線〔如圖3-11〕,網(wǎng)上有傳說(shuō),去掉C30電容后,會(huì)增大發(fā)射功率。實(shí)際效果并不明顯。 圖3-11 SMA外接天線位置 路由器刷OpenWRT 1.原WR703N固件刷OpenWRT 訪問(wèn)WR703N在OpenWrt的Wiki頁(yè),然后在Flashing一節(jié)中找到下載:squashfs-factory.bin。 進(jìn)入路由器管理界面,出廠配置為,用戶名和密碼均為admin。
46、進(jìn)入路由器管理界面以后,在左側(cè)選擇系統(tǒng)工具——軟件升級(jí),軟后選擇下載好的固件升級(jí)固件,等待一段時(shí)間大約2min后路由器自動(dòng)重啟路由器固件刷新成功。 2.OpenWRT固件刷OpenWRT 第一步: 使用WinSCP將升級(jí)固件上傳到路由的/tmp目錄下: 1.翻開(kāi)WinSCP,"主機(jī)名"也就是IP填你的路由IP,端口默認(rèn)22不改,"用戶名/密碼"默認(rèn)是root/admin。 2.文件協(xié)議選擇SCP,然后點(diǎn)"登陸",接著會(huì)進(jìn)展登陸過(guò)程,然后彈出一個(gè)窗口,直接點(diǎn)"確定"就可以了, 3.雙擊右方列表框中唯一的目錄,顯示路由所有的文件列表,再雙擊/tmp翻開(kāi),然后將703N原廠固件拖入該目錄
47、,等待幾秒完成就行了 第二步: 1.翻開(kāi)Putty,輸入路由IP,端口23不改,連接類(lèi)型選擇SSH(OpenWRT改正密碼之后就不能用Telnet登陸了"),再點(diǎn)"翻開(kāi)"彈出黑框提示登陸,"用戶名"打root,回車(chē)之后輸密碼再回車(chē)(注意,此處密碼是不顯示的,需保證輸入正確),成功之后會(huì)顯示一個(gè)由字符組成的OpenWrt圖案以及局部參數(shù) 2.使用cat /proc/mtd查看路由支持的升級(jí)命令。 rootOpenWrt:~# cat /proc/mtd dev: size erasesize name mtd0: 00020000 00010000 "u-boot" m
48、td1: 0010e630 00010000 "kernel" mtd2: 006c19d0 00010000 "rootfs" mtd3: 004a0000 00010000 "rootfs_data" mtd4: 00010000 00010000 "art" mtd5: 007d0000 00010000 "firmware" 3.根據(jù)上面的升級(jí)參數(shù)執(zhí)行升級(jí)命令。 mtd –r write openWrt.bin mtd5 3.3 電機(jī)驅(qū)動(dòng)電路 電動(dòng)小車(chē)的驅(qū)動(dòng)不但要求電機(jī)驅(qū)動(dòng)系統(tǒng)具有高轉(zhuǎn)矩重量比、寬調(diào)速圍、高可靠性,而且電機(jī)的轉(zhuǎn)矩-轉(zhuǎn)速特性受電源功率的影響,這就要求驅(qū)動(dòng)具
49、有盡可能寬的高效率區(qū)。 我們所使用的電機(jī)一般為直流電機(jī),主要用到永磁直流電機(jī)、伺服電機(jī)及步進(jìn)電機(jī)三種。直流電機(jī)的控制很簡(jiǎn)單,性能出眾,直流電源也容易實(shí)現(xiàn)。 我們使用的這種直流電機(jī)的驅(qū)動(dòng)及控制需要電機(jī)驅(qū)動(dòng)芯片進(jìn)展驅(qū)動(dòng)。常用的電機(jī)驅(qū)動(dòng)芯片有L297/298,MC33886,ML4428等 3.3.1 電機(jī)驅(qū)動(dòng)模塊使用 我們使用的L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W。含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器,可以用來(lái)驅(qū)動(dòng)直流電動(dòng)機(jī)和步進(jìn)電
50、動(dòng)機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號(hào)控制;具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或制止器件工作有一個(gè)邏輯電源輸入端,使部邏輯電路局部在低電壓下工作;可以外接檢測(cè)電阻,將變化量反應(yīng)給控制電路。使用L298N芯片驅(qū)動(dòng)電機(jī),該芯片可以驅(qū)動(dòng)一臺(tái)兩相步進(jìn)電機(jī)或四相步進(jìn)電機(jī),也可以驅(qū)動(dòng)兩臺(tái)直流電機(jī)。工程使用的是4個(gè)直流電機(jī),工程中使用了兩塊L298N電機(jī)驅(qū)動(dòng)來(lái)驅(qū)動(dòng)這四個(gè)直流電機(jī)的轉(zhuǎn)動(dòng)。 其實(shí)物及引腳圖如以下圖3-7所示,其中6和11引腳是它的使能端,一個(gè)使能端控制一個(gè)電機(jī),只有當(dāng)它們都是高電平的時(shí)候兩個(gè)電機(jī)才有可能工作,5、7、10、12是298的信號(hào)輸入端和單片機(jī)的IO口相連,
51、2、3、13、14腳是輸出端,輸入5和7腳控制輸出2和3腳,輸入的10、12腳控制輸出的13、14腳。 圖3-12 L298驅(qū)動(dòng)芯片實(shí)物及引腳 驅(qū)動(dòng)原理及電路圖 驅(qū)動(dòng)局部我們使用的是L298N驅(qū)動(dòng)芯片構(gòu)成的一個(gè)驅(qū)動(dòng)電路模塊如圖3-13所示。 圖3-13 電機(jī)驅(qū)動(dòng)模塊 電路原理圖如以下圖3-14所示。 圖3-14 L298驅(qū)動(dòng)模塊電路原理圖 使用直流/步進(jìn)兩用驅(qū)動(dòng)器可以驅(qū)動(dòng)兩臺(tái)直流電機(jī)。分別為M1和M2。引腳ENA,ENB可用于輸入PWM脈寬調(diào)制信號(hào)對(duì)電機(jī)進(jìn)展調(diào)速控制?!踩绻麩o(wú)須調(diào)速可將兩引腳接5V,使電機(jī)工作在最高速狀態(tài),既將短接帽短接〕實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)就更容易了,輸
52、入信號(hào)端IN1接低電平輸入端IN2接高電平,電機(jī)M1正轉(zhuǎn)。〔如果信號(hào)端IN1接高電平, IN2接低電平,電機(jī)M1反轉(zhuǎn)。〕控制另一臺(tái)電機(jī)是同樣的方式,輸入信號(hào)端IN3接低電平,輸入端IN4接高電平,電機(jī)M2正轉(zhuǎn)?!卜粗畡t反轉(zhuǎn)〕,PWM信號(hào)端A控制M1調(diào)速,PWM信號(hào)端B控制M2調(diào)速參考如表3-2。 表3-2 電機(jī)驅(qū)動(dòng)狀態(tài)表 電機(jī) 旋轉(zhuǎn)方向 控制端IN1 控制端IN2 控制端IN3 控制端IN4 輸入PWM信號(hào) 調(diào)速端A 調(diào)速端B M1 正轉(zhuǎn) 高 低 / / 高 / 反轉(zhuǎn) 低 高 / / 高 / 停頓 低 低 / / 高 / M2
53、 正轉(zhuǎn) / / 高 低 / 高 反轉(zhuǎn) / / 低 高 / 高 停頓 / / 低 低 / 高 3.4 攝像頭介紹 本工程中攝像頭實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)小車(chē)周邊情況,使之成為一個(gè)無(wú)線可控移動(dòng)的視頻監(jiān)控器,也用于判斷小車(chē)當(dāng)前路況。 3.4.1 攝像頭簡(jiǎn)介 攝像頭(CAMERA)又稱為電腦相機(jī)、電腦眼等,它作為一種視頻輸入設(shè)備,在過(guò)去被廣泛的運(yùn)用于視頻會(huì)議、遠(yuǎn)程醫(yī)療及實(shí)時(shí)監(jiān)控等方面。近年以來(lái),隨著互聯(lián)網(wǎng)技術(shù)的開(kāi)展,網(wǎng)絡(luò)速度的不斷提高,再加上感光成像器件技術(shù)的成熟并大量用于攝像頭的制造上,這使得它的價(jià)格降到普通人可以承受的區(qū)間。普通的人也可以彼此通過(guò)攝像頭在網(wǎng)絡(luò)
54、進(jìn)展有影像、有聲音的交談和溝通,另外,人們還可以將其用于當(dāng)前各種流行的數(shù)碼影像、影音處理。 3.4.2 攝像頭的分類(lèi) 攝像頭分為數(shù)字?jǐn)z像頭和模擬攝像頭兩大類(lèi)。模擬攝像頭可以將視頻采集設(shè)備產(chǎn)生的模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),進(jìn)而將其儲(chǔ)存在計(jì)算機(jī)里。模擬攝像頭捕捉到的視頻信號(hào)必須經(jīng)過(guò)特定的視頻捕捉卡將模擬信號(hào)轉(zhuǎn)換成數(shù)字模式,并加以壓縮后才可以轉(zhuǎn)換到計(jì)算機(jī)上運(yùn)用。數(shù)字?jǐn)z像頭可以直接捕捉影像,然后通過(guò)串、并口或者USB接口傳到計(jì)算機(jī)里?,F(xiàn)在電腦市場(chǎng)上的攝像頭根本以數(shù)字?jǐn)z像頭為主,而數(shù)字?jǐn)z像頭中又以使用新型數(shù)據(jù)傳輸接口的USB數(shù)字?jǐn)z像頭為主,目前市場(chǎng)上可見(jiàn)的大局部都是這種產(chǎn)品。除此之外還有一種與視頻采
55、集卡配合使用的產(chǎn)品,但目前還不是主流。由于個(gè)人電腦的迅速普及,模擬攝像頭的整體本錢(qián)較高等原因,USB接口的傳輸速度遠(yuǎn)遠(yuǎn)高于串口、并口的速度,因此現(xiàn)在市場(chǎng)熱點(diǎn)主要是USB接口的數(shù)字?jǐn)z像頭。以下主要是指USB接口的數(shù)字?jǐn)z像頭。 3.4.3攝像頭的工作原理 攝像頭的工作原理大致為:景物通過(guò)鏡頭(LENS)生成的光學(xué)圖像投射到圖像傳感器外表上,然后轉(zhuǎn)為電信號(hào),經(jīng)過(guò)A/D(模數(shù)轉(zhuǎn)換)轉(zhuǎn)換后變?yōu)閿?shù)字圖像信號(hào),再送到數(shù)字信號(hào)處理芯片(DSP)中加工處理,再通過(guò)USB接口傳輸?shù)诫娔X中處理,通過(guò)顯示器就可以看到圖像了。我們這里是將攝像頭連接在路由器的USB接口上,通過(guò)路由器上的攝像頭驅(qū)動(dòng)軟件使攝像頭工作,并
56、由路由器通過(guò)WIFI將視頻信號(hào)發(fā)送出去。電腦等終端接收設(shè)備,接收到視頻信號(hào)后通過(guò)控制軟件的界面顯示圖像。 攝像頭的主要構(gòu)造和組件 從攝像頭的工作原理就可以列出攝像頭的主要構(gòu)造和組件:1、主控芯片2、感光芯片3、鏡頭4、LED燈。攝像頭部需要兩種工作電壓:3.3V和2.5V,因此好的攝像頭部電源也是保證攝像頭穩(wěn)定工作的一個(gè)因素。 在本次wifi小車(chē)的制作中我們使用的是中星微ZC301的攝像頭,如圖3-15所示 圖3-15 中星微ZC301攝像頭 3.5 測(cè)速傳感器 本設(shè)計(jì)通過(guò)兩塊測(cè)速傳感器來(lái)測(cè)量?jī)蓚€(gè)輪胎之間的速度差,然后通過(guò)PWM信號(hào)來(lái)控制小車(chē)是直線行駛,轉(zhuǎn)彎等,同時(shí)監(jiān)控當(dāng)前小車(chē)
57、的行駛速度等數(shù)據(jù)。 測(cè)速傳感器說(shuō)明 我們的測(cè)試傳感器使用的是最新的電機(jī)馬達(dá)測(cè)速傳感器模塊——對(duì)射光電傳感器〔槽型光耦〕。該傳感器廣泛的用于電機(jī)轉(zhuǎn)速檢測(cè),脈沖計(jì)數(shù),位置限位等方面,它的工作電壓為3.3V—5V之間,槽寬10mm,有電源接入狀態(tài)指示燈與輸出狀態(tài)指示燈,當(dāng)輸出高電平時(shí)燈亮,輸出低電平時(shí)燈滅,如果有遮擋時(shí)輸出高電平,無(wú)遮擋時(shí)輸出低電平。采用74HC04D六組反相器,有門(mén)電路數(shù)6個(gè),它是一種高速CMOS器件,兼容低功耗肖特基TTL電路。測(cè)速傳感器及電路圖如3-16所示 圖3-16 測(cè)速傳感器及電路圖 3.5.2 測(cè)速傳感器使用 本次設(shè)計(jì)中我們使用到兩塊測(cè)試傳感器,傳感器GN
58、D連接Arduino Uno控制板的GND,OUT電平輸出端分別連接Arduino Uno控制板2、3外部中斷端口。傳感器通過(guò)感應(yīng)20孔編碼器產(chǎn)生上下電平來(lái)記錄小車(chē)的行駛速度如圖3-17所示。 圖3-17 20孔編碼器及使用 3.6 超聲波傳感器 本次設(shè)計(jì)中使用HC-SR04超聲波傳感器主要用于測(cè)量前方物體距離小車(chē)的距離以及通過(guò)測(cè)量距離防止小車(chē)因向前行駛速度過(guò)快撞擊前方障礙物毀壞車(chē)體。 傳感器說(shuō)明及原理 HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。根本工作原理如圖3-18: 1.采用
59、IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào); 2.模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; 3.有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲; 4.兩次測(cè)距時(shí)間間隔最少在60ms以上,以防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響; 波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2; HC-SR04電氣參數(shù)如表3-3所示 表3-3 HC-SR04電氣參數(shù) 電氣參數(shù) HC-SR04超聲波模塊 工作電壓 DC5V 工作電流 15mA 工作頻率 40HZ 最遠(yuǎn)射程 400cm 最近射程 2cm 測(cè)量角度
60、 15度 輸入出發(fā)信號(hào) 10uS 的 TTL 脈沖 輸出回應(yīng)信號(hào) 輸出 TTL 電平信號(hào),與射程成比例 圖3-18 超聲波時(shí)序圖 3.6.2 HC-SR04傳感器的使用 有時(shí)序圖可知,只需要提供一個(gè) 10uS 以上脈沖觸發(fā)信號(hào),我們需要把Trig連接Arduino控制板的12端口,該模塊部將發(fā)出 8 個(gè) 40kHz 周期電平并檢測(cè)回波。需把Echo連接到Arduino Uno控制器的13端口檢測(cè)回報(bào)信號(hào),一但檢測(cè)到有回波信號(hào)則輸出回響信號(hào)回響信號(hào)的脈沖寬度與所測(cè)的距離成正比。由此通過(guò)發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離。公式:uS/58=厘米或者 uS/148=
61、英寸;或是:距離 =高電平時(shí)間*聲速〔340M/S〕/2;建議測(cè)量周期為 60ms 以上,以防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響。要注意的是此模塊不宜帶電連接,假設(shè)要帶電連接,則先讓模塊的 GND 端先連接,否則會(huì)影響模塊的正常工作。測(cè)距時(shí),被測(cè)物體的面積不少于 0.5 平方米且平面盡量要求平整,否則影響測(cè)量的結(jié)果。 3.7舵機(jī)模塊 在本設(shè)計(jì)中我們使用的舵機(jī)型號(hào)為SG90,舵機(jī)的輸入線共有三條,紅色中間是電源線,一邊棕色的是地線,這輛根線給舵機(jī)提供最根本的能源保證,主要是電機(jī)的轉(zhuǎn)動(dòng)消耗。電源有兩種規(guī)格,一是4.8V,一是6.0V,分別對(duì)應(yīng)不同的轉(zhuǎn)矩標(biāo)準(zhǔn),即輸出力矩不同,6.0V對(duì)應(yīng)的要大一些,具體
62、看應(yīng)用條件;另外一根線是控制信號(hào)線,F(xiàn)utaba的一般為白色,JR的一般為桔黃色。另外要注意一點(diǎn),SANWA的*些型號(hào)的舵機(jī)引線電源線在邊上而不是中間,需要識(shí)別。但記住紅色為電源,黑色或棕色為地線,一般不會(huì)有錯(cuò)。舵機(jī)如圖3-11所示。 圖3-19 SG90舵機(jī) 舵機(jī)的控制 舵機(jī)的控制信號(hào)為周期是20ms的脈寬調(diào)制〔PWM〕信號(hào),其中脈沖寬度從,相對(duì)應(yīng)舵盤(pán)的位置為0-180度,呈線性變化。也就是說(shuō),給它提供一定的脈寬,它的輸出軸就會(huì)保持在一個(gè)相對(duì)應(yīng)的角度上,無(wú)論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個(gè)另外寬度的脈沖信號(hào),它才會(huì)改變輸出角度到新的對(duì)應(yīng)的位置上。舵機(jī)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期2
63、0ms,寬度1.5ms的基準(zhǔn)信號(hào),有一個(gè)比擬器,將外加的PWM信號(hào)與基準(zhǔn)信號(hào)相比擬,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。由此可見(jiàn),舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,轉(zhuǎn)動(dòng)圍不能超過(guò)180度,適用于那些需要角度不斷變化并可以保持的驅(qū)動(dòng)當(dāng)中。比方說(shuō)機(jī)器人的關(guān)節(jié)、飛機(jī)的舵面等。 圖 3-20 舵機(jī)工作原理 舵機(jī)的作用 在本次wifi小車(chē)中我們利用兩個(gè)舵機(jī)做成一個(gè)云臺(tái)〔如圖3-21〕,將攝像頭固定在云臺(tái)上,通過(guò)Arduino Uno單片機(jī)控制舵機(jī)旋轉(zhuǎn)一定的角度,把我們想要角度的圖像通過(guò)攝像頭傳送到電腦等終端設(shè)備。 圖3-21 攝像頭云臺(tái) 3.8 電源模塊 在本次設(shè)計(jì)中為了節(jié)約設(shè)計(jì)本錢(qián)以及
64、給小車(chē)提供足夠的電力,我們將使用已有的12v移動(dòng)電源來(lái)為小車(chē)提供充足的電力,通過(guò)移動(dòng)電源12v輸出連接一個(gè)多了輸出電源模塊來(lái)隔絕電路,路由器的電源通過(guò)移動(dòng)電源5v、1.5A輸出口直接供電。 3.9 硬件系統(tǒng)整體設(shè)計(jì) 通過(guò)各硬件模塊構(gòu)成整個(gè)wifi小車(chē)硬件系統(tǒng)如下圖 第4章系統(tǒng)軟件安裝及設(shè)計(jì) 軟件提供了發(fā)揮硬件功能的方法和手段擴(kuò)大其應(yīng)用圍,并能改善人一機(jī)界機(jī),方便用戶使用。沒(méi)有配備軟件的計(jì)算機(jī)稱為"裸機(jī)〞,是沒(méi)有多少實(shí)用價(jià)值的。硬件與軟件的形象比喻為:硬件是計(jì)算機(jī)的"軀體〞,軟件是計(jì)算機(jī)的"靈魂〞。對(duì)于一款好的智能設(shè)備來(lái)說(shuō),軟件就是它的靈魂,如果沒(méi)有了軟件智能設(shè)備也不在是智能設(shè)備。因此為
65、設(shè)備設(shè)計(jì)一款好的軟件也是相當(dāng)重要的。 4.1系統(tǒng)程序簡(jiǎn)介 硬件平臺(tái)構(gòu)造一旦確定,大的功能框架即形成,軟件在硬件平臺(tái)上構(gòu)筑,完成各局部硬件的控制和協(xié)調(diào)工作。系統(tǒng)功能是由軟硬件共同實(shí)現(xiàn)的,由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差異可能很大。因此,軟件是系統(tǒng)的靈魂。軟件采用模塊化設(shè)計(jì)方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。 我們的小車(chē)控制是通過(guò)ATmega328p單片機(jī)控制驅(qū)動(dòng)電路和給燈光送控制信號(hào),然而這些控制信號(hào)的命令又是pc、手機(jī)等終端設(shè)備通過(guò)無(wú)線路由器串口傳送給單片機(jī)的,所以在程序中我們需要設(shè)計(jì)到串口的使用、定時(shí)器使用、數(shù)字I/O口的使用。同時(shí)我們要接
66、收由超聲波傳感器、測(cè)試模塊、電子羅盤(pán)的信息,再單片機(jī)串口傳送給路由器然后由pc、手機(jī)等設(shè)備接收,所有我們要在路由器上搭建環(huán)境設(shè)計(jì)相應(yīng)的軟件以及手機(jī)端的接收軟件,單片機(jī)的軟件總體設(shè)計(jì)及程序流程如以下圖4-1所示。 4.2單片機(jī)程序流程圖 智能WIFI小車(chē)的軟件編寫(xiě)主要分為命令接收局部、命令執(zhí)行局部、以及具體的信號(hào)的采集和處理,以及回傳收集到的信息。 主程序流程圖 系統(tǒng)主程序模塊主要完成對(duì)系統(tǒng)中各模塊電路的初始化等工作,主要包括對(duì)定時(shí)器、串口中斷、外部中斷的初始化,同時(shí)執(zhí)行電腦等終端設(shè)備所發(fā)送的命令,等待外部中斷以及根據(jù)所需要的功能進(jìn)展相應(yīng)操作。軟件總體設(shè)計(jì)及程序流程如以下圖4-1所示 外部串口中斷函數(shù)流程圖 通過(guò)串口中斷,實(shí)現(xiàn)單片機(jī)和路由器進(jìn)展通訊。進(jìn)入中斷后關(guān)掉中斷,防止數(shù)據(jù)信號(hào)重復(fù)引起中斷。根據(jù)命令數(shù)據(jù)發(fā)送的規(guī)律,將命令解碼儲(chǔ)存在相應(yīng)的二維數(shù)組當(dāng)中,方便在主函數(shù)中調(diào)用。具體流程圖如以下圖4-2所示。通過(guò)外部中斷函數(shù)經(jīng)行測(cè)速模塊車(chē)輪旋轉(zhuǎn)進(jìn)展計(jì)數(shù),實(shí)現(xiàn)小車(chē)的差速控制與小車(chē)的速度檢測(cè)。要注意的是Arduino單片機(jī)中,如果執(zhí)行外部中斷時(shí),串口收到的數(shù)據(jù)可能會(huì)喪失。應(yīng)該聲明一個(gè)變
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷(xiāo)售技巧培訓(xùn)課件:接近客戶的套路總結(jié)
- 20種成交的銷(xiāo)售話術(shù)和技巧
- 銷(xiāo)售技巧:接近客戶的8種套路
- 銷(xiāo)售套路總結(jié)
- 房產(chǎn)銷(xiāo)售中的常見(jiàn)問(wèn)題及解決方法
- 銷(xiāo)售技巧:值得默念的成交話術(shù)
- 銷(xiāo)售資料:讓人舒服的35種說(shuō)話方式
- 汽車(chē)銷(xiāo)售績(jī)效管理規(guī)范
- 銷(xiāo)售技巧培訓(xùn)課件:絕對(duì)成交的銷(xiāo)售話術(shù)
- 頂尖銷(xiāo)售技巧總結(jié)
- 銷(xiāo)售技巧:電話營(yíng)銷(xiāo)十大定律
- 銷(xiāo)售逼單最好的二十三種技巧
- 銷(xiāo)售最常遇到的10大麻煩
- 銷(xiāo)售資料:銷(xiāo)售10大黃金觀念
- 銷(xiāo)售資料:導(dǎo)購(gòu)常用的搭訕?lè)椒?/a>