智能測量小車設計
智能測量小車設計,智能,測量,丈量,小車,設計
摘 要
智能化技術在如今社會表現(xiàn)的越來越出色,智能機器人在大型工業(yè)的應用也在國家經(jīng)濟中占據(jù)重要作用,在未知探索領域也是非常重要。隨著社會的不斷進步發(fā)展, 智能小車的技術更是日新月異,讓本來不可能的事通過非凡的智慧讓其進入我們的眼簾,我相信很多人對其如何實現(xiàn)預期的功能也是充滿好奇心,本次的設計的目的就是為了實現(xiàn)一些簡單的智能化操作,從而讓人們更多的了解智能化的程序編程是多么的不可思議!
本文設計的是一款基于 Arduino 的智能小車,選擇 Arduino 單片機作為主要控制系統(tǒng),進行程序編程燒錄,采用 wifi 模塊進行無線數(shù)據(jù)傳輸,可以使用手機或者電腦實現(xiàn)無線控制。同時采用超聲波測距模塊來實現(xiàn)測距功能,除此之外,超聲波傳感器將數(shù)據(jù)傳送給控制系統(tǒng).經(jīng)過系統(tǒng)處理給出的反饋指令,控制電機轉(zhuǎn)動,從而實現(xiàn)自動避障的功能。在避障過程中,小車前端攝像頭可以手動控制拍照為后續(xù)的工作提供素材。
關鍵詞: Arduino 智能小車 自動避障 超聲波測距 無線控制模塊
II
Abstract
Intelligent technology in today's social performance is more and more outstanding, intelligent robot in large-scale industrial applications also play an important role in the national economy, in the unknown exploration field is also very important。Along with the advance of social development, the technology of intelligent cars more with each passing day, which makes the impossible through extraordinary wisdom let it into our eyes, I believe that a lot of people on how to realize the expected function also is full of curiosity, the purpose of this design is to realize some simple intelligent operation, so as to let people know more about intelligent programming how incredible it is!
Designed in this paper based on the Arduino is a smart car, choose the Arduino microcontroller as the main control system, carries on the programming burn, wifi wireless data transmission module, can use a mobile phone or computer to realize the wireless control. Using ultrasonic ranging module to achieve the function range at the same time, in addition, ultrasonic sensor data transmitted to the control system. Through system processing instructions given feedback, control motor rotation, so as to realize the function of automatic obstacle avoidance. In the process of avoiding obstacles, the front camera of the car can manually control the camera to provide material for subsequent work.
Keywords: Arduino intrlligent car The automatic obstacle avoidance
Ultrasonic ranging The wireless control module
目 錄
摘 要 I
Abstract II
1 緒 論 1
1.1 課題背景以及意義 1
1.2 國外研究概況及其發(fā)展趨勢 1
1.3 國內(nèi)研究概況及其發(fā)展趨勢 2
2 系統(tǒng)總體方案設計 3
2.1 小車車體結構設計 3
2.2 小車控制器的選擇 3
2.3 小車電源的選擇 4
2.4 避障模塊的選擇 4
2.5 無線控制模塊 4
2.6 電機及其電機驅(qū)動的選擇 5
2.7 系統(tǒng)總體方案的確定 5
3 小車硬件設計 6
3.1 無線通信模塊的設計 6
3.2 測距模塊的設計 7
3.3 電機模塊設計 10
3.4 電源部分設計 12
4 小車的軟件設計 13
4.1 主循環(huán)程序設計 13
4.3 自動避障子程序設計 14
4.4 超聲波測距程序設計 15
4.5 wifi 手機模塊程序設計 15
5 小車的制作安裝調(diào)試 16
5.1 小車制作安裝 16
5.2 小車調(diào)試 17
結 論 19
參考文獻 20
附錄 1 外文翻譯 21
附錄 2 外文原文 23
附錄 3 程序代碼 26
致 謝 46
1 緒 論
1.1 課題背景以及意義
隨著社會的快速發(fā)展,中國的企業(yè)也在快速進步,他們的生產(chǎn)技術也在提高, 因此,更加需要自動化生產(chǎn)技術。智能車輛和它的衍生產(chǎn)品是在生產(chǎn)線上、物流運輸線上的重要設備。全世界很多國家都高度重視智能車的開發(fā)設計以及研究。在 20 世紀 04 年代,斯坦福研究院的學士 Rosen 等人花了近 6 年時間研制出名為 shakey 的自主可移動機器人,實現(xiàn)了在復雜情況,通過應用人工智能,完成機器人的操控。在此之后,機器人發(fā)展更加先進,數(shù)量也在不斷變多,同時受到越來越多的世界學士們的關注。而且,智能車輛是移動機器人的一個重要部分,擁有高新的綜合系統(tǒng),集中運用傳感器、計算機、自控等先進技術,可以實現(xiàn)自動控制、自動辨別路障、控制合適的車速等功能,智能設備在一般車輛上有了廣泛的應用,從而變?yōu)橹悄苘囕v。
Arduino 的應用,對操作者降低了很大的技術層面上的要求,可以在很短的時間內(nèi)接觸學習它,所以說 Arduino 是一款非常好用的開源硬件產(chǎn)品,具有較多的接口, 運用不同的傳感器來感受外界環(huán)境,通過對控制電機、舵機和其他裝置來反饋環(huán)境。做出正確的操作。它不像復雜單片機有難懂的程序編程,復雜的代碼,只是一些簡單而且實用的函數(shù)。因此,Arduino 簡單的編程環(huán)境,很大程度上可以拓展我們的想象能力和實現(xiàn)我們預期的想法。
1.2 國外研究概況及其發(fā)展趨勢
國外智能車輛的研究歷史較長,始于上世紀 50 年代。它的發(fā)展歷程大體可以分成三個階段:
第一階段:20 世紀 50 年代是智能車輛研究的初始階段。1954 年美國 Barrrtt Electronics 公司研究開發(fā)了世界第一臺自主引導車系統(tǒng) AGVS(Automated Guied Vehicle System)。
第二階段:從 80 年代中后期開始,世界主要發(fā)達國家對智能車輛開展了卓有成效的研究。在歐洲,普羅米修斯項目開始在這個領域的探索。在美洲,美國成立了國家自動高速公路系統(tǒng)聯(lián)盟(NAHSC)。在亞洲,日本成立了高速公路先進巡航/輔助駕駛研究會。
第三階段:從 90 年代開始,智能車輛進入了深入、系統(tǒng)、大規(guī)模研究階段。最為突出的是,美國卡內(nèi)基.梅隆大學(Carnegie Mellon University)機器人研究所一共
9
完成了 Navlab 系列的 10 臺自主車(Navlab1—Navlab10)的研究,取得了顯著的成就。
1.3 國內(nèi)研究概況及其發(fā)展趨勢
相比于國外,我國開展智能車輛技術方面的研究起步較晚,開始于 20 世紀 80 年代。而且大多數(shù)研究處在于針對某個單項技術研究的階段。雖然我國在智能車輛技術方面的研究總體上落后于發(fā)達國家,并且存在一定得技術差距,但是我們也取得了一系列的成果,主要有:
(1) 中國第一汽車集團公司和國防科技大學機電工程與自動化學院與 2003 年研制成功我國第一輛自主駕駛轎車。該自主駕駛轎車在正常交通情況下的高速公路上, 行駛的最高穩(wěn)定速度為 13km/h,最高峰值速度達 170km/h,并且具有超車功能,其總體技術性能和指標已經(jīng)達到世界先進水平。
(2) 南京理工大學、北京理工大學、浙江大學、國防科技大學、清華大學等多所院校聯(lián)合研制了 7B.8 軍用室外自主車,該車裝有彩色攝像機、激光雷達、陀螺慣導定位等傳感器。計算機系統(tǒng)采用兩臺 Sun10 完成信息融合、路徑規(guī)劃,兩臺 PC486 完成路邊抽取識別和激光信息處理,8098 單片機完成定位計算和車輛自動駕駛。其體系結構以水平式結構為主,采用傳統(tǒng)的“感知-建模-規(guī)劃-執(zhí)行”算法,其直線跟蹤速度達到 20km/h,避障速度達到 5-10km/h。
隨著汽車工業(yè)的迅速發(fā)展,關于汽車的研究也就越來越受人關注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究。可見其研究意義很大。本設計就是在這樣的背景下提出的,指導教師已經(jīng)有充分的準備。本題目是結合科研項目而確定的設計類課題。設計的智能電動小車應該能夠?qū)崿F(xiàn)適應能力,能自動避障,可以智能規(guī)劃路徑。
智能化作為現(xiàn)代社會的新產(chǎn)物,是以后的發(fā)展方向,他可以按照預先設定的模式在一個特定的環(huán)境里自動的運作,無需人為管理,便可以完成預期所要達到的或是更高的目標。同遙控小車不同,遙控小車需要人為控制轉(zhuǎn)向、啟停和進退,比較先進的遙控車還能控制器速度。常見的模型小車,都屬于這類遙控車;智能小車,則可以通過計算機編程來實現(xiàn)其對行駛方向、啟停以及速度的控制,無需人工干預。操作員可以通過修改智能小車的計算機程序來改變它的行駛方向。因此,智能小車具有再編程的特性。智能化全面的發(fā)展是實現(xiàn)其對資源的合理充分利用,以盡可能少的投入得到最大的收益,大大提高工業(yè)生產(chǎn)的效率,實現(xiàn)現(xiàn)有工業(yè)生產(chǎn)水平從自動化向智能化升級,從先前的模擬電路設計,到數(shù)字電路設計,再到現(xiàn)在的集成芯片的應用,各種能實現(xiàn)同樣功能的元件越來越小為智能化產(chǎn)物的生成奠定了良好的物質(zhì)基礎。
2 系統(tǒng)總體方案設計
本設計的智能小車需要將傳感器、處理器、驅(qū)動和執(zhí)行機構進行合理的組合,共同協(xié)同工作,實現(xiàn)預期的目標,也就是依靠藍牙通過手機或者電腦進行無線控制,紅外線感應測距實現(xiàn)自動避障等功能。所以確定小車的硬件分為六大部分:車體、控制器、電源、避障程序模塊、無線控制模塊和執(zhí)行部分。簡單介紹下各部分的功能:
(1) 車體:就是整個小車的外部框架,需要承載小車其他部件同時可以在空間上進行合理的擺放。
(2) 控制器:負責控制和協(xié)調(diào),是小車的核心,控制器能否及時準確處理傳感器的信息并將處理后的數(shù)據(jù)結果傳送給執(zhí)行部分。
(3) 電源部分:為傳感器以及驅(qū)動部分提供足夠的電能,確保系統(tǒng)正常穩(wěn)定工作。
(4) 避障程序模塊:編寫避障程序讓小車可以自動避開障礙物。
(5) 無線控制模塊部分:負責接收無線控制指令信號,傳送給控制器,進而實現(xiàn)無線控制。
(6) 執(zhí)行部分:負責執(zhí)行微控制器的處理結果,能實現(xiàn)小車的轉(zhuǎn)向功能。
2.1 小車車體結構設計
方案一:自己設計并手動制造車體。需要花費很多的時間去完成車體的尺寸、材料等一系列問題,優(yōu)點是發(fā)揮我們的創(chuàng)新能力,但缺點是花費大量時間而且做出來的車體很粗糙,所以不想采用這個方案。
方案二:選擇本次設計所用到的傳感器,即超聲波傳感器,為了實現(xiàn)無線控制而選擇的 wifi 控制器,還有本次最為關鍵的 Arduino 控制器的編程使用,以及為了實現(xiàn)視頻拍照選用攝像頭,同時還可以為后續(xù)工作提供素材,選擇車體、電機、車輪等部件自己進行合理的組裝來實現(xiàn)我們預期的功能。
綜合一下,同時考慮本次設計重要的不是車體部分,而是我們對 Arduino 的了解和學習以及使用,所以我最終決定使用方案二。
2.2 小車控制器的選擇
Arduino 的版本還是比較多的,不同的情況下要選擇不同的 Arduino 版本,下面我們來比較一下常見的一些 Arduino。
首先是最常見的 Arduino UNO R3,性能十分穩(wěn)定而且滿足絕大多數(shù)用戶的需求, 同時也能滿足小車實現(xiàn)功能的需要。
其次 Arduino MEGA 是增強型 Arduino 控制器,相對于 UNO 提供了更多的輸入輸出接口一控制更多的設備,擁有更大的程序空間和內(nèi)存。顯然這個不適用于本次設計的智能車。
Arduino Leonardo 使用集成 SUB 功能的 AVR 單片機作為芯片,可以模擬鼠標、鍵盤等 USB 設備。
Arduino Due 使用的是 32 位 ARM Cortex-M3 作為主控芯片,集成多種外設,是目前最強大的 Arduino 控制器。
Arduino Zero 提供 EDBG 調(diào)試端口,可以聯(lián)機進行單步調(diào)試。小型化的 Arduino 在設計上進行了很大的精簡。
綜上所述,我選擇 Arduino UNO R3 作為小車的控制器。
2.3 小車電源的選擇
方案一:采用兩個電源供電,將電動機驅(qū)動電源與控制器電源分別單獨供電,但是缺點是增加了小車的重量,電機控制性能降低,小車的靈敏度也會降低。
方案二:采用一個電源供電,電源給電機供電,之后電機驅(qū)動供電給控制器,這
樣就減少了電源的重量。
綜上方案,我采用第二種選用充電電池作為供電電源。
2.4 避障模塊的選擇
常見的避障方法有超聲波測距和紅外線測距方案一:紅外線測距避障
優(yōu)點:不受可見光影響、角度靈敏度高、結構簡單,價格便宜易于安裝并且可以快速感知物體的存在。
缺點:精度較低,距離較近,對色彩光照敏感。方案二:超聲波測距避障
優(yōu)點:對色彩光照和電磁場不敏感、結構簡單并且可用于黑暗、有煙霧灰塵等惡劣環(huán)境中。
缺點:超聲波傳感器的數(shù)量較少,可能會出現(xiàn)檢測盲區(qū),從而避障失誤。
方案三:為了提高避障性能,在測距模塊中添加攝像機,配合舵機轉(zhuǎn)動,測距范圍加大,同時有效的減少了盲區(qū)。
綜合本次設計,為了更好的展示其功能,所以我采用方案三:超聲波避障+舵機。
2.5 無線控制模塊
目前使用較多的無線通信方式有藍牙通信、紅外線通信、wifi 通信以及無線射頻通信,下面我們比較一下各個通信方式從而選取最適合本次設計的方式。
(1)藍牙:藍牙在很多設備上都有安裝,例如電話、筆記本電腦、汽車等,只要有藍牙適配器,就可以輕松連接上藍牙,從而進行數(shù)據(jù)傳輸,而且兼容性好。
(2)紅外線通信模塊:首先成本比較低,便于安裝但是傳輸范圍較短。
(3)wifi 模塊:數(shù)據(jù)安全性較藍牙較好,實現(xiàn) wifi 通信方式便捷,與藍牙同屬短距離無線通信技術。
因為小車是通過單個字符進行無線控制,所以無線通信要求并不是很高,只要滿足迅速可靠就行。最后我選擇 wifi 通信模塊,方便快捷有效。
2.6 電機及其電機驅(qū)動的選擇
采用直流減速電機,專用芯片驅(qū)動中的 L298N 電機驅(qū)動。直流減速電機轉(zhuǎn)矩較大, 價格比較便宜,而 L298N 電機驅(qū)動,此芯片有兩個 H 橋式電路,電路結構也比較簡單, 使用方便,接線十分方便。
2.7 系統(tǒng)總體方案的確定
綜上分析,下面為本次設計總體方案的框圖:
圖 2-1 系統(tǒng)總體流程框圖
3 小車硬件設計
3.1 無線通信模塊的設計
上一章通過方案確定選擇 wifi 通信作為無線通信方式,選擇 ESP8266。ESP8266 引腳圖如圖 3-1 所示:
圖 3-1 ESP8266 引腳圖
ESP8266 一共有五個引腳,分別是 UTXD 接單片機 RX,與 Arduino UNO 上相連接的引腳為 10(軟串口 RX);URXD 接單片機 TX 與 Arduino UNO 上相連接的引腳為 11
(軟串口TX);CH_PD 接 3.3V 和VCC 接電源與Arduino UNO 上相連接的引腳同為 3.3V; GND 接地線與 Arduino UNO 上相連接的引腳為 GND。
3.1.1 wifi 模塊與手機連接原理分析
眾所周知,我們的智能手機都有連接 Wifi 的功能,那么 Wifi 可以為我們做些什么呢?它通過發(fā)射高頻的信號來進行數(shù)據(jù)的傳送,因此,我們可以無線上網(wǎng),是當今最廣泛的無線網(wǎng)絡傳輸技術。而且,它的傳送速度很快,消耗的功率很低,對人體的健康不會造成太大的危害。
本次設計制作的智能小車,經(jīng)過我的考慮選擇了 Wifi 模塊通過與手機的連接來實現(xiàn)小車的前進等基本運動方式以及測距、避障的復雜運動。Wifi 模塊的工作方式為主動型串口設備聯(lián)網(wǎng):在每次數(shù)據(jù)交換之前,都是由串口 wifi 模塊設備主動發(fā)起連接, 然后在進行數(shù)據(jù)交換。典型例子(無線 pos 機)在每次刷卡完成之后,無線 pos 機即開始連接后臺的服務器進行數(shù)據(jù)交換。
首先,手機端作為上位機控制端,Wifi 模塊接收指令作為下位機執(zhí)行端;然后, 我們通過手機端 APP 對其發(fā)出操作指令,即發(fā)送 Wifi 信號,Wifi 模塊接收手機發(fā)送的信號并且進行分析轉(zhuǎn)換為高電平信號(TTL),接下來將電平信號發(fā)送給單片機, 經(jīng)過相關的分析、處理轉(zhuǎn)為控制指令發(fā)送給電機驅(qū)動模塊,小車就可以動起來了。
簡單的說下手機 APP,現(xiàn)在大家的手機大多都是安卓系統(tǒng),安卓系統(tǒng)的軟件是由JAVA 軟件進行編譯,很是復雜,與本次設計相關不大而且學習起來很是困難。于是通過在網(wǎng)上的一些愛好者論壇,進行溝通探討,了解到 JAVA 的編譯需要特殊的軟件,
自己也看了下教程,真心的復雜,對那些軟件編程大師很是佩服。本次用到的手機APP 名字為小 R 科技 Wifi 手機控制端,此軟件里面功能齊全,有巡線功能、重力感應、雷達測距顯示等功能,但是本次只用到超聲波避障、測距以及自動避障。當然這些功能的實現(xiàn)包括手機 APP 里面的高級的功能都是需要我們用程序編程,調(diào)試才可以實現(xiàn)。
3.2 測距模塊的設計
3.2.1 超聲測距模塊
圖 3-2 HC-SR04 超聲波測距模塊
超聲波傳感器里的發(fā)射器裝置向我們指定方向發(fā)出一組高頻率聲波,即為超聲 波,在發(fā)出的同時開始計時,超聲波在傳播途中碰到我們需要測距的物體就立即返回來,超聲波傳感器里面的接收器收到反射波就立即停止計時。聲波在空氣中的傳播速度為 340m/s,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距測距物體的距離s,即: s=340m/s*t/2.利用時間差測距法就可以測得距離。最后,超聲波測得的距離從串口中顯示。超聲波測距范圍經(jīng)試驗大約為 5.00m,測量精度為 1cm.
使用方法及時序圖:
圖 3-3 超聲波測距時序圖
(1) 首先使用 Arduino 的數(shù)字引腳,發(fā)送給 SR04 的 Trig 引腳,信號為高電平
最好至少 10 ms,觸發(fā)裝置的測距功能;
(2) 然后,裝置會自動發(fā)送 8 個超聲波脈沖,頻率為 40Khz,之后自動檢測是否有信號返回。模塊內(nèi)部自動完成。
(3) 接收到返回信號后,Echo 引腳會輸出高電平,高電平持續(xù)時間等于超聲波從發(fā)射到返回的時間。此時,我們能使用 pulseln()函數(shù),通過內(nèi)部程序運算獲取到測距的數(shù)值,然后距被測物體的實際距離就會輸出出來。
圖 3-4 SR04 與 Arduino 接線示意圖
3.2.2 舵機
PWM 信號由接收通道進入信號解調(diào)電路 BA66881。的 12 腳進行解調(diào),獲得一個直流偏置電壓。原理是直流偏置電壓與電位器的電壓進行比較,獲得電壓差由 BA6688 的 3 腳輸出。該輸出電機驅(qū)動集成電路 BA6686,以驅(qū)動電機正反轉(zhuǎn)。當電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動旋轉(zhuǎn),直到電壓差為 O,電機停止轉(zhuǎn)動。舵機的控制信號是 PWM 信號,利用占空比的變化改變舵機的位置。
此次小車上安裝的舵機只需要帶動攝像頭左右、上下移動,它的轉(zhuǎn)角范圍 0-120
o之間就可以,所以選擇了 SG90 9G 舵機。
圖 3-5 SG90 9G 舵機
表 3-1 SG90 9G 舵機參數(shù)
產(chǎn)品型號
SG90
產(chǎn)品尺寸
23*12.2*29(mm)
工作扭矩
1.6KG/cm
反應速度
0.12-0.13s/60o
通用反轉(zhuǎn)角度
最大 180 度
舵機使用電壓
3.5V-6V
結構素材
塑料齒
圖 3-6 是舵機引腳接線圖,芯片 PWM 引腳與舵機 pulse 引腳相連,舵機“+”引腳接電源,“-”引腳接地。
圖 3-6 引腳連接圖
3.3 電機模塊設計
3.3.1 DC3V-6V130 直流減速電機和 69MM 橡膠輪
圖 3-7 為電機與橡膠輪組裝圖如下:
圖 3-7 車輪
直流電機的減速比為 1:48,下表是其的相關參數(shù)。
表 3-2 直流減速電機參數(shù)
額定電壓
3V
6V
空載電流
≤120MA
≤180MA
減速比
1:48
負載電流
≤170MA
≤230MA
負載轉(zhuǎn)速
約 115 轉(zhuǎn)/分
約 255 轉(zhuǎn)/分
扭矩
約 0.7kgf.cm
約 1.2kgf.cm
3.3.2 電機驅(qū)動部分
本次設計小車選取的電機驅(qū)動板為 L298N 電機驅(qū)動板模塊,下面是電機驅(qū)動板圖以及相關的參數(shù)。
圖 3-8 L298N 電機驅(qū)動板模塊
19
表 3-3 電機驅(qū)動板參數(shù)
驅(qū)動芯片
L298N 雙 H 橋直流電機驅(qū)動芯片
驅(qū)動端供電范圍 Vs
+5V~+35V
驅(qū)動部分峰值電流
2A
邏輯部分供電范圍 Vss
+5V~+7V
邏輯部分工作電流范圍
0~36mA
控制信號輸入電壓范圍
低電平:-0.3~1.5V 高電平:2.3~Vss
使能信號輸入電壓范圍
低電平:-0.3~1.5V 高電平:2.3~Vss
最大功耗
20W(溫度 T=75℃時)
驅(qū)動板尺寸
53mm*43mm
驅(qū)動板重量
35g
本模塊采用 H 橋驅(qū)動,可以同時驅(qū)動兩個電機,使能 ENA 、ENB 之后,可以分別從 IN1、IN2 輸入 PWM 信號驅(qū)動電機 1 的轉(zhuǎn)速和方向;可以分別從 IN3、IN4 輸入 PWM 信號驅(qū)動電機 2 的轉(zhuǎn)速和方向。信號如下表:
表 3-4 電機驅(qū)動方式表
直流電機
旋轉(zhuǎn)方式
IN1
IN2
IN3
IN4
調(diào)速 PWM 信號
調(diào)速端
A
調(diào)速端
B
M1
正轉(zhuǎn)
高
低
/
/
高
/
反轉(zhuǎn)
低
高
/
/
高
/
停止
低
低
/
/
高
/
M2
正轉(zhuǎn)
/
/
高
低
/
高
反轉(zhuǎn)
/
/
低
高
/
高
停止
/
/
低
低
/
高
電機驅(qū)動模塊電路連接如下圖所示:
圖 3-9 電機驅(qū)動電路連接圖
3.4 電源部分設計
根據(jù)上述方案選擇,提供一定電量和低成本原則,選擇 DC5V10000MAH/12V 4800MAH 聚合物鋰電池。
圖 3-10 DC5V10000MAH/12V 4800MAH 聚合物鋰電池
輸入(INPUT):DC12.6V
DC5V 10000MAH(USB 接口)
輸出(QUTPUT):DC10.8-12.6V
4800MAH
尺寸:90*51*20mm
重量:200g
電池外觀:藍色
4 小車的軟件設計
在完成上一部的設計后,接下來就是對小車的軟件進行設計編程。我們的控制器選用的是 Arduino,所用編程語言是建立在 C/C++基礎上的,Arduino 語言把一些AVR 單片機即微控制器相關的一些參數(shù)設置都函數(shù)化,大大降低了編程難度。
4.1 主循環(huán)程序設計
軟件設計相當于設計小車的思想,用來指導硬件軀殼運動,本次設計采用模塊化結構,下面是主循環(huán)程序框圖:
根據(jù)主程序流程圖,處理器需要從很多相應的子程序中找出正確的相對應的子程序,可以使用 switch 語句實現(xiàn)這個功能。
4.2 方向運動子程序
方向控制子程序一共有 9 個,加上自動避障子程序共有 10 個。他們都是通過主程序的 switch 指令查找中被調(diào)用的,以下是指令調(diào)用表
表 4-1 指令調(diào)用表
指令字符
程序
S/w
Stop();小車停止
W
Auto();小車自動避障
F
Forward();小車前進
B
Back();小車后退
L
Left();小車逆時針旋轉(zhuǎn)
R
Right();小車順時針旋轉(zhuǎn)
G
ForwardLeft();小車左前方行進
I
ForwardRight();小車右前方行進
H
BackLeft();小車左后方行進
J
BackRight();小車右后方行進
4.3 自動避障子程序設計
4.4 超聲波測距程序設計
4.5 wifi 手機模塊程序設計
5 小車的制作安裝調(diào)試
5.1 小車制作安裝
首先通過螺絲螺釘固定四個電機在 PC 板上,將同一側(cè)的兩個電機分別用電線并聯(lián)起來后,從 PC 板中間穿過后連接在驅(qū)動電機板上,接下來安裝 Arduino 控制器以及wifi 控制模塊,最后在車的前端安裝云臺攝像頭以及超聲波避障傳感器。如圖 5-1 所示,最后,安裝好四個橡膠輪,帥氣的智能小車就完成了,如圖 5-2 所示。
圖 5-1 小車組裝圖
圖 5-2 帥氣的小車
5.2 小車調(diào)試
安裝好小車后,用數(shù)字萬用表對芯片的各個引腳進行測量,防止出現(xiàn)接線錯誤等問題情況。待檢測完畢后,編譯程序,并用數(shù)據(jù)線將程序燒錄進 Arduino.
程序燒錄完畢后,給小車通電,連上 wifi,打開手機控制端的 APP,如圖 5-9 所示, 對小車進行控制,在進行其他的功能測試之前,先將小車的基本運動方向,即前進、后退、左轉(zhuǎn)、右轉(zhuǎn)進行檢查,發(fā)現(xiàn)小車運動方向和控制方向相反,自己通過改變代碼即可糾正如圖 5-10,仔細觀察小車的行走姿態(tài)和各種意外情況并記錄,盡可能找到解決的辦法。
圖 5-9 手機控制 APP
圖 5-10 小車基本方向運動控制設置
當測試好所有的模塊,完成整個程序的測試,小車可以正常運行 10 分鐘并且沒有意外情況,且可以實現(xiàn)所期待的功能時,小車成功完成運動測試工作。
接下來測試超聲波傳感器測距,將超聲波傳感器(下位機)、Arduino 控制器(將高頻率信號轉(zhuǎn)化為電信號)、數(shù)據(jù)轉(zhuǎn)換器(將電信號轉(zhuǎn)化為數(shù)字信號)、超聲波測距上位機連接好后,通過改變超聲波傳感器距電腦屏幕的距離,從下圖可以看出距離的變化顯示:
圖 5-11 測距圖
圖 5-12 測距圖
最后將連接好的超聲波傳感器固定在小車的正前方,通過 wifi 手機控制端控制小車,就可以測出障礙物距小車的距離。至此,完成了小車的全部測試。
結論
本次設計實現(xiàn)了期望的功能,小車通過 wifi 與手機進行連接,通過手機 wifi 控制 APP 對小車進行控制,小車可以測量與障礙物的距離,同時傳送實時圖像,感覺自己身在車中,也可以進行拍照,在手機 wifi 控制 APP 中選擇超聲波避障,小車可以在距障礙物 15cm 處做出避障動作。本次設計難點在于程序調(diào)試以及對 Arduino UNO 控制板的學習,由于 Arduino 程序編程大多都是函數(shù)語言,對我這種入門的人也可以進行簡單的程序編輯,這讓我體會到程序編譯的神奇,感受人類的智慧。最后,雖然遇到很多困難但是看到自己努力的成果,心里還是感受到超大的欣慰。
參考文獻
[1] 潘元驍. 基于 Arduino 的智能小車自動避障系統(tǒng)設計與研究[D]. 長安大學 2015
[2] 丁小妮. 基于 Arduino&Android 小車的倉儲搬運研究[D]. 長安大學 2015
[3] 侯亮,王浩倫,賈鴻翅. 支持產(chǎn)品平臺創(chuàng)新的知識分類及其本體建模研究[J]. 機電工程. 2010(11)
[4] 陳永亮,焦明生. 基于產(chǎn)品平臺和機械總線的爬行機器人可適應設計[J]. 工程設計學報. 2005(05)
[5] 紀欣然. 基于Arduino 開發(fā)環(huán)境的智能尋光小車設計[J]. 現(xiàn)代電子技術. 2012(15)
[6] 蔡睿妍. Arduino 的原理及應用[J]. 電子設計工程. 2012(16)
[7] 凱姆·卡爾文,泰勒·卡爾文,龐明珠. Arduino 與電子制作[J]. 電子制作. 2012(08)
[8] 崔才豪,張玉華,楊樹財. 利用 Arduino 控制板的光引導運動小車設計[J]. 自動化儀表. 2011(09)
[9] 鄒建梅,王亞格. 利用 Arduino 增強 Flash 互動性的研究[J]. 中國教育技術裝備. 2010(36)
[10] 胡小江, 董飛垚, 雷虎民,等. 基于虛擬儀器的舵機半實物仿真系統(tǒng)研究[J].測控技術, 2011, 30(1):75-78
[11] 楊繼志, 楊宇環(huán). 基于 Arduino 的網(wǎng)絡互動產(chǎn)品創(chuàng)新設計[J]. 機電產(chǎn)品開發(fā)與創(chuàng)新,2012,25(1):99-100.
[12] 蔡睿妍. 基于 Arduino 的舵機控制系統(tǒng)設計[J]電腦知識與技術,2012
[13]J[1]董旭明,李志斌. 計算機視覺在并聯(lián)機器人運動學標定中的應用[J]. 自動化儀表,2016,05:16-19.
[14]曾令遠,吳東. 基于移動機器人的智能攝影軟件設計及實現(xiàn)[J]. 現(xiàn)代計算機(專業(yè)版),2016,28:53-57.
[15]M. Fatehnia,S. Paran,S. Kish,K. Tawfiq. Automating double ring infiltrometer with an Arduino microcontroller[J]. Geoderma,2016,262:.
[16]Gianluca Barbon,Michael Margolis,Filippo Palumbo,Franco Raimondi,Nick Weldin. T aking Arduino to the Internet of Things: The ASIP programming model[J]. Computer Com munications,2016,:.
[17]M. Rahaman Laskar,R. Bhattacharjee,M. Sau Giri,P. Bhattacharya. Weather Forecastin g Using Arduino Based Cube-Sat[J]. Procedia Computer Science,2016,89:.
[18] Elson Avallone,Diogo Garcia Cunha,Alcides Padilha,Vicente Luiz Scalon. Electronic multiplex system using the Arduino platform to control and record the data of the temperat ures profiles in heat storage tank for solar collector[J]. International Journal of Energy and Environmental Engineering,2016,74:.
[19] Kun Zheng,Dunbing Tang,Wenbin Gu,Min Dai. Distributed control of multi-AGV system based on regional control model[J]. Production Engineering . 2013 (4)
29
附錄 1
外文翻譯
使用多個相機系統(tǒng)跟蹤單位球面上運動目標的移動機器人
摘要:移動機器人上攝像機系統(tǒng)的運動目標檢測與跟蹤是一個難題,由于機器人自身運動和運動目標共同構成了一個具有挑戰(zhàn)性的問題:圖像中的可分辨運動。在本文中, 我們關注的是多攝像機系統(tǒng),即瓢蟲?2 相機,它的圖像被用來檢測運動和隨后的性能以及球體上多個對象的跟蹤。這使我們能夠解釋其運動的連續(xù)性,這是通過傳感器在圖像拼接過程中的球體上的場景的連續(xù)性。被跟蹤的球體上的對象在貝葉斯濾波器的基礎上,通過馮米塞斯-費舍爾分布和數(shù)據(jù)關聯(lián)是最近鄰全局的方法,其中距離矩陣是通過推導 RéNyiα-馮米塞斯 Fisher 分布差異–構造。該方法是在進行測試的合成和真實世界的數(shù)據(jù)實驗為基礎的。
1 引言
運動目標的檢測與跟蹤(DATMO)在一個移動平臺或車輛周圍是在許多不同的應用程序的基本步驟。該信息是否已被用于在一個環(huán)境中的移動目標導航,被指定為屬于運動目標區(qū)域,該 DATMO 始于 D 檢測部分,包括對原始數(shù)據(jù)的信息處理和之后的跟蹤方案假設的過程。在這個意義上的檢測方法強烈地依賴于傳感器的性質(zhì)和它感測的現(xiàn)象,而跟蹤部分可以依賴于測量的空間中采取。在本文中,我們利用一個多攝像機系統(tǒng),形成一個全方位的圖像拼接的一系列透視圖像在一個單位的球體,這是我們的測量駐留空間。
當相機被放置在一個移動機器人,運動目標檢測變得越來越復雜,因為在圖像的總運動匯合性是機器人運動任務,獨立的對象 ECT 運動,以及場景的三維結構[ 1 ]。[ 2 ]在運動目標檢測與一個單一的透視相機是通過計算光流場的優(yōu)化實現(xiàn)雙線性變換 在將圖像相鄰幀之間,在這之后的圖像差異進行運動檢測。然后,粒子過濾器被用來跟蹤在圖像中的移動對象,激光測距儀用于推斷三維中的位置。[ 3 ]檢測是基于單眼場景重建和仿射變換的三角形網(wǎng)格。利用擴展卡爾曼濾波進行運動目標跟蹤和場景重建。演示與經(jīng)典結構的運動檢測,從運動(SFM)與多個硬性移動的物體的動態(tài)場景,稱為多體 SFM,[ 4,5 ][ 6 ]人檢測到使用直方圖的方向梯度的一針 ED 打開全景圖像利用在移動機器人瓢蟲?2 多相機系統(tǒng)。
在跟蹤多個運動目標時,數(shù)據(jù)關聯(lián)問題起著至關重要的作用。為了解決這個問題, 可以使用的方法是全球近鄰(GNN),ATT 試圖在每一個掃描后[ 7 ]找到最有可能的數(shù)據(jù)關聯(lián)假設,聯(lián)合概率數(shù)據(jù)關聯(lián)(JPDA)濾波器在多個假設中首先形成,然后結合前在繼續(xù)下一個掃描[ 8 ],多假設濾波器(MHT)在多個數(shù)據(jù)關聯(lián)假設的形成和傳播。此外,跟蹤多個目標的另一種方法:對象是概率假設密度(PHD)濾波器[ 9,10 ], 本身并沒有解決數(shù)據(jù)關聯(lián)問題。上述具體實施與跟蹤方法,如果使用卡爾曼濾波,高斯混合或序貫蒙特卡羅方法。然而,據(jù)筆者所知,這些方法以前沒有被應用在多個目標在單位球面上分布的跟蹤場景即米塞斯-費舍爾分布。
本文提出了一種基于 GNN 的框架,這是基于與米塞斯–Fisher 分布的貝葉斯跟蹤球跟蹤多個運動目標的新方法。解決 E 的任務,首先我們得到驗證門控基于測量
的可能性和預測的狀態(tài)為球體丟棄不可能測量的關聯(lián)程序的手段。重新計算最可能的數(shù)據(jù)關聯(lián)的假設提出了 RéNyiα-散度作為距離測度之間的馮米塞斯–Fisher 分布和表達方法推導出 T 。RéNyiα-發(fā)散是一類廣義的距離,包括一些知名的距離等計算
–Leiber 和 Bhattacharyya 距離。實驗結果 是第一次提出在合成數(shù)據(jù)的例子和隨后的瓢蟲?2 多攝像機系統(tǒng)獲得的實驗。目前的系統(tǒng)是全方位的,但是,由于它形成的全方位圖像,通過拼接圖像的五透視相機(頂部沒有被視為)的運動物體的檢測是由透視凸輪的方法進行 時代[ 2 ]。隨后的移動對象的聚類和測量生成的跟蹤過程,然后在球體上執(zhí)行。
本文的結構如下。第 2 節(jié)介紹利用運動檢測算法。第 3 節(jié)介紹了提出的多目標跟
蹤方法,第 4 節(jié)顯示實驗結果,而第 5 節(jié)總結論文。
2 運動目標檢測
為檢測任務,我們用一個球面數(shù)字攝像系統(tǒng)組成的 6 個單眼相機(即瓢蟲?2)放在一個移動平臺。由于系統(tǒng)包括六個方面 VE 相機,他們可以縫合在一起,從而形成一個球形圖像。許多傳感器,包括單眼相機,原則上只軸承傳感系統(tǒng),而深度只能估計 達到一個規(guī)模。這里出現(xiàn)的需要跟蹤在球體上的移動對象。在先前提出的問題的靜脈,在六個圖像的相機系統(tǒng)中檢測到的對象的位置 莖被投射到球體上,作為跟蹤任務的輸入。運動目標檢測是一個比較困難的問題的機器人開始移動,因為自我運動產(chǎn)業(yè) 固有光流。為了確保算法的效率和平臺移動,它是必要的自我運動補償[ 2,3 ]。
自我運動補償算法提供了一個連續(xù)幀之間的轉(zhuǎn)換,轉(zhuǎn)換可估計的直接或間接。前者依靠各種定位 離子系統(tǒng)(例如,IMU,GPS,里程計),后者估計使用圖像處理方法的轉(zhuǎn)變,避免額外的傳感器。這種間接的方法是基于顯著的特征集 我們通過連續(xù)的圖像。為了這個目的,我們使用 Lucas Kanade 算法的稀疏光流在[ 11–13 ]。一旦建立光流,就必須確定 補償?shù)淖儞Q參數(shù)。在這里,我們使用了一個非線性模型, 它可以處理平移和旋轉(zhuǎn)的變化,特別是雙線性模型給出如下:
這種方法假定的背景運動是占主導地位的,它可以很好地近似由一個平面,相對于相機的距離的深度的變化是小的(我們的視差)。一旦估計的轉(zhuǎn)變,以前的圖像可以被扭曲成了當前時刻;它?1→T =重量?1→T(它?1)。扭曲的形象?1→T 大約相當于圖像 它?1,從相同的位置,它的重量?;1→T(它?1)≈它。然后,在時間 t 的圖像動態(tài)部分檢測后,應用圖像差分圖像之間的這?1→T 和它。這樣的圖像 差異又分大小 16×16 像素區(qū)域,而差異的平均水平是每個區(qū)域的確定。這個平均值可以被認為是 E 區(qū)。應用閾值后,每個區(qū)域被聲明為靜態(tài)或動態(tài)。根據(jù)圖像內(nèi)的歐氏距離然后聚集。
由于每兩個相鄰的攝像機有重疊的視場,一些對象可能會被識別在兩個圖像。因此,在每一個時間步,每個檢測投影在單位球面,一些檢測集中在一起,所以是以前的論證檢測過程中的一個例子。
3 單位球面上的跟蹤
馮米塞斯費舍爾分布作為一個通用的概率模型在空間方向和定向測量誤差[ 14 ]。當考慮方向 P 維度,即單位 V 在 p 維歐氏空間 R P 載體,一個可以代表他們的點 P?1,即 P?1 維球面半徑和中心在原點的單位。換句話說,一個 p-sphere 是DEF 定義為一組點(P + 1)維歐氏空間,因此 1-sphere 是圓的,2 是在三維空間中的球的表面。
附錄 2
外文原文
附錄 3 程序代碼
39
46
致 謝
本次的畢業(yè)設計首先要感謝我的老師,智能測量小車設計這個課題高端大氣上檔次,當今社會,小到玩具電動,大到電器家具、汽車等,越來越多的智能化設備正在應運而生,在這個越來越接近智能化的社會,我們怎么能甘于落后,如何深入了解智能化編程這個大家庭,理解它的運作原理。首先我們要從小的方面去探索,去實驗, 例如簡單的光控聲音,光控燈,跑馬燈等的程序編譯,由淺及深,會更好的了解智能化編程的神奇之處。
在本次設計過程中,李老師給了我很大的幫助,李老師不僅學識淵博,待人更是體貼入微,在我遇到難題時,總是細心為我講解。當然也要感謝大學期間所有的老師, 正是因為他們的鞠躬盡瘁,傳道授業(yè),我們才能擁有豐富的知識。
我還要感謝學校能提供畢業(yè)設計這個優(yōu)秀的品臺,在我們即將步入社會之際,給了我們更多的知識儲備,相信在以后的道路上,定會為我們指引正確的逐夢之路!
最后,再次感謝老師們,祝你們身體健康,萬事如意,心想事成!
收藏