版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 側(cè)方位自動(dòng)泊車小車設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí) 測(cè)控技術(shù)與儀器
2、 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p>
3、<p> 隨著汽車產(chǎn)業(yè)的不斷升級(jí),各家汽車公司和科技公司的新技術(shù)層出不窮,人工智能,自動(dòng)駕駛,新能源等新興技術(shù)也逐步步入人們的日常生活之中。自動(dòng)泊車既是汽車自動(dòng)化和智能化進(jìn)程中的核心技術(shù)之一,也是給人們提供了極大便利的一項(xiàng)技術(shù)。其中側(cè)方位停車是一種使用頻率很高的停車方式,本文針對(duì)側(cè)方位泊車這一實(shí)用性課題進(jìn)行設(shè)計(jì)研究,探索相關(guān)的硬件設(shè)備及其相應(yīng)的軟件設(shè)計(jì),以常見的智能小車為機(jī)械平臺(tái),結(jié)合傳感器技術(shù)、電機(jī)舵機(jī)控制技術(shù)以及相應(yīng)
4、的軟件技術(shù)為一體來(lái)實(shí)現(xiàn)小車的各種功能。</p><p> 本設(shè)計(jì)主要開發(fā)一個(gè)能自動(dòng)側(cè)方位泊車,自動(dòng)避障和無(wú)線遙控的智能小車控制系統(tǒng)。設(shè)計(jì)以由紅外線傳感器的自動(dòng)泊車、紅外線自動(dòng)避障、藍(lán)牙遙控組成的硬件模塊結(jié)合軟件設(shè)計(jì)組成多功能智能小車,共同實(shí)現(xiàn)小車的前進(jìn)倒退、轉(zhuǎn)向行駛、檢測(cè)障礙物后停止、人工遙控、自動(dòng)根據(jù)車位泊車等功能。</p><p> 本設(shè)計(jì)以智能小車為平臺(tái)模擬汽車相應(yīng)模塊的功能,進(jìn)
5、行實(shí)物仿真測(cè)試,經(jīng)過(guò)實(shí)驗(yàn)調(diào)試小車能夠?qū)崿F(xiàn)正常行駛與停止、藍(lán)牙控制、自動(dòng)避障、自動(dòng)泊車等功能,達(dá)到了預(yù)期的目標(biāo)和要求,對(duì)于實(shí)際的汽車自動(dòng)化和智能化設(shè)計(jì)有一定的實(shí)用和參考價(jià)值。</p><p> 關(guān)鍵詞: 泊車,智能小車,紅外傳感器,藍(lán)牙</p><p><b> Abstract</b></p><p> With the upgrade
6、 of automobile industry, the endless new technology is developed by many automobile companies and scientific and technical corporation. New technology like artificial intelligence, automatic drive, new energy technology
7、is step into our daily life. Automatic drive is not only a core technology for automate and intelligentise of automobile, but also a convenient technology for our daily life. The parallel parking is the one of most used
8、functions of parking ,this article conducts </p><p> This design mainly develop control system of auto parking, avoiding obstacle, Bluetooth control for an intelligence vehicle .The system use infrared sens
9、or module to conduct auto parking and avoiding obstacle ,the Bluetooth module to control and driver module to power the motor and servo ,to realize the functions like moving forward and backward, turn right and left, con
10、trol the motor speed and turning angle , detect the obstacle ,remote control ,automatic parking.</p><p> This design use intelligence vehicle to simulate the functions of automobile, whose module divide int
11、o different simulation test. After the test of various experiments shows that the intelligence vehicle can achieve the regular drive and stop ,Bluetooth control, avoid obstacle itself and auto parking which can provide s
12、ome practical and reference value for the automate and intelligentize of real automobile.</p><p> Key words: parallel parking ,intelligence vehicle ,infrared sensor ,Bluetooth</p><p><b>
13、 目 錄</b></p><p><b> 1 緒論5</b></p><p> 1.1 研究背景5</p><p> 1.2 國(guó)內(nèi)外研究現(xiàn)狀7</p><p> 1.3 論文的研究?jī)?nèi)容與組織結(jié)構(gòu)7</p><p> 2 硬件系統(tǒng)綜合設(shè)計(jì)9</p>
14、<p> 2.1智能小車行駛系統(tǒng)10</p><p> 2.1.1智能小車動(dòng)力系統(tǒng)10</p><p> 2.1.2 智能小車轉(zhuǎn)向系統(tǒng)12</p><p> 2.2智能小車信息采集模塊13</p><p> 2.2.1 紅外避障傳感器的原理13</p><p> 2.2.2 紅外避障
15、傳感器的結(jié)構(gòu)14</p><p> 2.3智能小車通訊系統(tǒng)15</p><p> 2.3.1 藍(lán)牙通信原理15</p><p> 2.3.1 藍(lán)牙通信過(guò)程17</p><p> 3 智能小車軟件設(shè)計(jì)與實(shí)現(xiàn)18</p><p> 3.1 Arduino軟件綜合系統(tǒng)19</p><
16、p> 3.1.1 Arduino電機(jī)馬達(dá)驅(qū)動(dòng)19</p><p> 3.1.2 Arduino舵機(jī)驅(qū)動(dòng)20</p><p> 3.1.3 多路紅外傳感器的數(shù)據(jù)采集及分析21</p><p> 3.1.4 藍(lán)牙通訊的接受與發(fā)送22</p><p> 3.2 Android軟件綜合系統(tǒng)22</p>&l
17、t;p> 3.2.1 基于Android的藍(lán)牙通訊23</p><p> 3.2.2 智能小車控制程序25</p><p> 4 路徑規(guī)劃設(shè)計(jì)1</p><p> 4.1 實(shí)際泊車路徑分析1</p><p> 4.2泊車路徑模型分析2</p><p> 4.3智能小車泊車路徑規(guī)劃3<
18、/p><p><b> 結(jié)論1</b></p><p><b> 參考文獻(xiàn)1</b></p><p><b> 致謝1</b></p><p><b> 1 緒論</b></p><p><b> 1.1 研究
19、背景</b></p><p> 隨著智能汽車概念的興起,相關(guān)的技術(shù)也在不斷地升級(jí)與融合之中,無(wú)人駕駛汽車的概念也隨之被不斷提及,相關(guān)的產(chǎn)品也不斷的推出。無(wú)人駕駛汽車是自動(dòng)化載具的一種,具有傳統(tǒng)汽車的運(yùn)輸能力。作為自動(dòng)化載具,自動(dòng)駕駛汽車不需要人為操作即能感測(cè)其環(huán)境及導(dǎo)航。完全的自動(dòng)駕駛汽車仍未全面商用化,大多數(shù)均為原型機(jī)及展示系統(tǒng),部分可靠技術(shù)才下放至商用車型。</p><p&g
20、t; 而在眾多無(wú)人駕駛技術(shù)中,自動(dòng)泊車是人們平時(shí)使用頻率很高的一種技術(shù),汽車用戶幾乎每天都會(huì)面對(duì)這種情況,并且大部分車輛損壞的原因,多半不是重大交通事故,而是在泊車時(shí)發(fā)生的碰撞,這給用戶帶來(lái)了很多損失與不便。因此,關(guān)于自動(dòng)泊車的技術(shù),各家汽車公司和科技公司也在不斷地推陳出新,不斷地優(yōu)化和提升自動(dòng)泊車的性能與使用體驗(yàn)。同時(shí),世界各國(guó)政府也相繼出臺(tái)了很多政策與目標(biāo),推動(dòng)相關(guān)技術(shù)的發(fā)展,進(jìn)一步推動(dòng)了汽車自動(dòng)化智能化的進(jìn)程。</p>
21、;<p> 自動(dòng)駕駛汽車的展示系統(tǒng)可追溯至1920年代及1930年代間,第一輛能真正自動(dòng)駕駛的汽車則出現(xiàn)于1980年代。1984年,卡內(nèi)基美隆大學(xué)推動(dòng)Navlab計(jì)劃與ALV計(jì)劃;1987年,梅賽德斯-奔馳與德國(guó)慕尼黑聯(lián)邦國(guó)防大學(xué)共同推行尤里卡普羅米修斯計(jì)劃。從此以后,許多大型公司與研究機(jī)構(gòu)開始制造可運(yùn)作的自動(dòng)駕駛汽車原型。21世紀(jì)以后,伴隨著資訊科技的進(jìn)步,更是突飛猛進(jìn),特斯拉汽車率先推出了特定環(huán)境下的自駕車,而汽車工
22、業(yè)人士估計(jì)2030年以前就會(huì)量產(chǎn)出現(xiàn)。</p><p> 目前,美國(guó)國(guó)家公路交通安全管理局(NHTSA)已提出正式的分類系統(tǒng):</p><p> 等級(jí)0:即無(wú)自動(dòng)。駕駛隨時(shí)掌握著車輛的所有機(jī)械、物理功能,僅配備警報(bào)裝置等等無(wú)關(guān)主動(dòng)駕駛的功能也算在內(nèi)。</p><p> 等級(jí)1:駕駛?cè)瞬僮鬈囕v,但個(gè)別的裝置有時(shí)能發(fā)揮作用,如電子穩(wěn)定程式(ESP)或防鎖死剎車系統(tǒng)
23、(ABS)可以幫助行車安全。</p><p> 等級(jí)2:駕駛?cè)酥饕刂栖囕v,但系統(tǒng)階調(diào)地自動(dòng)化,使之明顯減輕操作負(fù)擔(dān),例如主動(dòng)式巡航定速(ACC)結(jié)合自動(dòng)跟車和車道偏離警示,而自動(dòng)緊急煞停系統(tǒng)(AEB)透過(guò)盲點(diǎn)偵測(cè)和汽車防撞系統(tǒng)的部分技術(shù)結(jié)合。</p><p> 等級(jí)3:駕駛?cè)诵桦S時(shí)準(zhǔn)備控制車輛,自動(dòng)駕駛輔助控制期間,如在跟車時(shí)雖然可以暫時(shí)免于操作,但當(dāng)汽車偵測(cè)到需要駕駛?cè)说那樾螘r(shí),會(huì)
24、立即回歸讓駕駛?cè)私庸芷浜罄m(xù)控制,駕駛必須接手因應(yīng)系統(tǒng)無(wú)力處理的狀況。</p><p> 等級(jí)4:駕駛?cè)丝稍跅l件允許下讓車輛完整自駕,啟動(dòng)自動(dòng)駕駛后,一般不必介入控制,此車可以按照設(shè)定之道路通則(如高速公路中,平順的車流與標(biāo)準(zhǔn)化的路標(biāo)、明顯的提示線),自己執(zhí)行包含轉(zhuǎn)彎、換車道與加速等工作,除了嚴(yán)苛氣候或道路模糊不清、意外,或是自動(dòng)駕駛的路段已經(jīng)結(jié)束等等,系統(tǒng)并提供駕駛?cè)恕白銐驅(qū)捲VD(zhuǎn)換時(shí)間”,駕駛應(yīng)監(jiān)看車輛運(yùn)作,
25、但可包括有旁觀下的無(wú)人停車功能。(有方向盤自動(dòng)車)</p><p> 等級(jí)5:駕駛?cè)瞬槐卦谲噧?nèi),任何時(shí)刻都不會(huì)控制到車輛。此類車輛能自行啟動(dòng)駕駛裝置,全程也不須開在設(shè)計(jì)好的路況,就可以執(zhí)行所有與安全有關(guān)之重要功能,包括沒(méi)有人在車上時(shí)的情形,完全不需受駕駛意志所控,可以自行決策。(無(wú)需方向盤自動(dòng)車)</p><p> 現(xiàn)在大部分商用的汽車已經(jīng)達(dá)到了等級(jí)1的標(biāo)準(zhǔn),部分高級(jí)一些的智能汽車達(dá)到
26、了等級(jí)2的水準(zhǔn),有些先進(jìn)一些的智能汽車已經(jīng)能夠達(dá)到等級(jí)3的水準(zhǔn),但是仍然有一些安全上的隱患,一些科技公司的測(cè)試車型在測(cè)試中可以達(dá)到等級(jí)4,但是距離真正的自動(dòng)駕駛?cè)匀挥胁恍〉牟罹?,要消除相?yīng)的的安全隱患,汽車產(chǎn)業(yè)還有不少的路要走。</p><p> 同樣,自動(dòng)駕駛技術(shù)中的自動(dòng)泊車技術(shù)也是如此,大部分的汽車還沒(méi)有裝載自動(dòng)泊車裝置,部分高級(jí)汽車裝載了泊車輔助系統(tǒng),例如倒車?yán)走_(dá),倒車傳感器等,先進(jìn)一些的智能汽車搭載了自
27、動(dòng)泊車輔助系統(tǒng),但是這種系統(tǒng)并不是全自動(dòng)的,用戶還是要親自控制,系統(tǒng)只是告訴用戶停車的時(shí)機(jī)而已。因此,設(shè)計(jì)開發(fā)一種響應(yīng)速度快,經(jīng)濟(jì)實(shí)用且穩(wěn)定可靠的智能汽車自動(dòng)泊車系統(tǒng)也理所當(dāng)然地成為自動(dòng)駕駛技術(shù)研究和開發(fā)設(shè)計(jì)的焦點(diǎn)。</p><p> 本文就側(cè)方位自動(dòng)泊車這一課題開展了相應(yīng)的研究與設(shè)計(jì),主要以常見的智能小車平臺(tái)模擬真實(shí)的汽車平臺(tái),通過(guò)搭建相應(yīng)的泊車模塊及其附加系統(tǒng),以模擬和測(cè)試真實(shí)環(huán)境下的自動(dòng)泊車的泊車系統(tǒng)。本
28、文所搭建的智能小車平臺(tái),是一個(gè)集光機(jī)電以及計(jì)算機(jī)一體化的系統(tǒng),通過(guò)計(jì)算機(jī)技術(shù)融合了信息通訊,傳感,自動(dòng)控制,自動(dòng)測(cè)量等技術(shù)來(lái)完成小車的智能駕駛與自動(dòng)泊車的目標(biāo)。</p><p> 1.2 國(guó)內(nèi)外研究現(xiàn)狀</p><p> 隨著專用短程通訊技術(shù)和傳感器技術(shù),車輛控制技術(shù)越來(lái)越成熟,像自動(dòng)駕駛,無(wú)人駕駛技術(shù),從實(shí)驗(yàn)室走向?qū)嶋H應(yīng)用的步伐正在加快。比如特斯拉、谷歌、百度等等相繼進(jìn)行了無(wú)人駕駛技
29、術(shù)相關(guān)的測(cè)試。其研究過(guò)程可以劃分為三個(gè)階段:</p><p> 首先是泊車過(guò)程中駕駛員感知增強(qiáng) ,這類系統(tǒng)使用各類障礙傳感器,增強(qiáng)用戶對(duì)于周圍環(huán)境的感知能力以及感知范圍,例如超聲波傳感雷達(dá),運(yùn)用超聲波傳感器探測(cè)即將撞到的障礙物,在要撞到之前向用戶發(fā)出提醒。這類產(chǎn)品已經(jīng)在市場(chǎng)上廣泛的運(yùn)用。</p><p> 其次是基于超聲傳感器的簡(jiǎn)單自動(dòng)泊車系統(tǒng),利用傳感器實(shí)現(xiàn)側(cè)向停車位的檢測(cè),并控制車
30、輛完成停車動(dòng)作。系統(tǒng)通過(guò)相關(guān)的傳感器探測(cè)出車位的相關(guān)信息并告知用戶,用戶在指定位置停好后,開啟自動(dòng)泊車按鈕,系統(tǒng)開始輔助泊車,在泊車過(guò)程中,用戶不需要操作方向盤,只需要根據(jù)系統(tǒng)的指示,依靠系統(tǒng)探測(cè)出的信息,控制油門與剎車來(lái)停入車位,這種系統(tǒng)還是需要人為的干涉,不能做到全自動(dòng)泊車,其代表性的系統(tǒng)是來(lái)自雪鐵龍 C3 City Park 的自動(dòng)泊車系統(tǒng)。</p><p> 最后是采用多傳感器融合的自動(dòng)泊車系統(tǒng),這種系
31、統(tǒng)則更進(jìn)一步,可以做到不需人為操作全自動(dòng)泊車,用戶只需點(diǎn)下按鈕,汽車就會(huì)自動(dòng)泊入車位,這種系統(tǒng)通常采用了多個(gè)傳感器配合使用,加以視覺(jué)檢測(cè)裝置,輔以避障裝置來(lái)進(jìn)行自動(dòng)泊車的全過(guò)程,一般是通過(guò)視覺(jué)檢測(cè)傳感器來(lái)檢測(cè)泊車的車位信息,加上超聲波,攝像頭組成的避障裝置來(lái)檢測(cè)障礙,防止進(jìn)行碰撞,在高性能處理器的指揮下,整個(gè)系統(tǒng)完美配合,方向盤、油門、剎車、發(fā)動(dòng)機(jī)、檔位、門鎖都可以自動(dòng)配合控制,實(shí)現(xiàn)信息融合。其代表車型為 大眾的 PAV 系統(tǒng)(Park
32、 Assist Vision),此系統(tǒng)目前處于商業(yè)演示階段。</p><p> 1.3 論文的研究?jī)?nèi)容與組織結(jié)構(gòu)</p><p> 本論文所述的智能小車綜合系統(tǒng)主要涉及三大平臺(tái)的工作與配合,共同完成智能小車的功能和目標(biāo)。首先,是智能小車的行進(jìn)與探測(cè)系統(tǒng),小車首先能夠像現(xiàn)實(shí)中的汽車一樣能夠正常的前進(jìn)、后退、轉(zhuǎn)向,以及分布在車身的智能傳感系統(tǒng),能夠探測(cè)周圍的環(huán)境并作出相應(yīng)的的反饋,并接受用
33、戶的指令做出相應(yīng)動(dòng)作。其次,是用戶交互系統(tǒng),負(fù)責(zé)用戶和智能小車的交互操作,能夠?qū)⒂脩舻闹噶顐鬟_(dá)給智能小車,同時(shí)也將小車的情況反饋給用戶。最后是將二者連接在一起的通訊系統(tǒng),能夠解析用戶端與智能小車互相傳輸?shù)臄?shù)據(jù),并傳送至相應(yīng)的執(zhí)行機(jī)構(gòu)。</p><p> 本文采用基于Arduino開發(fā)板的智能小車硬件驅(qū)動(dòng)平臺(tái),和基于Android手機(jī)的用戶軟件交互界面,以及介于二者的基于藍(lán)牙技術(shù)的智能通訊系統(tǒng)。</p>
34、;<p> 論文的主要組織結(jié)構(gòu)如下:</p><p> 緒論,整體性的闡述了側(cè)方位泊車系統(tǒng)的研究背景、研究目的以及意義,介紹了自動(dòng)泊車系統(tǒng)在國(guó)內(nèi)外的研究現(xiàn)狀與研究過(guò)程,綜合介紹了本論文所設(shè)計(jì)與研究的主要內(nèi)容。第二章硬件系統(tǒng)綜合設(shè)計(jì),綜合的介紹了本文所采取的硬件平臺(tái)與相關(guān)模塊,綜合的介紹了各個(gè)方案的原理與結(jié)構(gòu),分析了個(gè)模塊的優(yōu)點(diǎn)與缺點(diǎn),總結(jié)得出最終的硬件平臺(tái)設(shè)計(jì)方案。第三章智能小車軟件系統(tǒng)的設(shè)計(jì)與
35、實(shí)現(xiàn),分別介紹了位于硬件平臺(tái)的Arduino開發(fā)板的驅(qū)動(dòng)與控制軟件開發(fā),以及位于手機(jī)端基于Android應(yīng)用的藍(lán)牙通訊軟件的集成的實(shí)現(xiàn)方法以及涉及到的主要代碼的分析。第四章路徑規(guī)劃設(shè)計(jì),首先對(duì)于實(shí)際中的泊車路徑做了相關(guān)的介紹與分析,接著根據(jù)實(shí)際中的泊車步驟抽象為二維圖形變化,進(jìn)行了簡(jiǎn)化分析以及相關(guān)規(guī)劃,最后根據(jù)二維模型,結(jié)合智能小車的傳感控制系統(tǒng),規(guī)劃出小車的行進(jìn)路線以及參考點(diǎn)位。論文最后是總結(jié)與展望,綜合性的概括了本文所涉及的設(shè)計(jì)與研
36、究,提煉總結(jié)全文所做的工作。結(jié)合智能汽車、智能傳感器等產(chǎn)業(yè)未來(lái)的發(fā)展趨勢(shì),進(jìn)一步提出了本文繼續(xù)研究的道路。</p><p> 2 硬件系統(tǒng)綜合設(shè)計(jì)</p><p> 本論文所述的智能小車綜合系統(tǒng)主要涉及三大平臺(tái)的工作與配合,共同完成智能小車的功能和目標(biāo)。首先,是智能小車的行進(jìn)與探測(cè)系統(tǒng),小車首先能夠像現(xiàn)實(shí)中的汽車一樣能夠正常的前進(jìn)、后退、轉(zhuǎn)向,以及分布在車身的智能傳感系統(tǒng),能夠探測(cè)周圍
37、的環(huán)境并作出相應(yīng)的的反饋,并接受用戶的指令做出相應(yīng)動(dòng)作。其次,是用戶交互系統(tǒng),負(fù)責(zé)用戶和智能小車的交互操作,能夠?qū)⒂脩舻闹噶顐鬟_(dá)給智能小車,同時(shí)也將小車的情況反饋給用戶。最后是將二者連接在一起的通訊系統(tǒng),能夠解析用戶端與智能小車互相傳輸?shù)臄?shù)據(jù),并傳送至相應(yīng)的執(zhí)行機(jī)構(gòu)。</p><p> 本文采用基于Arduino開發(fā)板的智能小車硬件驅(qū)動(dòng)平臺(tái),和基于Android手機(jī)的用戶軟件交互界面,以及介于二者的基于藍(lán)牙技術(shù)
38、的智能通訊系統(tǒng)。</p><p> 硬件系統(tǒng)設(shè)計(jì)是智能小車不可或缺的一步,同時(shí)也是實(shí)現(xiàn)自動(dòng)泊車的基礎(chǔ),本文的主要目標(biāo)就是設(shè)計(jì)一款能夠自動(dòng)泊車。本章將就智能小車上的各個(gè)模塊進(jìn)行具體詳細(xì)的介紹與解析。其中,本文的智能小車經(jīng)過(guò)了兩版的設(shè)計(jì),因此,下文將就二者進(jìn)行對(duì)比介紹。第一代小車采用了8051主控制芯片、紅外遙控、L298N電機(jī)驅(qū)動(dòng)模塊、尋跡模塊、雙電機(jī)、蜂鳴器、數(shù)碼管、電池盒。第二代小車基于Arduino平臺(tái)及其
39、擴(kuò)展板(電機(jī)、舵機(jī)驅(qū)動(dòng)模塊、傳感器采集模塊),采用了藍(lán)牙遙控、多路避障傳感器模塊、電機(jī)、舵機(jī)、 電池等模塊。更加接近真實(shí)汽車的使用條件。</p><p> 圖3.1 智能小車系統(tǒng)(左:第二代,右:第一代)</p><p> 本論文分別對(duì)基于8051單片機(jī)的硬件驅(qū)動(dòng)平臺(tái)以及基于Arduino開發(fā)板的硬件平臺(tái)做了相關(guān)的研究與設(shè)計(jì),下面分別對(duì)于二者作簡(jiǎn)要介紹。</p><
40、p> 8051是一種8位元的單芯片微控制器,屬于MCS-51單芯片的一種,由英特爾公司于1981年制造。該芯片具備了便宜、電路簡(jiǎn)單、體積小與耗電低等優(yōu)點(diǎn),所以目前在業(yè)界使用的極為廣泛。</p><p> Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。由一個(gè)歐洲開發(fā)團(tuán)隊(duì)于2005年冬季開發(fā)。它構(gòu)建于開放原始碼simple
41、I/O介面版,并且具有使用類似Java、C語(yǔ)言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個(gè)主要的部分:硬件部分是可以用來(lái)做電路連接的Arduino電路板;另外一個(gè)則是Arduino IDE,計(jì)算機(jī)中的程序開發(fā)環(huán)境。只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會(huì)告訴Arduino電路板要做些什么了。Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上
42、的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。對(duì)Arduino的編程是利用 Arduino編程語(yǔ)言 (基于 Wiring)和Arduino開發(fā)環(huán)境(基于 Processing)來(lái)實(shí)現(xiàn)的。</p><p> 2.1智能小車行駛系統(tǒng)</p><p> 智能小車最主要的功能之一就是能夠正常行駛,其中在這里可以分為兩個(gè)部分,動(dòng)力裝置和轉(zhuǎn)向裝置,其中動(dòng)力
43、裝置就是為小車提供動(dòng)力的模塊,如電機(jī),可以使小車前進(jìn)或者后退,轉(zhuǎn)向裝置就是能夠讓小車向某個(gè)方向轉(zhuǎn)一定角度的裝置,例如舵機(jī),可以使小車向左或向右轉(zhuǎn)一定角度。二者配合起來(lái)就可以讓小車按照規(guī)定路線行進(jìn),完成相應(yīng)功能。</p><p> 2.1.1智能小車動(dòng)力系統(tǒng)</p><p> 初始方案:采用兩個(gè)HC02-48直流減速電機(jī)馬達(dá)及萬(wàn)向輪組成的動(dòng)力系統(tǒng),使用L298N電機(jī)驅(qū)動(dòng)模塊來(lái)驅(qū)動(dòng)兩個(gè)馬達(dá)
44、運(yùn)轉(zhuǎn),以及采用四節(jié)5號(hào)電池(AA、R6)驅(qū)動(dòng)(約6V)。</p><p><b> 。</b></p><p> 圖3.2 直流減速電機(jī)馬達(dá)及L298N電機(jī)驅(qū)動(dòng)板模塊</p><p> 改進(jìn)方案:采用了JGA25-370 金屬減速電機(jī)配合減速齒輪,基于PM-R3拓展模塊的(L298P)的直流驅(qū)動(dòng)模塊,7.4V鋰電池驅(qū)動(dòng)電機(jī)。<
45、/p><p> 圖3.3 金屬減速電機(jī)馬達(dá)及L298N電機(jī)驅(qū)動(dòng)板模塊(PM-R3)</p><p> 經(jīng)過(guò)改進(jìn)之后,更換電機(jī)使小車能夠更加平穩(wěn)的行駛,不會(huì)因?yàn)閮蓚?cè)電機(jī)的步調(diào)不一而向某一方向偏轉(zhuǎn),更換更好的電池,使小車的動(dòng)力增加,不會(huì)因?yàn)椴粔螂妷憾鴮?dǎo)致一側(cè)電機(jī)停止工作,更換了電機(jī)驅(qū)動(dòng),使電機(jī)能夠更加智能的調(diào)整速度。</p><p> 2.1.2 智能小車轉(zhuǎn)向系
46、統(tǒng)</p><p> 初始方案:通過(guò)智能小車上的兩個(gè)動(dòng)力輪的差速進(jìn)行轉(zhuǎn)向:當(dāng)一個(gè)輪子速度快,一個(gè)輪子速度慢時(shí),小車會(huì)向速度慢的一邊轉(zhuǎn)向。</p><p> 圖3.3 雙電機(jī)差速轉(zhuǎn)向</p><p> 改進(jìn)方案:通過(guò)使用舵機(jī)來(lái)幫助智能小車轉(zhuǎn)向,舵機(jī)也叫伺服電機(jī),最早用于船舶上實(shí)現(xiàn)其轉(zhuǎn)向功能,可以通過(guò)程序連續(xù)控制其角度,舵機(jī)主要是由外殼、電路板、無(wú)核心馬達(dá)、齒
47、輪與位置檢測(cè)器所構(gòu)成。其工作原理是由接收機(jī)發(fā)出訊號(hào)給舵機(jī),經(jīng)由電路板上的IC判斷轉(zhuǎn)動(dòng)方向,再驅(qū)動(dòng)無(wú)核心馬達(dá)開始轉(zhuǎn)動(dòng),透過(guò)減速齒輪將動(dòng)力傳至擺臂,同時(shí)由位置檢測(cè)器送回訊號(hào),判斷是否已經(jīng)到達(dá)定位。位置檢測(cè)器其實(shí)就是可變電阻,當(dāng)舵機(jī)轉(zhuǎn)動(dòng)時(shí)電阻值也會(huì)隨之改變,藉由檢測(cè)電阻值便可知轉(zhuǎn)動(dòng)的角度。</p><p> 舵機(jī)的控制信號(hào)周期為20MS的脈寬調(diào)制(PWM)信號(hào),其中脈沖寬度從0.5-2.5MS,相對(duì)應(yīng)的舵盤位置為0-
48、180度,呈線性變化。也就是說(shuō),給它提供一定的脈寬,它的輸出軸就會(huì)保持一定對(duì)應(yīng)角度上,無(wú)論外界轉(zhuǎn)矩怎么改變,直到給它提供一個(gè)另外寬度的脈沖信號(hào),它才會(huì)改變輸出角度。本文的智能小車采用了MG996R型號(hào)的舵機(jī)。</p><p> 圖3.4 轉(zhuǎn)向舵機(jī)</p><p> 在經(jīng)過(guò)改進(jìn)后,小車的轉(zhuǎn)向能力大幅提升,避免了差速轉(zhuǎn)向的不精確,差速轉(zhuǎn)向主要依靠?jī)奢喼g的差速進(jìn)行轉(zhuǎn)向,但由于工藝水平所
49、限,驅(qū)動(dòng)模塊并不能很好的控制兩個(gè)電機(jī)的速度,并且由于電源的供電有限,導(dǎo)致智能小車的轉(zhuǎn)向十分的不精確,經(jīng)常發(fā)生偏移,因此在改進(jìn)方案中,選用了更加精確的舵機(jī)進(jìn)行轉(zhuǎn)向,它可以讓車輪精確地轉(zhuǎn)向某一角度,從而達(dá)到精確控制小車的目的。</p><p> 2.2智能小車信息采集模塊</p><p> 紅外探測(cè)傳感器由于發(fā)出的是紅外光,常見光對(duì)它的干擾極小,且由于價(jià)格便宜,而被廣泛應(yīng)用于智能小車的循線
50、、避障等實(shí)際應(yīng)用中。紅外避障傳感器具有一對(duì)紅外信號(hào)發(fā)射與接收二極管,發(fā)射管發(fā)射一定頻率的紅外信號(hào),接收管接收這種頻率的紅外信號(hào),當(dāng)傳感器的檢測(cè)方向遇到障礙物(反射面)時(shí),紅外信號(hào)反射回來(lái)被接收管接收,經(jīng)到信號(hào)處理之后,通過(guò)數(shù)字傳感器接口返回到機(jī)器人主機(jī),機(jī)器人即可利用紅外波的返回信號(hào)來(lái)識(shí)別周圍環(huán)境的變化。</p><p> 2.2.1 紅外避障傳感器的原理</p><p> 本文采用了
51、四路紅外避障傳感器模塊,它的原理是每1路的傳感器的紅外發(fā)射管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒(méi)有被反射回來(lái)或被反射回來(lái)但強(qiáng)度不夠大時(shí),紅外接收管一直處于關(guān)斷狀態(tài),此時(shí)模塊的TTL輸出端為高電平,相應(yīng)指示二極管一直處于熄滅狀態(tài);當(dāng)被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來(lái)且強(qiáng)度足夠大,紅外接收管導(dǎo)通,此時(shí)模塊的TTL輸出 端為低電平,指示二極管被點(diǎn)亮。</p><p> 傳感器的外部檢測(cè)電路為L(zhǎng)M339,LM
52、339為內(nèi)部集成了四路比較器的集成電路。因?yàn)閮?nèi)部的四個(gè)比較電路完全相同,這里僅以一路比較電路進(jìn)行舉例。比較器有兩個(gè)輸入端和一個(gè)輸出端,兩個(gè)輸入端一個(gè)稱為同輸入端,用“+”號(hào)表示,另一個(gè)稱為反相輸入端,用“-”表示。用作比較兩個(gè)電路時(shí),任意一個(gè)輸入端加一個(gè)固定電壓作參考電壓(也叫門限電壓),另一端則直接接需要比較的信號(hào)電壓。當(dāng)“+”端電壓高于“-”端電壓時(shí),輸出正電源電壓,當(dāng)“-”端電壓高于“+”端電壓時(shí),輸出負(fù)電源電壓(注意,此處所說(shuō)的
53、正電源電壓和負(fù)電源電壓是指接比較正負(fù)極的電壓),也就是輸出高低電平信號(hào)。</p><p> 2.2.2 紅外避障傳感器的結(jié)構(gòu)</p><p> 紅外循跡模塊,主要分為兩大部分,LM339比較器模塊和紅外對(duì)管模塊,由于上面已經(jīng)分析的其工作原理,下面給出兩部分的原理圖及其實(shí)物圖。</p><p> 圖3.5 紅外傳感器原理圖及LM339比較器</p>
54、;<p> 圖3.6 4路紅外避障傳感器模塊實(shí)物圖</p><p> 2.3智能小車通訊系統(tǒng)</p><p> 本論文分別對(duì)基于8051單片機(jī)的硬件驅(qū)動(dòng)平臺(tái)以及基于Arduino開發(fā)板的硬件平臺(tái)采用了不同的無(wú)線通訊平臺(tái),對(duì)于8051平臺(tái)采用了紅外遙控技術(shù),對(duì)于Arduino平臺(tái)則采用了藍(lán)牙技術(shù)。下面分別對(duì)二者進(jìn)行介紹。</p><p> 首
55、先是采用紅外遙控技術(shù)的第一代方案,紅外遙控是一種無(wú)線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來(lái)越多的應(yīng)用到計(jì)算機(jī)和手機(jī)系統(tǒng)中。紅外遙控分為發(fā)射端和接收端,發(fā)射電路是采用紅外發(fā)光二極管來(lái)發(fā)出經(jīng)過(guò)調(diào)制的紅外光波來(lái)傳輸信息,并由紅外接收電路(由紅外接收二極管、三極管或硅光電池組成)將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應(yīng)的電信號(hào),在經(jīng)過(guò)轉(zhuǎn)換電路轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)。&
56、lt;/p><p> 采用藍(lán)牙技術(shù)的第二代方案,藍(lán)牙是一種支持設(shè)備短距離通信(一般10m內(nèi))的無(wú)線電技術(shù)。能在包括移動(dòng)電話、PDA、無(wú)線耳機(jī)、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進(jìn)行無(wú)線信息交換。利用“藍(lán)牙”技術(shù),能夠有效地簡(jiǎn)化移動(dòng)通信終端設(shè)備之間的通信,也能夠成功地簡(jiǎn)化設(shè)備與因特網(wǎng)Internet之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效,為無(wú)線通信拓寬道路。藍(lán)牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)及點(diǎn)
57、對(duì)多點(diǎn)通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。其數(shù)據(jù)速率為1Mbps。采用時(shí)分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸。</p><p> 2.3.1 藍(lán)牙通信原理</p><p> 藍(lán)牙主端設(shè)備發(fā)起呼叫,首先是查找,找出周圍處于可被查找的藍(lán)牙設(shè)備。主端設(shè)備找到從端藍(lán)牙設(shè)備后,與從端藍(lán)牙設(shè)備進(jìn)行配對(duì),此時(shí)需要輸入從端設(shè)備的PIN碼,也有設(shè)備不需要輸入PIN碼。配對(duì)完成后
58、,從端藍(lán)牙設(shè)備會(huì)記錄主端設(shè)備的信任信息,此時(shí)主端即可向從端設(shè)備發(fā)起呼叫,已配對(duì)的設(shè)備在下次呼叫時(shí),不再需要重新配對(duì)。已配對(duì)的設(shè)備,做為從端的藍(lán)牙耳機(jī)也可以發(fā)起建鏈請(qǐng)求,但做數(shù)據(jù)通訊的藍(lán)牙模塊一般不發(fā)起呼叫。鏈路建立成功后,主從兩端之間即可進(jìn)行雙向的數(shù)據(jù)或語(yǔ)音通訊。在通信狀態(tài)下,主端和從端設(shè)備都可以發(fā)起斷鏈,斷開藍(lán)牙鏈路。藍(lán)牙數(shù)據(jù)傳輸應(yīng)用中,一對(duì)一串口數(shù)據(jù)通訊是最常見的應(yīng)用之一,藍(lán)牙設(shè)備在出廠前即提前設(shè)好兩個(gè)藍(lán)牙設(shè)備之間的配對(duì)信息,主端預(yù)
59、存有從端設(shè)備的PIN碼、地址等,兩端設(shè)備加電即自動(dòng)建鏈,透明串口傳輸,無(wú)需外圍電路干預(yù)。一對(duì)一應(yīng)用中從端設(shè)備可以設(shè)為兩種類型,一是靜默狀態(tài),即只能與指定的主端通信,不被別的藍(lán)牙設(shè)備查找;二是開發(fā)狀態(tài),既可被指定主端查找,也可以被別的藍(lán)牙設(shè)備查找建鏈。</p><p> 本文最終的智能小車的通信模塊采用的是DX-BT05型藍(lán)牙通訊模塊,采用CC2541主芯片,配置 256Kb 空間,遵循V4.0 BLE藍(lán)牙規(guī)范。
60、支持AT 指令,可根據(jù)需要更改串口波特率、設(shè)備名稱、配對(duì)密碼等參數(shù),使用靈活。支持UART接口,并支持SPP藍(lán)牙串口協(xié)議,具有成本低、體積小、功耗低、收發(fā)靈敏性高等優(yōu)點(diǎn),只需配備少許的外圍元件就能實(shí)現(xiàn)其強(qiáng)大功能。主要用于短距離的數(shù)據(jù)無(wú)線傳輸領(lǐng)域,對(duì)于本設(shè)計(jì)的應(yīng)用十分適合,另外該模塊可以方便的和手機(jī)和PC的藍(lán)牙設(shè)備相連,也可以兩個(gè)模塊之間的數(shù)據(jù)互通,避免繁瑣的線纜連接。</p><p> 下面是本文所采取的模塊主
61、要的參數(shù):</p><p> 表3.1 DX-BT05型藍(lán)牙模塊</p><p><b> 圖3.6 藍(lán)牙模塊</b></p><p> 2.3.1 藍(lán)牙通信過(guò)程</p><p> 藍(lán)牙設(shè)備之間的通信的主要有四個(gè)步驟:首先是開啟藍(lán)牙設(shè)備,然后尋找局域網(wǎng)內(nèi)可能或者匹配的設(shè)備,接著連接設(shè)備,最后實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸
62、。</p><p> 接著是具體實(shí)現(xiàn),第一步是啟動(dòng)藍(lán)牙功能,通過(guò)相應(yīng)指令啟用藍(lán)牙功能。第二步是查找設(shè)備,通過(guò)名字、MAC地址等信息查找相應(yīng)的藍(lán)牙設(shè)備。第三步是查詢匹配好的設(shè)備,查看以前配對(duì)過(guò)的藍(lán)牙設(shè)備集以便選取一個(gè)設(shè)備進(jìn)行通信。第四步是掃描設(shè)備,查找周圍的藍(lán)牙設(shè)備(大概十米以內(nèi)),需要對(duì)方開啟藍(lán)牙,并開啟或者已經(jīng)開啟了“被發(fā)現(xiàn)使能”功能。第五步是使能被發(fā)現(xiàn),讓自己的藍(lán)牙設(shè)備能夠被其他設(shè)備發(fā)現(xiàn)。第六步是連接設(shè)備,
63、建立與目標(biāo)設(shè)備的藍(lán)牙連接。第七步是服務(wù)端的連接,兩臺(tái)設(shè)備之間,服務(wù)端用于監(jiān)聽外來(lái)的連接請(qǐng)求。第八步是客戶端的連接,兩臺(tái)設(shè)備之間客戶端用于發(fā)出連接請(qǐng)求。第九步是管理連接,當(dāng)設(shè)備連接上以后,實(shí)現(xiàn)設(shè)備之間數(shù)據(jù)的共享,以及其他操作。</p><p> 3 智能小車軟件設(shè)計(jì)與實(shí)現(xiàn)</p><p> 本設(shè)計(jì)主要運(yùn)用藍(lán)牙技術(shù)作為通訊的橋梁,連接智能小車與用戶交互界面,借助傳感器技術(shù)及其數(shù)據(jù)采集技術(shù),
64、通過(guò)Arduino開發(fā)板及其驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)和舵機(jī)以實(shí)現(xiàn)目標(biāo)功能。系統(tǒng)總體框架如圖3.1所示。</p><p> 圖3.1 智能泊車系統(tǒng)總體框架 </p><p> 智能泊車系統(tǒng)的框架分為如圖所示的三大模塊,即三層結(jié)構(gòu),首先是以Android手機(jī)為平臺(tái)的應(yīng)用層,它可以根據(jù)用戶的需求來(lái)設(shè)計(jì)不同的功能來(lái)實(shí)現(xiàn),由于現(xiàn)在手機(jī)的芯片功能已經(jīng)十分強(qiáng)大,許多復(fù)雜的操作例如運(yùn)算處理和數(shù)據(jù)分析都可以放
65、在手機(jī)上來(lái)運(yùn)作,而不用擔(dān)心底層控制器的性能不足,Android系統(tǒng)支持很多的開源軟件有很多強(qiáng)大的功能例如圖像識(shí)別、語(yǔ)音識(shí)別都可以添加在這一層中來(lái),并且Android系統(tǒng)有很好的網(wǎng)絡(luò)服務(wù)功能,在手機(jī)上處理不了的功能甚至可以在云端來(lái)處理。其次是處于中間層的藍(lán)牙傳輸,它用于組成多維的通訊網(wǎng)絡(luò),實(shí)現(xiàn)車輛的底層系統(tǒng)與人機(jī)交互平臺(tái)的無(wú)線交流?;诂F(xiàn)在的手機(jī)幾乎都配備了藍(lán)牙的功能,并且現(xiàn)在的汽車大部分也裝有藍(lán)牙模塊,因此藍(lán)牙傳輸這個(gè)方案十分具有實(shí)用化
66、的價(jià)值。最后是屬于系統(tǒng)硬件是基于Arduino開發(fā)板及其擴(kuò)展模塊的智能硬件系統(tǒng),它采用了多元傳感器技術(shù)及其信息化技術(shù),以及各類驅(qū)動(dòng)技術(shù),實(shí)現(xiàn)對(duì)智能小車的控制與驅(qū)動(dòng)。</p><p> 3.1 Arduino軟件綜合系統(tǒng)</p><p> Arduino是一個(gè)開源的軟硬件一體化平臺(tái),它提供了功能強(qiáng)大的Arduino開發(fā)板以及其配套的Arduino IDE集成開發(fā)環(huán)境,它不僅提供開源的硬件
67、原理圖、電路圖、IDE以及核心庫(kù),而且開提供了各種各樣的開源硬件和軟件模塊,在開源協(xié)議范圍里可以任意修改。并且它可以在Windows、Linux、macOS三大電腦系統(tǒng)上跨平臺(tái)開發(fā),以及擁有及其清晰明了的開發(fā)流程,使用類似于C++語(yǔ)言但卻更加簡(jiǎn)潔清晰的Arduino語(yǔ)言來(lái)開發(fā),并且對(duì)于很多應(yīng)用庫(kù)都做了相應(yīng)封裝,讓使用者更加容易上手與實(shí)用。</p><p> 在Arduino軟件系統(tǒng)中主要負(fù)責(zé)處理與驅(qū)動(dòng)硬件系統(tǒng)的
68、各個(gè)子系統(tǒng),其中最主要的代碼分為以下幾個(gè)部分:電機(jī)驅(qū)動(dòng)與控制;舵機(jī)驅(qū)動(dòng)與控制;多路紅外傳感器的數(shù)據(jù)采集及分析;藍(lán)牙通訊的接受與發(fā)送,小車與手機(jī)之間的控制基于藍(lán)牙技術(shù),Android開發(fā)了一個(gè)簡(jiǎn)單的控制界面,下面就逐一分別介紹。</p><p> 3.1.1 Arduino 電機(jī)馬達(dá)驅(qū)動(dòng)</p><p> 在Arduino開發(fā)板上有PWM輸出口,因此可以利用該接口使用PWM技術(shù)驅(qū)動(dòng)電機(jī)
69、馬達(dá)。下面是各接口連接與定義 :arduino開發(fā)板使用外接電源(7.4V),電機(jī)馬達(dá)接到主板上的控制正負(fù)接口(A+、A-),電機(jī)驅(qū)動(dòng)板內(nèi)部使用開發(fā)板的5,6口PWM控制輸出。</p><p> 下面是開發(fā)板控制以及驅(qū)動(dòng)的核心代碼解析,首先我們需要驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),我們要定義兩個(gè)PWM輸出接口5口與6口:</p><p> #define PWMA1 5 //Motor A
70、39;s pin</p><p> 接著我們要定義小車所需的前進(jìn)、后退、停止參數(shù):</p><p> #define MOTORFOWARD setMotor(-90) //motor back</p><p> //后退與停止的值分別為90與0,也是一樣定義的。</p><p> 下一步Arduino開發(fā)板初始化參數(shù)設(shè)定:&l
71、t;/p><p> void setup()</p><p><b> {</b></p><p> pinMode(PWMA1, OUTPUT); //系統(tǒng)定義兩個(gè)PWM接口為輸出接口</p><p><b> }</b></p><p> 在下一步是實(shí)現(xiàn)電機(jī)P
72、WM調(diào)速的關(guān)鍵性驅(qū)動(dòng)函數(shù):</p><p> void setMotor(int m1Speed) //電機(jī)驅(qū)動(dòng)函數(shù)</p><p><b> {</b></p><p> if (m1Speed >= 0){</p><p> digitalWrite(PWMA2, HIGH);</p>&
73、lt;p> analogWrite(PWMA1, 255 - m1Speed);}</p><p><b> else{</b></p><p> digitalWrite(PWMA1, HIGH);</p><p> analogWrite(PWMA2, m1Speed + 255); }}</p><p&g
74、t; 最后是實(shí)際使用電機(jī)驅(qū)動(dòng)的一個(gè)實(shí)例:</p><p> void loop() //Arduino系統(tǒng)循環(huán),相當(dāng)于C語(yǔ)言中的main()函數(shù)</p><p> { MOTORFOWARD; //前進(jìn)</p><p> setMotor(100); //直接控制速度</p><p><b> }<
75、/b></p><p> 3.1.2 Arduino 舵機(jī)驅(qū)動(dòng)</p><p> 舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于需要角度不斷變化并可以保持的控制系統(tǒng)。在本文前面已經(jīng)介紹了舵機(jī)的原理以及硬件參數(shù),下面就本系統(tǒng)進(jìn)行詳細(xì)介紹。首先是連接設(shè)置:舵機(jī)有三條線,VCC、GND、Signal,其中VCC、GND連接到開發(fā)板的VCC、GND上,Signal線我們定義在開發(fā)板的4號(hào)
76、口。下面是相關(guān)的具體代碼的解析:</p><p> 首先系統(tǒng)需要引入Arduino開發(fā)板官方的舵機(jī)驅(qū)動(dòng)庫(kù):</p><p> #include <Servo.h></p><p> 接著我們定義開發(fā)板上的4號(hào)口為舵機(jī)信號(hào)線并定義小車轉(zhuǎn)向角度:</p><p> #define SERVOPIN 4 //servo&
77、#39;s pin</p><p> #define SERVOMIN 40 //the angle of servo</p><p> 下一步是創(chuàng)建舵機(jī)對(duì)象并在系統(tǒng)初始化函數(shù)中初始化舵機(jī):</p><p> Servo myservo; //創(chuàng)建一個(gè)舵機(jī)控制對(duì)象</p><p> void setup() { <
78、/p><p> myservo.attach(4); //連接4號(hào)口為舵機(jī)</p><p><b> }</b></p><p> 在下一步是實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)的相關(guān)代碼:</p><p> #define TURNRIGHT myservo.write(SERVOMIN) //左轉(zhuǎn)</p><
79、;p> //其他方向也是同樣定義</p><p> void loop() { </p><p> TURNRIGHT ;//右轉(zhuǎn)</p><p> myservo.write(100); // 指定舵機(jī)轉(zhuǎn)向的角度</p><p><b> }</b></p><
80、p> 3.1.3 多路紅外傳感器的數(shù)據(jù)采集及分析</p><p> 本文采用了四路紅外避障傳感器模塊,上文已經(jīng)介紹了其原理與結(jié)構(gòu),下面就傳感器的數(shù)據(jù)采集以及數(shù)據(jù)分析以相關(guān)操作做進(jìn)一步的介紹。首先是傳感器和Arduino開發(fā)板的連接設(shè)置:4個(gè)傳感器分別用線接入傳感器模塊PCB板(傳感器有VCC、GND、Signal線,分別對(duì)應(yīng)接入),經(jīng)過(guò)模塊的轉(zhuǎn)換(LM339),變?yōu)?條線(VCC、GND、IN1-4),
81、通過(guò)連接線接入Arduino開發(fā)板的接口,VCC、GND對(duì)應(yīng)接入,IN1對(duì)應(yīng)2口,IN2對(duì)應(yīng)3口,IN3對(duì)應(yīng)7口,IN4對(duì)應(yīng)8口。</p><p> 下面是核心代碼解析,首先我們要定義4路傳感器的接口,方便在后面的程序里調(diào)用:</p><p> #define RED1 2 //其他傳感器也同樣定義</p><p> 接著在初始化參數(shù)中設(shè)定傳感器的端口為
82、接受端(INPUT):</p><p> void setup() {</p><p> pinMode(RED1, INPUT);</p><p> ......//其他傳感器也同樣定義</p><p><b> }</b></p><p> 最后是一個(gè)使用傳感器進(jìn)行探測(cè)的實(shí)例,讀取的
83、是2號(hào)3號(hào)傳感器的信息,當(dāng)傳來(lái)的是高電平以及低電平相應(yīng)的操作:</p><p> void loop() </p><p><b> { </b></p><p> if(digitalRead(RED2)==HIGH) </p><p> ...... //對(duì)2號(hào)傳感器進(jìn)行檢測(cè),并在下面的代碼進(jìn)行相應(yīng)操
84、作</p><p><b> }</b></p><p> 3.1.4 藍(lán)牙通訊的接受與發(fā)送</p><p> 本文采用了DX-BT05型模塊,上文已經(jīng)介紹了其原理與結(jié)構(gòu),下面該模塊的數(shù)據(jù)傳輸?shù)慕邮芘c發(fā)送以及相關(guān)操作做進(jìn)一步的介紹。連接設(shè)置:藍(lán)牙模塊一共有6的接口,見圖3.3.1,其中我們需要接VCC、GND、TXD、RXD</p&
85、gt;<p> 接下來(lái)是核心代碼解析:Arduino開發(fā)板中的藍(lán)牙與其串口是連接在一起的,因此可以很方便的運(yùn)用藍(lán)牙,首先是初始化設(shè)置,設(shè)定串口的通信波特率:</p><p> void setup() {</p><p> Serial.begin(9600); //藍(lán)牙與串口是在一起的,因此操作串口即為操作藍(lán)牙</p><p><
86、;b> }</b></p><p> 接著是一個(gè)運(yùn)用藍(lán)牙通訊的例子,它首先檢測(cè)藍(lán)牙是否在線,接著讀取接收來(lái)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行判斷,如果是字符‘a(chǎn)’的話,就像藍(lán)牙輸出字符串“hello world”:</p><p> void loop() {</p><p> While(Serial.available()){ //檢測(cè)藍(lán)牙是否可
87、用</p><p> Char c=Serial.read();//讀取接收來(lái)的數(shù)據(jù)</p><p> If(c==’a’){//對(duì)讀取來(lái)的數(shù)據(jù)進(jìn)行判斷</p><p> Serial.println(“hello world”);//使用藍(lán)牙發(fā)送“hello world”字符串</p><p><b>
88、}} }</b></p><p> 3.2 Android軟件綜合系統(tǒng)</p><p> Android是一個(gè)移動(dòng)設(shè)備系統(tǒng),是基于Linux平臺(tái),由操作系統(tǒng),中間件、用戶界面和應(yīng)用軟件組成。Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。Android早期由原名為"Android"的公司開發(fā)
89、,它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。</p><p> 本節(jié)將就Android手機(jī)系統(tǒng)下的應(yīng)用搭建與設(shè)計(jì)進(jìn)行相關(guān)研究與分析,該應(yīng)用實(shí)現(xiàn)了與智能小車的配合使用實(shí)現(xiàn)了目標(biāo)的功能,是與用戶直接交互的界面,也是本設(shè)計(jì)的基礎(chǔ)。</p><p> 開發(fā)An
90、droid應(yīng)用程序主要使用Java程序語(yǔ)言,利用Android Studio集成開發(fā)環(huán)境進(jìn)行開發(fā)與調(diào)試,本文的Android應(yīng)用程序主要包括藍(lán)牙通訊、智能小車控制程序、以及用戶操作界面三部分組成,下面依次說(shuō)明。</p><p> 3.2.1 基于Android的藍(lán)牙通訊</p><p> 首先我們進(jìn)行程序流程簡(jiǎn)要規(guī)劃:首先開啟藍(lán)牙設(shè)備,接著尋找局域網(wǎng)內(nèi)可能或者匹配的設(shè)備,最后連接設(shè)備,
91、實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸。</p><p> 在有了初步規(guī)劃之后我們將進(jìn)入細(xì)節(jié)代碼分析:</p><p> 要操作藍(lán)牙設(shè)備,我們首先要獲取操作藍(lán)牙設(shè)備的對(duì)象BluetoothAdapter,</p><p> BluetoothAdapter BTAdapter = BluetoothAdapter.getDefaultAdapter();</p>
92、<p> 同時(shí),還需要使用到三項(xiàng)系統(tǒng)權(quán)限:</p><p> <uses-permission android:name="android.permission.BLUETOOTH" /></p><p> <uses-permission android:name="android.permission.BLUETOOTH
93、_ADMIN" /></p><p> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /></p><p> 將這三項(xiàng)系統(tǒng)權(quán)限添加在AndroidManifest.xml文件中,之后我們就可以通過(guò)BluetoothAdapter對(duì)真實(shí)的藍(lán)
94、牙設(shè)備以及軟件功能進(jìn)行操作使用了。</p><p> 開啟藍(lán)牙,在應(yīng)用中使用Intent啟動(dòng)確認(rèn)窗口,讓用戶選擇是否允許打開:</p><p> BluetoothAdapter BTAdapter = BluetoothAdapter.getDefaultAdapter();</p><p> //判斷藍(lán)牙功能是否打開</p><p>
95、; if (!BTAdapter.isEnabled()) {</p><p> //沒(méi)有打開,就啟動(dòng)確認(rèn)窗口詢問(wèn)用戶是否打開</p><p> Intent i = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);</p><p> startActivity(i);</p><p&
96、gt;<b> }</b></p><p> 允許被發(fā)現(xiàn),我們需要設(shè)置設(shè)備可以被別的藍(lán)牙設(shè)備發(fā)現(xiàn):</p><p> BluetoothAdapter BTAdapter = BluetoothAdapter.getDefaultAdapter();</p><p> //判斷是非可以被發(fā)現(xiàn)</p><p>
97、if(BTAdapter.getScanMode()!=BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {</p><p> //啟動(dòng)窗口,詢問(wèn)用戶是否可以設(shè)置成允許被發(fā)現(xiàn)</p><p> Intent i=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);&
98、lt;/p><p> //可以一直被別的藍(lán)牙設(shè)備發(fā)現(xiàn)</p><p> i.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);</p><p> startActivity(i);</p><p><b> }</b></p><p
99、> 搜索可連接設(shè)備,使用BluetoothAdapter的startDiscovery()方法開始搜素設(shè)備,并使用BroadcastReceiver類來(lái)接受系統(tǒng)發(fā)出的廣播:</p><p> BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();</p><p> //如果正在搜索藍(lán)牙
100、設(shè)備,則停止搜索</p><p> if (mBluetoothAdapter.isDiscovering()) {</p><p> mBluetoothAdapter.cancelDiscovery();</p><p><b> }</b></p><p> //開始搜索藍(lán)牙設(shè)備</p>&l
101、t;p> mBluetoothAdapter.startDiscovery();</p><p><b> //廣播接收</b></p><p> private final BroadcastReceiver mReceiver = new BroadcastReceiver() {</p><p><b> @Ove
102、rride</b></p><p> public void onReceive(Context context, Intent intent) {</p><p> String action = intent.getAction();</p><p> if (BluetoothDevice.ACTION_FOUND.equals(action
103、)) {</p><p> //從Intent中獲取可連接的設(shè)備</p><p> BluetoothDevicedevice=</p><p> intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);</p><p><b> }</b></p&g
104、t;<p> else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {</p><p> //開始搜索了,增加相應(yīng)操作。 </p><p><b> } </b></p><p> else if (BluetoothAdapter.AC
105、TION_DISCOVERY_FINISHED.equals(action)) {</p><p> //結(jié)束搜索了,增加相應(yīng)操作。</p><p><b> } }};</b></p><p> 連接建立以后,雙方開始交換數(shù)據(jù)。無(wú)論是主動(dòng)連接還是被動(dòng)連接,數(shù)據(jù)的交換都是通過(guò)之前得到的Socket進(jìn)行的:</p><p
106、> InputStream mInStream = mSocket.getInputStream();</p><p> OutputStream mOutStream = mSocket.getOutputStream();</p><p> //InputStream負(fù)責(zé)讀取從Socket傳入的數(shù)據(jù);</p><p> //OutputStream
107、負(fù)責(zé)將數(shù)據(jù)從Socket發(fā)送出去;</p><p> //存放傳入數(shù)據(jù)的數(shù)據(jù)區(qū)</p><p> byte[] buffer = new byte[MAX_BUFFER_SIZE];</p><p> //存放讀取數(shù)據(jù)的字節(jié)長(zhǎng)度</p><p> int bytes;</p><p> while (true
108、) {</p><p> try {//等待讀取數(shù)據(jù)</p><p> bytes = mInStream.read(buffer);} catch (IOException e) {</p><p> //異常情況,例如Socket被關(guān)閉,對(duì)方斷開連接</p><p><b> break;}}</b>&l
109、t;/p><p> //采用OutputStream的write()方法發(fā)送數(shù)據(jù)</p><p> mOutStream.write(data);</p><p> 以上就是藍(lán)牙傳輸數(shù)據(jù)的關(guān)鍵性部分,在程序中將相應(yīng)的按鍵或者著操作轉(zhuǎn)為相應(yīng)的字符以簡(jiǎn)化傳輸?shù)臄?shù)據(jù),將此字符通過(guò)藍(lán)牙從手機(jī)端發(fā)送到Arduino開發(fā)板上,開發(fā)板在通過(guò)檢測(cè)字符指令轉(zhuǎn)化為相應(yīng)的操作指令,并傳
110、達(dá)給相應(yīng)的操作機(jī)構(gòu)進(jìn)行執(zhí)行操作。</p><p> 3.2.2 智能小車控制程序</p><p> 在介紹完Android應(yīng)用程序的藍(lán)牙通訊傳輸之后,我們需要編寫Android應(yīng)用程序端對(duì)于智能小車的控制程序,在Arduino系統(tǒng)的藍(lán)牙通訊的發(fā)送與接受一節(jié)里,已經(jīng)大致介紹了Arduino端的程序設(shè)計(jì),在上文也講述了在手機(jī)的藍(lán)牙通訊的基本函數(shù)接口,因此在下面就兩端的配合做相關(guān)的介紹。&l
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 測(cè)控技術(shù)與儀器畢業(yè)設(shè)計(jì)側(cè)方位自動(dòng)泊車小車設(shè)計(jì)
- 側(cè)方位自動(dòng)泊車小車設(shè)計(jì)畢業(yè)論文
- 測(cè)控技術(shù)與儀器畢業(yè)論文基于語(yǔ)音控制的智能小車設(shè)計(jì)
- 測(cè)控技術(shù)與儀器畢業(yè)論文
- 測(cè)控技術(shù)與儀器專業(yè)畢業(yè)論文
- 測(cè)控技術(shù)與儀器專業(yè)畢業(yè)論文
- 測(cè)控技術(shù)與儀器畢業(yè)論文基于單片機(jī)的智能循跡小車設(shè)計(jì)
- 自動(dòng)泊車系統(tǒng)畢業(yè)論文
- 測(cè)控技術(shù)與儀器畢業(yè)論文基于單片機(jī)智能滅火小車控制系統(tǒng)設(shè)計(jì)
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——全自動(dòng)莜面機(jī)系統(tǒng)設(shè)計(jì)
- 測(cè)控技術(shù)與儀器畢業(yè)論文基于單片機(jī)的自動(dòng)救生圈設(shè)計(jì)
- 超聲測(cè)距電路設(shè)計(jì)制作【測(cè)控技術(shù)與儀器畢業(yè)論文】
- 測(cè)控技術(shù)與儀器畢業(yè)設(shè)計(jì)基于語(yǔ)音控制的智能小車設(shè)計(jì)
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——位移測(cè)量裝置的設(shè)計(jì)
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——轉(zhuǎn)速測(cè)量裝置的設(shè)計(jì)
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——轉(zhuǎn)速測(cè)量裝置的設(shè)計(jì)
- 測(cè)控技術(shù)與儀器專業(yè)本科生畢業(yè)論文
- 自動(dòng)循跡小車-畢業(yè)論文
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——智能卡測(cè)試儀器的研究與設(shè)計(jì)
- 測(cè)控技術(shù)與儀器 畢業(yè)論文范文——微功耗電容開關(guān)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論