物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、物聯(lián)網(wǎng)系統(tǒng)課程設(shè)計(jì)學(xué)系名稱:物聯(lián)網(wǎng)工程班級(jí)名稱:物聯(lián)網(wǎng)工程 2 班學(xué)生姓名:朱泓錦 20136239指導(dǎo)教師:肖迎元 助教: 二零一六年十月摘要智能車輛是集環(huán)境感知、規(guī)劃決策、多等級(jí)輔助駕駛等功能于一體的綜合系統(tǒng),是智能交通系統(tǒng)的一個(gè)重要組成部分。它在軍事、民用、太空開(kāi)發(fā)等領(lǐng)域有著廣泛的應(yīng)用前景。隨著電子工業(yè)的發(fā)展,智能技術(shù)廣泛運(yùn)用于各種領(lǐng)域,運(yùn)用于智能家居中的產(chǎn)品更是越來(lái)越受到人們的青睞。以arduino程序和藍(lán)牙模組,app為基礎(chǔ),是藍(lán)牙模組,arduino小車和手機(jī)之間信息交互的關(guān)鍵。本課題所研究的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)以arduino程序?yàn)楹诵?,利用藍(lán)牙模組,arduino小車和app等實(shí)現(xiàn)基

2、本功能?;竟δ埽豪盟{(lán)牙模組和app之間的信息交互,控制小車的移動(dòng),從而達(dá)到無(wú)線控制的效果 注:僅能實(shí)現(xiàn)小車的基本操作 關(guān)鍵詞:arduino程序,arduino小車,app,藍(lán)牙模組1 緒論隨著科技進(jìn)步,現(xiàn)代工業(yè)技術(shù)發(fā)展越來(lái)越體現(xiàn)出機(jī)電一體化的特征。無(wú)論是在金屬加工、汽車技術(shù)、工業(yè)生產(chǎn)等等方面,機(jī)器設(shè)備表現(xiàn)了所謂智能化、集成化、小型化、高精度化的發(fā)展趨勢(shì)。 1.1 選題背景隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來(lái)越受人關(guān)注。全國(guó)電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國(guó)各高校也都很重視該題目的研究??梢?jiàn)其研究意義很大。本設(shè)計(jì)就是在這樣的背景下提出的,指導(dǎo)教師已經(jīng)有充

3、分的準(zhǔn)備。本題目是結(jié)合科研項(xiàng)目而確定的設(shè)計(jì)類課題。設(shè)計(jì)的智能電動(dòng)小車應(yīng)該能夠?qū)崿F(xiàn)適應(yīng)能力,能自動(dòng)避障,可以智能規(guī)劃路徑。智能化作為現(xiàn)代社會(huì)的新產(chǎn)物,是以后的發(fā)展方向,他可以按照預(yù)先設(shè)定的模式在一個(gè)特定的環(huán)境里自動(dòng)的運(yùn)作,無(wú)需人為管理,便可以完成預(yù)期所要達(dá)到的或是更高的目標(biāo)。同遙控小車不同,遙控小車需要人為控制轉(zhuǎn)向、啟停和進(jìn)退,比較先進(jìn)的遙控車還能控制器速度。常見(jiàn)的模型小車,都屬于這類遙控車;智能小車,則可以通過(guò)計(jì)算機(jī)編程來(lái)實(shí)現(xiàn)其對(duì)行駛方向、啟停以及速度的控制,無(wú)需人工干預(yù)。操作員可以通過(guò)修改智能小車的計(jì)算機(jī)程序來(lái)改變它的行駛方向。因此,智能小車具有再編程的特性,是機(jī)器人的一種。中國(guó)自1978年

4、把“智能模擬”作為國(guó)家科學(xué)技術(shù)發(fā)展規(guī)劃的主要研究課題,開(kāi)始著力研究智能化。從概念的引進(jìn)到實(shí)驗(yàn)室研究的實(shí)現(xiàn),再到現(xiàn)在高端領(lǐng)域(航天航空、軍事、勘探等)的應(yīng)用,這一過(guò)程為智能化的全面發(fā)展奠定基石。智能化全面的發(fā)展是實(shí)現(xiàn)其對(duì)資源的合理充分利用,以盡可能少的投入得到最大的收益,大大提高工業(yè)生產(chǎn)的效率,實(shí)現(xiàn)現(xiàn)有工業(yè)生產(chǎn)水平從自動(dòng)化向智能化升級(jí),實(shí)現(xiàn)當(dāng)今智能化發(fā)展由高端向大眾普及。從先前的模擬電路設(shè)計(jì),到數(shù)字電路設(shè)計(jì),再到現(xiàn)在的集成芯片的應(yīng)用,各種能實(shí)現(xiàn)同樣功能的元件越來(lái)越小為智能化產(chǎn)物的生成奠定了良好的物質(zhì)基礎(chǔ)。智能小車,是一個(gè)集環(huán)境感知、規(guī)劃決策,自動(dòng)行駛等功能于一體的綜合系統(tǒng),它集中地運(yùn)用了計(jì)算機(jī)、

5、傳感、信息、通信、導(dǎo)航、人工智能及自動(dòng)控制等技術(shù),是典型的高新技術(shù)綜合體。1.2 智能小車研究現(xiàn)狀智能車輛作為智能交通系統(tǒng)的關(guān)鍵技術(shù),是許多高新技術(shù)綜合集成的載體。智能車輛駕駛是一種通用性術(shù)語(yǔ),指全部或部分完成一項(xiàng)或多項(xiàng)駕駛?cè)蝿?wù)的綜合車輛技術(shù)。智能車輛的一個(gè)基本特征是在一定道路條件下實(shí)現(xiàn)全部或者部分的自動(dòng)駕駛功能,下面簡(jiǎn)單介紹一下國(guó)內(nèi)外智能小車研究的發(fā)展情況。1.2.1 國(guó)外智能車輛研究現(xiàn)狀國(guó)外智能車輛的研究歷史較長(zhǎng),始于上世紀(jì)50年代。它的發(fā)展歷程大體可以分成三個(gè)階段:第一階段 20世紀(jì)50年代是智能車輛研究的初始階段。1954年美國(guó)Barrett Electronics 公司研究開(kāi)發(fā)了世界

6、上第一臺(tái)自主引導(dǎo)車系統(tǒng)AGVS(Automated Guided Vehicle System)。該系統(tǒng)只是一個(gè)運(yùn)行在固定線路上的拖車式運(yùn)貨平臺(tái),但它卻具有了智能車輛最基本得特征即無(wú)人駕駛。早期研制AGVS的目的是為了提高倉(cāng)庫(kù)運(yùn)輸?shù)淖詣?dòng)化水平,應(yīng)用領(lǐng)域僅局限于倉(cāng)庫(kù)內(nèi)的物品運(yùn)輸。隨著計(jì)算機(jī)的應(yīng)用和傳感技術(shù)的發(fā)展,智能車輛的研究不斷得到新的發(fā)展。第二階段 從80年代中后期開(kāi)始,世界主要發(fā)達(dá)國(guó)家對(duì)智能車輛開(kāi)展了卓有成效的研究。在歐洲,普羅米修斯項(xiàng)目于1986年開(kāi)始了在這個(gè)領(lǐng)域的探索。在美洲,美國(guó)于1995年成立了國(guó)家自動(dòng)高速公路系統(tǒng)聯(lián)盟(NAHSC),其目標(biāo)之一就是研究發(fā)展智能車輛的可能性,并促進(jìn)智

7、能車輛技術(shù)進(jìn)入實(shí)用化。在亞洲,日本于1996年成立了高速公路先進(jìn)巡航/輔助駕駛研究會(huì),主要目的是研究自動(dòng)車輛導(dǎo)航的方法,促進(jìn)日本智能車輛技術(shù)的整體進(jìn)步。進(jìn)入80年代中期,設(shè)計(jì)和制造智能車輛的浪潮席卷全世界,一大批世界著名的公司開(kāi)始研制智能車輛平臺(tái)。第三階段 從90年代開(kāi)始,智能車輛進(jìn)入了深入、系統(tǒng)、大規(guī)模研究階段。最為突出的是,美國(guó)卡內(nèi)基.梅隆大學(xué)(Carnegie Mellon University)機(jī)器人研究所一共完成了Navlab系列的10臺(tái)自主車(Navlab1Navlab10)的研究,取得了顯著的成就。目前,智能車輛的發(fā)展正處于第三階段。這一階段的研究成果代表了當(dāng)前國(guó)外智能車輛的主要

8、發(fā)展方向。在世界科學(xué)界和工業(yè)設(shè)計(jì)界中,眾多的研究機(jī)構(gòu)研發(fā)的智能車輛具有代表性的有:德意志聯(lián)邦大學(xué)的研究 1985年,第一輛VaMoRs智能原型車輛在戶外高速公路上以100km/h的速度進(jìn)行了測(cè)試,它使用了機(jī)器視覺(jué)來(lái)保證橫向和縱向的車輛控制。1988年,在都靈的PROMRTHEUS項(xiàng)目第一次委員會(huì)會(huì)議上,智能車輛維塔(VITA,7t)進(jìn)行了展示,該車可以自動(dòng)停車、行進(jìn),并可以向后車傳送相關(guān)駕駛信息。這兩種車輛都配備了UBM視覺(jué)系統(tǒng)。這是一個(gè)雙目視覺(jué)系統(tǒng),具有極高的穩(wěn)定性。荷蘭鹿特丹港口的研究 智能車輛的研究主要體現(xiàn)在工廠貨物的運(yùn)輸。荷蘭的Combi road系統(tǒng),采用無(wú)人駕駛的車輛來(lái)往返運(yùn)輸貨物

9、,它行駛的路面上采用了磁性導(dǎo)航參照物,并利用一個(gè)光陣列傳感器去探測(cè)障礙。荷蘭南部目前正在討論工業(yè)上利用這種系統(tǒng)的問(wèn)題,政府正考慮已有的高速公路新建一條專用的車道,采用這種系統(tǒng)將貨物從鹿特丹運(yùn)往各地。日本大阪大學(xué)的研究 大阪大學(xué)的Shirai實(shí)驗(yàn)室所研制的智能小車,采用了航位推測(cè)系統(tǒng)(Dead Reckoning System),分別利用旋轉(zhuǎn)編碼器和電位計(jì)來(lái)獲取智能小車的轉(zhuǎn)向角,從而完成了智能小車的定位。另外,斯特拉斯堡實(shí)驗(yàn)中心、英國(guó)國(guó)防部門(mén)的研究、美國(guó)卡內(nèi)基梅隆大學(xué)、奔馳公司、美國(guó)麻省理工學(xué)院、韓國(guó)理工大學(xué)對(duì)智能車輛也有較多的研究。1.2.2 國(guó)內(nèi)智能車輛研究現(xiàn)狀相比于國(guó)外,我國(guó)開(kāi)展智能車輛技

10、術(shù)方面的研究起步較晚,開(kāi)始于20世紀(jì)80年代。而且大多數(shù)研究處在于針對(duì)某個(gè)單項(xiàng)技術(shù)研究的階段。雖然我國(guó)在智能車輛技術(shù)方面的研究總體上落后于發(fā)達(dá)國(guó)家,并且存在一定得技術(shù)差距,但是我們也取得了一系列的成果,主要有:(1)中國(guó)第一汽車集團(tuán)公司和國(guó)防科技大學(xué)機(jī)電工程與自動(dòng)化學(xué)院與2003年研制成功我國(guó)第一輛自主駕駛轎車。該自主駕駛轎車在正常交通情況下的高速公路上,行駛的最高穩(wěn)定速度為13km/h,最高峰值速度達(dá)170km/h,并且具有超車功能,其總體技術(shù)性能和指標(biāo)已經(jīng)達(dá)到世界先進(jìn)水平。(2)南京理工大學(xué)、北京理工大學(xué)、浙江大學(xué)、國(guó)防科技大學(xué)、清華大學(xué)等多所院校聯(lián)合研制了7B.8軍用室外自主車,該車裝有

11、彩色攝像機(jī)、激光雷達(dá)、陀螺慣導(dǎo)定位等傳感器。計(jì)算機(jī)系統(tǒng)采用兩臺(tái)Sun10完成信息融合、路徑規(guī)劃,兩臺(tái)PC486完成路邊抽取識(shí)別和激光信息處理,8098單片機(jī)完成定位計(jì)算和車輛自動(dòng)駕駛。其體系結(jié)構(gòu)以水平式結(jié)構(gòu)為主,采用傳統(tǒng)的“感知-建模-規(guī)劃-執(zhí)行”算法,其直線跟蹤速度達(dá)到20km/h,避障速度達(dá)到5-10km/h。智能車輛研究也是智能交通系統(tǒng)ITS的關(guān)鍵技術(shù)。目前,國(guó)內(nèi)的許多高校和科研院所都在進(jìn)行ITS關(guān)鍵技術(shù)、設(shè)備的研究。隨著ITS研究的興起,我國(guó)已形成一支ITS技術(shù)研究開(kāi)發(fā)的技術(shù)專業(yè)隊(duì)伍。并且各交通、汽車企業(yè)越來(lái)越加大了對(duì)ITS及智能車輛技術(shù)研發(fā)的投入,整個(gè)社會(huì)的關(guān)注程度在不斷提高。交通部

12、已將ITS研究列入“十五”科技發(fā)展計(jì)劃和2010年長(zhǎng)期規(guī)劃。相信經(jīng)過(guò)相關(guān)領(lǐng)域的共同努力,我國(guó)ITS及智能車輛的技術(shù)水平一定會(huì)得到很大提高??梢灶A(yù)計(jì),我國(guó)飛速發(fā)展的經(jīng)濟(jì)實(shí)力將為智能車輛的研究提供一個(gè)更加廣闊的前景。我們要結(jié)合我國(guó)國(guó)情,在某一方面或某些方面,對(duì)智能車進(jìn)行深入細(xì)致的研究,為它今后的發(fā)展及實(shí)際應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。1.3 課題主要內(nèi)容本課題南京嵌入之夢(mèng)工作室的fira智能小車平臺(tái),選擇通用、價(jià)廉的Arduino單片機(jī)為控制平臺(tái),通過(guò)細(xì)化設(shè)計(jì)要求,結(jié)合傳感器技術(shù)和電機(jī)控制技術(shù)相關(guān)知識(shí)實(shí)現(xiàn)小車的各種功能。實(shí)現(xiàn)小車的前進(jìn)倒退、轉(zhuǎn)向行駛,達(dá)到設(shè)計(jì)目標(biāo)。2 智能小車總體結(jié)構(gòu)2.1 方案綜述本設(shè)計(jì)以

13、兩直流電動(dòng)機(jī)為主驅(qū)動(dòng),通過(guò)各類傳感器件來(lái)采集各類信息,送入主控單元Arduino單片機(jī)處理數(shù)據(jù)后完成相應(yīng)動(dòng)作,以達(dá)到自身控制。電機(jī)驅(qū)動(dòng)電路采用H橋驅(qū)動(dòng)模塊,驅(qū)動(dòng)2個(gè)直流電機(jī);最后由控制單元處理數(shù)據(jù)后通過(guò)編程有序合理的將各模塊信號(hào)整合在一起并完成相應(yīng)動(dòng)作,實(shí)現(xiàn)了智能控制,相當(dāng)于簡(jiǎn)易機(jī)器人。根據(jù)設(shè)計(jì)的作品要達(dá)到的效果,本系統(tǒng)以Arduino單片機(jī)為核心控制器,主要由電源模塊、電機(jī)驅(qū)動(dòng)模塊、構(gòu)成。系統(tǒng)的結(jié)構(gòu)框圖如下圖1所示。Arduino單片機(jī)驅(qū)動(dòng)電路直流電動(dòng)機(jī)輪子電源圖2.1 系統(tǒng)結(jié)構(gòu)框圖2.2 主控單元方案比較與選擇按照題目要求,控制器主要用于控制電機(jī),通過(guò)相關(guān)傳感器對(duì)路面的軌跡信息進(jìn)行處理,并

14、將處理信號(hào)傳輸給控制器,然后控制器做出相應(yīng)的處理,實(shí)現(xiàn)小車的自動(dòng)循跡和自動(dòng)避障。 方案一:可以采用ARM為系統(tǒng)的控制器,優(yōu)點(diǎn)是該系統(tǒng)功能強(qiáng)大,片上外設(shè)集成度搞密度高,提高了穩(wěn)定性,系統(tǒng)的處理速度也很高,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。方案二:采用Arduino單片機(jī)作為系統(tǒng)控制的方案。Arduino單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,功耗低、體積小、技術(shù)成熟,成本也比ARM低。考慮到性價(jià)比問(wèn)題,本設(shè)計(jì)選擇 用Arduino單片機(jī)做控制器。2.3 “小車”的必要的信息 步進(jìn)電機(jī)參數(shù):步進(jìn)電機(jī)技術(shù)要求:步進(jìn)電機(jī)示例圖:智能小車底盤(pán)參考電路圖:藍(lán)牙模塊:3智能小車的大腦這是學(xué)習(xí)單片機(jī)應(yīng)用

15、的平臺(tái),而單片機(jī)的種類眾多,除了流行的 8位機(jī):51、AVR、PIC系列,還有日漸被接受的 16位機(jī) MSP430系列,以及最近升勢(shì)很猛的 ARM CortexM系列,這些單片機(jī)各有優(yōu)勢(shì),無(wú)法說(shuō)誰(shuí)好誰(shuí)壞,完全取決于學(xué)習(xí)者的需求和喜好,此外還有越來(lái)越接近 MCU的DSP,所以我將這個(gè)權(quán)力交還給用戶。 而且我認(rèn)為:所謂單片機(jī)應(yīng)用學(xué)習(xí),最核心的就是能自己消化一個(gè) MCU,根據(jù)控制需求自己分配 MCU 的資源,編寫(xiě)相應(yīng)的程序,使之能按自己的想法工作。這才是掌握單片機(jī)應(yīng)用的關(guān)鍵! 5.1 Arduino單片機(jī)簡(jiǎn)介  Arduino單片機(jī),是一塊基于開(kāi)放源代碼的USB接口Si

16、mple i/o接口板(包括12通道數(shù)字GPIO,4通道PWM輸出,6-8通道10bit ADC輸入通道),并且具有使用類似Java,C語(yǔ)言的IDE集成開(kāi)發(fā)環(huán)境。 讓您可以快速使用Arduino語(yǔ)言與Flash或Processing等軟件,作出互動(dòng)作品。 Arduino可以使用開(kāi)發(fā)完成的電子元件例如Switch或sensors或其他控制器、LED、步進(jìn)馬達(dá)或其他輸出裝置。Arduino也可以獨(dú)立運(yùn)作成為一個(gè)可以跟軟件溝通的接口,例如說(shuō):flash、processing、Max/MSP、VVVV 或其他互動(dòng)軟件。Arduino開(kāi)發(fā)IDE接口基于開(kāi)放源代碼原,可以讓您免費(fèi)下載使用開(kāi)發(fā)出更多令人驚艷

17、的互動(dòng)作品。 Arduino單片機(jī)特色:1、開(kāi)放源代碼的電路圖設(shè)計(jì),程序開(kāi)發(fā)接口免費(fèi)下載,也可依需求自己修改。 2、使用低價(jià)格的微處理控制器(ATMEGA8或ATmega128)。可以采用USB接口供電,不需外接電源。也可以使用外部9VDC輸入 3、Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入ATmega8或ATmega128芯片。有了bootloader之后,可以通過(guò)串口或者USB to Rs232線更新固件。 4、可依據(jù)官方提供的Eagle格式PCB和SCH電路圖,簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制??珊?jiǎn)單地與傳感器,各式各樣的電子元件連接(EX

18、:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),等) 5、支持多種互動(dòng)程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等 6、應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo),鍵盤(pán),CCD等輸入的裝置的互動(dòng)內(nèi)容,可以更簡(jiǎn)單地達(dá)成單人或多人游戲互動(dòng)。5.2 Arduino單片機(jī)引腳簡(jiǎn)介Arduino的數(shù)字I/O被分成兩個(gè)部分,其中每個(gè)部分都包含有6個(gè)可用的I/O管腳,即管腳2到管腳7和管腳8到管腳13。在數(shù)字電路中開(kāi)關(guān)(switch)是一種基本的輸入形式,它的作用是保持電路的連接或者斷開(kāi)。Arduino從數(shù)字I/O管腳上只能讀出高電平(5V)或者低電平(0V),因

19、此我們首先面臨到的一個(gè)問(wèn)題就是如何將開(kāi)關(guān)的開(kāi)/斷狀態(tài)轉(zhuǎn)變成Arduino能夠讀取的高/低電平。解決的辦法是通過(guò)上/下拉電阻,按照電路的不同通常又可以分為正邏輯(Positive Logic)和負(fù)邏輯(Inverted Logic)兩種。Arduino的優(yōu)勢(shì)在于對(duì)數(shù)字信號(hào)的識(shí)別和處理,但我們所生活的真實(shí)世界并不是數(shù)字(digital)化的,簡(jiǎn)單到只要用0和1就能夠表示所有的現(xiàn)象。例如溫度這一我們已經(jīng)司空見(jiàn)慣的概念,它只能在一個(gè)范圍之內(nèi)連續(xù)變化,而不可能發(fā)生像從0到1這樣的瞬時(shí)跳變,類似這樣的物理量被人們稱為是模擬(analog)的。Arduino是無(wú)法理解這些模擬量的,它們必須在經(jīng)過(guò)模數(shù)轉(zhuǎn)換后變

20、成數(shù)字量后,才能被Arduino進(jìn)一步處理。像溫度這樣的數(shù)據(jù)必須先被轉(zhuǎn)換成微處理器能夠處理的形式(比如電壓),才能被Arduino處理,這一任務(wù)通常由各類傳感器(sensor)來(lái)完成的。例如,電路中的溫度傳感器能夠?qū)囟戎缔D(zhuǎn)換成0V到5V間的某個(gè)電壓,比如0.3V、3.27V、4.99V等。由于傳感器表達(dá)的是模擬信號(hào),它不會(huì)像數(shù)字信號(hào)那樣只有簡(jiǎn)單的高電平和低電平,而有可能是在這兩者之間的任何一個(gè)數(shù)值。至于到底有多少可能的值則取決于模數(shù)轉(zhuǎn)換的精度,精度越高能夠得到的值就會(huì)越多。Arduino所采用的ATmega8微處理器一其有6個(gè)模數(shù)轉(zhuǎn)換器(ADC,Analog to Digital Conve

21、rter),每一個(gè)模數(shù)轉(zhuǎn)換器的精度都是10bit,也就是說(shuō)能夠讀取1024(210 = 1024)個(gè)狀態(tài)。在Arduino的每一個(gè)模擬輸入管腳上,電壓的變化范疇是從0V到5V,因此Arduino能夠感知到的最小電壓變化是4.8毫伏(5/1024 = 4.8mV)。圖5.2 Arduino單片機(jī)引腳定義就像模擬輸入一樣,在現(xiàn)實(shí)的物理世界中我們經(jīng)常需要輸出除了0和1之外的其他數(shù)值。例如,除了想用微控制器找開(kāi)或者關(guān)閉電燈之外,我們還會(huì)想控制燈光的亮度,這時(shí)就需要用到模擬輸出。由于Arduino的微控制器只能產(chǎn)生高電壓(5V)或者低電壓(0V),而不能產(chǎn)生變化的電壓,因此必須采用脈寬度調(diào)制技術(shù)(PWM

22、,Pulse Width Modulation)來(lái)模仿模擬電壓。PWM是一種開(kāi)關(guān)式穩(wěn)壓電源應(yīng)用,它是借助微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常用效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。簡(jiǎn)而言之,PWM是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,它通過(guò)對(duì)半導(dǎo)體開(kāi)關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一系列幅值相等但寬度不相等的脈沖,而這些脈沖能夠被用來(lái)代替正弦波或其它所需要的波形。在Arduino數(shù)字I/O管腳9、10和11上,我們可以通過(guò)analogWrite()函數(shù)來(lái)產(chǎn)生模擬輸出。該函數(shù)有兩個(gè)參數(shù),其中第一個(gè)參數(shù)是要產(chǎn)生模擬信號(hào)的引腳(9、10或者11);第二個(gè)

23、參數(shù)是用于產(chǎn)生模擬信號(hào)的脈沖寬度,取值范圍是0到255。脈沖寬度的值取0可以產(chǎn)生0V的模擬電壓,取255則可以產(chǎn)生5V的模擬電壓。不難看出,脈沖寬度的取值變化1,產(chǎn)生的模擬電壓將變化0.0196V(5/255 = 0.0196)。圖5.3 Arduino單片機(jī)引腳功能表在許多實(shí)際應(yīng)用場(chǎng)合中我們會(huì)要求在Arduino和其它設(shè)備之間實(shí)現(xiàn)相互通信,而最常見(jiàn)通常也是最簡(jiǎn)單的辦法就是使用串行通信。在串行通信中,兩個(gè)設(shè)備之間一個(gè)接一個(gè)地來(lái)回發(fā)送數(shù)字脈沖,它們之間必須嚴(yán)格遵循相應(yīng)的協(xié)議以保證通信的正確性。在PC機(jī)上上最常見(jiàn)的串行通信協(xié)議是RS-232串行協(xié)議,而在各種微控制器(單片機(jī))上采用的則是TTL串行

24、協(xié)議。由于這兩者的電平有很大的不同,因此在實(shí)現(xiàn)PC機(jī)和微控制器的通信時(shí),必須進(jìn)行相應(yīng)的轉(zhuǎn)換。完成RS-232電平和TTL電平之間的轉(zhuǎn)換一般采用專用芯片,如MAX232等,但在Arduino上是用相應(yīng)的電平轉(zhuǎn)換電路來(lái)完成的。根據(jù)Arduino的原理圖我們不難看出,ATmega的RX和TX引腳一方面直接接到了數(shù)字I/O端口的0號(hào)和1號(hào)管腳, 另一方面又通過(guò)電平轉(zhuǎn)換電路接到了串口的母頭上。因此,當(dāng)我們需要用Arduino與PC機(jī)通信時(shí),可以用串口線將兩者連接起來(lái);當(dāng)我們需要用Arduino與微控制器(如另一塊Arduino)通信時(shí),則可以用數(shù)字I/O端口的0號(hào)和1號(hào)管腳。串行通信的難點(diǎn)在于參數(shù)的設(shè)置

25、,如波特率、數(shù)據(jù)位、停止位等,在Arduino語(yǔ)言可以使用Serial.begin()函數(shù)來(lái)簡(jiǎn)化這一任務(wù)。為了實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,Arduino則提供了Serial.print()和Serial.println()兩個(gè)函數(shù),它們的區(qū)別在于后者會(huì)在請(qǐng)求發(fā)送的數(shù)據(jù)后面加上換行符,以提高輸出結(jié)果的可讀性。5.3 Arduino編程軟件Arduino 語(yǔ)言是建立在 C/C+基礎(chǔ)上的,其實(shí)也就是基礎(chǔ)的 C 語(yǔ)言,Arduino 語(yǔ)言只不過(guò)把 AVR 單片機(jī)(微控制器)相關(guān)的一些寄存器參數(shù)設(shè)置等都函數(shù)化了,不用我們?nèi)チ私馑牡讓?,讓不太了?AVR 單片機(jī)(微控制器)的朋友也能輕松上手。圖5.4 編程界面Ar

26、duino 語(yǔ)言是以 setup()開(kāi)頭,loop()作為主體的一個(gè)程序構(gòu)架。官方網(wǎng)站是這樣描述 setup()的:用來(lái)初始化變量,管腳模式,調(diào)用庫(kù)函數(shù)等等,此函數(shù)只運(yùn)行一次。loop()函數(shù)是一個(gè)循環(huán)函數(shù),函數(shù)內(nèi)的語(yǔ)句周而復(fù)始的循環(huán)執(zhí)行,功能類似 c 語(yǔ)言中的“main();”。4智能小車控制流程及程序開(kāi)始藍(lán)牙模組待機(jī)啟動(dòng)app與藍(lán)牙模組配對(duì)利用app對(duì)小車進(jìn)行操作4.2arduino燒錄程序:*前進(jìn) 按下發(fā)出 ONA 松開(kāi)ONF 后退:按下發(fā)出 ONB 松開(kāi)ONF 左轉(zhuǎn):按下發(fā)出 ONC 松開(kāi)ONF 右轉(zhuǎn):按下發(fā)出 OND 松開(kāi)ONF 停止:按下發(fā)出 ONE 松開(kāi)ONF 藍(lán)牙程序功能是按下

27、對(duì)應(yīng)的按鍵執(zhí)行操,松開(kāi)按鍵就停止*/char getstr; /定義字符變量int Left_motor_go=8; /左電機(jī)前進(jìn)(IN1)int Left_motor_back=9; /左電機(jī)后退(IN2)int Right_motor_go=10; / 右電機(jī)前進(jìn)(IN3)int Right_motor_back=11; / 右電機(jī)后退(IN4)/定義電機(jī)的接口void setup() /初始化電機(jī)驅(qū)動(dòng)IO為輸出方式 Serial.begin(9600); pinMode(Left_motor_go,OUTPUT); / PIN 8 (無(wú)PWM) pinMode(Left_motor_ba

28、ck,OUTPUT); / PIN 9 (PWM) pinMode(Right_motor_go,OUTPUT);/ PIN 10 (PWM) pinMode(Right_motor_back,OUTPUT);/ PIN 11 (PWM)void run() digitalWrite(Right_motor_go,HIGH); / 右電機(jī)前進(jìn) digitalWrite(Right_motor_back,LOW); /analogWrite(Right_motor_go,150);/PWM比例0255調(diào)速,左右輪差異略增減 /analogWrite(Right_motor_back,0); di

29、gitalWrite(Left_motor_go,LOW); / 左電機(jī)前進(jìn) digitalWrite(Left_motor_back,HIGH); /analogWrite(Left_motor_go,0);/PWM比例0255調(diào)速,左右輪差異略增減 /analogWrite(Left_motor_back,150); /delay(time * 100); /執(zhí)行時(shí)間,可以調(diào)整 void brake() /剎車,停車 digitalWrite(Right_motor_go,LOW); digitalWrite(Right_motor_back,LOW); digitalWrite(Left

30、_motor_go,LOW); digitalWrite(Left_motor_back,LOW); void left() digitalWrite(Right_motor_go,HIGH);/ 右電機(jī)前進(jìn) digitalWrite(Right_motor_back,LOW); /analogWrite(Right_motor_go,150); /analogWrite(Right_motor_back,0);/PWM比例0255調(diào)速 digitalWrite(Left_motor_go,LOW); /左輪后退 digitalWrite(Left_motor_back,LOW); /anal

31、ogWrite(Left_motor_go,0); /analogWrite(Left_motor_back,0);/PWM比例0255調(diào)速 /delay(time * 100);/執(zhí)行時(shí)間,可以調(diào)整 void spin_left(int time) /左轉(zhuǎn)(左輪后退,右輪前進(jìn)) digitalWrite(Right_motor_go,HIGH);/ 右電機(jī)前進(jìn) digitalWrite(Right_motor_back,LOW); /analogWrite(Right_motor_go,200); /analogWrite(Right_motor_back,0);/PWM比例0255調(diào)速 d

32、igitalWrite(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í)行時(shí)間,可以調(diào)整 void right() digitalWrite(Right_motor_go,LOW); /右電機(jī)后退 digitalWrite(Right_motor_back,LOW); /analogWrite(Right_motor_go,

33、0); / analogWrite(Right_motor_back,0);/PWM比例0255調(diào)速 digitalWrite(Left_motor_go,LOW);/左電機(jī)前進(jìn) digitalWrite(Left_motor_back,HIGH); /analogWrite(Left_motor_go,0); /analogWrite(Left_motor_back,150);/PWM比例0255調(diào)速 /delay(time * 100);/執(zhí)行時(shí)間,可以調(diào)整 void spin_right(int time) /右轉(zhuǎn)(右輪后退,左輪前進(jìn)) digitalWrite(Right_motor_

34、go,LOW); /右電機(jī)后退 digitalWrite(Right_motor_back,HIGH); /analogWrite(Right_motor_go,0); / analogWrite(Right_motor_back,200);/PWM比例0255調(diào)速 digitalWrite(Left_motor_go,LOW);/左電機(jī)前進(jìn) digitalWrite(Left_motor_back,HIGH); / analogWrite(Left_motor_go,0); / analogWrite(Left_motor_back,200);/PWM比例0255調(diào)速 /delay(time * 100);/執(zhí)行時(shí)間,可以調(diào)整 void back() digitalWrite(Right_motor_go,LOW); /右輪后退 digitalWrite(Right_motor_back,HIGH); / analogWrite(Right_motor_go,0); / analogWrit

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論