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