畢業(yè)設(shè)計(jì)基于Arduino單片機(jī)的智能小車設(shè)計(jì)
-
資源ID:10087401
資源大小:3.74MB
全文頁數(shù):41頁
- 資源格式: DOC
下載積分:15積分
快捷下載
會(huì)員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。
|
畢業(yè)設(shè)計(jì)基于Arduino單片機(jī)的智能小車設(shè)計(jì)
江海職業(yè)技術(shù)學(xué)院學(xué)位論文江海職業(yè)技術(shù)學(xué)院畢 業(yè) 設(shè) 計(jì)畢業(yè)設(shè)計(jì)題目: 姓 名學(xué) 號(hào) : 所在系 (部): 專 業(yè) 及班級(jí): 指 導(dǎo) 教 師: 完 成 日 期: 第3頁中 文 摘 要智能車輛是集環(huán)境感知、規(guī)劃決策、多等級(jí)輔助駕駛等功能于一體的綜合系統(tǒng),是智能交通系統(tǒng)的一個(gè)重要組成部分。它在軍事、民用、太空開發(fā)等領(lǐng)域有著廣泛的應(yīng)用前景。隨著電子工業(yè)的發(fā)展,智能技術(shù)廣泛運(yùn)用于各種領(lǐng)域,運(yùn)用于智能家居中的產(chǎn)品更是越來越受到人們的青睞。本系統(tǒng)在硬件設(shè)計(jì)方面,以Arduino單片機(jī)為控制核心,以超聲波傳感器檢測(cè)前方障礙物,從而自動(dòng)避障。在軟件方面,利用C語言進(jìn)行編程,通過軟件編程來控制小車運(yùn)轉(zhuǎn)。根據(jù)家庭各種房間家具的布局不同而使用不同的路徑,從而使得家居中常用到的智能清掃小車智能化,人性化。該小車能自動(dòng)避障,有一定的實(shí)用價(jià)值。關(guān)鍵詞 :?jiǎn)纹瑱C(jī);智能清掃小車;自動(dòng)避障江海職業(yè)技術(shù)學(xué)院學(xué)位論文目錄第一章 緒論11.1 選題背景11.2 智能小車研究現(xiàn)狀21.3 課題主要內(nèi)容4第二章 智能小車總體結(jié)構(gòu)52.1 方案綜述52.2 主控單元方案比較與選擇52.3 避障單元方案比較與選擇62.4 “小車”的必要的信息7第三章 智能小車的觸覺、眼睛83.1 智能小車內(nèi)部檢測(cè)原理83.2 電機(jī)電流、電壓檢測(cè)103.3 超聲波測(cè)距11第四章 智能小車的腳234.1 輪系結(jié)構(gòu)詳述234.2 直流電機(jī) H 橋驅(qū)動(dòng)電路264.3 電機(jī)控制信號(hào).28第五章 智能小車的大腦295.1 Arduino單片機(jī)簡(jiǎn)介295.2 Arduino單片機(jī)引腳簡(jiǎn)介305.3 Arduino編程軟件33第六章 智能小車控制流程及程序356.1 控制流程35參考文獻(xiàn)36致 謝37第38頁第一章 緒論隨著科技進(jìn)步,現(xiàn)代工業(yè)技術(shù)發(fā)展越來越體現(xiàn)出機(jī)電一體化的特征。無論是在金屬加工、汽車技術(shù)、工業(yè)生產(chǎn)等等方面,機(jī)器設(shè)備表現(xiàn)了所謂智能化、集成化、小型化、高精度化的發(fā)展趨勢(shì)。 1.1 選題背景隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來越受人關(guān)注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究??梢娖溲芯恳饬x很大。本設(shè)計(jì)就是在這樣的背景下提出的,指導(dǎo)教師已經(jīng)有充分的準(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)作,無需人為管理,便可以完成預(yù)期所要達(dá)到的或是更高的目標(biāo)。同遙控小車不同,遙控小車需要人為控制轉(zhuǎn)向、啟停和進(jìn)退,比較先進(jìn)的遙控車還能控制器速度。常見的模型小車,都屬于這類遙控車;智能小車,則可以通過計(jì)算機(jī)編程來實(shí)現(xiàn)其對(duì)行駛方向、啟停以及速度的控制,無需人工干預(yù)。操作員可以通過修改智能小車的計(jì)算機(jī)程序來改變它的行駛方向。因此,智能小車具有再編程的特性,是機(jī)器人的一種。中國自1978年把“智能模擬”作為國家科學(xué)技術(shù)發(fā)展規(guī)劃的主要研究課題,開始著力研究智能化。從概念的引進(jìn)到實(shí)驗(yàn)室研究的實(shí)現(xiàn),再到現(xiàn)在高端領(lǐng)域(航天航空、軍事、勘探等)的應(yīng)用,這一過程為智能化的全面發(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)同樣功能的元件越來越小為智能化產(chǎn)物的生成奠定了良好的物質(zhì)基礎(chǔ)。智能小車,是一個(gè)集環(huán)境感知、規(guī)劃決策,自動(dòng)行駛等功能于一體的綜合系統(tǒng),它集中地運(yùn)用了計(jì)算機(jī)、傳感、信息、通信、導(dǎo)航、人工智能及自動(dòng)控制等技術(shù),是典型的高新技術(shù)綜合體。1.2 智能小車研究現(xiàn)狀智能車輛作為智能交通系統(tǒng)的關(guān)鍵技術(shù),是許多高新技術(shù)綜合集成的載體。智能車輛駕駛是一種通用性術(shù)語,指全部或部分完成一項(xiàng)或多項(xiàng)駕駛?cè)蝿?wù)的綜合車輛技術(shù)。智能車輛的一個(gè)基本特征是在一定道路條件下實(shí)現(xiàn)全部或者部分的自動(dòng)駕駛功能,下面簡(jiǎn)單介紹一下國內(nèi)外智能小車研究的發(fā)展情況。1.2.1 國外智能車輛研究現(xiàn)狀國外智能車輛的研究歷史較長(zhǎng),始于上世紀(jì)50年代。它的發(fā)展歷程大體可以分成三個(gè)階段:第一階段 20世紀(jì)50年代是智能車輛研究的初始階段。1954年美國Barrett Electronics 公司研究開發(fā)了世界上第一臺(tái)自主引導(dǎo)車系統(tǒng)AGVS(Automated Guided Vehicle System)。該系統(tǒng)只是一個(gè)運(yùn)行在固定線路上的拖車式運(yùn)貨平臺(tái),但它卻具有了智能車輛最基本得特征即無人駕駛。早期研制AGVS的目的是為了提高倉庫運(yùn)輸?shù)淖詣?dòng)化水平,應(yīng)用領(lǐng)域僅局限于倉庫內(nèi)的物品運(yùn)輸。隨著計(jì)算機(jī)的應(yīng)用和傳感技術(shù)的發(fā)展,智能車輛的研究不斷得到新的發(fā)展。第二階段 從80年代中后期開始,世界主要發(fā)達(dá)國家對(duì)智能車輛開展了卓有成效的研究。在歐洲,普羅米修斯項(xiàng)目于1986年開始了在這個(gè)領(lǐng)域的探索。在美洲,美國于1995年成立了國家自動(dòng)高速公路系統(tǒng)聯(lián)盟(NAHSC),其目標(biāo)之一就是研究發(fā)展智能車輛的可能性,并促進(jìn)智能車輛技術(shù)進(jìn)入實(shí)用化。在亞洲,日本于1996年成立了高速公路先進(jìn)巡航/輔助駕駛研究會(huì),主要目的是研究自動(dòng)車輛導(dǎo)航的方法,促進(jìn)日本智能車輛技術(shù)的整體進(jìn)步。進(jìn)入80年代中期,設(shè)計(jì)和制造智能車輛的浪潮席卷全世界,一大批世界著名的公司開始研制智能車輛平臺(tái)。第三階段 從90年代開始,智能車輛進(jìn)入了深入、系統(tǒng)、大規(guī)模研究階段。最為突出的是,美國卡內(nèi)基.梅隆大學(xué)(Carnegie Mellon University)機(jī)器人研究所一共完成了Navlab系列的10臺(tái)自主車(Navlab1Navlab10)的研究,取得了顯著的成就。目前,智能車輛的發(fā)展正處于第三階段。這一階段的研究成果代表了當(dāng)前國外智能車輛的主要發(fā)展方向。在世界科學(xué)界和工業(yè)設(shè)計(jì)界中,眾多的研究機(jī)構(gòu)研發(fā)的智能車輛具有代表性的有:德意志聯(lián)邦大學(xué)的研究 1985年,第一輛VaMoRs智能原型車輛在戶外高速公路上以100km/h的速度進(jìn)行了測(cè)試,它使用了機(jī)器視覺來保證橫向和縱向的車輛控制。1988年,在都靈的PROMRTHEUS項(xiàng)目第一次委員會(huì)會(huì)議上,智能車輛維塔(VITA,7t)進(jìn)行了展示,該車可以自動(dòng)停車、行進(jìn),并可以向后車傳送相關(guān)駕駛信息。這兩種車輛都配備了UBM視覺系統(tǒng)。這是一個(gè)雙目視覺系統(tǒng),具有極高的穩(wěn)定性。荷蘭鹿特丹港口的研究 智能車輛的研究主要體現(xiàn)在工廠貨物的運(yùn)輸。荷蘭的Combi road系統(tǒng),采用無人駕駛的車輛來往返運(yùn)輸貨物,它行駛的路面上采用了磁性導(dǎo)航參照物,并利用一個(gè)光陣列傳感器去探測(cè)障礙。荷蘭南部目前正在討論工業(yè)上利用這種系統(tǒng)的問題,政府正考慮已有的高速公路新建一條專用的車道,采用這種系統(tǒng)將貨物從鹿特丹運(yùn)往各地。日本大阪大學(xué)的研究 大阪大學(xué)的Shirai實(shí)驗(yàn)室所研制的智能小車,采用了航位推測(cè)系統(tǒng)(Dead Reckoning System),分別利用旋轉(zhuǎn)編碼器和電位計(jì)來獲取智能小車的轉(zhuǎn)向角,從而完成了智能小車的定位。另外,斯特拉斯堡實(shí)驗(yàn)中心、英國國防部門的研究、美國卡內(nèi)基梅隆大學(xué)、奔馳公司、美國麻省理工學(xué)院、韓國理工大學(xué)對(duì)智能車輛也有較多的研究。1.2.2 國內(nèi)智能車輛研究現(xiàn)狀相比于國外,我國開展智能車輛技術(shù)方面的研究起步較晚,開始于20世紀(jì)80年代。而且大多數(shù)研究處在于針對(duì)某個(gè)單項(xiàng)技術(shù)研究的階段。雖然我國在智能車輛技術(shù)方面的研究總體上落后于發(fā)達(dá)國家,并且存在一定得技術(shù)差距,但是我們也取得了一系列的成果,主要有:(1)中國第一汽車集團(tuán)公司和國防科技大學(xué)機(jī)電工程與自動(dòng)化學(xué)院與2003年研制成功我國第一輛自主駕駛轎車。該自主駕駛轎車在正常交通情況下的高速公路上,行駛的最高穩(wěn)定速度為13km/h,最高峰值速度達(dá)170km/h,并且具有超車功能,其總體技術(shù)性能和指標(biāo)已經(jīng)達(dá)到世界先進(jìn)水平。(2)南京理工大學(xué)、北京理工大學(xué)、浙江大學(xué)、國防科技大學(xué)、清華大學(xué)等多所院校聯(lián)合研制了7B.8軍用室外自主車,該車裝有彩色攝像機(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ù)。目前,國內(nèi)的許多高校和科研院所都在進(jìn)行ITS關(guān)鍵技術(shù)、設(shè)備的研究。隨著ITS研究的興起,我國已形成一支ITS技術(shù)研究開發(fā)的技術(shù)專業(yè)隊(duì)伍。并且各交通、汽車企業(yè)越來越加大了對(duì)ITS及智能車輛技術(shù)研發(fā)的投入,整個(gè)社會(huì)的關(guān)注程度在不斷提高。交通部已將ITS研究列入“十五”科技發(fā)展計(jì)劃和2010年長(zhǎng)期規(guī)劃。相信經(jīng)過相關(guān)領(lǐng)域的共同努力,我國ITS及智能車輛的技術(shù)水平一定會(huì)得到很大提高。可以預(yù)計(jì),我國飛速發(fā)展的經(jīng)濟(jì)實(shí)力將為智能車輛的研究提供一個(gè)更加廣闊的前景。我們要結(jié)合我國國情,在某一方面或某些方面,對(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),通過細(xì)化設(shè)計(jì)要求,結(jié)合傳感器技術(shù)和電機(jī)控制技術(shù)相關(guān)知識(shí)實(shí)現(xiàn)小車的各種功能。設(shè)計(jì)完成以由超聲波測(cè)距、自動(dòng)避障組成的硬件模塊結(jié)合軟件設(shè)計(jì)組成多功能智能小車,共同實(shí)現(xiàn)小車的前進(jìn)倒退、轉(zhuǎn)向行駛,自動(dòng)根據(jù)超聲波檢測(cè)前方障礙物距離,進(jìn)行導(dǎo)航,檢測(cè)障礙物后停止等功能,實(shí)現(xiàn)智能控制,達(dá)到設(shè)計(jì)目標(biāo)。圖1.1 小車外形圖第二章 智能小車總體結(jié)構(gòu)2.1 方案綜述本課題設(shè)計(jì)主要是制作一款能進(jìn)行智能判斷并能做出正確反應(yīng)的小車。小車具有以下幾個(gè)功能:自動(dòng)避障功能。作品既可以對(duì)高端智能化進(jìn)行剖析,也可以作為高級(jí)智能玩具發(fā)展對(duì)象,同時(shí)可成為大學(xué)生學(xué)習(xí)嵌入式控制系統(tǒng)的應(yīng)用實(shí)例。本設(shè)計(jì)以兩直流電動(dòng)機(jī)為主驅(qū)動(dòng),通過各類傳感器件來采集各類信息,送入主控單元Arduino單片機(jī)處理數(shù)據(jù)后完成相應(yīng)動(dòng)作,以達(dá)到自身控制。電機(jī)驅(qū)動(dòng)電路采用H橋驅(qū)動(dòng)模塊,驅(qū)動(dòng)2個(gè)直流電機(jī);測(cè)距、避障采用超聲波傳感器完成,最后由控制單元處理數(shù)據(jù)后通過編程有序合理的將各模塊信號(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)模塊、測(cè)距、避障模塊構(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ān)傳感器對(duì)路面的軌跡信息進(jìn)行處理,并將處理信號(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à)比問題,本設(shè)計(jì)選擇 用Arduino單片機(jī)做控制器。2.3 避障單元方案比較與選擇方案一:用超聲波傳感器進(jìn)行避障。超聲波傳感器的原理是:超聲波由壓電陶瓷超聲波傳感器發(fā)出后,遇到障礙物便反射回來,再被超聲波傳感器接收。但使用超聲波模塊的成本比較高。因此我們考慮其它的方案,超聲波傳感器實(shí)物圖如下圖2所示:圖2.2 超聲波傳感器方案二:用漫反射式光電開關(guān)進(jìn)行避障。光電開關(guān)的工作原理是根據(jù)光線發(fā)射頭發(fā)出的光束,被物體反射,其接收電路據(jù)此做出判斷反應(yīng),物體對(duì)紅外光由同步回路選通而檢測(cè)物體的有無。當(dāng)有光線反射回來時(shí),輸出低電平。當(dāng)沒有光線反射回來時(shí),輸出高電平。考慮到在日常的家居生活中,只需要簡(jiǎn)單檢測(cè)障礙物,讓智能小車順利繞過障礙,回到預(yù)定的設(shè)定路徑便可,并沒有十分復(fù)雜的環(huán)境,為了使用方便,便于操作和調(diào)試,我們最終選擇了方案一。2.4 “小車”的必要的信息 電機(jī)參數(shù): 額定電壓 4.5V 空載電流 8595mA 空載轉(zhuǎn)速 9800rpm +/10% 堵轉(zhuǎn)電流 1100mA 堵轉(zhuǎn)力矩 50g/cm (最大) 減速箱: 1:48 結(jié)構(gòu)參數(shù) 車輪直徑 65mm 碼盤齒數(shù) 60 個(gè) 碼盤等效直徑 42mm 脈沖精度 3.4mm/脈沖(單邊沿采集,可用倍頻方式提高精度) 輪距 約 59.5mm 外形尺寸 約 75x75x75mm 重量 約 240g (不含電池) 最快運(yùn)動(dòng)速度: 選用 1:48減速箱 約 695mm/s 最大力矩: 選用 1:48減速箱 約 2.4kg/cm 第三章 智能小車的觸覺、眼睛3.1 智能小車內(nèi)部檢測(cè)原理智能小車驅(qū)動(dòng)檢測(cè)電路:實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)、碼盤采樣、電機(jī)電流檢測(cè)功能,兩側(cè)獨(dú)立設(shè)計(jì),方便檢修。 3.1.1 輪速、車距檢測(cè)小車采用紅外光電耦合器檢測(cè)輪子轉(zhuǎn)的圈數(shù),即可算得小車行車距離;同理,單位時(shí)間內(nèi)的計(jì)數(shù)值,即可求得輪子轉(zhuǎn)速。本車有兩只輪子,分別由兩只直流電動(dòng)機(jī)驅(qū)動(dòng)。由于紅外檢測(cè)具有反應(yīng)速度快、定位精度高,可靠性強(qiáng)以及可見光傳感器所不能比擬的優(yōu)點(diǎn),故采用紅外光電碼盤測(cè)速方案。紅外光電耦合器見圖3.1,為直射式光電傳感器。圖3.1 紅外光電耦合器由測(cè)距輪,遮光盤,紅外光電耦合器及凹槽型支架組成的。利用開模的優(yōu)勢(shì),在車輪上的遮光盤設(shè)計(jì)了 60個(gè)齒,可以用直射式光電采樣器方便的得到脈沖信號(hào),比反射式采樣更加可靠。 測(cè)距輪安裝在車輪上,這樣能使記數(shù)值準(zhǔn)確一些(見圖3.2)。遮光盤有一缺口,盤下方的凹形物為槽型光電耦合器,其兩端高出部分的里面分別裝有紅外發(fā)射管和紅外接收管。遮光盤在凹槽中轉(zhuǎn)動(dòng)時(shí),缺口進(jìn)入凹槽時(shí),紅外線可以通過,缺口離開凹槽紅外線被阻擋。由此可見,測(cè)距輪每轉(zhuǎn)一周,紅外光接收管均能接收到一個(gè)脈沖信號(hào)經(jīng)過整形器后送入計(jì)數(shù)器或直接送入單片機(jī)中。單片機(jī)通過計(jì)數(shù)值,即可求得小車的大概行駛距離,根據(jù)單位時(shí)間內(nèi)的計(jì)數(shù)值,也可求得轉(zhuǎn)速。單片機(jī)通過分別對(duì)兩個(gè)輪子的轉(zhuǎn)速值,進(jìn)行比較,即可判斷出左、右輪的轉(zhuǎn)速快慢程度。背面正面遮光盤圖3.2 輪子結(jié)構(gòu)為實(shí)現(xiàn)可逆記數(shù)功能,我們?cè)跍y(cè)距儀中并列放置了兩個(gè)槽型光電耦合器,遮光盤先后通過凹槽可產(chǎn)生兩個(gè)脈沖信號(hào)。根據(jù)兩個(gè)脈沖信號(hào)發(fā)生的先后順序與兩個(gè)光電耦合器的位置關(guān)系,即可計(jì)算出玩具車的行駛方向(前進(jìn)或后退)。遮光盤及槽型光電耦合器均安裝在不透光的盒子里,以避免外界光線的干擾,使電路不能正常工作。直射型光電晶體管圖3.3 實(shí)際電路板測(cè)距原理:將遮光碼盤安裝在電機(jī)軸上,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),遮光碼盤也隨之轉(zhuǎn)動(dòng),同時(shí)安裝在碼盤一側(cè)的紅外發(fā)光二極管點(diǎn)亮,在碼盤的另一側(cè)設(shè)有紅外三極管,用于接收紅外發(fā)光二極管發(fā)出的紅外線信號(hào)。由于光柵隨電機(jī)高速轉(zhuǎn)動(dòng),則紅外線三極管接收到的就是一系列脈沖信號(hào)。將該信號(hào)傳輸?shù)絾纹瑱C(jī)的內(nèi)部計(jì)數(shù)器計(jì)數(shù),根據(jù)預(yù)先實(shí)測(cè)的數(shù)據(jù)換算關(guān)系即可計(jì)算出電動(dòng)機(jī)車的行車距離。具體電路同圖2.5 行車距離檢測(cè)電路所示:圖3.4 碼盤檢測(cè)電路為了避免在變換狀態(tài)時(shí)產(chǎn)生“毛刺”,整形電路是利用運(yùn)放設(shè)計(jì)了“施密特”電路,用回差消除之。 之所以用運(yùn)放,而不是直接使用施密特觸發(fā)器,是因?yàn)檫@樣可以方便的改變回差大小。3.2 電機(jī)電流、電壓檢測(cè) 3.2.1 電流檢測(cè)電路: 圖3.5 電流檢測(cè)電路電流的取樣電阻為 0.22 歐姆(見 H 橋驅(qū)動(dòng)電路的 R5),按上圖參數(shù),放大倍數(shù) 11 倍,電機(jī)電流最大 1.1A 左右,所以實(shí)際的輸出信號(hào)應(yīng)在 02.66V ,如使用 3.3V供電的單片機(jī),其 AD輸入范圍為 03.3V,考慮電機(jī)的電流偏差和器件的偏差,留些余量。 電路中C2作用是減小電機(jī)電流波動(dòng)的影響,是針對(duì) 125Hz 的 PWM頻率設(shè)計(jì)的,如提高PWM的頻率,此參數(shù)應(yīng)該相應(yīng)修改。 本設(shè)計(jì)中未采用,簡(jiǎn)述之。3.2.2 電壓檢測(cè)電路: 圖3.6 電壓檢測(cè)電路電壓采用簡(jiǎn)單的分壓處理,設(shè)計(jì)了一個(gè)跟隨器以減少 AD輸入阻抗對(duì)分壓的影響。電池的電壓應(yīng)在46V,分壓后為23V,符合 AD輸入不大于 3.3V的要求。 本設(shè)計(jì)中未采用,簡(jiǎn)述之。3.3 超聲波測(cè)距由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物位測(cè)量?jī)x等都可以通過超聲波來實(shí)現(xiàn)。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求,因此在移動(dòng)機(jī)器人研制上也得到了廣泛的應(yīng)用。 為了使移動(dòng)機(jī)器人能自動(dòng)避障行走,就必須裝備測(cè)距系統(tǒng),以使其及時(shí)獲取距障礙物的距離信息(距離和方向)。3.3.1 超聲波測(cè)距原理1、 超聲波發(fā)生器 為了研究和利用超聲波,人們已經(jīng)設(shè)計(jì)和制成了許多超聲波發(fā)生器??傮w上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。 2、壓電式超聲波發(fā)生器原理 壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部結(jié)構(gòu)如圖1所示,它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收器了。 3、超聲波測(cè)距原理 超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340t/2 。這就是所謂的時(shí)間差測(cè)距法。 超聲波測(cè)距的原理是利用超聲波在空氣中的傳播速度為已知,測(cè)量聲波在發(fā)射后遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。由此可見,超聲波測(cè)距原理與雷達(dá)原理是一樣的。 測(cè)距的公式表示為:L=CT 式中L為測(cè)量的距離長(zhǎng)度;C為超聲波在空氣中的傳播速度;T為測(cè)量距離傳播的時(shí)間差(T為發(fā)射到接收時(shí)間數(shù)值的一半)。 超聲波測(cè)距主要應(yīng)用于倒車提醒、建筑工地、工業(yè)現(xiàn)場(chǎng)等的距離測(cè)量,雖然目前的測(cè)距量程上能達(dá)到百米,但測(cè)量的精度往往只能達(dá)到厘米數(shù)量級(jí)。 由于超聲波易于定向發(fā)射、方向性好、強(qiáng)度易控制、與被測(cè)量物體不需要直接接觸的優(yōu)點(diǎn),是作為液體高度測(cè)量的理想手段。在精密的液位測(cè)量中需要達(dá)到毫米級(jí)的測(cè)量精度,但是目前國內(nèi)的超聲波測(cè)距專用集成電路都是只有厘米級(jí)的測(cè)量精度。通過分析超聲波測(cè)距誤差產(chǎn)生的原因,提高測(cè)量時(shí)間差到微秒級(jí),以及用LM92溫度傳感器進(jìn)行聲波傳播速度的補(bǔ)償后,我們?cè)O(shè)計(jì)的高精度超聲波測(cè)距儀能達(dá)到毫米級(jí)的測(cè)量精度。 3.3.2 超聲波傳感器簡(jiǎn)介本畢業(yè)設(shè)計(jì)超聲波傳感器為外購件,其硬件原理僅作簡(jiǎn)要說明:圖3.7 超聲波檢測(cè)原理電路框圖中,單片機(jī)為核心控制部分,根據(jù)設(shè)定的工作方式,產(chǎn)生 40kHz方波,經(jīng)過驅(qū)動(dòng)電路驅(qū)動(dòng)超聲波發(fā)生器發(fā)出一簇信號(hào)。單片機(jī)此時(shí)開始計(jì)時(shí)。 接收回路為諧振回路,將收到的微弱回波信號(hào)檢出,送信號(hào)放大電路放大,收到產(chǎn)生脈沖輸出送單片機(jī)中斷端,單片機(jī)收到中斷信號(hào)后停止計(jì)時(shí),計(jì)算出距離值,保存等待讀出或直接經(jīng) UART 送出。接收過程中,單片機(jī)定時(shí)控制放大電路的增益,逐漸提高,以適應(yīng)距離越遠(yuǎn)越弱的回波信號(hào)。 3.3.3 超聲波傳感器接口說明核心器件為 STC12LE4052、TL852、16mm超聲波收、發(fā)器。采用 5V供電,因?yàn)?5V是最常見的工作電壓,便于日后將傳感器應(yīng)用于裝置中。 為了減小干擾,選用了 3.3V供電的單片機(jī),使用目前常用的 1117-3.3三端穩(wěn)壓器將 5V降到 3.3V,減小電源擾動(dòng)的影響,增加可靠性。 小車?yán)贸暡▊鞲衅鳒y(cè)距,測(cè)量值采用的是小車主控芯片與該智能傳感器串行通訊獲得,以下為串行通訊的有關(guān)協(xié)議、命令說明。傳感器的工作由通訊命令控制,上電狀態(tài)為待命狀態(tài)。 工作分為“自動(dòng)測(cè)量”和“單輪測(cè)量”兩種模式。 “自動(dòng)測(cè)量”時(shí),傳感器按一定周期自動(dòng)完成測(cè)量過程,并保存測(cè)量數(shù)據(jù)。 “自動(dòng)測(cè)量”又分為“被動(dòng)數(shù)據(jù)返回”和“主動(dòng)數(shù)據(jù)返回”兩種方式。 “被動(dòng)數(shù)據(jù)返回”方式下,傳感器只將測(cè)量結(jié)果保存下來,等待系統(tǒng)讀取。“主動(dòng)數(shù)據(jù)返回”方式下,傳感器每完成一次測(cè)量均立即將數(shù)據(jù)發(fā)送給系統(tǒng)。 “自動(dòng)測(cè)量”可以設(shè)置測(cè)量周期。 “單輪測(cè)量”為接收到命令后開始測(cè)量,并返回?cái)?shù)據(jù),測(cè)量命令可設(shè)置測(cè)量次數(shù)、數(shù)據(jù)處理方式,傳感器按要求返回,增加測(cè)量的可靠性。 通訊協(xié)議及命令定義: 基本通訊格式:(和圓夢(mèng)小車及無線接口兼容) 標(biāo)準(zhǔn) UART格式 19200 8 N 1 幀格式: 幀頭(2字節(jié)) 接收方地址(1字節(jié)) 發(fā)送方地址(1 字節(jié)) 幀長(zhǎng)(1字節(jié)) 命令(1字節(jié)) 數(shù)據(jù)域(N字節(jié)) 校驗(yàn)和(1字節(jié)) 其中: 幀頭 由 2 個(gè)特殊的字節(jié) 0x55 0xAA 構(gòu)成; 接收方地址 通訊對(duì)象的“名字”,在有線通訊時(shí)也許多余,但無線時(shí)就需要了。發(fā)送方地址 告訴接收方,便于接收方回答。 幀長(zhǎng) 命令和數(shù)據(jù)域字節(jié)之和, 命令 說明操作內(nèi)容,詳見下面的定義 數(shù)據(jù)域 與命令配合,表達(dá)一個(gè)完整的含義。 校驗(yàn)和 從命令開始到數(shù)據(jù)域結(jié)束所有字節(jié)的算術(shù)和,取最低字節(jié)的反碼。命令定義: 為了便于調(diào)試,保留小車中設(shè)計(jì)的讀寫內(nèi)存命令。 命令一 :讀內(nèi)存,實(shí)現(xiàn)讀指定地址開始的 N 個(gè)字節(jié),地址用兩字節(jié)表示。 命令字 0x01 數(shù)據(jù)域 低地址(1字節(jié)) 高地址(1字節(jié)) 讀字節(jié)數(shù)(1字節(jié)) 地址與硬件的對(duì)應(yīng)關(guān)系: 0x0000 0x00FF 對(duì)應(yīng) STC12LE4052 的 256字節(jié)內(nèi)部 RAM(idata); 0x0100 0x7FFF 保留,為大 RAM的單片機(jī)預(yù)留; 0x7F80 0x7FFF 對(duì)應(yīng) STC12LE2052的 128字節(jié) SFR; 0x8000 0x87FF 對(duì)應(yīng) STC12LE2052 的 2K FlashROM(Code);0x8700 0xFFFF 保留,為大 ROM的單片機(jī)預(yù)留; 例:要讀地址 0x56起始的 3字節(jié)內(nèi)部 RAM數(shù)據(jù),命令幀如下: 0x55 0xAA XX XX 0x04 0x01 0x56 0x00 0x03 0xA5 返回?cái)?shù)據(jù)幀為: 幀頭 發(fā)送方地址 自己的地址 幀長(zhǎng) 命令 低地址 高地址 讀字節(jié)數(shù) N字節(jié)數(shù)據(jù) 校驗(yàn)和 返回幀中將命令及附屬信息(地址、讀字節(jié)數(shù) )包含在內(nèi),雖然有些冗余,但保證了信息的完備性,不需要接收時(shí)還要查找原來讀的是什么?為通訊需求日漸復(fù)雜提供方便。 命令二:寫內(nèi)存,實(shí)現(xiàn)寫指定地址開始的 N 個(gè)字節(jié),地址用兩字節(jié)表示。 命令字 0x02 數(shù)據(jù)域 低地址(1字節(jié)) 高地址(1字節(jié)) 寫字節(jié)數(shù)(1字節(jié))數(shù)據(jù)(N字節(jié)) 其地址與硬件的關(guān)系與讀命令相同。返回?cái)?shù)據(jù)幀為: 幀頭 發(fā)送方地址 自己的地址 幀長(zhǎng) 命令 低地址 高地址 寫成功字節(jié)數(shù) 校驗(yàn)和 通過“寫成功字節(jié)數(shù)”來告之發(fā)送方是否寫成功,如果為“0”,表示寫操作失敗。 命令三:設(shè)置工作模式,設(shè)置測(cè)量模式,并啟動(dòng)測(cè)量。 命令字 0x03 數(shù)據(jù)域 工作模式(1字節(jié)) 工作參數(shù)(1字節(jié)) 其中: 工作模式 高 4位為主模式,低 4位為子模式; 工作參數(shù) 與工作模式對(duì)應(yīng),自動(dòng)測(cè)量時(shí)為測(cè)量周期,單位 10ms;單輪測(cè)量時(shí)為測(cè)量的次數(shù),暫定最多為 8次。 返回?cái)?shù)據(jù)幀為: 幀頭 發(fā)送方地址 自己的地址 幀長(zhǎng) 命令 測(cè)量數(shù)據(jù) 校驗(yàn)和對(duì)于自動(dòng)模式,測(cè)量數(shù)據(jù)返回一個(gè)字節(jié)“0”,說明 OK。 對(duì)于單輪測(cè)量模式,測(cè)量數(shù)據(jù)為工作模式中所要求的數(shù)據(jù)。 自動(dòng)模式對(duì)應(yīng)的子模式: a) 自動(dòng)數(shù)據(jù)返回 每測(cè)完一個(gè)數(shù)據(jù)都返回,命令位置返回工作模式; b) 被動(dòng)數(shù)據(jù)返回 內(nèi)部只是測(cè)量、保存數(shù)據(jù),等待讀數(shù)據(jù)命令讀回,讀數(shù)據(jù)命令實(shí)際上只對(duì)自動(dòng)模式的被動(dòng)數(shù)據(jù)返回有效。 單輪測(cè)量對(duì)應(yīng)的子模式: a) 無數(shù)據(jù)處理返回 只是將命令中要求測(cè)量的數(shù)據(jù)全部返回 b) 剔除最大最小值返回 將測(cè)量數(shù)據(jù)中最大、最小值剔除,返回?cái)?shù)據(jù)比指定數(shù)少 2個(gè),當(dāng)指定的測(cè)量次數(shù)小于 3 時(shí),強(qiáng)制切換到“無數(shù)據(jù)處理模式”;c) 平均值返回 將指定的測(cè)量數(shù)據(jù)平均后返回,只有一個(gè)平均值; d) 剔除最大最小后平均值返回 先剔除最大最小值,剩下的再取平均值,當(dāng)數(shù)據(jù)數(shù)小于 4時(shí),強(qiáng)制切換到“剔除最大最小值” 模式。 上述返回幀中命令位置返回?cái)?shù)據(jù)處理方式。 命令四:讀測(cè)量數(shù)據(jù),對(duì)于自動(dòng)測(cè)量方式的被動(dòng)數(shù)據(jù)返回模式,需要此命令。 命令字 0x04 數(shù)據(jù)域 讀最近幾次的數(shù)據(jù)(1 字節(jié)) 返回?cái)?shù)據(jù)幀為: 幀頭 發(fā)送方地址 自己的地址 幀長(zhǎng) 命令 測(cè)量數(shù)據(jù) 校驗(yàn)和 通訊是個(gè)過程,包含等待處理,所以需要定義狀態(tài)變量,以控制處理的內(nèi)容和方式。 通訊分為兩個(gè)狀態(tài):一是什么也沒有收到;二是收到了幀頭,等待幀結(jié)束。因此可以用位標(biāo)志 g_bStartRcv 來表示,為“假”表示沒有收到幀頭,為“真”表示收到幀頭,正在收剩余的內(nèi)容。通訊部分實(shí)現(xiàn)以下功能: 1) 接收數(shù)據(jù) 2) 判斷幀格式 3) 解析命令,執(zhí)行相應(yīng)操作 4) 返回?cái)?shù)據(jù)3.3.4 本設(shè)計(jì)超聲波通訊方式本設(shè)計(jì)采用的方式為單輪測(cè)量,通訊較為簡(jiǎn)便,但控制精度不高,為靜態(tài)測(cè)量,因此,小車對(duì)前方突然產(chǎn)生的變化不能及時(shí)監(jiān)測(cè)。如要實(shí)時(shí)監(jiān)測(cè)需要采用自動(dòng)測(cè)量,但大大增加了編程難度。程序如下: int iFlashTime = 500; sum=0; SendData0=0x55; SendData1=0xAA; SendData2=0x01; SendData3=0x02; SendData4=0x03; SendData5=0x03; SendData6=0x23; SendData7=0x08; sum=SendData5+SendData6+SendData7; SendData8=sum; for(i=0;i<9;i+) Serial.print(SendDatai); delay(100); n=Serial.available (); for(i=0;i<n;i+) RecvDatai=Serial.read(); i=0; if(RecvData0=0x55 )i+; if(RecvData1=0xAA )i+; if(RecvData2=0x02 )i+;if(i=3) sum=0; for(k=5;k<14;k+)sum=sum+RecvDatak; if(RecvData14=sum) distant=RecvData6; if(distant>120) BackLine(20); elseif(distant>40) TurnRight(20); else WalkLine(20); Serial.flush();第四章 智能小車的腳4.1、輪系結(jié)構(gòu)詳述 4.1.1動(dòng)力選擇 選用成熟的減速機(jī)構(gòu)和標(biāo)準(zhǔn)的 130直流電機(jī)(見上面圖示) 4.1.2 驅(qū)動(dòng)方式 FIRA小車一般設(shè)計(jì)為差分驅(qū)動(dòng),前后對(duì)稱的形式,即不分前后,以增加對(duì)抗時(shí)的靈活性,因?yàn)椴挥谩稗D(zhuǎn)身”了。 這樣就要求車輪中置,如下圖: 圖4.1 這種驅(qū)動(dòng)方式,需要前后 2個(gè)支點(diǎn),這樣就形成了 4點(diǎn)共面問題,如場(chǎng)地稍有不平,就會(huì)導(dǎo)致一個(gè)驅(qū)動(dòng)輪懸空,小車打轉(zhuǎn)。 用 4個(gè)支點(diǎn)來保證小車的平穩(wěn)(見上面小車的底部視圖)。 4.1.3 車輪安裝 由于減速箱的輸出軸是塑料的,強(qiáng)度有限,且有一定晃動(dòng)間隙,不利于車輪上的碼盤采樣,必須設(shè)計(jì)另一個(gè)輪軸支點(diǎn),以增加車輪的穩(wěn)定性。另外,還增加了一個(gè)側(cè)蓋(見上面?zhèn)壬w圖),為輪軸提供了一個(gè)支點(diǎn),由于結(jié)構(gòu)允許,還設(shè)計(jì)了滾珠槽(注意側(cè)蓋中的圓環(huán)和輪轂中的圓環(huán)),以改善轉(zhuǎn)動(dòng)性能。 側(cè)蓋固定于上、下基架上,等于給上、下基架增加了 4個(gè)固定點(diǎn),使小車更加堅(jiān)固。 小車很小,空間有限,如再擠占留給用戶的控制器空間,用戶自己設(shè)計(jì)控制器時(shí)就很困難。這樣處理,既解決了驅(qū)動(dòng)板的安裝,又增加了側(cè)蓋的強(qiáng)度,同時(shí)將有效空間全部留給了用戶。以下為車輪、驅(qū)動(dòng)板、側(cè)蓋的裝配示意: 圖4.2 輪系安裝關(guān)系圖4.1.4 電池選擇和安裝 本智能小車選擇 7#鎳氫充電電池,而不選流行的鋰充電電池,是由于鋰電池規(guī)格特殊,很難有標(biāo)準(zhǔn)尺寸,會(huì)給使用者帶來麻煩,7# 電池短期內(nèi)還沒有淘汰的跡象,所以還是作此選擇。 沒有像玩具和模型那樣,提供做好的電池組,是因?yàn)樵谑褂弥邪l(fā)現(xiàn),通常不是電池組內(nèi)所有電池都同時(shí)失效,這樣會(huì)給用戶帶來不必要的損失,所以還是用電池盒。 電池安裝位置設(shè)計(jì)在小車底部,降低了重心,使小車更加平穩(wěn)。 4.1.5 輪系主要構(gòu)成 基架:作為小車的主結(jié)構(gòu),實(shí)現(xiàn)電機(jī)固定、電池盒放置、線路板安裝等基礎(chǔ)功能。 減速電機(jī):提供小車動(dòng)力,選用標(biāo)準(zhǔn)設(shè)計(jì)的減速箱和 130 電機(jī),以保證良好的性價(jià)比。 圖4.3 減速機(jī) 車輪:為了提供足夠的速度,設(shè)計(jì)了小車結(jié)構(gòu)中允許的最大直徑車輪,外徑 65mm(按目前所選用的減速電機(jī),最快速度約 65cm/s),同時(shí)設(shè)計(jì)了采樣碼盤,便于實(shí)現(xiàn)速度反饋和行走距離檢測(cè)。車輪采用橡膠輪胎,并刻有防滑槽,以降低打滑的可能。輪胎寬度 7.5mm,設(shè)計(jì)成平面以增加摩擦力。 圖4.4 車輪電池盒蓋:用于固定電池盒,同時(shí)提供小車的 4個(gè)支點(diǎn),以維持小車平衡。 圖4.5 電磁蓋板上的支點(diǎn)4.2直流電機(jī) H 橋驅(qū)動(dòng)電路 4.2.1脈沖寬度調(diào)制(PWM)脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。脈沖寬度調(diào)制是一種模擬控制方式,其根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出晶體管或晶體管導(dǎo)通時(shí)間的改變,這種方式能使電源的輸出電壓在工作條件變化時(shí)保持恒定,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。 PWM控制技術(shù)以其控制簡(jiǎn)單,靈活和動(dòng)態(tài)響應(yīng)好的優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,也是人們研究的熱點(diǎn)。由于當(dāng)今科學(xué)技術(shù)的發(fā)展已經(jīng)沒有了學(xué)科之間的界限,結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振軟開關(guān)技術(shù)將會(huì)成為PWM控制技術(shù)發(fā)展的主要方向之一。 基本原理:隨著電子技術(shù)的發(fā)展,出現(xiàn)了多種PWM技術(shù),其中包括:相電壓控制PWM、脈寬PWM法、隨機(jī)PWM、SPWM法、線電壓控制PWM等,而在鎳氫電池智能充電器中采用的脈寬PWM法,它是把每一脈沖寬度均相等的脈沖列作為PWM波形,通過改變脈沖列的周期可以調(diào)頻,改變脈沖的寬度或占空比可以調(diào)壓,采用適當(dāng)控制方法即可使電壓與頻率協(xié)調(diào)變化??梢酝ㄟ^調(diào)整PWM的周期、PWM的占空比而達(dá)到控制充電電流的目的。 模擬信號(hào)的值可以連續(xù)變化,其時(shí)間和幅度的分辨率都沒有限制。9V電池就是一種模擬器件,因?yàn)樗妮敵鲭妷翰⒉痪_地等于9V,而是隨時(shí)間發(fā)生變化,并可取任何實(shí)數(shù)值。與此類似,從電池吸收的電流也不限定在一組可能的取值范圍之內(nèi)。模擬信號(hào)與數(shù)字信號(hào)的區(qū)別在于后者的取值通常只能屬于預(yù)先確定的可能取值集合之內(nèi),例如在0V,5V這一集合中取值。 模擬電壓和電流可直接用來進(jìn)行控制,如對(duì)汽車收音機(jī)的音量進(jìn)行控制。在簡(jiǎn)單的模擬收音機(jī)中,音量旋鈕被連接到一個(gè)可變電阻。擰動(dòng)旋鈕時(shí),電阻值變大或變??;流經(jīng)這個(gè)電阻的電流也隨之增加或減少,從而改變了驅(qū)動(dòng)揚(yáng)聲器的電流值,使音量相應(yīng)變大或變小。與收音機(jī)一樣,模擬電路的輸出與輸入成線性比例。 盡管模擬控制看起來可能直觀而簡(jiǎn)單,但它并不總是非常經(jīng)濟(jì)或可行的。其中一點(diǎn)就是,模擬電路容易隨時(shí)間漂移,因而難以調(diào)節(jié)。能夠解決這個(gè)問題的精密模擬電路可能非常龐大、笨重(如老式的家庭立體聲設(shè)備)和昂貴。模擬電路還有可能嚴(yán)重發(fā)熱,其功耗相對(duì)于工作元件兩端電壓與電流的乘積成正比。模擬電路還可能對(duì)噪聲很敏感,任何擾動(dòng)或噪聲都肯定會(huì)改變電流值的大小。 通過以數(shù)字方式控制模擬電路,可以大幅度降低系統(tǒng)的成本和功耗。此外,許多微控制器和DSP已經(jīng)在芯片上包含了PWM控制器,這使數(shù)字控制的實(shí)現(xiàn)變得更加容易了。4.2.1 H橋驅(qū)動(dòng)電路 圖4.6 電機(jī)驅(qū)動(dòng)原理電路供橋電壓為 5V。這也是用 MOS 管帶來的好處,因?yàn)闃虮蹓航敌?,所以?4 節(jié)充電電池即可驅(qū)動(dòng),這樣既便于充電,又減輕了小車的自重。 控制邏輯電路電壓 VCC 接控制單片機(jī)的工作電壓,可選擇 3.3V 或 5V。 4.3電機(jī)控制信號(hào)4.3.1 控制信號(hào)定義電機(jī)控制信號(hào)共三根:Ctrl1為 PWM 控制信號(hào)。Ctrl2和 Ctrl3 組合,得到電機(jī)的四個(gè)工作狀態(tài):正轉(zhuǎn) 反轉(zhuǎn) 剎車 惰行。 4.3.2 控制邏輯控制邏輯如下: 圖4.7 控制邏輯圖第五章 智能小車的大腦這是學(xué)習(xí)單片機(jī)應(yīng)用的平臺(tái),而單片機(jī)的種類眾多,除了流行的 8位機(jī):51、AVR、PIC系列,還有日漸被接受的 16位機(jī) MSP430系列,以及最近升勢(shì)很猛的 ARMCortexM系列,這些單片機(jī)各有優(yōu)勢(shì),無法說誰好誰壞,完全取決于學(xué)習(xí)者的需求和喜好,此外還有越來越接近 MCU的DSP,所以我將這個(gè)權(quán)力交還給用戶。 而且我認(rèn)為:所謂單片機(jī)應(yīng)用學(xué)習(xí),最核心的就是能自己消化一個(gè) MCU,根據(jù)控制需求自己分配 MCU 的資源,編寫相應(yīng)的程序,使之能按自己的想法工作。這才是掌握單片機(jī)應(yīng)用的關(guān)鍵! 5.1 Arduino單片機(jī)簡(jiǎn)介Arduino單片機(jī),是一塊基于開放源代碼的USB接口Simple i/o接口板(包括12通道數(shù)字GPIO,4通道PWM輸出,6-8通道10bit ADC輸入通道),并且具有使用類似Java,C語言的IDE集成開發(fā)環(huán)境。 讓您可以快速使用Arduino語言與Flash或Processing等軟件,作出互動(dòng)作品。 圖5.1 Arduino單片機(jī)Arduino可以使用開發(fā)完成的電子元件例如Switch或sensors或其他控制器、LED、步進(jìn)馬達(dá)或其他輸出裝置。Arduino也可以獨(dú)立運(yùn)作成為一個(gè)可以跟軟件溝通的接口,例如說:flash、processing、Max/MSP、VVVV 或其他互動(dòng)軟件。Arduino開發(fā)IDE接口基于開放源代碼原,可以讓您免費(fèi)下載使用開發(fā)出更多令人驚艷的互動(dòng)作品。 Arduino單片機(jī)特色:1、開放源代碼的電路圖設(shè)計(jì),程序開發(fā)接口免費(fèi)下載,也可依需求自己修改。 2、使用低價(jià)格的微處理控制器(ATMEGA8或ATmega128)??梢圆捎肬SB接口供電,不需外接電源。也可以使用外部9VDC輸入 3、Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入ATmega8或ATmega128芯片。有了bootloader之后,可以通過串口或者USB to Rs232線更新固件。 4、可依據(jù)官方提供的Eagle格式PCB和SCH電路圖,簡(jiǎn)化Arduino模組,完成獨(dú)立運(yùn)作的微處理控制。可簡(jiǎn)單地與傳感器,各式各樣的電子元件連接(EX:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達(dá),等) 5、支持多種互動(dòng)程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等 6、應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo),鍵盤,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ù)字電路中開關(guān)(switch)是一種基本的輸入形式,它的作用是保持電路的連接或者斷開。Arduino從數(shù)字I/O管腳上只能讀出高電平(5V)或者低電平(0V),因此我們首先面臨到的一個(gè)問題就是如何將開關(guān)的開/斷狀態(tài)轉(zhuǎn)變成Arduino能夠讀取的高/低電平。解決的辦法是通過上/下拉電阻,按照電路的不同通常又可以分為正邏輯(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)司空見慣的概念,它只能在一個(gè)范圍之內(nèi)連續(xù)變化,而不可能發(fā)生像從0到1這樣的瞬時(shí)跳變,類似這樣的物理量被人們稱為是模擬(analog)的。Arduino是無法理解這些模擬量的,它們必須在經(jīng)過模數(shù)轉(zhuǎn)換后變成數(shù)字量后,才能被Arduino進(jìn)一步處理。像溫度這樣的數(shù)據(jù)必須先被轉(zhuǎn)換成微處理器能夠處理的形式(比如電壓),才能被Arduino處理,這一任務(wù)通常由各類傳感器(sensor)來完成的。例如,電路中的溫度傳感器能夠?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 Converter),每一個(gè)模數(shù)轉(zhuǎn)換器的精度都是10bit,也就是說能夠讀取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ù)值。例如,除了想用微控制器找開或者關(guān)閉電燈之外,我們還會(huì)想控制燈光的亮度,這時(shí)就需要用到模擬輸出。由于Arduino的微控制器只能產(chǎn)生高電壓(5V)或者低電壓(0V),而不能產(chǎn)生變化的電壓,因此必須采用脈寬度調(diào)制技術(shù)(PWM,Pulse Width Modulation)來模仿模擬電壓。PWM是一種開關(guān)式穩(wěn)壓電源應(yīng)用,它是借助微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常用效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。簡(jiǎn)而言之,PWM是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,它通過對(duì)半導(dǎo)體開關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一系列幅值相等但寬度不相等的脈沖,而這些脈沖能夠被用來代替正弦波或其它所需要的波形。在Arduino數(shù)字I/O管腳9、10和11上,我們可以通過analogWrite()函數(shù)來產(chǎn)生模擬輸出。該函數(shù)有兩個(gè)參數(shù),其中第一個(gè)參數(shù)是要產(chǎn)生模擬信號(hào)的引腳(9、10或者11);第二個(gè)參數(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)單的辦法就是使用串行通信。在串行通信中,兩個(gè)設(shè)備之間一個(gè)接一個(gè)地來回發(fā)送數(shù)字脈沖,它們之間必須嚴(yán)格遵循相應(yīng)的協(xié)議以保證通信的正確性。在PC機(jī)上上最常見的串行通信協(xié)議是RS-232串行協(xié)議,而在各種微控制器(單片機(jī))上采用的則是TTL串行協(xié)議。由于這兩者的電平有很大的不同,因此在實(shí)現(xiàn)PC機(jī)和微控制器的通信時(shí),必須進(jìn)行相應(yīng)的轉(zhuǎn)換。完成RS-232電平和TTL電平之間的轉(zhuǎn)換一般采用專用芯片,如MAX232等,但在Arduino上是用相應(yīng)的電平轉(zhuǎn)換電路來完成的。根據(jù)Arduino的原理圖我們不難看出,ATmega的RX和TX引腳一方面直接接到了數(shù)字I/O端口的0號(hào)和1號(hào)管腳, 另一方面又通過電平轉(zhuǎn)換電路接到了串口的母頭上。因此,當(dāng)我們需要用Arduino與PC機(jī)通信時(shí),可以用串口線將兩者連接起來;當(dāng)我們需要用Arduino與微控制器(如另一塊Arduino)通信時(shí),則可以用數(shù)字I/O端口的0號(hào)和1號(hào)管腳。串行通信的難點(diǎn)在于參數(shù)的設(shè)置,如波特率、數(shù)據(jù)位、停止位等,在Arduino語言可以使用Serial.begin()函數(shù)來簡(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 語言是建立在 C/C+基礎(chǔ)上的,其實(shí)也就是基礎(chǔ)的 C 語言,Arduino 語言只不過把 AVR 單片機(jī)(微控制器)相關(guān)的一些寄存器參數(shù)設(shè)置等都函數(shù)化了,不用我們?nèi)チ私馑牡讓?,讓不太了?AVR 單片機(jī)(微控制器)的朋友也能輕松上手。圖5.4 編程界面Arduino 語言是以 setup()開頭,loop()作為主體的一個(gè)程序構(gòu)架。官方網(wǎng)站是這樣描述 setup()的:用來初始化變量,管腳模式,調(diào)用庫函數(shù)等等,此函數(shù)只運(yùn)行一次。loop()函數(shù)是一個(gè)循環(huán)函數(shù),函數(shù)內(nèi)的語句周而復(fù)始的循環(huán)執(zhí)行,功能類似 c 語言中的“main();”。第六章 智能小車控制流程及程序6.1 程序流程圖開始超聲波測(cè)距障礙物很近繼續(xù)直線前進(jìn)停車檢距后退,轉(zhuǎn)彎停車檢距參考文獻(xiàn)1、嵌入之夢(mèng)家園 當(dāng)圓夢(mèng)小車遇上 Arduino http:/user.qzone.qq.com/ 2、 Arduino使用教程 http:/ www.dfrobot.cn 3、馬潮等 ATmega8原理及應(yīng)用手冊(cè) 清華大學(xué)出版社4、譚浩強(qiáng) C程序設(shè)計(jì) 清華大學(xué)出版社5、 何希才 新型實(shí)用電子電路400例 電子工業(yè)出版社6、 趙負(fù)圖 傳感器集成電路手冊(cè),第一版 化學(xué)工業(yè)出版社7、 陳伯時(shí) 電力拖動(dòng)自動(dòng)控制系統(tǒng),第二版 機(jī)械工業(yè)出版社8、嵌入之夢(mèng)家園 超聲波測(cè)距傳感器DIY www.embedream.com9、嵌入之夢(mèng)家園 圓夢(mèng)小車第四代 www.embedream.com10、Arduino Homepage Arduino Nano user manual www.arduino.cc論 文 小 結(jié)珍貴的三年的大專生活已接近尾聲,感覺非常有必要總結(jié)一下大專三年的得失,從中繼承做得好的方面改進(jìn)不足的地方,使自己回顧走過的路,也更是為了看清將來要走的路。在學(xué)習(xí)知識(shí)這段時(shí)間里,我與老師建立了濃厚的師生情誼。老師們的諄諄教導(dǎo),使我體會(huì)了學(xué)習(xí)的樂趣。我與身邊許多同學(xué),也建立了良好的學(xué)習(xí)關(guān)系,互幫互助,克服難關(guān)?,F(xiàn)在我已經(jīng)接近畢業(yè),正在做畢業(yè)設(shè)計(jì),更鍛煉了自我的動(dòng)手和分析問題能力,受益匪淺。通過三年的大專生活,我學(xué)到了很多知識(shí),更重要的是有了較快掌握一種新事物的能力。思想變成熟了許多,性格更堅(jiān)毅了。認(rèn)識(shí)了許多同學(xué)和老師,建立起友誼,并在與他們的交往中提升了自身素質(zhì),認(rèn)清了自身的一些短處并盡力改正?;仡櫲?,本人在思想覺悟上始終對(duì)自己有較高的要求,能用科學(xué)發(fā)展觀來認(rèn)識(shí)世界認(rèn)識(shí)社會(huì),能清醒的意識(shí)到自己所擔(dān)負(fù)的社會(huì)責(zé)任,對(duì)個(gè)人的人生理想和發(fā)展目標(biāo),有了相對(duì)成熟的認(rèn)識(shí)和定位。 在專業(yè)課程的學(xué)習(xí)上,根據(jù)自身專業(yè)方向的要求,有針對(duì)性的認(rèn)真研讀了有關(guān)核心課程,為自己的學(xué)習(xí)工作打下扎實(shí)基礎(chǔ);并涉獵了一部分其他課程,開闊視野,對(duì)本專業(yè)方向的應(yīng)用背景以及整個(gè)學(xué)科的結(jié)構(gòu)有了宏觀的認(rèn)識(shí)。在學(xué)習(xí)工作上,根據(jù)導(dǎo)師的指導(dǎo),研讀了大量論著,逐步明確了發(fā)展方向,通過自身不斷的努力,以及與師長(zhǎng)同學(xué)間的探討交流,取得了一些比較滿意的成果。在這期間,綜合分