下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于 arduino 的智能避障小車的設計基于 arduino 的智能小車的設計摘要本文簡要介紹了基于智能輪式移動機器人智能避障設計與實現(xiàn) 一種基于Arduino 新型集成開發(fā)環(huán)境的超聲波避障小車的工作原理。其中包括對小車的執(zhí)行組件、搭建結構、傳感器、Arduino 單片機軟件編程及試驗結果的介紹。本方案以Arduino 單片機為控制核心,基于蝙蝠超聲波測距的原理, 利用超聲波傳感器, 檢測小車前方障礙物的距離,然后把數(shù)據(jù)傳送給單片機。當超聲波檢測到距離小車前方25CM 有障礙物時單片機就發(fā)出指令讓小車左轉(zhuǎn)一定角度,然后停止行進繼續(xù)探測. 如果前方25CM沒有障礙物則直行,否則繼續(xù)左轉(zhuǎn)一定角度
2、。如此通過超聲波不斷的循環(huán)檢測周邊環(huán)境的情況進行自動避障。本系統(tǒng)在硬件設計方面,以Arduino 單片機為控制核心,以超聲波傳感器檢測前方障礙物,從而自動避障。在軟件方面,利用Arduino 語言進行編程,通過軟件編程來控制小車運轉(zhuǎn)。該系統(tǒng)在驅(qū)動方面采用L298N 驅(qū)動 2 個直流電機帶動小車運行。并且,用PWM系統(tǒng)調(diào)速, 控制小車前進的速度。實現(xiàn)小車根據(jù)外部環(huán)境 , 做出前進、后退和轉(zhuǎn)向等動作, 從而完成避障的功能,本設計具有有一定的實用價值。關鍵詞:Arduino 單片機;超聲波傳感器;避障24AbstractThis paper describes the design of mobil
3、e robot behavior-based design and implement A new ultrasound-based integrated development environment Arduino obstacle avoidance car works. These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentation.The
4、 program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller. When the ultrasonic distance in front of the car detects obstacles 25CM SCM
5、 issued a directive to make the car turn left on an angle, then continue probing stop traveling. If there is no obstacle in front of the 25CM straight, turn left or continue certain angle. So the case of the ultrasonic continuous loop through the surrounding environment to automatically detect avoid
6、ance.The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance. On the software side, the use of Arduino programming language to control the car running through software programming. The system uses the driver
7、side L298N drive two DC motors drive the car running. And, with the PWM system speed, speed control car forward. Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain practical
8、value.Key words: Arduino; ultrasonic sensors;obstacle avoidance目錄摘要 1Abstract 2第一章緒論 51.1、 論文的選題背景 51.2、 Arduino單片機概述 61.3、 Arduino機器人發(fā)展現(xiàn)狀 71.4、 Arduino 智能避障機器人研究意義和目的91.5、 項目主要研究內(nèi)容 9第二章避障小車機器人的總體設計102.1、 設計原理與方法 102.2、 硬件設計 102.3、 軟件設計 112.3.1、 Arduino 語言 112.3.2、 Arduino IDE 122.4、 設計前期準備 14第三章硬件模
9、塊163.1、 各模塊的的基本性能 163.1.1、 單片機模塊 163.1.2、 電機、電機驅(qū)動模塊 173.1.3、 避障模塊 193.1.4、 電源模塊 193.2、 小車的基本搭建 203.3、 電路連線 283.3.1、 電機的連線 283.3.2、 超聲波云臺接線 32第四章軟件模塊 344.1、 軟件設計思路 344.2、 程序設計代碼 35第五章實驗及結果分析 425.1、 預期目標 425.2、 遇到的問題和解決方法 425.3、 硬件的調(diào)試與整合 435.3.1、 試思路435.3.2、 調(diào)試超聲波模塊 445.3.3、 電機調(diào)試 445.4、 心得體會 45第六章設想與展
10、望 46參考文獻47致謝48第一章 緒論1.1 、論文的選題背景隨著現(xiàn)代計算機技術的不斷發(fā)展和普及,機器人的發(fā)展已經(jīng)遍及近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。小到智能玩具,大到機械、電子、冶金、交通、宇航、國防等各個領域。人們將計算機技術更加廣闊的運用的人類生活中,制造能替代人勞動的機器一直是人類的夢想,并一直在為之努力。在我們的生活里,有很多的機器人,如圖1- 1所示,這兩種機器人分別是掃地機器人和滅火機器人。他們在我們的生活中非常常見也很實用,他們的特點就是無需人們的控制,能夠自行運動完成他們的任務。那么這就需要一個非常必要的基礎功能,那就是能夠感知并躲避前方的障
11、礙物。因此,在本次的設計中,我們將設計出一個能夠避障機器人,在具有這個基本功能的基礎上,我們就可以為他附加更多的功能,賦予它更多的實用價值。選用 Arduino 單片機作為控制核心,使用仿生超聲波技術傳感器進行避障的實現(xiàn)?!爸悄鼙苷蠙C器人”作為現(xiàn)代社會的新產(chǎn)物,也是以后的發(fā)展方向,他可以按照預先設定的模式在一個特定的環(huán)境里自動的運作,無需人為管理,便可以完成預期所要達到的或是更高的目標。1- 1 :機器人應用1.2、 Arduino 單片機概述Arduino ,是一個基于開放原始碼的軟硬件平臺,構建于開放原始碼simpleI/O 介面版,并且具有使用類似Java, C 語言的 Processi
12、ng/Wiring 開發(fā)環(huán)境。它包含兩個主要的部分:硬件部分是可以用來做電路連接和Arduino 電路板;另外一個則是Arduino IDE,你的計算機中的程序開發(fā)環(huán)境。你只要在IDE 中編寫程序代碼,將程序上傳到Arduino 電路板后,程序便會告訴Arduino 電路板要做些什么了。Arduino 能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino 的編程語言來編寫程序,編譯成二進制文件,收錄進微控制器。對Arduino 的編程是利用Arduino 編程語言(基于Wiring) 和 Arduino 開發(fā)環(huán)境(based
13、on Processing)來實現(xiàn)的?;贏rduino 的項目,可以只包含Arduino ,也可以包含Arduino 和其他一些在 PC 上運行的軟件,他們之間進行通信(比如Flash, Processing, MaxMSP) 來實現(xiàn)??梢宰约簞邮种谱鳎部梢再徺I成品套裝;Arduino 所使用到的軟件都可以免費下載. 硬件參考設計(CAD 文件)也是遵循availableopen-source 協(xié)議 , 你可以非常自由地根據(jù)你自己的要求去修改他們.Arduino 可以使用開發(fā)完成的電子元件例如Switch 或 sensors 或其他控制器、 LED 、步進馬達或其他輸出裝置。Arduino
14、 也可以獨立運作成為一個可以跟軟件溝通的接口,例如說:flash、 processing、 Max/MSP 、 VVVV 或其他互動軟件 。 Arduino 開發(fā) IDE 接口基于開放源代碼原,可以讓您免費下載使用開發(fā)出更多令人驚艷的互動作品。其主要特點如下:1 )開放源代碼的電路圖設計,程序開發(fā)接口免費下載,也可依個人需求自己修改。2)使用低價格的微處理控制器(AVR 系列控制器),可以采用USB 接口供電,不需外接電源,也可以使用外部9VDC 輸入。3) Arduino 支持 ISP 在線燒,可以將新的“ bootloader固件燒入” AVR 芯片。有了 bootloader 之后,可以
15、通過串口或者USB to Rs232 線更新固件。4)可依據(jù)官方提供的Eagle 格式 PCB 和 SCH 電路圖簡化Arduino 模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達, 等 )5)支持多種互動程序,如:Flash、 Max/Msp 、 VVVV 、 PD、 C、 Processing等。6)應用方面,利用Arduino,突破以往只能使用鼠標、鍵盤、CCD 等輸入的裝置的互動內(nèi)容,可以更簡單地達成單人或多人游戲互動。我們?yōu)槭裁匆褂肁rduino ?有很多的單片機和單片機平臺都適合用做交互式系統(tǒng)的設計。例
16、如:Parallax Basic Stamp, Netmedia s BX-24 , Phidgets,MIT s Handyboard 和其它等等提供類似功能的。所有這些工具,你都不需要去關心單片機編程繁瑣的細節(jié),提供給你的是一套容易使用的工具包。Arduino 同樣也簡化了同單片機工作的流程,但同其它系統(tǒng)相比Arduino 在很多地方更具有優(yōu)越性,特別適合老師,學生和一些業(yè)余愛好者們使用:和其它平臺相比,Arduino 板算是相當便宜了。最便宜的Arduino 版本可以自己動手制作,即使是組裝好的成品,其價格也不會超過200 元。而且Arduino 軟件可以跨平臺運行在Windows, M
17、acintosh OSX,和Linux 操作系統(tǒng)。而大部分其它的單片機系統(tǒng)都只能運行在Windows 上。另外,它具有簡易的編程環(huán)境。初學者很容易就能學會使用Arduino 編程環(huán)境,同時它又能為高級用戶提供足夠多的高級應用。對于老師們來說,一般都能很方便的使用Processing 編程環(huán)境,所以如果學生學習過使用Processing 編程環(huán)境的話,那他們在使用Arduino 開發(fā)環(huán)境的時候就會覺得很相似很熟悉。軟件開源并可擴展Arduino 軟件是開源的,對于有經(jīng)驗的程序員可以對其進行擴展。Arduino 編程語言可以通過C+庫進行擴展,如果有人想去了解技術上的細節(jié),可以跳過Arduino
18、語言而直接使用AVR C 編程語言(因為Arduino語言實際上是基于AVR C 的)。類似的,如果你需要的話,你也可以直接往你的 Arduino 程序中添加AVR-C 代碼。Arduino 基于 AVR 平臺,對AVR 庫進行了二次編譯封裝,把端口都打包好了,寄存器啦、地址指針之類的基本不用管。大大降低了軟件開發(fā)難度,適宜非專業(yè)愛好者使用。優(yōu)點和缺點并存,因為是二次編譯封裝,代碼不如直接使用AVR 代碼編寫精練,代碼執(zhí)行效率與代碼體積都弱于AVR 直接編譯。1.3、 Arduino 機器人發(fā)展現(xiàn)狀我國目前的發(fā)展現(xiàn)狀是研制中的智能移動機器人智能水平并不高,只能說是智能移動機器人的初級階段。智能
19、移動機器人研究中當前的核心問題有兩方面:一方面是,提高智能移動機器人的自主性,這是就智能移動機器人與人的關系而言,即希望智能移動機器人進一步獨立于人,具有更為友善的人機界面。從長遠來說,希望操作人員只要給出要完成的任務,而機器能自動形成完成該任務的步驟,并自動完成它。另一方面是,提高智能移動機器人的適應性,提高智能移動機器人適應環(huán)境變化的能力,這是就智能移動機器人與環(huán)境的關系而言,希望加強它們之間的交互關系。智能移動機器人涉及到許多關鍵技術,這些技術關系到智能移動機器人的智能性的高低。這些關鍵技術主要有以下幾個方面:多傳感信息耦合技術,多傳感器信息融合就是指綜合來自多個傳感器的感知數(shù)據(jù),以產(chǎn)生
20、更可靠、更準確或更全面的信息,經(jīng)過融合的多傳感器系統(tǒng)能夠更加完善、精確地反映檢測對象的特性 ,消除信息的不確定性,提高信息的可靠性;導航和定位技術,在自主移動機器人導航中,無論是局部實時避障還是全局規(guī)劃,都需要精確知道機器人或障礙物的當前狀態(tài)及位置,以完成導航、避障及路徑規(guī)劃等任務;路徑規(guī)劃技術,最優(yōu)路徑規(guī)劃就是依據(jù)某個或某些優(yōu)化準則,在機器人工作空間中找到一條從起始狀態(tài)到目標狀態(tài)、可以避開障礙物的最優(yōu)路徑;機器人視覺技術,機器人視覺系統(tǒng)的工作包括圖像的獲取、圖像的處理和分析、輸出和顯示,核心任務是特征提取、圖像分割和圖像辨識;智能控制技術,智能控制方法提高了機器人的速度及精度;人機接口技術,
21、人機接口技術是研究如何使人方便自然地與計算機交流。在各國的智能移動機器人發(fā)展中,美國的智能移動機器人技術在國際上一直處于領先地位,其技術全面、先進,適應性也很強,性能可靠、功能全面、精確度高,其視覺、觸覺等人工智能技術已在航天、汽車工業(yè)中廣泛應用。日本由于一系列扶植政策,各類機器人包括智能移動機器人的發(fā)展迅速。歐洲各國在智能移動機器人的研究和應用方面在世界上處于公認的領先地位。中國起步較晚,而后進入了大力發(fā)展的時期,以期以機器人為媒介物推動整個制造業(yè)的改變,推動整個高技術產(chǎn)業(yè)的壯大。1.4、 、 Arduino 智能避障機器人研究意義和目的機器人的感覺傳感器種類非常多,其中視覺傳感器成為研制自
22、動行走和駕駛機器人的重要部件。機器人要實現(xiàn)自動導引功能和避障功能就必須要感知導引線 和障礙物,感知導引線相當給機器人一個視覺功能。本設計以超聲波作為智能車 避障的一種重要手段,以其避障實現(xiàn)方便,計算簡單,易于做到實時控制,測量 精度也能達到實用的要求,在未來汽車智能化進程中必將得到廣泛應用。我國作 為一個世界大國,在高科技領域也必須占據(jù)一席之地,未來汽車的智能化是汽車 產(chǎn)業(yè)發(fā)展必然的,在這種情況下研究超聲波在智能車避障上的應用具有深遠意 義,這將對我國未來智能汽車的研究在世界高科技領域占據(jù)領先地位具有重要作用。本設計主要體現(xiàn)多功能小車的智能避障功能,本設計中的理論方案、分析方法及特色與創(chuàng)新點等
23、可以為自動運輸機器人、采礦勘探機器人、家用自動清潔機 器人等自動半自動機器人的設計與普及有一定的參考意義。同時小車可以作為玩 具的發(fā)展對象,為中國玩具市場技術含量的缺乏進行一定的彌補,實現(xiàn)經(jīng)濟收 益,形成商業(yè)價值。我們所設計的智能移動機器人利用超聲波能夠在路面上順利躲避障礙物,從而在導盲和輔助人類行動方面也有著重要意義。1.5、 項目主要研究內(nèi)容本設計題目為基于arduino 的智能避障小車設計是以Arduino 單片機為控制核心,主要研究小車的避障功能。利用超聲波傳感器檢測道路上的障礙,然 后把數(shù)據(jù)傳送給單片機,當超聲波檢測到距離小車前方有障礙物時單片機就發(fā)出指令讓小車左轉(zhuǎn)一定角度,然后停止
24、運行繼續(xù)探測.如果前方?jīng)]有障礙物就直走,否則繼續(xù)左轉(zhuǎn)一定角度。如此通過超聲波不斷的循環(huán)檢測周邊環(huán)境的情況進行自動避障。該功能的小車能夠?qū)崿F(xiàn)在無人操作的情況下在比較寬闊平坦的環(huán)境中避開障礙物。當機器人在行走過程中遇到前方障礙時,能夠根據(jù)有效范圍內(nèi)的距離作出相應處理,由單片機軟件發(fā)出轉(zhuǎn)彎、直行、后退指令,避免機器與障礙物相撞。第二章 避障小車機器人的總體設計2.1、 、設計原理與方法本設計中直流電機PWM 控制系統(tǒng)的主要功能包括實現(xiàn)對直流電機的加速、減速,并且可以調(diào)整電機的轉(zhuǎn)速,能夠很方便的實現(xiàn)電機的智能控制。主體電路:即直流電機PWM 控制驅(qū)動模塊。這部分電路主要由arduino Uno 系統(tǒng)開
25、發(fā)好的 PWM 控制函數(shù)配合定時器直接產(chǎn)生,配合對于的方向控制IO 口可以直接控制直流電機的加速、減速以及電機的正轉(zhuǎn)和反轉(zhuǎn),并且可以調(diào)整電機的轉(zhuǎn)速,能夠很方便的實現(xiàn)電機的智能控制。其間是通過Arduino Uno 單片機產(chǎn)生脈寬可調(diào)的脈沖信號并輸入到L298 驅(qū)動芯片來控制直流電機工作的。該直流電機 PWM 控制系統(tǒng)由以下電路模塊組成:設計控制部分:主要由arduino Uno 功能擴展板組成。直流電機PWM 控制實現(xiàn)部分主要由一些二極管、電機和L298直流電機驅(qū)動模塊組成。智能小車采用后輪驅(qū)動,兩個前輪各用一個電機,后輪是萬向輪,起到支撐和轉(zhuǎn)向的作用。2.2、 硬件設計本小車的硬件部分分為幾
26、個模塊:超聲波傳感器、Arduino 單片機、電源、兩個直流電動機、電機驅(qū)動板、車身。電源連接在Arduino 單片機上給整個小車供電。小車以Arduino 單片機為核心,連接電機驅(qū)動板控制兩個直流電動機的運轉(zhuǎn),從而實現(xiàn)小車的前進。將超聲波傳感器安置在車身的最前端,用于探測前方是否有障礙物。當超聲波傳感器遇到障礙物,將反饋提供到單片機里從而做出向左旋轉(zhuǎn)的反應,再次檢測前方是否有障礙物,若有障礙物則繼續(xù)旋轉(zhuǎn),沒有障礙物則電機驅(qū)動器驅(qū)動電機前進,從而實現(xiàn)整個小車的避障功能。硬件框架圖如圖 2- 1 。2- 1 :硬件設計框架2.3、 軟件設計2.3.1、 Arduino 語言Arduino 語言具
27、有如下特點:1. 開放源代碼的電路圖設計,程序開發(fā)接口免費下載,也可依需求自己修改。2. 使用低價格的微處理控制器(AVR 系列控制器),可以采用USB 接口供電,不需外接電源,也可以使用外部9VDC 輸入。3. Arduino 支持 ISP 在線燒,可以將新的“bootloader”固件燒入AVR 芯片。有了 bootloader 之后,可以通過串口或者USB to Rs232 線更新固件。4. 可依據(jù)官方提供的Eagle 格式 PCB 和 SCH 電路圖簡化Arduino 模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺
28、服馬達, 等 )5. 支持多種互動程序,如:Flash、 Max/Msp 、 VVVV 、 PD、 C、 Processing等。6. 應用方面,利用Arduino ,突破以往只能使用鼠標、鍵盤、CCD 等輸入的裝置的互動內(nèi)容,可以更簡單地達成單人或多人游戲互動。Arduino 的功能:Arduino 可以讓我們快速使用與Macromedia Flash, Processing, Max/MSP,Pure Data, SuperCollider 等軟件結合,作出互動作品。Arduino 可以使用現(xiàn)有的電子元件例如開關或者傳感器或者其他控制器件、LED 、步進馬達或其他輸出裝置。 Arduino
29、 也可以獨立運行,并與軟件進行交互,例如:Macromedia Flash,Processing,Max/MSP, Pure Data,VVVV 或其他互動軟件,Arduino 的 IDE 界面基于開放源代碼,可以讓我們免費下載使用,開發(fā)出更多令人驚艷的互動作品。Arduino 可使用 ICSP 線上燒入器,將bootloader燒入新的IC 晶片;可依據(jù)官方電路圖,簡化Arduino 模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超聲波,熱敏電阻,光敏電阻,伺服馬達等);支援多樣的互動程序例如: Macromedia Flash 、 Max/Msp
30、、VVVV 、 PD、 C、 Processing 等;使用低價格的微處理控制器(ATMEGA 8-168) ;USB 接口,不需外接電源。另外有提供9V 直流電源輸入;在應用方面,利用Arduino ,突破以往只能使用鼠標,鍵盤,CCD 等輸入的裝置進行互動內(nèi)容的設計,可以更簡單地達成單人或多人游戲互動。2.3.2、 Arduino IDEc 的語言。在這個界面里有如圖 2- 2這是運行界面。Arduino 語言是一種類我們編程時最常用的東西。當我們把鼠標放在上面就會在右側出現(xiàn)按鍵的功能。圖 2- 2 : Arduino IDE 運行界面如圖 2- 3所示,標示位置上傳功能。最右邊的圖標是我
31、們需要熟知的串口監(jiān)視器,快捷鍵是:Ctrl+Shift+M 。點這個圖標有用的前提是插上了串口設備,當然 Arduino 插在 USB 上也可以,Arduino Uno 主板上內(nèi)置了USB 轉(zhuǎn)串口芯片。2- 3 :下載到機器人控制器Arduino 中這就是串口監(jiān)視器的運行畫面相對于網(wǎng)上流傳的眾多串口調(diào)試軟件,它的 功能可以說較為簡單。右下角是波特率,波特率接收端和發(fā)射端要相同,要不然 收到的會是亂碼。圖 2- 4 :串口監(jiān)視器如果電腦沒找到串口或者驅(qū)動沒裝好,就會有如圖2- 5的提示。serial port2- 5 :沒有找到串口報錯Arduino IDE 的菜單欄中有很多選項,例如“文件”“
32、編輯”等英文界面。其中 Sketch 是草圖的意思,在Arduino IDE 中,每個Arduino 程序都稱為sketch,他是一個可以上傳進Arduino Board 中的程序包,當然經(jīng)過編譯以后他就不是代碼包了。Tools 里面第一項,自動格式,當你把一段從網(wǎng)上下載的源代碼放到 sketch 里面,會有一些縮進的亂碼,這時,Auto Format 就起到了很好的作用。當我們編寫好程序后,點擊下載,IDE 會自動編譯,上傳。如果程序有錯誤,就會有如圖2- 6的顯示,標出了行號。修改程序后就可以繼續(xù)編譯上傳了。圖 2- 6 :提示編譯錯誤2.4、 設計前期準備搭建智能避障機器人需要準備的零件
33、清單:表 2- 1 :搭建智能機器人主體零件清單一、主體清單序 號名稱規(guī)格位 號用 量序 號名稱規(guī)格位號用 量1控制板ArduinoUNO R319電機驅(qū)動 模塊29812轉(zhuǎn)接板UNO功能轉(zhuǎn) 接板ZYV6 轉(zhuǎn)接 板1103MM底盤透明2驅(qū)15杜邦線4P 母對母20CM4P整條111電池盒轉(zhuǎn) 接板亞克力材質(zhì)16杜邦線2P 公對母20CM單根的112USB方頭線1765MM橡膠輪 子213電機1:48雙軸直流減速電機28電機固 定片亞克力電 機固定片4146 節(jié)電池盒1表 2- 2 :搭建智能機器人主體額外附件清單二、額外附件清單序 號名名規(guī)格稱備注用 量序 號名名規(guī)格稱備注用 量1M3*25 通
34、孔銅柱87M3*8螺絲302M3*10 通孔銅柱48M3*30 螺絲532P 20CM線紅色剪 掉端子49清單一張14萬向輪110M3 螺帽125扎帶211M3*10 螺絲3表 2- 3 :搭建帶云臺的超聲波模塊零件清單三、超聲波避障帶舵機云臺清單序 號名稱規(guī)格位號用 量序 號名稱規(guī)格位號用 量1超聲 波模 塊ZYXJ0314杜邦線4P 母對 母杜邦線22銅柱M3*50 通 孔銅柱25M3*8螺 絲要圓頭螺絲43轉(zhuǎn)接 板超聲波小轉(zhuǎn)接板16舵機云 臺上下 板超聲波舵機云臺1第三章 硬件模塊3.1 、各模塊的的基本性能3.1.1、 單片機模塊本設計采用Atmel Atmega328 微處理控制器。
35、其性能為:Digital I/O 數(shù)字輸入 /輸出端共013。 Analog I/O 模擬輸入/輸出端共05。支持ISP 下載功能。輸入電壓:接上電腦USB 時無須外部供電,外部供電7V12V 直流電壓輸入。輸出電壓:5V直流電壓輸出和3.3V 直流電壓輸出。3- 1 : Arduino Uno 實物圖3.1.2、 電機、電機驅(qū)動模塊本設計采用由雙極性管組成的H 橋電路(L298N )。用單片機控制晶體管使之工作在占空比可調(diào)的開關狀態(tài),精確調(diào)整電機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H 橋電路保證了可以簡單地實現(xiàn)轉(zhuǎn)速和方向的控制,電子開關的速度很快,穩(wěn)定性也很高。而且它
36、有更強的驅(qū)動能力。而且 L298N 有過電流保護功能,當出現(xiàn)電機卡死時,可以保護電路和電機。這種調(diào)速方式有調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、過載能力大,能承受頻繁的負載沖擊,還可以實現(xiàn)頻繁的無級快速啟動、制動和反轉(zhuǎn)等優(yōu)點。因此決定采用使用功率三極管作為功率放大器的輸出控制直流電機。3- 2 : L298N 引腳圖3- 3 : L298N 電路原理圖3.1.3、 避障模塊本設計采用HC-SR04 超聲波測距模塊,該原件可提供2CM-400CM 的非接觸式距離感測功能,測距精度可達高到3mm;模塊包括超聲波發(fā)射器,接收器和控制電路?;竟ぷ髟恚?1)采用 IO 口 TRIG 觸發(fā)測距,給至少1
37、0us 的高電平信號;(2)模塊自動發(fā)送8 個 40khz 的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO 口 ECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=( 高電平時間*聲速 (340M/S)/2;3- 5 :避障模塊實物圖3.1.4、 電源模塊本設計采用的電源為車載電源。為保證電源工作可靠,單片機系統(tǒng)與動力伺 服系統(tǒng)的電源采用了大功率、大容量的蓄電池;而傳感器的工作電源則采用了小 巧輕便的干電池。圖 3- 6 :電源模塊實物圖3.2、小車的基本搭建舵機云臺和超聲波的連接步驟如下圖:首先,我們來搭建舵機云臺的下端結構部分,如圖3- 7所示,列
38、出了所需零件,如下圖3- 8所示,標出了舵機放置位置,采用云臺模塊自帶的自攻螺絲固定舵機,如下圖3- 9所示:3- 7 :安裝下端結構所需零件基于 arduino 的智能小車的設計3- 8 :舵機放置位置3- 10 :自攻螺絲固定舵機側面圖固定云臺下固定板到arduino 智能機器人底板上,如下圖3- 11、圖3- 12所示采用M3*8 的螺絲固定M3*30 的通孔銅柱,具體位置如圖標志。3- 11 :固定安裝銅柱圖 3- 12 :固定安裝銅柱背面采用 M3*8 的平頭螺絲固定云臺底板到智能小車上底板上,如下圖3- 13、3- 14所示:3- 13 :安裝云臺底板固定3- 14 :扭上云臺底板
39、固定螺絲固定云臺上底板和超聲波模塊,如下圖3- 15所示,安裝舵機上底板的位置,我們需要用力把上底板舵盤插入舵機主軸中,完成完成后,我們需要左右轉(zhuǎn)動舵機是否可以左側旋轉(zhuǎn)約90 °,右側旋轉(zhuǎn)約90 °,如果不能調(diào)到位置需要反復調(diào)整舵機與舵盤的安裝位置。3- 15 :安裝上底板位置關系3- 16 :安裝上底板位置側面圖云臺上底板與舵機安裝注意事項:1、 需要用力把上底板舵盤與舵機主軸對齊,用力插入,直到完全重合為止。2、 安裝完成后,需要用力旋轉(zhuǎn)云臺,可以左側旋轉(zhuǎn)約90°、右入,直到滿足位置。這兩點必須反復操作,因為舵機為 方,按照理想狀態(tài),左側可以探測 為最大探測范
40、圍。側也約 90 ° 位置,如果達不到這個要求,需要重新修正插180 °舵機,安裝位置為正前90°,右側也可以探測90固定舵機螺絲和安裝超聲波模塊,如下圖3- 17、圖3- 18所示,采用舵機模塊自帶的自攻螺絲固定舵機模塊,固定完成后,插上超聲波模塊,即可安裝完成。3- 17 :裝上超聲波模塊3- 18 :裝上超聲波模塊效果圖573- 19 :小車搭建成品3.3、電路連線3.3.1、電機的連線3- 20 :電機線接線3- 21 :電機驅(qū)動模塊端口標記表 3- 1 :電機與電機驅(qū)動模塊接線電機電機驅(qū)動模塊左側紅色輸出A: A2左側黑色輸出A: A1右側紅色輸出B :
41、 B2右側黑色輸出B : B13- 22 :信號引腳和電源引腳位置3- 23 : arduino Uno 功能擴展板端接線表 3- 2 :電機與arduino 功能擴展板接線電機驅(qū)動模塊Arduino Uno 功能轉(zhuǎn)接板IN1D8IN2D9IN3D10IN4D113- 24 :電機驅(qū)動模塊電源線接線3- 25 : arduino 端接線表 3- 3 :電機驅(qū)動模塊電源線接線電機驅(qū)動模塊Arduino Uno 功能轉(zhuǎn)接板+12V9V供電GNDGND3.3.2、超聲波云臺接線超聲波云臺接線是由兩部分組成,第一部分是超聲波模塊,第二部分屬于3- 26、圖3- 27所示:首先設置函數(shù):myservo.
42、attach(2); / 定義伺服馬達輸出第5 腳位。舵機需要連接的有三條線,分別是+ , -,信號。三條線均直接連接到Arduino 板上。3- 26 :超聲波接線3- 27 :云臺舵機接線具體接線如下表 3- 4所示表 3- 4 :超聲波云臺接線表超聲波云臺模塊Arduino Uno 功能轉(zhuǎn)接板超聲波模塊VCCV超聲波模塊GNDG超聲波模塊TrigA0超聲波模塊EchoA1云臺舵機灰色線G云臺舵機紅色線V云臺舵機黃色D24.1 、軟件設計思路第四章 軟件模塊在軟件設計方面,采用Arduino 語言編程,編寫程序流程圖4- 1所示:4- 1 :軟件設計思路4.2、程序設計代碼腳本實現(xiàn)/= 智
43、宇科技=/ 智能小車超聲波避障實驗(有舵機)/ 程序中電腦打印數(shù)值部分都被屏蔽了,打印會影響小車遇到障礙物的反應速度/ 調(diào)試時可以打開屏蔽內(nèi)容Serial.print,打印測到的距離/ 本實驗控制速度的pwm 值和延時均有調(diào)節(jié),但還是配合實際情況,實際電量調(diào)節(jié)數(shù)值/= /#include <Servo.h>int Echo = A1;/ Echo 回聲腳 (P2.0)int Trig =A0;/ Trig 觸發(fā)腳 (P2.1)int Front_Distance = 0;/int Left_Distance = 0;int Right_Distance = 0;int Left_m
44、otor_go=8;/左電機前進(IN1)int Left_motor_back=9; /左電機后退(IN2)int Right_motor_go=10; / 右電機前進(IN3)int Right_motor_back=11; / 右電機后退(IN4)int key=A2;/ 定義按鍵A2 接口int beep=A3;/定義蜂鳴器A3 接口/const int SensorRight = 3;/右循跡紅外傳感器(P3.2 OUT1)/const int SensorLeft = 4;/左循跡紅外傳感器(P3.3 OUT2)/const int SensorRight_2 = 6;/右紅外傳感
45、器(P3.5 OUT4)/const int SensorLeft_2 = 5;/左紅外傳感器(P3.4 OUT3)/int SL;/左循跡紅外傳感器狀態(tài)/int SR;/右循跡紅外傳感器狀態(tài)/int SL_2;/左紅外傳感器狀態(tài)/int SR_2;/右紅外傳感器狀態(tài)int servopin=2;/ 設置舵機驅(qū)動腳到數(shù)字口2int myangle;/ 定義角度變量int pulsewidth;/ 定義脈寬變量int val;void setup()Serial.begin(9600); / 初始化串口/初始化電機驅(qū)動IO 為輸出方式pinMode(Left_motor_go,OUTPUT);
46、/ PIN 8 (PWM) pinMode(Left_motor_back,OUTPUT); / PIN 9 (PWM) pinMode(Right_motor_go,OUTPUT);/ PIN 10 (PWM) pinMode(Right_motor_back,OUTPUT);/ PIN 11 (PWM) pinMode(key,INPUT);/ 定義按鍵接口為輸入接口 pinMode(beep,OUTPUT);/ pinMode(SensorRight, INPUT); / 定義右循跡紅外傳感器為輸入/ pinMode(SensorLeft, INPUT); / 定義左循跡紅外傳感器為輸入
47、/pinMode(SensorRight_2, INPUT); / 定義右紅外傳感器為輸入/pinMode(SensorLeft_2, INPUT); / 定義左紅外傳感器為輸入/初始化超聲波引腳pinMode(Echo, INPUT);/ 定義超聲波輸入腳pinMode(Trig, OUTPUT);/ 定義超聲波輸出腳pinMode(servopin,OUTPUT);/ 設定舵機接口為輸出接口/= 智能小車的基本動作=/void run(int time) / 前進void run() / 前進digitalWrite(Right_motor_go,HIGH); / 右電機前進 digita
48、lWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,165);/PWM 比例 0255 調(diào)速,左右輪差異略增減 analogWrite(Right_motor_back,0);digitalWrite(Left_motor_go,LOW); / 左電機前進 digitalWrite(Left_motor_back,HIGH);analogWrite(Left_motor_go,0);/PWM 比例 0255 調(diào)速,左右輪差異略增減 analogWrite(Left_motor_back,160);/delay(time * 100);
49、/執(zhí)行時間,可以調(diào)整void brake(int time)/剎車,停車digitalWrite(Right_motor_go,LOW);digitalWrite(Right_motor_back,LOW);digitalWrite(Left_motor_go,LOW);digitalWrite(Left_motor_back,LOW);delay(time * 100);/ 執(zhí)行時間,可以調(diào)整void left(int time)/左轉(zhuǎn)(左輪不動,右輪前進)/void left()/左轉(zhuǎn)(左輪不動,右輪前進)digitalWrite(Right_motor_go,HIGH); / 右電機前進
50、digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,180);analogWrite(Right_motor_back,0);/PWM 比例 0255 調(diào)速digitalWrite(Left_motor_go,LOW); /左輪后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,0);analogWrite(Left_motor_back,0);/PWM 比例 0255 調(diào)速delay(time * 100);/執(zhí)行時間,可以調(diào)整void spin_l
51、eft(int time)/左轉(zhuǎn) (左輪后退,右輪前進)digitalWrite(Right_motor_go,HIGH); / 右電機前進digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,200);analogWrite(Right_motor_back,0);/PWM 比例 0255 調(diào)速digitalWrite(Left_motor_go,HIGH);/左輪后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,200);analogWrite(Left_motor_back,0);/PWM 比例 0255 調(diào)速 delay(time * 100);/執(zhí)行時間,可以調(diào)整void right(int time)/void right()/右轉(zhuǎn)(右輪不動,左輪前進)digitalWrite(Right_motor_go,LOW);/右電機后退digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,0);analogWrite(Right_motor_back,0);/PWM 比例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生態(tài)旅游場承包經(jīng)營合作協(xié)議范本4篇
- 2025年度大棚農(nóng)業(yè)保險合作協(xié)議3篇
- 二手房交易標準協(xié)議樣本(2024個人版)版
- 2025年度叉車租賃與租賃物租賃期限調(diào)整合同4篇
- 2025年昌月離婚協(xié)議書婚姻解除及財產(chǎn)清算范本4篇
- 2025年度航空航天材料質(zhì)量保證協(xié)議4篇
- 2024年重慶地區(qū)標準離婚合同模板一
- 2024私募股權投資居間協(xié)議
- 專項舞臺效果策劃與實施協(xié)議版A版
- 2024年食堂運營合作協(xié)議標準文本版
- 2024解析:第三章物態(tài)變化-講核心(原卷版)
- DB32T 1590-2010 鋼管塑料大棚(單體)通 用技術要求
- 安全行車知識培訓
- 2024年安徽省高校分類對口招生考試數(shù)學試卷真題
- 第12講 語態(tài)一般現(xiàn)在時、一般過去時、一般將來時(原卷版)
- 2024年采購員年終總結
- 2024年新疆區(qū)公務員錄用考試《行測》試題及答案解析
- 肺動脈高壓的護理查房課件
- 2025屆北京巿通州區(qū)英語高三上期末綜合測試試題含解析
- 公婆贈予兒媳婦的房產(chǎn)協(xié)議書(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
評論
0/150
提交評論