仿蜥蜴機(jī)器人設(shè)計(jì)與制作_第1頁(yè)
仿蜥蜴機(jī)器人設(shè)計(jì)與制作_第2頁(yè)
仿蜥蜴機(jī)器人設(shè)計(jì)與制作_第3頁(yè)
仿蜥蜴機(jī)器人設(shè)計(jì)與制作_第4頁(yè)
仿蜥蜴機(jī)器人設(shè)計(jì)與制作_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要仿生技術(shù)出現(xiàn)至今已有數(shù)十載,而仿生學(xué)是應(yīng)用生物學(xué)領(lǐng)域的一門分支學(xué)科,軟硬件的相互結(jié)合賦予了機(jī)器人另一種形式的“生命力”。本次畢業(yè)設(shè)計(jì)是通過(guò)研究蜥蜴的外形和運(yùn)動(dòng)姿態(tài)所設(shè)計(jì)與制作的仿蜥蜴機(jī)器人。根據(jù)步態(tài)分析和自由度的計(jì)算,設(shè)計(jì)結(jié)構(gòu)外形和基本運(yùn)動(dòng)姿態(tài),通過(guò)電路設(shè)計(jì)和程序?qū)懭肴タ刂聘鬟\(yùn)動(dòng)副的關(guān)節(jié)運(yùn)動(dòng),并且通過(guò)仿真優(yōu)化和上位機(jī)的調(diào)試優(yōu)化得到能滿足運(yùn)動(dòng)要求的仿蜥蜴機(jī)器人。關(guān)鍵詞:仿生技術(shù),電路設(shè)計(jì),優(yōu)化,關(guān)節(jié)運(yùn)動(dòng)

ⅡDesignandmanufactureoflizard-likequadrupedrobot——ControlsystemdesignAbstractIthasbeendecadessincetheadventofbionictechnology,andbionicsisabranchdisciplineinthefieldofappliedbiology.Thecombinationofsoftwareandhardwareendowsrobotswithanotherformof"vitality".Thisgraduationprojectisalizardrobotdesignedandmadebystudyingtheappearanceandmovementoflizards.Accordingtotheanalysisofgaitandthecalculationofdegreeoffreedom,thedesignofthestructureshapeandthebasicmotionposture,throughthecircuitdesignandprogramwritingtocontrolthejointmotionofeachmotionpair,andthroughthesimulationoptimizationandtheuppercomputerdebuggingoptimizationcanmeetthemotionrequirementsofthelizardrobot.Keywords:bionictechnology,circuitdesign,optimization,jointmotion

目錄1.緒論 .緒論1.1研究仿生蜥蜴機(jī)器人的現(xiàn)實(shí)意義和目的代替人類在各種復(fù)雜和未知的工作環(huán)境中工作,國(guó)際社會(huì)對(duì)此表示贊成的聲音越來(lái)越多,例如深海勘測(cè),核輻射影響地區(qū),對(duì)于恐怖組織所在地區(qū),太陽(yáng)系和各遙遠(yuǎn)星系人類所不可及之處。往小的方面說(shuō),需要機(jī)器人解放人類的勞動(dòng)力,提高工作效率,例如負(fù)重搬運(yùn),運(yùn)送物資,工廠生產(chǎn),交通維護(hù)等都可以使用機(jī)器人代替人類社會(huì)工作。而四足機(jī)器人相比于兩足機(jī)器人而言,具有更強(qiáng)的穩(wěn)定性和良好的機(jī)動(dòng)性,而相對(duì)于六足機(jī)器人而言,在構(gòu)建和維護(hù)上又比六足更簡(jiǎn)單。而制作一臺(tái)機(jī)器人的最終目的就是讓它應(yīng)用在我們的生活之中,模擬爬行動(dòng)物的運(yùn)動(dòng)特征,通過(guò)機(jī)械結(jié)構(gòu)和算法程序賦予其“生命”,使其能服務(wù)于人類社會(huì),譬如賦予蜥蜴機(jī)器人自動(dòng)避障和行走功能,便能使其具有基本避障神經(jīng)元系統(tǒng)和運(yùn)動(dòng)特性,再賦予其圖像識(shí)別和資料上傳功能,便又具有勘測(cè)和記錄的功能,我們可以根據(jù)所需要完成的目標(biāo)而賦予其基本功能,所以研究仿生蜥蜴機(jī)器人的潛力十分巨大。1.2國(guó)內(nèi)外的發(fā)展?fàn)顩r對(duì)于仿生蜥蜴機(jī)器人仿蜥蜴機(jī)器人的運(yùn)動(dòng)機(jī)構(gòu)可以根據(jù)運(yùn)動(dòng)方式分為:傳統(tǒng)的履帶運(yùn)動(dòng)機(jī)器人,多足型傳動(dòng)機(jī)器人,多輪型傳動(dòng)機(jī)器人還有仿蛇爬形機(jī)器人,還包括近幾年出現(xiàn)的水棲仿生機(jī)器人與多翼式仿生飛行機(jī)器人,未來(lái)可能出現(xiàn)的也許有噴射式機(jī)器人和磁力式機(jī)器人,或許還會(huì)出現(xiàn)打破傳統(tǒng)力學(xué)機(jī)構(gòu)的量子機(jī)器人和反重力機(jī)器人,這都是更高級(jí)的運(yùn)動(dòng)方式結(jié)構(gòu),而我們目前研究最多的方向還是在傳統(tǒng)足式機(jī)器人,輪式機(jī)器人和履帶機(jī)器人。第一個(gè)探索發(fā)展階段是原始探索時(shí)期,此階段通過(guò)對(duì)生物的物理外形和生物原型進(jìn)行原始模仿,就比如飛機(jī),原始的飛行器,通過(guò)模仿鳥(niǎo)類而制造,而且該階段主要驅(qū)動(dòng)力還是原始人力。直至科技不斷發(fā)展,驅(qū)動(dòng)系統(tǒng)裝置不斷更新?lián)Q代和計(jì)算機(jī)技術(shù)的問(wèn)世,從而進(jìn)入第二個(gè)階段—在2O世紀(jì)中后期, 第二個(gè)階段主要是利用機(jī)電系統(tǒng)結(jié)合,通過(guò)編寫(xiě)控制程序?qū)崿F(xiàn)生物功能例如行走,跳躍和爬行等。這是屬于宏觀上的仿生,不僅僅是仿形態(tài)而且也是仿行態(tài),并實(shí)現(xiàn)較多的人為操控??焖俚目萍几镄?,使得人們進(jìn)入了21世紀(jì),人們開(kāi)始從傳統(tǒng)物理學(xué)和摩爾公式中繼續(xù)摸索機(jī)器人的下一階段第三階段。在第三階段中,通過(guò)對(duì)生物的不斷深入研究和發(fā)現(xiàn),生命機(jī)理的不斷突破進(jìn)展而進(jìn)入了能將機(jī)械的結(jié)構(gòu)跟生物體之間的部分特性進(jìn)行巧妙融合,機(jī)械技術(shù)也在不斷發(fā)展結(jié)合生物科學(xué),這時(shí)候的計(jì)算機(jī)技術(shù)也在革新,當(dāng)這三者巧妙的融合之后,仿生機(jī)器體也開(kāi)始步入下一個(gè)發(fā)展階段———第四個(gè)階段。機(jī)械結(jié)構(gòu)和生物性能進(jìn)行部分的融合,亦如傳統(tǒng)的機(jī)械結(jié)構(gòu)與仿生材料之間的融合以及仿生驅(qū)動(dòng)運(yùn)動(dòng)。隨著對(duì)生物機(jī)理認(rèn)識(shí)的不斷發(fā)展,和計(jì)算機(jī)技術(shù)的不斷革新,仿生機(jī)器人也往著下一階段—第四階段發(fā)展。第四階段是屬于機(jī)械結(jié)構(gòu)與生命形式進(jìn)行融合的類生命形態(tài)(傳統(tǒng)意義上不算是生命),以科技賦予傳統(tǒng)的機(jī)械體生物的部分特征與仿生形態(tài),通過(guò)技術(shù)嵌入自主學(xué)習(xí)與思考能力,自我認(rèn)知,還有運(yùn)動(dòng)姿態(tài)的生命特征,更與生物本身模仿更進(jìn)一步,也隨著人類對(duì)生命思維和意識(shí)還有神經(jīng)系統(tǒng)神經(jīng)元的不斷深入。人類對(duì)機(jī)器人研究的不斷探索如下圖1-1所示。圖1-1機(jī)器人研究發(fā)展趨勢(shì)

目前所能了解到的仿生蜥蜴機(jī)器人相對(duì)而言數(shù)量十分有限,這個(gè)研究對(duì)象對(duì)于國(guó)際社會(huì)而言并不是熱門選擇。通過(guò)網(wǎng)上查閱資料可以依稀發(fā)現(xiàn)有研究這方面課題的科研項(xiàng)目,他們所研究的仿生蜥蜴機(jī)器人結(jié)構(gòu)如下圖1-2,圖1-3,圖1-4所示。圖1-2仿生蜥蜴機(jī)器人A 圖1-3仿生蜥蜴機(jī)器人B圖1-4仿生蜥蜴機(jī)器人C生物,物理,機(jī)械的結(jié)合和仿生神經(jīng)元系統(tǒng)控制成為科學(xué)家們研究的前沿方向。

2.仿生蜥蜴機(jī)器人步態(tài)設(shè)計(jì)2.1行走原理根據(jù)研究蜥蜴的爬行機(jī)制,骨骼之間驅(qū)動(dòng)力的相互傳導(dǎo),還有關(guān)節(jié)的自由度,設(shè)計(jì)了一個(gè)以八自由度為運(yùn)動(dòng)關(guān)節(jié),其中分為兩只前肢和兩只后肢,前后肢的機(jī)理都是相同的,每一條肢體都分配了三個(gè)自由度,分別是肩膀和手肘和手腕,胯和膝蓋和腳踝這兩種位置。需要實(shí)現(xiàn)的基本運(yùn)動(dòng)功能為:“前進(jìn)”,“后退”,“左轉(zhuǎn)”,“右轉(zhuǎn)”。根據(jù)研究蜥蜴的運(yùn)動(dòng)形態(tài),如圖2-1所示。圖2-1蜥蜴的運(yùn)動(dòng)形態(tài)2.2自由度計(jì)算在對(duì)其進(jìn)行自由度的計(jì)算,仿生蜥蜴機(jī)器人都是空間移動(dòng),但傳統(tǒng)的自由度計(jì)算公式繁多,每個(gè)公式對(duì)應(yīng)的情況都各不相同,每個(gè)公式也都有一定的缺陷和局限性,對(duì)于此仿生蜥蜴機(jī)器人而言,綜合考量后覺(jué)得使用目前最常用的自由度計(jì)算公式會(huì)比較合適,此計(jì)算自由度的公式是由1943年間,原蘇聯(lián)的科學(xué)院通訊院士陀勃羅弗爾斯基,由約束理論為根基所建立的一種具有一個(gè)統(tǒng)一的平面,空間機(jī)構(gòu)的自由度公式:[5]: (式2-1)其中,式子中的m代表各個(gè)運(yùn)動(dòng)機(jī)構(gòu)在運(yùn)動(dòng)過(guò)程中受到的共同的約束數(shù)量,式子中的n代表活動(dòng)的桿體數(shù)額,而k為運(yùn)動(dòng)副級(jí)別的數(shù)量值。通過(guò)對(duì)傳統(tǒng)的計(jì)算公式簡(jiǎn)化,可以得到一個(gè)新等式: (式2-2)式中,P為機(jī)構(gòu)各級(jí)別運(yùn)動(dòng)副的總數(shù),λ為多余的自由度,N是空間封閉的閉環(huán)數(shù)。 可以通過(guò)計(jì)算代入?yún)?shù)得出PX=3,λ=0,所以N=0,因此不構(gòu)成封閉環(huán),所以得出以下算式: W=3-0-3*0=3 (式2-3)再通過(guò)計(jì)算,總自由度=每只腳的自由度*腳的數(shù)量=12;所以該仿生蜥蜴機(jī)器人的總自由度是12.如圖2-2所示單獨(dú)觀察單條腿的3自由度運(yùn)動(dòng)結(jié)構(gòu)機(jī)理:圖2-2單條腿自由度的三維結(jié)構(gòu)圖2.3步態(tài)分析運(yùn)動(dòng)方式根據(jù)研究運(yùn)動(dòng)中的占空比β以區(qū)分而分成3種:行走時(shí)(β>=0.75),加速走動(dòng)時(shí)(0.5<=β<=0.75),跑步時(shí)(β<0.5)。其中,步行時(shí)是屬于穩(wěn)定步態(tài),加速走動(dòng)還有跑步運(yùn)動(dòng)時(shí)都是屬于非穩(wěn)定步態(tài),仿生蜥蜴機(jī)器人在穩(wěn)定步態(tài)過(guò)程中,運(yùn)動(dòng)的任意時(shí)刻要有三條節(jié)肢與地面接觸以支撐身體平衡,且機(jī)體需要在穩(wěn)定占空比區(qū)間里做出調(diào)整,以使重心落在三足的支撐點(diǎn)構(gòu)成的穩(wěn)定區(qū)間內(nèi)。 當(dāng)穩(wěn)定度達(dá)到一個(gè)相對(duì)值時(shí)候,仿蜥蜴機(jī)器人行走的速度也達(dá)到相對(duì)值時(shí),這時(shí)運(yùn)動(dòng)運(yùn)動(dòng)損失的能量越少而得到運(yùn)動(dòng)步態(tài)越合適。仿蜥蜴機(jī)器人運(yùn)動(dòng)步態(tài)運(yùn)動(dòng)一個(gè)周期的時(shí)間可以細(xì)分為邁腿損失時(shí)間和調(diào)整重心損失時(shí)間,仿蜥蜴機(jī)器人運(yùn)動(dòng)的速度跟跨度值的大小有關(guān),也與重心所在落點(diǎn)位置還有運(yùn)動(dòng)時(shí)間有關(guān),當(dāng)邁腿的時(shí)間變小時(shí)運(yùn)動(dòng)步態(tài)便越合適。當(dāng)穩(wěn)定閾值不變時(shí),運(yùn)動(dòng)需要調(diào)整的重心改變值越小得出的步態(tài)運(yùn)動(dòng)效率會(huì)越高,而運(yùn)動(dòng)損失的能量跟運(yùn)動(dòng)周期中重心的偏移程度相關(guān)。 本次設(shè)計(jì)選用的是三角步態(tài)法,前進(jìn)時(shí)讓前肢左,后肢左和后肢右,與前肢右,后肢左和后肢所分別構(gòu)成的三角形區(qū)域交叉進(jìn)行,使重心落于其中,而后退時(shí)是讓前肢左,前肢右和后肢左,與前肢左,前肢右和后肢右所分別構(gòu)成的三角形區(qū)域交叉進(jìn)行,使重心落于其中。機(jī)器人便能穩(wěn)定運(yùn)行。

3.硬件選型與電路設(shè)計(jì)3.1硬件選用 12個(gè)MG90S舵機(jī),各3D打印零部件,ArduinoUNOR3,杜邦線若干,1個(gè)面包板。1個(gè)HC-SR04超聲波測(cè)距模塊,1個(gè)16路PWM舵機(jī)控制板。3.2硬件系統(tǒng)框圖 設(shè)計(jì)與制作整個(gè)硬件電路系統(tǒng),首先需要設(shè)計(jì)好硬件電路的系統(tǒng)框圖,而硬件系統(tǒng)框圖如圖3-1所示。66V電源輸入16路P16路PWM舵機(jī)驅(qū)動(dòng)板舵機(jī)ArduinoUNOR3超聲波測(cè)距模塊超聲波測(cè)距模塊圖3-1硬件系統(tǒng)框圖3.3舵機(jī)選型 舵機(jī)屬于一種位置伺服驅(qū)動(dòng)裝置,由于其的可中斷特性與角度偏移可變特性多被應(yīng)用在一些需要不斷改變偏移角度和維持偏移量的控制系統(tǒng)裝置中,例如無(wú)人機(jī),遙控汽車,許多機(jī)械機(jī)構(gòu)裝置中都有舵機(jī)的存在。一般而言,控制舵機(jī)方式一般是使用定時(shí)器還有中斷器搭配單片機(jī)控制的。當(dāng)傳統(tǒng)單片機(jī)所搭載的舵機(jī)數(shù)量增多時(shí),各模塊不足以完整控制多舵機(jī)運(yùn)行,而傳統(tǒng)的單片機(jī)驅(qū)動(dòng)方式步驟繁多且復(fù)雜,精度也無(wú)法保證,控制將變得復(fù)雜多樣,而本次畢業(yè)設(shè)計(jì)設(shè)計(jì)的是12路的舵機(jī)驅(qū)動(dòng)電路,也自因此,本次畢業(yè)設(shè)計(jì)采用市面上流行的開(kāi)源硬件Arduino來(lái)驅(qū)動(dòng)舵機(jī)。這種利用閉環(huán)控制系統(tǒng)的機(jī)電產(chǎn)品,內(nèi)部結(jié)構(gòu)為小型的直流電機(jī)、變速的齒輪組、控制板和可調(diào)節(jié)電位器等機(jī)械部件組成,具有可以自由控制所需偏移角度值的特性(偏移舵角,一般而言舵角不超過(guò)180°),如圖3-2所示。圖3-2舵機(jī)結(jié)構(gòu) 本次設(shè)計(jì)選用的舵機(jī)型號(hào)是MG90S型號(hào)舵機(jī),選用此種舵機(jī)的原因是他作為機(jī)器人的專用伺服電機(jī),工作時(shí)產(chǎn)生的扭力大且穩(wěn)定,精度高,反作用力影響較小。且使用插線式控制,適合于多自由度機(jī)器人的組裝。MG90S舵機(jī)外形如下圖3-3所示。

圖3-3MG90S舵機(jī)外形 舵機(jī)的控制方式:通過(guò)時(shí)基脈沖的刺激,當(dāng)受到0.5~2.5ms的脈沖反饋時(shí),舵機(jī)能分析反饋脈沖而轉(zhuǎn)動(dòng)所需的角度,如圖3-4:圖3-4舵機(jī)控制方式脈沖角度對(duì)應(yīng)表3.4微處理器選型 本次畢業(yè)設(shè)計(jì)選用的單片機(jī)微處理器模塊是Arduino,Arduino是屬于意大利研發(fā)的一款開(kāi)源的硬件模塊,是屬于教學(xué)使用的硬件模塊,該模塊的一般適用對(duì)象是部分希望嘗試交互式的物理對(duì)象的實(shí)踐人員和眾多創(chuàng)客們還有部分有想法的藝術(shù)家所構(gòu)建的,它的程序開(kāi)發(fā)完全開(kāi)源,可以免費(fèi)下載。如下表3-1所示是各種Arduino微處理器產(chǎn)品的特點(diǎn)和物理特性,還有使用場(chǎng)景,價(jià)格,尺寸各參數(shù)分析。

表3-1Arduino各種類參數(shù)對(duì)比Arduino版型ArduinoUNOArduinoDUEArduinoLeonardoArduinoMegaArduinoADKArduinoMicroArduinoYun微處理器ATmega328AT91SAM3X8EATmega32u4ATmega2560ATmega2560ATmega32u4ATmega32u4工作電壓(電壓/輸入電壓)5V/7~12V3.3V/7~125V/7~125V/7~125V/7~125V/7~125VCPU頻率16MHZ84MHZ16MHZ16MHZ16MHZ16MHZ16MHZEEPROM[KB]114411SRAM[KB]2962.5882.52.5Flash[KB]32512322562563232Analogport(input/output)6/012/212/016/016/012/012/0Digitalport(IO/PWM)14/654/1220/754/1554/1520/720/7USB接口A-BMicroMicroA-BA-BMicroMicroUART1424422尺寸75*55mm108*54mm75*55mm108*54mm108*54mm45*20mm75*55價(jià)格區(qū)間(¥)100-200300-400100-200300-400400-500100-200500-600特點(diǎn)ArduinoUNO是Arduino主控制器件系列中的經(jīng)典款,Arduino后的新產(chǎn)品都是以ArduinoUNO作為原型參照的ArduinoDUE是第一款基于32位ARM的Arduino主控硬件,基于AtmelSAM3X8ECPU的微控制處理器ArduinoLeonardo是一款低成本的主控制器。不僅擁有兩個(gè)控制串口,而且數(shù)字和模擬口均比ArduinoUNO多ArduinoMega擁有54個(gè)數(shù)字口,16個(gè)模擬口,是一款具有超多IO口的Arduino主控制器。MegaADK是一款基于Atmega256的主控制器,其于Mega最大的區(qū)別在于-其完全兼容于GOOGLEADKArduinoMicro是基于Atmega32U4的超小型主控板。具有超小尺寸,ArduinoMicro可兼容小型面包板上。ArduinoYun是一塊基于ATmega32u4和AtherosAR9331的主控器。Atheros支持基于Linux分支OpenWRT平臺(tái)下Linino系統(tǒng)。適用場(chǎng)景適合于初學(xué)者使用DUE不像其他Arduino主控產(chǎn)品,工作電壓是3.3V,所以其不兼容于5V的shield和外設(shè)低成本的特點(diǎn)適用于Arduino愛(ài)好者多使用于需要外接較多傳感器的場(chǎng)景多使用Android手機(jī)的USB數(shù)據(jù)通訊場(chǎng)景多使用于對(duì)尺寸有較多要求的Arduino設(shè)計(jì)師多使用于基于Arduino的物聯(lián)網(wǎng)開(kāi)發(fā)人員 對(duì)于綜上所述的硬件部分對(duì)比分析,本次畢業(yè)設(shè)計(jì)選用的微處理器模塊是ArduinoUNOR3模塊,是考慮到Arduino是開(kāi)源硬件,易于二次編程開(kāi)發(fā),選用的ArduinoUNOR3模塊具有USB通信功能,可以通過(guò)USB線直接連接電腦,通過(guò)軟件“arduino”編程,軟件編程語(yǔ)言環(huán)境屬于類似Java、C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境,與其它Arduino類產(chǎn)品對(duì)比更加簡(jiǎn)潔和容易使用,而此畢業(yè)設(shè)計(jì)對(duì)于產(chǎn)品而言無(wú)特殊需求,因此選擇價(jià)格相對(duì)低廉,便于操作的UNO系列產(chǎn)品。而ArduinoUNOR3的外形如圖3-5所示。圖3-5ArduinoUNOR33.5舵機(jī)控制板選型 本次畢業(yè)設(shè)計(jì)選用16路PWM舵機(jī)驅(qū)動(dòng)板作為控制從機(jī),選用此舵機(jī)控制板因?yàn)檫@是一款具有16條通道的12比特的PWM通信的舵機(jī)模塊,搭配了PCA9685芯片,功能強(qiáng)大,特點(diǎn)是可以只需要使用兩個(gè)引腳通過(guò)I2C就可以驅(qū)動(dòng)16個(gè)舵機(jī),通過(guò)級(jí)聯(lián)的方式疊加,可以最高級(jí)聯(lián)控制62個(gè)舵機(jī)驅(qū)動(dòng)模塊,所以總共可以一次性驅(qū)動(dòng)992個(gè)舵機(jī)??梢院芎玫墓?jié)省主機(jī)空間資源。級(jí)聯(lián)的方式如下圖3-6所示:圖3-6多驅(qū)動(dòng)板級(jí)聯(lián)(提供更大的拓展性) ArduinoUNOR3可以直接連接單個(gè)舵機(jī)驅(qū)動(dòng),但是如果舵機(jī)數(shù)量增加,ArduinoUNOR3只有12個(gè)引腳(2號(hào)引腳到13號(hào)引腳),本次實(shí)驗(yàn)所需的舵機(jī)數(shù)量正好為12個(gè)MG90S舵機(jī),但如果直接使用ArduinoUNOR3外接12個(gè)舵機(jī)的情況下,因舵機(jī)的驅(qū)動(dòng)電壓維持在5~6伏特之間而需要相對(duì)而言更大的電壓才能使得多個(gè)舵機(jī)同時(shí)正常工作,因此就需要外接更大功率的電源去供電使其正常工作,但大電源直接連接ArduinoUNOR3有可能燒壞硬件板,而且ArduinoUNOR3的IO口輸出電流太低,無(wú)法全功率驅(qū)動(dòng)舵機(jī),對(duì)于處理器和外接硬件會(huì)造成一些難以預(yù)測(cè)的問(wèn)題。 因此綜合考量,這時(shí)候就需要使用舵機(jī)控制器——這款16路的PWM舵機(jī)驅(qū)動(dòng)板,首先用ArduinoUNO連接舵機(jī)驅(qū)動(dòng)板,再通過(guò)外接電源給16路PWM舵機(jī)驅(qū)動(dòng)板供電去驅(qū)動(dòng)外接的12個(gè)MG90S舵機(jī)。 接線圖如下圖3-7所示。圖3-7硬件系統(tǒng)接線圖(1)下列是微處理器和舵機(jī)控制機(jī)的接線方式:1.+5V——>VCC2.GND——>GND3.SDA——>SDA4.SCL——>SCL(2)下列是16路PWM舵機(jī)驅(qū)動(dòng)板的主要參數(shù): 1.電壓:舵機(jī)供電5-7V(電壓可以稍高點(diǎn))。 2.邏輯電路電壓:3-5V。 3.通信接口:使用I2C通信方式,引腳是SCL,SDA。 4.OE反使能腳:該引腳是低電平使能,正常情況該引腳不用連接模塊,因?yàn)槿绻唤幽K內(nèi)部會(huì)自動(dòng)默認(rèn)接地使能。 5.運(yùn)行環(huán)境頻率:40-1000HZ。3.6電源選型 舵機(jī)采用USB供電的方式,通過(guò)arduino微處理器外接USB電源線到電源,再把舵機(jī)和ArduinoUNOR3共地接到外接電路中,因?yàn)槎鏅C(jī)在不同的電壓下工作扭力不同,電壓如何過(guò)低,舵機(jī)產(chǎn)生扭力不夠大以無(wú)法正常工作,達(dá)到實(shí)驗(yàn)?zāi)康模妷禾哂秩菀讚p壞舵機(jī)和硬件電路,所以電池的電壓選擇不能太高,本次實(shí)驗(yàn)選用4個(gè)1.5V鋰電池并聯(lián)成一個(gè)6V電源。3.7超聲波測(cè)距模塊選型 對(duì)本次畢業(yè)設(shè)計(jì)選用的超聲波測(cè)距模塊型號(hào)是HC-SR04,超聲波模塊的工作原理:向模塊前方發(fā)射超聲波,通過(guò)媒介傳播過(guò)程中碰到前方物體,聲波會(huì)進(jìn)行反射,此時(shí)該超聲波模塊會(huì)對(duì)反射聲波進(jìn)行吸收和分析,得出時(shí)間差,根據(jù)聲速運(yùn)算得出物體的距離。 下列是該產(chǎn)品的各項(xiàng)功能參數(shù)如下:能夠測(cè)量距離范圍為2~450cm距離分辨率為0.3cm工作測(cè)量角度為15deg正常測(cè)量頻率為40Hz(頻率最快達(dá)到每25ms測(cè)量一次)

正常運(yùn)行電壓為4.5~5.5伏特

正常運(yùn)行電流為10~40毫安接線方式:VCC,trig(控制端),echo(接收端),GND。3.8硬件系統(tǒng)電路設(shè)計(jì) 通過(guò)AltiumDesigner設(shè)計(jì)電路原理圖,先打開(kāi)“新建”,再點(diǎn)擊“庫(kù)”-“原理圖庫(kù)”,新建一個(gè)文件庫(kù),對(duì)所需要的各個(gè)硬件模塊進(jìn)行電路原理圖設(shè)計(jì),添加引腳和命名,然后再在原理圖模塊中添加剛剛新建的文件庫(kù),下載到“庫(kù)”文檔中,便可以在原理圖繪制模塊編輯。如圖3-8所示為該仿蜥蜴機(jī)器人電路設(shè)計(jì)原理圖.圖3-8硬件電路原理圖設(shè)計(jì)4.開(kāi)發(fā)軟件介紹4.1ArduinoIDE4.1.1ArduinoIDE軟件介紹ArduinoIDE是一款能寫(xiě)入,下載和上傳代碼的集成開(kāi)發(fā)環(huán)境的軟件系統(tǒng),該應(yīng)用系統(tǒng)里面功能主要包括一款文本編輯器模塊用于編寫(xiě)程序代碼,一個(gè)文本內(nèi)容控制部分還有一個(gè)功能強(qiáng)大的調(diào)用工具欄。通過(guò)USB串口連接電腦串口,進(jìn)行串行通信來(lái)下載軟件編碼到硬件中,連接Arduino和Genuino之后,就能上傳程序和通信了。而對(duì)于初次接觸Arduino的開(kāi)發(fā)者而言,操作靈活性強(qiáng),能夠較容易去掌握這個(gè)軟件的使用,能夠進(jìn)行圖形化的編程測(cè)試,不需要太專業(yè)的單片機(jī)的操作背景。相對(duì)的而已,Arduino的電路原理圖與設(shè)計(jì)圖和軟件核心的庫(kù)都是開(kāi)源的,在Arduino的開(kāi)源協(xié)議背景下可以修改程序原本的設(shè)計(jì)和對(duì)應(yīng)的編碼。4.1.2ArduinoIDE界面展示 當(dāng)打開(kāi)ArduinoIDE的主頁(yè)面如下圖4-1所示,但驅(qū)動(dòng)舵機(jī)需要打開(kāi)servo的庫(kù)文件才能正常使用Arduino去控制舵機(jī)驅(qū)動(dòng)。圖4-1ArduinoINE界面找到“項(xiàng)目”的選項(xiàng),打開(kāi)后選擇“加載庫(kù)”,可以看到servo庫(kù)的選項(xiàng),如圖4-2,點(diǎn)擊它。圖4-2servo庫(kù)文件位置打開(kāi)servo庫(kù)之后,會(huì)自動(dòng)調(diào)用servo編程模板,參數(shù)模板如下,可自己更改。Servo庫(kù)的界面如下圖(4-3)所示。#include<Servo.h>//引入舵機(jī)控制庫(kù)文件Servomyservo;//實(shí)例化一個(gè)舵機(jī)對(duì)象來(lái)控制舵機(jī)intpos=0;voidsetup(){myservo.attach(5);//引腳5為舵機(jī)控制接口}voidloop(){for(pos=0;pos<=180;pos+=1){//控制舵機(jī)角度從0°轉(zhuǎn)到180°myservo.write(pos);delay(15);//延遲15毫秒}for(pos=180;pos>=0;pos-=1){myservo.write(pos);delay(15);}}圖4-3servo庫(kù)編程界面4.1.3ArduinoIDE數(shù)據(jù)類型 下表4-1是ArduinoIDE的數(shù)據(jù)類型統(tǒng)計(jì)。表4-1ArduinoIDE數(shù)據(jù)類型Boolean布爾Char字符Byte字節(jié)Int整數(shù)Unsignedint無(wú)符號(hào)整數(shù)Long長(zhǎng)整數(shù)Unsignedlong無(wú)符號(hào)長(zhǎng)整數(shù)Float浮點(diǎn)Double雙字節(jié)浮點(diǎn)String字符串Array數(shù)組4.2LobotServoControlLobotServoControl是一款多個(gè)舵機(jī)同時(shí)控制的最多24路舵機(jī)控制程序軟件,軟件公司是LOBOT,LobotServoControl的操作相對(duì)而言十分容易,需要有串口通信功能的舵機(jī)驅(qū)動(dòng)板還有多個(gè)舵機(jī)同時(shí)使用,可以通過(guò)移動(dòng)條件上位機(jī)軟件里的圖形進(jìn)行實(shí)時(shí)舵機(jī)編程,還有添加刪除更新等功能模塊可以選用,動(dòng)作組的下載或是去除功能也十分全面。該軟件對(duì)偏差的處理支持下載和復(fù)位偏差還有實(shí)時(shí)讀取偏差。而舵機(jī)控制器是整個(gè)軟件的核心部分,必須先熟練舵機(jī)控制器的操作方法才能安裝我們的機(jī)器人,當(dāng)設(shè)計(jì)仿蜥蜴機(jī)器人之前,首先是需要對(duì)所有舵機(jī)進(jìn)行初始化的操作,這時(shí)候就需要使用LobotServoControl上位機(jī)軟件更加方便我們對(duì)舵機(jī)進(jìn)行復(fù)位和初始化的操作,這樣才可以更加方便安裝機(jī)器人。LobotServoControl軟件界面如下圖4-4所示。圖4-4LobotServoControl軟件界面4.3SolidworksSoildworks是一款基于Windows運(yùn)行環(huán)境中的機(jī)械設(shè)計(jì)應(yīng)用軟件,適用于多數(shù)機(jī)械設(shè)計(jì)師和機(jī)械愛(ài)好者建模使用,以設(shè)計(jì)功能模塊為主的CAD/CAM/CAE的建模軟件,具有十分人性化的操作界面,其用戶操作界面如圖(4-5)所示。該軟件功能也十分強(qiáng)大,搭配許多功能型插件和設(shè)計(jì)組件,自打問(wèn)世以來(lái)一直都是世界領(lǐng)先的一流三維CAD繪圖軟件。插件內(nèi)部包括有以下功能例如:繪制草圖,設(shè)計(jì)工程圖,建立裝配體,設(shè)計(jì)各個(gè)零件模塊,鈑金設(shè)計(jì),運(yùn)動(dòng)仿真和外形渲染等眾多功能模塊。圖4-5Solidworks2016界面 通過(guò)solidworks這個(gè)三維建模軟件對(duì)機(jī)器人的外形進(jìn)行建模,在草圖中繪制出所建零件的各尺寸再進(jìn)行拉伸切除等操作,建立三維模型,再通過(guò)打印的選項(xiàng)將所建模的零件轉(zhuǎn)換成STL文件,在網(wǎng)上購(gòu)買提供3D打印服務(wù)的店鋪,將文件發(fā)送給店家,便可得到零件的模型實(shí)體。4.4ALTIUMDESIGNER AltiumDesigner是一款功能齊全而且十分強(qiáng)大的專業(yè)設(shè)計(jì)PCB硬件電路的軟件,使用不算復(fù)雜,對(duì)于初學(xué)者來(lái)說(shuō)也比較容易上手,是一款隸屬于Altium公司的電路設(shè)計(jì)軟件,軟件誕生至今不過(guò)數(shù)載,在美國(guó)電子工程師之中廣泛流行后,傳入世界再傳入中國(guó)國(guó)內(nèi)。這款軟件是Protel軟件的后身,該軟件功能十分強(qiáng)大并且這是唯一的一款集齊所有應(yīng)用方案的電子電路設(shè)計(jì)軟件,具有市面上常見(jiàn)的電子產(chǎn)品需要的所有的設(shè)計(jì)和核心技術(shù)功能,像是PCB模型原理圖,PCB設(shè)計(jì),還有電路設(shè)計(jì)以及仿真等功能模塊,打開(kāi)AltiumDesigner的設(shè)計(jì)文件類型如下表4-2所示。

表4-2AltiumDesigner文件類型文件拓展名類型說(shuō)明.PrjPCBPCB項(xiàng)目/工程文件.SchDoc原理圖文件.Schlib/.SCHLIB原理圖庫(kù)文件.PcbDoc印制電路板文件PcbLib/.PCBLIBPCB封裝庫(kù)文件.intLib集合庫(kù)軟件打開(kāi)界面如下圖4-6所示。圖4-6軟件打開(kāi)界面

軟件使用PCB界面如下圖4-7所示。圖4-7AltiumdesignerPCB界面

5.控制系統(tǒng)軟件設(shè)計(jì)5.1軟件系統(tǒng)設(shè)計(jì)基本流程框圖因研究的目標(biāo)是仿蜥蜴四足機(jī)器人,運(yùn)作形式是爬行機(jī)器人,以此為基本運(yùn)動(dòng)機(jī)構(gòu)骨架。根據(jù)仿生蜥蜴機(jī)器人控制系統(tǒng)的控制要求,主控芯片模塊選用ArduinoUNOR3作為控制控制主機(jī),輔助以MG90S型號(hào)舵機(jī)作為機(jī)器人的控制自由度單元,再配以超聲波測(cè)距模塊作為機(jī)器人的“眼睛”模塊,能夠?qū)崿F(xiàn)避障功能,以此共同搭建仿蜥蜴機(jī)器人的控制系統(tǒng)部分。再通過(guò)調(diào)試,直至蜥蜴機(jī)器人能保持平衡并且能穩(wěn)定得完成周期的前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn)。 先將蜥蜴機(jī)器人通電后,進(jìn)行初始化操作。將全身各個(gè)舵機(jī)和超聲波模塊初始化操作,將Arduino主機(jī),Lobotservocontrol從機(jī),MG90S舵機(jī)和HC-SR04超聲波測(cè)距模塊復(fù)位,再通過(guò)電腦ArduinoIDE寫(xiě)入編好的三角步態(tài)程序,之后上傳運(yùn)行蜥蜴機(jī)器人行走過(guò)程中輸出和接收都通過(guò)HC-SR04超聲波測(cè)距模塊獲取和發(fā)送信息,再通過(guò)Arduino主機(jī)進(jìn)行信息分析處理,協(xié)調(diào)和調(diào)整從機(jī)完成步態(tài)的控制。 HC-SR04超聲波測(cè)距模塊行走避障軟件設(shè)計(jì):當(dāng)機(jī)器人超聲波測(cè)距模塊往前方發(fā)送聲波,反射后接收處理得出前方物體距離機(jī)器人大于35cm時(shí),則繼續(xù)保持前進(jìn)姿態(tài)。當(dāng)機(jī)器人超聲波測(cè)距模塊往前方發(fā)送聲波,反射后接收處理得出前方物體距離機(jī)器人小于或等于35cm時(shí),則選擇執(zhí)行轉(zhuǎn)向指令,執(zhí)行指令后再發(fā)射和接受聲波檢測(cè)前方,若前方障礙物大于30cm時(shí)則保持前進(jìn)姿態(tài),若前方障礙物小于等于30cm時(shí)則繼續(xù)轉(zhuǎn)向。以此類推。

軟件運(yùn)行流程圖如下圖5-1所示:圖5-1軟件流程程序框圖5.2運(yùn)動(dòng)組軟件設(shè)計(jì)5.2.1運(yùn)動(dòng)組方案設(shè)計(jì)本次設(shè)計(jì)實(shí)驗(yàn)對(duì)象是仿生蜥蜴,根據(jù)前面第二章的自由度設(shè)計(jì)可以計(jì)算得出,運(yùn)動(dòng)組模型具有12自由度,運(yùn)動(dòng)姿態(tài)也屬于“爬行”姿態(tài)。蜥蜴機(jī)器人的兩側(cè)分別具有兩條足,重心的保持與占空比β有關(guān),此蜥蜴機(jī)器人的每一個(gè)動(dòng)作都需要抬起一只腳,和運(yùn)動(dòng)時(shí)需要有至少3只腳立于地面保持平衡,使重心落于那3只腳所構(gòu)成的三角形穩(wěn)定區(qū)間內(nèi),從而可以保持機(jī)器人的穩(wěn)定和平衡姿態(tài)。對(duì)此仿生蜥蜴機(jī)器人的運(yùn)動(dòng)組設(shè)計(jì)需要同時(shí)用到ArduinoIDE和Lobotservocontrol兩個(gè)軟件。5.2.2舵機(jī)偏差調(diào)整 (1)先通過(guò)LobotServoContro軟件對(duì)各個(gè)舵機(jī)進(jìn)行編號(hào),共使用12個(gè)舵機(jī),將舵機(jī)編號(hào)為1~12。四足機(jī)器人的每條節(jié)肢分配了三個(gè)舵機(jī),按照順序把每個(gè)舵機(jī)編號(hào)。再通過(guò)Lobotservocontrol上位機(jī)軟件的舵機(jī)進(jìn)行排列,將機(jī)器人舵機(jī)和上位機(jī)的舵機(jī)排布順序一致,分為4只腿,前肢左分配:(1號(hào)舵機(jī),2號(hào)舵機(jī),3號(hào)舵機(jī)),后肢左分配:(4號(hào)舵機(jī),5號(hào)舵機(jī),6號(hào)舵機(jī)),前肢右分配:(7號(hào)舵機(jī),8號(hào)舵機(jī),9號(hào)舵機(jī)),后肢右分配:(10號(hào)舵機(jī),11號(hào)舵機(jī),12號(hào)舵機(jī))。如下圖5-2和圖5-3所示。圖5-2編號(hào)12個(gè)舵機(jī)圖5-3編制舵機(jī)編號(hào)圖當(dāng)組裝好12個(gè)舵機(jī)和仿蜥蜴機(jī)器人模型零件之后,每個(gè)舵機(jī)都會(huì)存在中值偏差(中值為1500,偏差調(diào)整幅度為-100~+100),需要對(duì)舵機(jī)進(jìn)行偏差調(diào)整,使得仿蜥蜴機(jī)器人啟動(dòng)時(shí)能保持平衡姿態(tài)。5.3動(dòng)作組各參數(shù)5.3.1前進(jìn) 前進(jìn)邁前左腿的動(dòng)作命名為動(dòng)作組(1),前進(jìn)時(shí)需要保持一條腿抬起30度左右,另外三條腿保持重心的穩(wěn)定,所以需要前肢左起腳,1號(hào)舵機(jī)和2號(hào),3號(hào)舵機(jī)旋轉(zhuǎn)角度分別從中值角度1500度旋轉(zhuǎn)到1686度,1523度,1515度。其他各部分舵機(jī)保持平衡姿態(tài),動(dòng)作組(1)號(hào)的具體參數(shù)如下: #1P1709#2P1198#3P1779#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505然后動(dòng)作組(1)運(yùn)行結(jié)束。下一步使得機(jī)器人前傾,需要5號(hào)舵機(jī)和11號(hào)舵機(jī)同時(shí)轉(zhuǎn)動(dòng),使得機(jī)器人重心運(yùn)動(dòng),同時(shí)前肢左收回中值,經(jīng)過(guò)調(diào)試,運(yùn)動(dòng)組(2)號(hào)具體參數(shù)如下:#1P1500#2P1500#3P1505#41500#5P1198#6P1500#7P1500#8P1500#9P1500#10P1495#11P1244#12P1505這時(shí)機(jī)器人已經(jīng)往前邁出一只腳,需要保持靜態(tài)平衡狀態(tài),舵機(jī)需要回到原始初值,動(dòng)作組(3)參數(shù)如下:#1P1500#2P1500#3P1505#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505同理邁出右足的參數(shù)運(yùn)算如上所述。 右腳交替運(yùn)動(dòng)的動(dòng)作組參數(shù)如下: 動(dòng)作組(4):#1P1500#2P1500#3P1500#41500#5P1495#6P1500#7P1709#8P1198#9P1779#10P1495#11P1500#12P1505運(yùn)動(dòng)組(5):#1P1500#2P1500#3P1505#41500#5P1198#6P1500#7P1500#8P1500#9P1500#10P1495#11P1244#12P1505運(yùn)動(dòng)組(6):#1P1500#2P1500#3P1505#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P15055.3.2后退 后退的具體動(dòng)作姿態(tài)與前進(jìn)運(yùn)動(dòng)姿態(tài)恰是相反,不過(guò)因?yàn)橹亓坎煌詫?dǎo)致重心會(huì)不同。動(dòng)作組參數(shù)如下所示:動(dòng)作組(7):#1P1500#2P1500#3P1505#41128#5P1988#6P1198#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505動(dòng)作組(8):#1P1500#2P1221#3P1505#41500#5P1500#6P1500#7P1500#8P1174#9P1500#10P1495#11P1500#12P1505動(dòng)作組(9):#1P1500#2P1500#3P1505#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505動(dòng)作組(26):#1P1500#2P1500#3P1505#41128#5P1988#6P1198#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505動(dòng)作組(27):#1P1500#2P1221#3P1505#41500#5P1500#6P1500#7P1500#8P1174#9P1500#10P1495#11P1500#12P1505動(dòng)作組(28):#1P1500#2P1500#3P1505#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1029#11P2012#12P1150

5.3.3轉(zhuǎn)向 轉(zhuǎn)向姿態(tài)分為左轉(zhuǎn)和右轉(zhuǎn)。 1.左轉(zhuǎn)動(dòng)作組參數(shù): 動(dòng)作組(10):#1P1150#2P1919#3P1105#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505 動(dòng)作組(11):#1P1500#2P1498#3P1105#41500#5P1495#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505 動(dòng)作組(12):#1P1500#2P1498#3P1105#41779#5P1988#6P919#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505 動(dòng)作組(13):#1P1500#2P1498#3P1105#41500#5P1988#6P1500#7P1500#8P1500#9P1500#10P1495#11P1500#12P1505 動(dòng)作組(14):#1P1500#2P1498#3P1105#41500#5P1988#6P1500#7P1012#8P1988#9P1221#10P1495#11P1500#12P1505 動(dòng)作組(15):#1P1500#2P1498#3P1105#41500#5P1988#6P1500#7P1500#8P1500#9P1221#10P1495#11P1500#12P1505 動(dòng)作組(16):#1P1500#2P1498#3P1105#41500#5P1988#6P1500#7P1500#8P1500#9P1221#10P1988#11P2012#12P1151 動(dòng)作組(17):#1P1500#2P1498#3P1105#41500#5P1988#6P1500#7P1500#8P1500#9P1221#10P1988#11P1500#12P1505 2右轉(zhuǎn)動(dòng)作組參數(shù):動(dòng)作組(18):#1P1500#2P1498#3P1500#41500#5P1500#6P1500#7P1150#8P1942#9P1965#10P1500#11P1500#12P1505動(dòng)作組(19):#1P1500#2P1498#3P1500#41500#5P1500#6P1500#7P1500#8P1500#9P1965#10P1500#11P1500#12P1505動(dòng)作組(20):#1P1500#2P1498#3P1500#41500#5P1500#6P1500#7P1500#8P1500#9P1965#10P1919#11P2012#12P1105動(dòng)作組(21):#1P1500#2P1498#3P1500#41500#5P1500#6P1500#7P1500#8P1500#9P1965#10P1919#11P1500#12P1505動(dòng)作組(22):#1P1058#2P1988#3P1872#41500#5P1500#6P1500#7P1500#8P1500#9P1965#10P1919#11P1500#12P1505動(dòng)作組(23):#1P1500#2P1498#3P1872#41500#5P1500#6P1500#7P1500#8P1500#9P1965#10P1919#11P1500#12P1505動(dòng)作組(24):#1P1500#2P1498#3P1872#42035#5P1895#6P942#7P1500#8P1500#9P1965#10P1919#11P1500#12P1505動(dòng)作組(25):#1P1500#2P1498#3P1872#42035#5P1496#6P1500#7P1500#8P1500#9P1965#10P1919#11P1500#12P1505

5.4程序代碼5.4.1程序結(jié)構(gòu)流程圖 首先對(duì)于整個(gè)程序進(jìn)行流程圖分析,流程框圖如下圖6-1所示。圖6-1主程序流程框圖(1)程序調(diào)用與設(shè)置流程圖#include<Servo.h> //調(diào)用servo庫(kù)文件#include<LobotServoController.h> //調(diào)用LobotServoController庫(kù)文件constintTrigPin=2;constintEchoPin=3; //定義SR04引腳,輸入口對(duì)應(yīng)Arduino2號(hào)引腳輸出口對(duì)應(yīng)3號(hào)引腳floatcm; //將“距離”參數(shù)轉(zhuǎn)化為單精度浮點(diǎn)數(shù)存儲(chǔ)voidsetup(){Serial.begin(9600);pinMode(TrigPin,OUTPUT);pinMode(EchoPin,INPUT);}voidloop(){//發(fā)一個(gè)10ms的高脈沖去觸發(fā)TrigPindigitalWrite(TrigPin,LOW);delayMicroseconds(2);digitalWrite(TrigPin,HIGH);delayMicroseconds(10);digitalWrite(TrigPin,LOW);cm=pulseIn(EchoPin,HIGH)/58.0; //單位轉(zhuǎn)化厘米cm=(int(cm*100.0))/100.0; //保留兩位小數(shù)Serial.print(cm);Serial.print("cm");Serial.println();delay(1000);}voidloop(){while(1){}}

(2)動(dòng)作組流程圖: 其次對(duì)動(dòng)作住進(jìn)行分析,運(yùn)動(dòng)過(guò)程的流程框圖分析如下圖6-2所示。圖6-2運(yùn)動(dòng)組流程框圖5.4.2程序代碼while(1){cm=dist(cm);if(cm>=30){gear.runActionGroup(1,1);delay(20);gear.runActionGroup(2,1);delay(20);gear.runActionGroup(3,1);delay(20);gear.runActionGroup(4,1);delay(20);gear.runActionGroup(5,1);delay(20);gear.runActionGroup(6,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println(“goahead”);}//保持前進(jìn)指令elseif(cm<=30){gear.stopActionGroup(0,1);delay(200);//停止gear.stopActionGroup(11,1);delay(20);gear.stopActionGroup(12,1);delay(20);gear.stopActionGroup(13,1);delay(20);gear.stopActionGroup(14,1);delay(20);gear.stopActionGroup(15,1);delay(20);gear.stopActionGroup(16,1);delay(20);gear.stopActionGroup(17,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println("Turningleft");//左轉(zhuǎn)cm=dist(cm);//獲取前方距離delay(1000);if(cm>=30&cm<1000){gear.runActionGroup(1,1);delay(20);gear.runActionGroup(2,1);delay(20);gear.runActionGroup(3,1);delay(20);gear.runActionGroup(4,1);delay(20);gear.runActionGroup(5,1);delay(20);gear.runActionGroup(6,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println(“goahead”);//繼續(xù)前進(jìn)}elseif(cm<=30){gear.stopActionGroup(18,1);delay(20);gear.stopActionGroup(19,1);delay(20);gear.stopActionGroup(20,1);delay(20);gear.stopActionGroup(21,1);delay(20);gear.stopActionGroup(22,1);delay(20);gear.stopActionGroup(23,1);delay(20);gear.stopActionGroup(24,1);delay(20);gear.stopActionGroup(25,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println("Turningright");delay(500);//左轉(zhuǎn)后發(fā)現(xiàn)前方有障礙,此時(shí)右轉(zhuǎn)}if(cm>=30&cm<1000){gear.runActionGroup(1,1);delay(20);gear.runActionGroup(2,1);delay(20);gear.runActionGroup(3,1);delay(20);gear.runActionGroup(4,1);delay(20);gear.runActionGroup(5,1);delay(20);gear.runActionGroup(6,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println("goahead");}//繼續(xù)前進(jìn)elseif(cm<=30)//右轉(zhuǎn)后發(fā)現(xiàn)前方有障礙{inti,a=2;i=1;while(i<a){gear.stopActionGroup(11,1);delay(20);gear.stopActionGroup(12,1);delay(20);gear.stopActionGroup(13,1);delay(20);gear.stopActionGroup(14,1);delay(20);gear.stopActionGroup(15,1);delay(20);gear.stopActionGroup(16,1);delay(20);gear.stopActionGroup(17,1);delay(20);i++;Serial.print(cm);Serial.print("cm");Serial.println("Turningleftonce");}//執(zhí)行一次左轉(zhuǎn)指令gear.runActionGroup(7,1);delay(20);gear.runActionGroup(8,1);delay(20);gear.runActionGroup(9,1);delay(20);gear.runActionGroup(26,1);delay(20);gear.runActionGroup(27,1);delay(20);gear.runActionGroup(28,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println("Turningback");//執(zhí)行后退指令delay(800);/}}}

6.調(diào)試過(guò)程6.116路PWM舵機(jī)驅(qū)動(dòng)板從機(jī)內(nèi)部資源 首先需要在網(wǎng)上找到關(guān)于LobotServoControl這軟件的庫(kù)函數(shù)才能使用ArduinoIDE進(jìn)行通信,所以第一步是下載到<LobotServoController.zip>這個(gè)庫(kù)文件如圖6-1,將其導(dǎo)入ArduinoIDE函數(shù)庫(kù)中,才能使用舵機(jī)控制板與Arduino通信。圖6-1Lobotservocontroller.zip 導(dǎo)入之后,需要從ArduinoIDE中調(diào)用此庫(kù)函數(shù),輸入”#include<LobotServoController.h>”,(或者可以直接從“項(xiàng)目”——“加載庫(kù)”中直接打開(kāi)調(diào)用)。如圖6-2所示。圖6-2加載庫(kù)中添加界面 添加完之后就可以使用LobotServoController的庫(kù)文件了,再對(duì)LobotServoController進(jìn)行定義,將LobotServoController定義為gear,輸入“LobotServoControllergear;”,此時(shí)ArduinoIDE便能夠調(diào)用LobotServoControl中的動(dòng)作組了,調(diào)用通信程序?yàn)椋簃yse.runActionGroup(x,y)(其中x為動(dòng)作組編號(hào),y為次數(shù))。 舵機(jī)控制板與主機(jī)Arduino直接是進(jìn)行串口通信,波特率為9600。6.2Arduino主機(jī)內(nèi)部資源第一步對(duì)Arduino與超聲波測(cè)距裝置進(jìn)行接線步驟,接線圖如下圖6-3所示。圖6-3示范接線圖各接線接口如下表6-1所示:表6-1接線接口對(duì)應(yīng)表HC-SR04ArduinoTRIG——>12ECHO——>11VCC——>5VGND——>GND此硬件模塊也需要下載庫(kù)文件與Arduino進(jìn)行串口通信,庫(kù)文件名稱為NewPing_v1.7.zip,在ArduinoIDE里如上述一樣進(jìn)行庫(kù)文件的添加,添加成功后便可使用ArduinoIDE對(duì)HC-SR04超聲波測(cè)距模塊進(jìn)行串口通信控制了。調(diào)用此庫(kù)文件輸入“#include<NewPing.h>”,再進(jìn)行定義通信端口,(1)輸入#defineTRIGGER_12(//此意味這定義通信端口為12);(2)再輸入%defineECHO_PIN11(//此意味這通信端口為11);(3)再輸入#defineMAX_DISTANCE30(//此意味著測(cè)距的最大距離為30cm,此數(shù)據(jù)可調(diào)整)。對(duì)數(shù)據(jù)進(jìn)行不斷調(diào)試和調(diào)整,尋找一個(gè)最佳值便可。6.3整體運(yùn)行調(diào)試 對(duì)微處理器和舵機(jī)驅(qū)動(dòng)板都進(jìn)行初始化內(nèi)部資源調(diào)試之后,再連接起來(lái)進(jìn)行整體運(yùn)行調(diào)試,通過(guò)3D打印的各機(jī)械結(jié)構(gòu)進(jìn)行組裝,先在LobotServoControl中編寫(xiě)好動(dòng)作組,例如抬起左腳,抬右腳,前進(jìn),后退等動(dòng)作指令,通過(guò)ArduinoIDE程序編碼導(dǎo)入Arduino微處理器中,再拔出電腦,連接6V電源,仿蜥蜴四足機(jī)器人便會(huì)按照ArduinoIDE中編寫(xiě)好的指令自動(dòng)運(yùn)動(dòng)。這是設(shè)計(jì)所需要達(dá)到的目標(biāo)。但在實(shí)際操作中,仿蜥蜴四足機(jī)器人的主板和舵機(jī)3D打印零件尺寸有出入,拼裝起來(lái)遇到一些困難,但最終還是克服了此困難。接著在動(dòng)作組方面的調(diào)試中,很難找到整體協(xié)調(diào)的步態(tài),運(yùn)動(dòng)仿真的實(shí)際情況與理論情況幾乎不同,蜥蜴機(jī)器人較難保持平衡姿態(tài)運(yùn)動(dòng),步態(tài)調(diào)整特別困難,但經(jīng)過(guò)對(duì)實(shí)物的不斷調(diào)試和修改,使得蜥蜴機(jī)器人能夠正常完成動(dòng)作指令。

總結(jié)本次我的畢業(yè)設(shè)計(jì)制作的是《仿蜥蜴機(jī)器人設(shè)計(jì)與制作——控制系統(tǒng)部分》,通過(guò)對(duì)仿生蜥蜴機(jī)器人的研究,不斷溫習(xí)之前學(xué)過(guò)的一些知識(shí),像是Arduino,Solidworks,AD等各種軟件,也通過(guò)本次畢業(yè)設(shè)計(jì)接觸到一些以前較少接觸的硬件模塊,例如HC-SR04超聲波測(cè)距模塊,MG90S舵機(jī)等,發(fā)現(xiàn)Arduino對(duì)于開(kāi)發(fā)者和愛(ài)好者而言功能十分齊全和強(qiáng)大,可以使用其制作各種感興趣的機(jī)械部件。像是機(jī)器人以前彷佛總是出現(xiàn)在科幻電影中,或是高新技術(shù)的代名詞之一,但通過(guò)本次畢業(yè)設(shè)計(jì)去了解到機(jī)器人的運(yùn)動(dòng)機(jī)構(gòu),控制原理,步態(tài)分析之后,發(fā)現(xiàn)機(jī)器人制作只要沉下心去了解就可以去突破,雖然這次制作的仿生蜥蜴機(jī)器人對(duì)于機(jī)器人研究領(lǐng)域來(lái)說(shuō)只是一個(gè)滄海一粟,但對(duì)我而言,確實(shí)階段性的一次成長(zhǎng),研究中遇到的各種困難和無(wú)助,都是自己慢慢熬過(guò)去的,也發(fā)現(xiàn)自己大學(xué)四年的理論基礎(chǔ)層次比較薄弱,認(rèn)識(shí)到自己理論和實(shí)踐方面的一些不足之處。在本次畢業(yè)設(shè)計(jì)中,因?yàn)橐咔榈挠绊?,?dǎo)致我和我的組員無(wú)法面對(duì)面溝通交流,只能在線上溝通,但實(shí)際的操作方面無(wú)法互相完全理解對(duì)方,溝通上會(huì)有點(diǎn)障礙,也是自己慢慢克服這些阻礙,一步一步完成的畢業(yè)設(shè)計(jì)。對(duì)軟件模塊方面也不夠了解,比如許多軟件都是第一次使用,例如通過(guò)Lobotservocontrol控制舵機(jī)驅(qū)動(dòng)板,是自己慢慢去學(xué)習(xí)使用這個(gè)軟件操作,和其他的一些不懂的方面也是不斷翻閱文獻(xiàn)資料進(jìn)行學(xué)習(xí)了解的。當(dāng)然對(duì)于很多控制方面和程序方面不懂的問(wèn)題,也有請(qǐng)教老師和同學(xué),對(duì)我?guī)椭畲蟮膽?yīng)該是上屆的一位師兄,細(xì)心的指導(dǎo)我編程方面的細(xì)節(jié),或者說(shuō)沒(méi)有他的幫助我無(wú)法這么順利的完成畢業(yè)設(shè)計(jì)。時(shí)光荏苒如白駒過(guò)隙,一轉(zhuǎn)瞬就到了畢業(yè)季了,回想大學(xué)那青春洋溢的歲月,或許我們?cè)趯W(xué)校里收獲最大的不是書(shū)本上的理論知識(shí),不是那費(fèi)盡心血熬出來(lái)的論文課設(shè),而是不斷克服困難的勇氣,從不會(huì)被困難嚇倒便是我們最大的收獲,只要下功夫,再難的艱難險(xiǎn)阻都可以突破。這次畢業(yè)設(shè)計(jì)也讓我突破了自己,受益良多!

參考文獻(xiàn)[1]楊東超,趙明國(guó),陳懇,等.機(jī)器人一般自由度計(jì)算公式的統(tǒng)一認(rèn)識(shí)[J].機(jī)械設(shè)計(jì),2002(8):24-27.[2]謝能剛,岑豫皖,王璐,等.仿生蜥蜴行為的三目標(biāo)協(xié)同進(jìn)化算法及機(jī)構(gòu)設(shè)計(jì)應(yīng)用[J].機(jī)械工程學(xué)報(bào),2009(5):62-69.[3]宜昌城老張,劉少冉(插畫(huà)).基于32路舵機(jī)控制板的樂(lè)高6足機(jī)器人制作手記[J].無(wú)線電,2013(6):25-28.[4]儲(chǔ)忠,阮堅(jiān)實(shí),虞剛明.六足仿生機(jī)器人步態(tài)研究和運(yùn)動(dòng)控制器設(shè)計(jì)[J].伺服控制,2009(4):67-70.[5]王冉,孔敏,張孝芳.基于Arduino的機(jī)器人系統(tǒng)控制方法分析及應(yīng)用[J].機(jī)械設(shè)計(jì)與制造工程,2017(10):46-48.[6]王國(guó)彪,陳殿生,陳科位,等.仿生機(jī)器人研究現(xiàn)狀與發(fā)展趨勢(shì)[J].機(jī)械工程學(xué)報(bào),2015(13):27-44.[7]劉東來(lái).基于Arduino技術(shù)平臺(tái)的仿生機(jī)器人控制系統(tǒng)設(shè)計(jì)與研究[J].南方農(nóng)機(jī),2019(21):14-14.[8]李明喆.基于Arduino的智能避障機(jī)器人[J].電子技術(shù)與軟件工程,2019(11):79-79.[9]陳學(xué)東,郭鴻勛,渡邊桂吾.四足機(jī)器人爬行步態(tài)的正運(yùn)動(dòng)學(xué)分析[J].機(jī)械工程學(xué)報(bào),2003(2):8-12.[10]謝杰騰,顏曉文.基于Android手機(jī)語(yǔ)音和Arduino控制板的機(jī)器人控制系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2015(3):101-102.[11]陳又嘉.仿生智能“蜥蜴”機(jī)器人[J].科技創(chuàng)新與品牌,2013(6):78-78.[12]LiangWenWang,WeiWeiZhang,TuanHuiWang,CaiDongWang,FanNianMeng.DesignandSimulationofaSingleLegofaJumpableBionicRobotwithJointEnergyStorageFunction[J].ProcediaComputerScience,2020,166.[13]TianlinSong.TheControllingResearchofthe3DBionicSnake-likeRobotbasedontheArduino[C].HongKongEducationSociety.Proceedingsof2013InternationalConferenceonMechanicalEngineeringandMaterials(ICMEM2013).HongKongEducationSociety:智能信息技術(shù)應(yīng)用學(xué)會(huì),2013:582-585.[14]小黑.科學(xué)家設(shè)計(jì)6腿蜥蜴機(jī)器人有望用于勘測(cè)火星[N].上??萍紙?bào),2013-03-27(A03).[15]顧佳朋.仿蜥蜴水上行走機(jī)器人特性研究與仿真[D].河北工業(yè)大學(xué),2014.

謝辭走的最快的總是時(shí)間,讓人抓不住又來(lái)不及感嘆,大學(xué)生活已接近告別的尾聲,如同一曲華麗絕倫的音樂(lè)會(huì)漸漸曲終人散,四年的努力與付出,隨著本次畢業(yè)論文的完成,被畫(huà)下完美的句號(hào)。本次論文設(shè)計(jì)是在吳明友老師的悉心指導(dǎo)和嚴(yán)格要求下完成的,從選題到具體的寫(xiě)作部分,從格式到內(nèi)容,從初稿到定稿無(wú)不凝聚著吳明友老師的心血與汗水,在我畢業(yè)設(shè)計(jì)的期間,吳明友老師給了我許多專業(yè)知識(shí)上的指導(dǎo)和一些富含創(chuàng)造性的推薦,我受益匪淺,嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)和求實(shí)的態(tài)度讓我深受感動(dòng),在這次疫情期間,吳明友老師特別擔(dān)心我們無(wú)法順利完成本次畢業(yè)設(shè)計(jì),心系各位同學(xué),特地開(kāi)了很多次會(huì)議,強(qiáng)調(diào)目前的進(jìn)度,為同學(xué)們解疑答惑,我相信每一個(gè)同學(xué)都會(huì)感謝吳明友老師這段時(shí)間給與我們的幫助。再次想?yún)敲饔牙蠋煴磉_(dá)我深深的感謝和最崇高的尊重。在完成畢業(yè)論文的這段期間,也因?yàn)楸l(fā)的疫情使得我不能夠順利地回到學(xué)校與各位同學(xué)和我的組員交流討論,然而這并不影響我的同學(xué)和組員所給予我的幫助,我的身邊始終圍繞著我的家人,我的朋友,我的同學(xué),也是多虧他們無(wú)私的關(guān)心我才能這么順利的完成本次畢業(yè)論文,再次也向他們表達(dá)我深刻的敬意!路漫漫其修遠(yuǎn)兮,吾將上下而求索。我愿在未來(lái)的學(xué)習(xí)與工作道路上,用更加豐厚的成果來(lái)報(bào)答以前關(guān)心,幫助,支持不放棄我的老師和同學(xué)們!感謝在百忙之中抽出時(shí)間對(duì)本文進(jìn)行審閱,評(píng)議和參與本人答辯的各位老師!祝老師們桃李滿天下!

附錄附錄一.程序完整代碼#include<Servo.h> //調(diào)用servo庫(kù)文件#include<LobotServoController.h> //調(diào)用LobotServoController庫(kù)文件constintTrigPin=2;constintEchoPin=3; //定義SR04引腳,輸入口對(duì)應(yīng)Arduino2號(hào)引腳輸出口對(duì)應(yīng)3號(hào)引腳floatcm; //將“距離”參數(shù)轉(zhuǎn)化為單精度浮點(diǎn)數(shù)存儲(chǔ)voidsetup(){Serial.begin(9600);pinMode(TrigPin,OUTPUT);pinMode(EchoPin,INPUT);}voidloop(){//發(fā)一個(gè)10ms的高脈沖去觸發(fā)TrigPindigitalWrite(TrigPin,LOW);delayMicroseconds(2);digitalWrite(TrigPin,HIGH);delayMicroseconds(10);digitalWrite(TrigPin,LOW);cm=pulseIn(EchoPin,HIGH)/58.0; //單位轉(zhuǎn)化厘米cm=(int(cm*100.0))/100.0; //保留兩位小數(shù)Serial.print(cm);Serial.print("cm");Serial.println();delay(1000);}voidloop(){while(1){cm=dist(cm);if(cm>=30){gear.runActionGroup(1,1);delay(20);gear.runActionGroup(2,1);delay(20);gear.runActionGroup(3,1);delay(20);gear.runActionGroup(4,1);delay(20);gear.runActionGroup(5,1);delay(20);gear.runActionGroup(6,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println(“goahead”);}//保持前進(jìn)指令elseif(cm<=30){gear.stopActionGroup(0,1);delay(200);//停止gear.stopActionGroup(11,1);delay(20);gear.stopActionGroup(12,1);delay(20);gear.stopActionGroup(13,1);delay(20);gear.stopActionGroup(14,1);delay(20);gear.stopActionGroup(15,1);delay(20);gear.stopActionGroup(16,1);delay(20);gear.stopActionGroup(17,1);delay(20);Serial.print(cm);Serial.print("cm");Serial.println("Turningleft");//左轉(zhuǎn)cm=dist(cm);//獲取前方距離delay(1000);if(cm>=30&cm<1000){gear.runActionGroup(1,1);delay(20);gear.runActionGroup(2,1);

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論