智能滅火機器人畢業(yè)設(shè)計論文_第1頁
智能滅火機器人畢業(yè)設(shè)計論文_第2頁
智能滅火機器人畢業(yè)設(shè)計論文_第3頁
智能滅火機器人畢業(yè)設(shè)計論文_第4頁
智能滅火機器人畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

智能滅火機器人摘要文章對消防機器人進行了研究。介紹了消防機器人的背景并簡單描述系統(tǒng)硬件、光電傳感器和火焰?zhèn)鞲衅鞯墓ぷ髟?,并附以電路圖加以說明,通過傳感器連接電壓比較器輸出電平由MF13處理實現(xiàn)尋找火源。最后由火焰?zhèn)鞲衅鳒y距輸入單片機實現(xiàn)停車并輸出信號控制繼電器閉合從而控制風扇滅火。論文詳細闡述了程序流程和實現(xiàn)過程。此設(shè)計以數(shù)字集成電路技術(shù)為基礎(chǔ)并以單片機技術(shù)為核心。依據(jù)傳感器的信號傳入單片機實現(xiàn)各種指令處理。小車在接近火源的過程中左右波動前進,躲避障礙物,最后找到火源打開風扇滅火。

關(guān)鍵詞

單片機;光電傳感器;滅火裝置;復眼目錄1前言……………………3 2機器人的相關(guān)概論……62.1機器人的發(fā)展………………62.2本課題要研究或解決的問題和擬采用的研究手段………73硬件………………83.1機器人外觀操作面板介紹………………83.2穩(wěn)壓板,灰度檢測傳感器………………93.3光電傳感器,復眼…………103.4執(zhí)行機構(gòu)…………114軟件電路設(shè)計……………124.1軟件總體設(shè)計方案……………134.2vjc軟件介紹……………………144.3子程序………………164.4硬件電路軟件電路……………225總結(jié)………256參考文獻…………………267源程序……………………27前言目前由于人們的防火意識比較差,生活中火災(zāi)頻發(fā),消防戰(zhàn)士在滅火中犧牲寶貴生命的事件不在少數(shù),迫切要求機器代替人去執(zhí)行滅火任務(wù)。針對這個問題,前人已經(jīng)做了很多的研究,有基于MSP430的滅火小車,能實現(xiàn)滅火功能。還有的是人為地控制機器人的活動和滅火,這樣使得不得不靠人來控制,浪費人力資源,不能很好的實現(xiàn)滅火的效果。此設(shè)計在前人研究的基礎(chǔ)上,通過不斷地學習相關(guān)的知識,力求對消防機器人設(shè)計達到更深的了解和研究,促進消防機器人在火災(zāi)中的應(yīng)用并推廣在相關(guān)領(lǐng)域的研究,使消防研究工作不斷向前發(fā)展,具有很大的學術(shù)價值。在未來智能化和機械化的世界中,尤其是在消防事業(yè)中,一款好的機器的使用能夠達到事半功倍的效果。消防機器人的應(yīng)用前景非常明朗。消防機器人隨著社會經(jīng)濟的迅猛發(fā)展,建筑和企業(yè)生產(chǎn)的特殊性,導致化學危險品和放射性物質(zhì)泄漏以及燃燒、爆炸、坍塌的事故隱患增加,事故發(fā)生的概率也相應(yīng)提高。一旦發(fā)生災(zāi)害事故,消防員面對高溫、黑暗、有毒和濃煙等危害環(huán)境時,若沒有相應(yīng)的設(shè)備貿(mào)然沖進現(xiàn)場,不僅不能完成任務(wù),還會徒增人員傷亡,這方面公安消防部隊已歷經(jīng)諸多血的教訓。尤其是當新消防法出臺后,搶險救援已成為公安消防部隊的法定任務(wù),面對新時期面臨的新情況新任務(wù),也為了更好地解決前述難題,消防機器人的配備顯得日益重要。消防部隊將面對的火災(zāi)和應(yīng)急救援的形勢相當復雜。尤其是在高溫、有毒、易燃易爆等復雜環(huán)境中,為切實增強消防部隊撲救大火的能力,也為更好地保護廣大官兵的生命安全,配備消防機器人已勢在必行。機器人自60年代初問世以來,經(jīng)歷40余年的發(fā)展,己經(jīng)取得長足進步,社會各行各業(yè)皆可見其身影。從1986年日本東京消防廳首次在滅火中采用了“彩虹5號”機器人后,消防機器人就逐漸在滅火救災(zāi)領(lǐng)域得到廣泛的應(yīng)用,消防機器人技術(shù)也得到快速的發(fā)展。截至目前,消防機器人已經(jīng)穩(wěn)步向高端智能機器人前進。目前由于人們的防火意識比較差,生活中火災(zāi)頻發(fā),消防戰(zhàn)士在滅火中犧牲寶貴生命的事件不在少數(shù),迫切要求機器代替人去執(zhí)行滅火任務(wù)。針對這個問題,前人已經(jīng)做了很多的研究,有基于MSP430的滅火小車,能實現(xiàn)滅火功能。還有的是人為地控制機器人的活動和滅火,這樣使得不得不靠人來控制,浪費人力資源,不能很好的實現(xiàn)滅火的效果。此設(shè)計在前人研究的基礎(chǔ)上,通過不斷地學習相關(guān)的知識,力求對消防機器人設(shè)計達到更深的了解和研究,促進消防機器人在火災(zāi)中的應(yīng)用并推廣在相關(guān)領(lǐng)域的研究,使消防研究工作不斷向前發(fā)展,具有很大的學術(shù)價值。在未來智能化和機械化的世界中,尤其是在消防事業(yè)中,一款好的機器的使用能夠達到事半功倍的效果。消防機器人的應(yīng)用前景非常明朗。消防機器人隨著社會經(jīng)濟的迅猛發(fā)展,建筑和企業(yè)生產(chǎn)的特殊性,導致化學危險品和放射性物質(zhì)泄漏以及燃燒、爆炸、坍塌的事故隱患增加,事故發(fā)生的概率也相應(yīng)提高。一旦發(fā)生災(zāi)害事故,消防員面對高溫、黑暗、有毒和濃煙等危害環(huán)境時,若沒有相應(yīng)的設(shè)備貿(mào)然沖進現(xiàn)場,不僅不能完成任務(wù),還會徒增人員傷亡,這方面公安消防部隊已歷經(jīng)諸多血的教訓尤其是當新消防法出臺后,搶險救援已成為公安消防部隊的法定任務(wù),面對新時期面臨的新情況新任務(wù),也為了更好地解決前述難題,消防機器人的配備顯得日益重要。消防部隊將面對的火災(zāi)和應(yīng)急救援的形勢相當復雜。尤其是在高溫、有毒、易燃易爆等復雜環(huán)境中,為切實增強消防部隊撲救大火的能力,也為更好地保護廣大官兵的生命安全,配備消防機器人已勢在必行。機器人自60年代初問世以來,經(jīng)歷40余年的發(fā)展,己經(jīng)取得長足進步,社會各行各業(yè)皆可見其身影。從1986年日本東京消防廳首次在滅火中采用了“彩虹5號”機器人后,消防機器人就逐漸在滅火救災(zāi)領(lǐng)域得到廣泛的應(yīng)用,消防機器人技術(shù)也得到快速的發(fā)展。截至前,消防機器人已經(jīng)穩(wěn)步向高端智能機器人前進。2機器人的相關(guān)概況機器人技術(shù)作為20世紀人類最偉大的發(fā)明之一,自20世紀60年代初問世以來,經(jīng)歷50年發(fā)展以取得長足的進步。未來的機器人是一種能夠代替人類在非結(jié)構(gòu)環(huán)境下從事危險、復雜勞動的自動化機器,是集機械學、力學、電子學、生物學、控制論、計算機、人工智能和系統(tǒng)工程等多科學知識于一身的高新技術(shù)綜合體。走向成熟的工業(yè)機器人,各種用途的特種機器人的多用化,昭示著機器人技術(shù)的燦爛明天。2.1機器人的發(fā)展對于當今世界而言,隨時都有可能發(fā)生突發(fā)事件,例如:火災(zāi),塌陷,洪澇等。有些是人可以解決的,而有些卻是人類無能為力的。所以這時就需要機器人來解決。它可以進入人類無法進入的地方,做許多人做不到的事情,使危害和損失降低?,F(xiàn)在,隨著科技的快速發(fā)展,國內(nèi)外對小型智能系統(tǒng)的應(yīng)用越來越廣泛,種類也越來越多。本題目就是結(jié)合相關(guān)科研項目而確定的設(shè)計類課題,所設(shè)計的智能尋跡滅火機器人,能夠?qū)崿F(xiàn)自動發(fā)現(xiàn)火源、自動尋跡、自動前進接近火源完成滅火任務(wù)的功能。2.2本課題要研究或解決的問題和擬采用的研究手段本機器人以ARM芯片為控制核心,實現(xiàn)對小車的智能控制。此控制系統(tǒng)不僅在機器人中有很強的使用價值,在汽車領(lǐng)域,智能家居等方面都有很高的是實用價值,尤其在智能機器人領(lǐng)域有很高發(fā)展前景。所以本設(shè)計與實際相聯(lián)系,具有很重要的意義。要研究或解決的問題:在設(shè)計上,使用紅外傳感器采集火源信號并將其信號傳給控制器,由控制器做出判斷把信號傳給驅(qū)動電路,驅(qū)動風扇完成滅火。而滅火機器人,則是這發(fā)展過程中重要的一種,本文則以簡要概括。3硬件機器人的尺寸:長31cm、寬31cm、高27cm范圍以內(nèi)由控制器控制控制器穩(wěn)壓板-使程序運行更穩(wěn)定灰度檢測傳感器把機器人前面多通道地面灰度放置與黑線平齊。1運行黑白檢測程序,點擊屏幕,出現(xiàn)紅色圓點。2再把機器人后面多通道地面灰度放置與黑線平齊,3運行黑白檢測程序,點擊屏幕,出現(xiàn)紅色圓點。4把機器人放到全白上,點兩下屏幕.5檢測正確會出現(xiàn)16個OK光電傳感器紅外光電傳感器可以測量10~80cm范圍內(nèi)的物體,并通過模擬信號連接到MF12/MF13控制器上。有障礙物返回0,無障礙物返回復眼復眼模塊,是由若干個紅外感光單元構(gòu)成的,能夠同時多方位測量紅外光強弱的電子部件。通過RS485接口和控制器連接,就可以實現(xiàn)方便、快捷地讀取多個方向的火焰(紅外光)強度。/讀取對應(yīng)復眼傳感器32(調(diào)制復眼14通道)各個方向上讀數(shù)最大值,EYE表述的是對應(yīng)的復眼編號,范圍0或者1IntEyeInMax();/讀取復眼傳感器22(調(diào)制復眼14通道)各方向上最大值所在方向編號IntEyeInMax執(zhí)行機構(gòu)4軟件電路設(shè)計軟件,總體設(shè)計方案整個電路分為驅(qū)動電機模塊、尋跡傳感器模塊、單片機控制模塊、火源傳感器模塊、風扇模塊、電源模塊六個模塊。首先利用紅外對路面信號進行探測,利用火源傳感器檢測火源信號,兩種信號經(jīng)過處理之后,送給單片機控制模塊進行實時運算,輸出相應(yīng)的信號給驅(qū)動電機模塊驅(qū)動電機轉(zhuǎn)動,從而控制整個小車的運動滅火機器人,小車的方案設(shè)計與論并利用開發(fā)板做控制驅(qū)動小車。VJC程序介紹:用VJC編寫程序時,要在模塊庫中選擇你所需要的模塊,將它拖入到流程圖生成區(qū),并且將此模塊與程序主體連接上,才能在程序中發(fā)揮作用。模塊一旦連接上,在JC代碼顯示區(qū)(參見圖4-1)就會自動生成與之相對應(yīng)的JC代碼,當流程圖完成后,JC代碼程序也就形成了,這也是程序有效的一個標志。如果沒有連接上,JC代碼顯示區(qū)就不會出現(xiàn)相應(yīng)的代碼,這時模塊對程序不起作用。:要在程序的末端新增一個模塊,先在模塊庫中點擊需要增加的模塊,模塊就可隨光標移動了,將新增模塊拖到流程圖生成區(qū)中,放在程序末端,光標的頂點放在上方模塊的紅點處,單擊鼠標,新增模塊就與程序主體連接上了。注:單擊菜單欄中的視圖選項卡,在下拉菜單中選擇“連接指示”選項,可以顯示/隱藏模塊上的紅點。打開JC代碼顯示區(qū),觀察是否生成了與新增模塊對應(yīng)的JC代碼。下面介紹兩種需要“移動”操作的情況:要將圖6-2中模塊B調(diào)整到模塊C的后面,步驟可參看圖6-2(1)-(6)。圖6-2調(diào)整程序的前后順序子程序有時候要求某一段功能需要在程序中重復出現(xiàn),或者復雜的程序需要進行局部封裝,就可以用到子程序。VJC-POWERON能很方便地支持子程序,與多任務(wù)??梢酝瑫r創(chuàng)建多達10個子程序與16個子任務(wù)。子程序與子任務(wù)的編程方法將在后面將詳細介紹,這里先來看看與之相關(guān)的程序模塊。――結(jié)束模塊――圖標模塊對話框無設(shè)置對話框功能:用于給主程序或任務(wù)加一個結(jié)束標志,該模塊產(chǎn)生JC代碼return;。結(jié)束模塊后不能再連接其他模塊。操作:將“結(jié)束”模塊移到流程圖生成區(qū),并連接在主程序或任務(wù)的結(jié)束位置。――新建子程序――圖標模塊對話框功能:把需要重復使用的一組模塊新建為“子程序”,便于在主程序中調(diào)用,以精簡程序。操作:新建子程序是一個特殊的模塊,它是子程序調(diào)用的第一步。其操作如下:用鼠標點擊“程序模塊庫”中的“新建子程序”模塊,就會彈出一個新建子程序?qū)υ捒?。在對話框中“子程序位置”下,有兩個選項:“系統(tǒng)子程序”和“其它程序……”。“系統(tǒng)子程序”提供常用的子程序模板;“其它程序……”可以選擇任何已編制程序,以調(diào)用其中存在的子程序。當選擇“系統(tǒng)子程序“時,右邊的列表框中顯示了系統(tǒng)提供的常用子程序模板。其中“自定義”選項可用來建立一個新的子程序,你可以在子程序名稱處為這個子程序命名。當選擇“其它程序……”時,會彈出一個對話框,在這里我們可以選擇任一流程圖文件,如果該流程圖文件包含子程序,列表框中就會出現(xiàn)存在的子程序名,用戶也可以調(diào)用這些子程序。新建子程序“確定”后,會自動進入該子程序的編輯窗口,可以像編輯主程序一樣編輯子程序。每個子程序都有獨立的編輯窗口。新建子程序不能超過10個。――子程序――圖標模塊對話框功能:調(diào)用一個“子程序”,只能在主程序中使用。只有在新建了子程序之后這個模塊才能在主程序界面中出現(xiàn)。子程序可以調(diào)用子程序,但不能調(diào)用自己。操作:如果新建了子程序,在主程序窗口(主程序窗口可以用工具欄中的“主程序”快捷按鈕切換),在“程序模塊庫”中可以看到新建的“子程序”模塊的圖標。子程序模塊可以象其他模塊一樣移入到流程圖生成區(qū),連接在主程序中使用。在子程序模塊上雙擊鼠標左鍵,可打開子程序?qū)υ捒?,選擇“編輯”按鈕,即可進入此子程序的編輯界面。――子程序返回――圖標模塊對話框無設(shè)置對話框功能:結(jié)束一個用戶“子程序”。此模塊在子程序編輯界面中出現(xiàn),只能在子程序中使用。操作:將“子程序返回”模塊從“程序模塊庫”移到流程圖生成區(qū),并連接在子程序的結(jié)束位置?!远x模塊——圖標模塊對話框功能:提供用戶自定義功能,利用該模塊直接用JC代碼進行編寫程序。操作:用鼠標將“自定義”模塊移到流程圖生成區(qū)并連接在程序中的相應(yīng)位置。設(shè)置時,鼠標左鍵雙擊“自定義”模塊,在彈出的對話框中編寫JC代碼。設(shè)置參數(shù)說明:在文本框中編寫所需JC代碼。注意:編寫JC代碼時應(yīng)確保語法無誤,否則流程圖文件無法下載。自定義子程序建立自定義子程序的操作如下:點擊“程序模塊庫”中的“新建子程序”模塊,在彈出的對話框中選擇“自定義”,并為子程序命名,按“確定”后就會進入子程序的編輯窗口。在子程序的編輯窗口中,可以和主程序一樣編輯子程序。執(zhí)行器模塊、傳感器模塊和控制模塊在子程序中都可以使用。但是子程序的程序模塊庫沒有“任務(wù)開始”、“結(jié)束模塊”和“新建子程序”模塊,只有“子程序返回”模塊,這是和主程序不同的地方。子程序編輯完成后,用工具欄中的“主程序”快捷按鈕切換到主程序窗口,在程序模塊庫中就會有剛才編寫好的子程序模塊。將子程序模塊移入到流程圖生成區(qū),與主程序相連,就完成了自定義子程序的調(diào)用。硬件電路,軟件電路硬件電路是智能滅火機器人整體的核心骨架,其參數(shù)性能及設(shè)計的合理性直接決定了智能滅火機器人的性能。本文完成了基于mf13內(nèi)核的智能滅火機器人的硬件電路的設(shè)計與實現(xiàn)。1硬件電路的總體設(shè)計滅火的任務(wù)是在空地中,隨機在其中一個位置放置蠟燭代替的火源,要求機器人在盡可能短的時間里無碰撞地找到火源并完成滅火。根據(jù)要求及功能需要,滅火機器人的總體結(jié)構(gòu),主要由控制器、傳感器輸入、驅(qū)動輸出等模塊組成。2硬件電路的主要部件分析與設(shè)計2.1嵌入式系統(tǒng)為實現(xiàn)機器人高速精確地按照規(guī)定路徑行走,要求機器人的CPU能夠?qū)崟r迅速地讀取多個傳感器端口數(shù)值,并在較短的時間內(nèi)完成對各端口數(shù)值的存儲、運算和輸出等多種任務(wù)。由于嵌入式微處理器對實時任務(wù)具有很強的支持能力,能夠完成多任務(wù)并且具有較短的中斷響應(yīng),因此在設(shè)計過程中選用以嵌入式微處理器mf13為核心的控制器,,每秒可執(zhí)行一億一千萬條機器指令。為提高端口數(shù)值讀取速度,使機器人能對周圍環(huán)境信息做出迅速判斷,本設(shè)計在主芯片上設(shè)置了ADC0~ADC7(P4.0~P4.7)8路數(shù)據(jù)輸入端口,每秒可實現(xiàn)50萬次數(shù)據(jù)采集;另外又設(shè)置20路數(shù)據(jù)輸入端口,通過ATMEGA816-PC輔助單片機連接到主芯片上,用以讀取遠紅外傳感器組及檢測端口的數(shù)值,每秒可實現(xiàn)1000次數(shù)據(jù)采集。本設(shè)計還設(shè)置了4路PWM控制信號輸出端口,用以驅(qū)動4路大功率直流電機,實現(xiàn)對轉(zhuǎn)速的精確調(diào)節(jié);此外,還設(shè)置了7路Do數(shù)字輸出端口,用以驅(qū)動伺服電機、蜂鳴器、繼電器、發(fā)光二極管等。為了給龐大和復雜的程序提供更多的執(zhí)行空間,本設(shè)計附加設(shè)置了100KB的數(shù)據(jù)存儲器(RAM)和512KB的程序存儲器(FlashROM),用以存儲更多的數(shù)據(jù)和命令。2)直流電機驅(qū)動電路由于需要,機器人要在避免碰撞的前提下盡可能提高速度,因此要求具有更大功率的驅(qū)動器和更靈敏的控制方式。為此本文采用的電機驅(qū)動電源電壓為16.8V,電流為20A;采用占空比范圍為0~95%的4路PWM信號控制直流電機,以實現(xiàn)精確的調(diào)速。由于電機功率較大,并要求能實現(xiàn)雙向、可調(diào)速運行,本文設(shè)計了半橋式電力MOSFET管,成功實現(xiàn)了對電機的控制。2路PWM信號通過IR半橋驅(qū)動器(half-bridgedriver)和相應(yīng)保護電路連接至型號為IRF2807的MOSFET管,控制電源與電動機連接線路的通與斷,達到控制電機速度的目的。當PWM信號占空比較大時,線路導通時間長,電機速度大;相反,當PWM占空比較小時,線路導通時間短,電機速度小。4個MOSFET管在不同時刻導通組合,實現(xiàn)控制電機轉(zhuǎn)動方向:當MSFET管1和4導通時,電機端口1為正、2為負,電機正轉(zhuǎn);當MOSFET管2和3導通時,電機端口2為正、1為負,電機反轉(zhuǎn)。5總結(jié)在小組成員的共同努力下,通過大量測試調(diào)試表明,小車能夠較好的完成題目要求的基本要求。我們在完成基本任務(wù)的基礎(chǔ)上想更好的方案。盡可能的減小時間。消防小車從硬件到軟件都以達到預期的目的。由于時間關(guān)系對于更好的方案有待討論。6.2小組心得體會我們從中收獲了很多寶貴的知識,提高了團隊協(xié)作能力,增強了團隊意識。對于做控制類小車題目的我們來說,需要很強的動手能力,我們在做車的過程中受益匪淺。更讓我們了解整個過程中應(yīng)注意的問題,以及避免問題的方法,和對于應(yīng)急事件的處理。這對于我們畢業(yè)進入社會有著很大的幫助。也鍛煉了我們的意志力與堅定信心的能力,讓我們在壓力下,一步一步接近成功。歡樂與汗水伴隨著我們成長。參考文獻[1]蔣新松.機器人與工業(yè)自動化[M].石家莊:河北教育出版社,2003.[2]王耀南.機器人控制工程[M].北京:科學出版社,2004.[3]倪星元,等.傳感器敏感功能材料及應(yīng)用[M].北京;化學工業(yè)出版社,2005.[4]南宮好友.傳感器入門[M].北京:科學出版社,2000.[5]許大中等.電機控制[M].浙江大學出版社,2002.[6]康華光.電子技術(shù)基礎(chǔ)模擬部分(第四版)[M],北京:高等教育出版社。[7]劉海波,21世紀智能機器人發(fā)展預測[J],機器人,13卷4期[8]張鈸,智能機器人的現(xiàn)狀及發(fā)展[J],科技導報,6/1992[9]孫華,陳俊風,吳林.多傳感器信息融合技術(shù)及其在機器人中的應(yīng)用[J].傳感器技術(shù),2003,22原程序#include"MF12_LIB.h"floattim_1=0.0f;floatbat_1=0.0f;intmic_1=0;intgi_1=0;intgi_2=0;intgi_3=0;intma_1=0;intma_2=0;intma_10=0;inteye_1=0;voidSubRoutine_1();voidSubRoutine_2();voidSubRoutine_3();voidSubRoutine_4();voidSubRoutine_5();voidSubRoutine_6();voidSubRoutine_7();voidSubRoutine_8();voidSubRoutine_9();voidSubRoutine_10();voidSubRoutine_11();voidSubRoutine_12();voidSubRoutine_13();voidSubRoutine_14();voidSubRoutine_15();/*前右墻走*/voidSubRoutine_1(){ma_1=AI(5);ma_2=AI(6);if(ma_1>300){SetMoto(0,34);SetMoto(1,90);}else{if(ma_2>300){SetMoto(0,80);SetMoto(1,100);}else{SetMoto(0,100);SetMoto(1,80);}}}/*后右墻走*/voidSubRoutine_2(){ma_1=AI(10);ma_2=AI(11);if(ma_1>300){SetMoto(0,-90);SetMoto(1,-30);}else{if(ma_2>300){SetMoto(0,-100);SetMoto(1,-80);}else{SetMoto(0,-80);SetMoto(1,-100);}}}/*后左墻走*/voidSubRoutine_3(){ma_1=AI(8);ma_2=AI(7);if(ma_1>300){SetMoto(0,-30);SetMoto(1,-90);}else{if(ma_2>300){SetMoto(0,-80);SetMoto(1,-100);}else{SetMoto(0,-100);SetMoto(1,-60);}}}/*前左墻走*/voidSubRoutine_4(){ma_1=AI(3);ma_2=AI(2);if(ma_1>300){SetMoto(0,90);SetMoto(1,34);}else{if(ma_2>300){SetMoto(0,100);SetMoto(1,80);}else{SetMoto(0,80);SetMoto(1,100);}}}/*前追光*/voidSubRoutine_5(){eye_1=EyeChMaxEx(EYE_0);if(eye_1==0){SetMoto(0,60);SetMoto(1,-10);}else{if(eye_1==1){SetMoto(0,60);SetMoto(1,0);}else{if(eye_1==2){SetMoto(0,60);SetMoto(1,15);}else{if(eye_1==3){SetMoto(0,60);SetMoto(1,25);}else{if(eye_1==4){SetMoto(0,60);SetMoto(1,35);}else{if(eye_1==5){SetMoto(0,60);SetMoto(1,60);}else{if(eye_1==6){SetMoto(0,35);SetMoto(1,60);}else{if(eye_1==7){SetMoto(0,25);SetMoto(1,60);}else{if(eye_1==8){SetMoto(0,15);SetMoto(1,60);}else{if(eye_1==9){SetMoto(0,0);SetMoto(1,60);}else{if(eye_1==10){SetMoto(0,-10);SetMoto(1,60);}}}}}}}}}}}}/*3號滅火*/voidSubRoutine_7(){eye_1=EyeInMaxEx(EYE_0); while(eye_1<500){SubRoutine_5(); eye_1=EyeInMaxEx(EYE_0); }eye_1=EyeChMaxEx(EYE_0);while(eye_1!=5){if(eye_1<5){SetMoto(0,30);SetMoto(1,-30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,-30);SetMoto(1,30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}eye_1=EyeChMaxEx(EYE_0);}SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); beep(1);SetMoto(2,100);wait(2.000000);beep(0);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); wait(1.000000);eye_1=EyeInMaxEx(EYE_0);if(eye_1>300){SetMoto(2,100);wait(1.000000);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }}/*3回家走*/voidSubRoutine_8(){ma_1=AI(7);if(ma_1>300){SetMoto(0,-14);SetMoto(1,-40);}else{SetMoto(0,-40);SetMoto(1,10);}}/*后追光*/voidSubRoutine_6(){eye_1=EyeChMaxEx(EYE_1);if(eye_1==0){SetMoto(0,10);SetMoto(1,-60);}else{if(eye_1==1){SetMoto(0,0);SetMoto(1,-60);}else{if(eye_1==2){SetMoto(0,-15);SetMoto(1,-60);}else{if(eye_1==3){SetMoto(0,-25);SetMoto(1,-60);}else{if(eye_1==4){SetMoto(0,-40);SetMoto(1,-60);}else{if(eye_1==5){SetMoto(0,-60);SetMoto(1,-60);}else{if(eye_1==6){SetMoto(0,-60);SetMoto(1,-35);}else{if(eye_1==7){SetMoto(0,-60);SetMoto(1,-25);}else{if(eye_1==8){SetMoto(0,-60);SetMoto(1,-15);}else{if(eye_1==9){SetMoto(0,-60);SetMoto(1,0);}else{if(eye_1==10){SetMoto(0,-60);SetMoto(1,10);}}}}}}}}}}}}/*2號滅火*/voidSubRoutine_9(){ma_10=AI(0);while(ma_10>3000){SetMoto(0,-90);SetMoto(1,-40);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_10=AI(0);}eye_1=EyeInMaxEx(EYE_1);while(eye_1<500){SubRoutine_6(); eye_1=EyeInMaxEx(EYE_1);}eye_1=EyeChMaxEx(EYE_1);while(eye_1!=5){if(eye_1<5){SetMoto(0,30);SetMoto(1,-30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,-30);SetMoto(1,30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}eye_1=EyeChMaxEx(EYE_1);}SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); wait(0.010000);beep(1);SetMoto(2,-100);wait(2.000000);beep(0); SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); wait(1.000000);eye_1=EyeInMaxEx(EYE_1);if(eye_1>300){SetMoto(2,-100);wait(1.000000);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }SetMoto(0,-40);SetMoto(1,-40);wait(0.250000);ma_1=AI(2);while(ma_1>300){SetMoto(0,30);SetMoto(1,-20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_1=AI(2);}ma_10=AI(0);while(ma_10>3000){SubRoutine_10(); ma_10=AI(0);}ma_10=AI(1);while(ma_10>3000){SetMoto(0,40);SetMoto(1,13);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_10=AI(1);}/*延時過門*/SetMoto(0,40);SetMoto(1,-10);wait(0.200000);ma_1=AI(3);while(ma_1>300){SetMoto(0,40);SetMoto(1,-10);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_1=AI(3);}resettime(); tim_1=seconds(); while(tim_1<1.800000){SubRoutine_10(); tim_1=seconds(); }SetMoto(0,30);SetMoto(1,5);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);wait(0.100000);ma_10=AI(4);while(ma_10>300){ma_1=AI(3);if(ma_1>300){SetMoto(0,35);SetMoto(1,10);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,10);SetMoto(1,35);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}ma_10=AI(4);}SetMoto(0,-20);SetMoto(1,-20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);wait(0.200000);ma_10=AI(1);while(ma_10>3000){SubRoutine_8(); ma_10=AI(1);}/*停在家*/while(1){SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }}/*2回家走*/voidSubRoutine_10(){ma_1=AI(2);if(ma_1>300){SetMoto(0,40);SetMoto(1,15);}else{SetMoto(0,-10);SetMoto(1,40);}}/*1號滅火*/voidSubRoutine_11(){ma_10=AI(1);while(ma_10>3000){SubRoutine_5(); ma_10=AI(1);}eye_1=EyeInMaxEx(EYE_0); while(eye_1<500){SubRoutine_5(); eye_1=EyeInMaxEx(EYE_0); }eye_1=EyeChMaxEx(EYE_0);while(eye_1!=5){if(eye_1<5){SetMoto(0,30);SetMoto(1,-30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,-30);SetMoto(1,30);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}eye_1=EyeChMaxEx(EYE_0);}SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); wait(0.010000);beep(1);SetMoto(2,100);wait(2.000000);beep(0);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); wait(1.000000);eye_1=EyeInMaxEx(EYE_0);if(eye_1>300){SetMoto(2,100);wait(1.000000);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }ma_1=AI(2);while(ma_1>300){SetMoto(0,40);SetMoto(1,40);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_1=AI(2);}ma_1=AI(11);while(ma_1>300){SetMoto(0,-30);SetMoto(1,20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_1=AI(11);}ma_10=AI(1);while(ma_10>3000){SubRoutine_12(); ma_10=AI(1);}ma_10=AI(0);while(ma_10>3000){SubRoutine_12(); ma_10=AI(0);}SetMoto(0,-45);SetMoto(1,-10);wait(0.450000);ma_1=AI(11);while(gi_1==1){SetMoto(0,-100);SetMoto(1,-4);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);ma_1=AI(11);}ma_10=AI(1);while(ma_10>3000){ma_1=AI(10);if(ma_1>300){SetMoto(0,-40);SetMoto(1,-12);}else{SetMoto(0,10);SetMoto(1,-40);}ma_10=AI(1);}/*停在家*/while(1){SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }}/*1回家走*/voidSubRoutine_12(){ma_1=AI(11);if(ma_1>300){SetMoto(0,-40);SetMoto(1,-12);}else{SetMoto(0,10);SetMoto(1,-40);}}/*4號滅火*/voidSubRoutine_13(){if(gi_3==1){eye_1=EyeInMaxEx(EYE_0); while(eye_1<500){SubRoutine_5(); eye_1=EyeInMaxEx(EYE_0); }eye_1=EyeChMaxEx(EYE_0);while(eye_1!=5){if(eye_1<5){SetMoto(0,20);SetMoto(1,-20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,-20);SetMoto(1,20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}eye_1=EyeChMaxEx(EYE_0);}SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); eye_1=EyeInMaxEx(EYE_0);if(eye_1>300){SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); beep(0); SetMoto(2,100);wait(1.000000);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }}else{eye_1=EyeInMaxEx(EYE_1);while(eye_1<500){SubRoutine_6(); eye_1=EyeInMaxEx(EYE_1);}eye_1=EyeChMaxEx(EYE_1);while(eye_1!=5){if(eye_1<5){SetMoto(0,20);SetMoto(1,-20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}else{SetMoto(0,-20);SetMoto(1,20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);}eye_1=EyeChMaxEx(EYE_1);}SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); eye_1=EyeInMaxEx(EYE_1);if(eye_1>300){SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); beep(0); SetMoto(2,-100);wait(1.000000);SetMoto(0,0);SetMoto(1,0);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0); }}}/*4回家走*/voidSubRoutine_14(){ma_1=AI(6);if(ma_1>300){SetMoto(0,12);SetMoto(1,40);}else{SetMoto(0,40);SetMoto(1,-10);}}/*直行*/voidSubRoutine_15(){SetMoto(0,20);SetMoto(1,20);SetMoto(2,0);SetMoto(3,0);SetMoto(4,0);SetMoto(5,0);wait(0.800000);}voidmain(){InitARMRobot();/*速度調(diào)節(jié)*/SetMoto_PowerConfig(0.85);/*電壓低于19V充電*/bat_1=battery(BATTERY_MAIN); if(bat_1<19){beep(1);}wait(0.500000);mic_1=microphone();while(mic_1<100){mic_1=microphone();}resettime(); SetMoto(0,30);SetMoto(1,30);wait(0.300000);eye_1=EyeInMaxEx(EYE_0);if(eye_1>250){SubRoutine_7(); }eye_1=EyeInMaxEx(EYE_0); if(eye_1>300){SubRoutine_13(); }eye_1=EyeInMaxEx(EYE_0); if(eye_1>300){SubRoutine_13(); }if(eye_1>300){SubRoutine_13(); }eye_1=EyeInMaxEx(EYE_0); if(eye_1>300){SubRoutine_13(); }if(eye_1>300){SubRoutine_13(); }eye_1=EyeInMaxEx(EYE_0); if(eye_1>300){/*7號滅火*/SubRoutine_13(); }}基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論