基于stm32的仿生六足機(jī)器人-控制系統(tǒng)設(shè)計(jì)_第1頁
基于stm32的仿生六足機(jī)器人-控制系統(tǒng)設(shè)計(jì)_第2頁
基于stm32的仿生六足機(jī)器人-控制系統(tǒng)設(shè)計(jì)_第3頁
基于stm32的仿生六足機(jī)器人-控制系統(tǒng)設(shè)計(jì)_第4頁
基于stm32的仿生六足機(jī)器人-控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

北京理工大學(xué)珠海學(xué)院2016屆本科生畢業(yè)設(shè)計(jì)基于STM32的六足仿生機(jī)器人-控制系統(tǒng)設(shè)計(jì)學(xué)院:專業(yè):姓名:指導(dǎo)老師:工業(yè)自動化學(xué)院機(jī)械電子工程謝浩林學(xué)號:職稱:160404102482李琳講師中國·珠海二○二一年五月誠信承諾書本人鄭重承諾:本人承諾呈交的畢業(yè)設(shè)計(jì)《基于STM32的六足仿生機(jī)器人-控制系統(tǒng)設(shè)計(jì)》是在指導(dǎo)教師的指導(dǎo)下,獨(dú)立開展研究取得的成果,文中引用他人的觀點(diǎn)和材料,均在文后按順序列出其參考文獻(xiàn),設(shè)計(jì)使用的數(shù)據(jù)真實(shí)可靠。本人簽名:謝浩林日期:2020年4月24日基于STM32的六足仿生機(jī)器人-控制系統(tǒng)設(shè)計(jì)摘要隨著機(jī)器人的發(fā)展日新月異,各個(gè)行業(yè)和領(lǐng)域?qū)C(jī)器人的要求和需求也日益增長。近十幾年來,由于六足仿生機(jī)器人在勘測領(lǐng)域的作用顯著,其發(fā)展尤為迅速。這種新型的足式機(jī)器人,借鑒了自然界中諸如蜘蛛,螳螂等昆蟲的行進(jìn)步態(tài)和肢體結(jié)構(gòu),使其在崎嶇、松軟等復(fù)雜地形上行進(jìn)時(shí),比起履帶式或者輪式的機(jī)器人更加地穩(wěn)定靈活,能更好對應(yīng)勘測,探索等方面的工作。本文主要研究六足仿生機(jī)器人的控制系統(tǒng)的實(shí)現(xiàn)。通過采用STM32F103VCT6作為控制器,用藍(lán)牙通訊控制與腿部結(jié)構(gòu)相連接的舵機(jī)從而實(shí)現(xiàn)手控機(jī)器人的行進(jìn),并簡單實(shí)現(xiàn)自動行進(jìn),超聲波避障和拍照功能。關(guān)鍵詞:六足仿生機(jī)器人;STM32F103VCT6;控制系統(tǒng);舵機(jī)sg90;DesignofHexapodrobotcontrolsystembasedonSTM32AbstractWiththerapiddevelopmentofrobots,therequirementsanddemandsofrobotsinvariousindustriesandfieldsareincreasingdaybyday.Inrecentdecades,thehexapodrobothasdevelopedparticularlyrapidlyduetoitssignificantroleinthefieldofsurveying.Thenewfoot-likerobotborrowsfromthegaitandlimbstructureofnaturalinsectssuchasspidersandmantids,allowingittonavigaterough,softandcomplexterrain,comparedwiththetrackedorwheeledrobot,itismorestableandflexible,andcanbettercorrespondtotheexplorationandexplorationwork.Thispapermainlystudiestherealizationofthecontrolsystemoftherobot.ByusingSTM32F103VCT6asthecontroller,thesteeringgearconnectedwiththelegstructureiscontrolledbyBluetooth,andthefunctionsofautomaticmoving,ultrasonicobstacleavoidanceandphoto-takingarerealized.Keywords:Hexapodrobot;STM32F103VCT6;Controlsystem;SteeringGearSG90;目錄TOC\o"1-3"\h\u287681緒論 緒論1.1仿生六足機(jī)器人的研究背景及意義當(dāng)今世界,機(jī)器人的概念已經(jīng)不是簡單的,由數(shù)個(gè)機(jī)械結(jié)構(gòu)組合成的一個(gè)機(jī)械體。它包含了眾多領(lǐng)域的科技結(jié)晶,不論是硬件上的技術(shù)如機(jī)械制造,電子設(shè)計(jì),還是軟件上的技術(shù)如智能控制,數(shù)據(jù)傳輸,都與機(jī)器人的發(fā)展進(jìn)步緊密聯(lián)系在一起。也因此,機(jī)器人的研究水平也在一定程度上體現(xiàn)了國家的科技水準(zhǔn)。隨著時(shí)代的發(fā)展,過去的輪式、履帶式機(jī)器人已經(jīng)無法滿足人們的要求,這類機(jī)器人在環(huán)境條件不利的情況下,如路面崎嶇不平,過于松軟和潮濕,都會讓機(jī)器人的穩(wěn)定性和靈活度大打折扣。而在自然界中,陸地上大多數(shù)生物的行進(jìn)都是以足類運(yùn)動為主,因此,人們借鑒了這一點(diǎn),開始了仿生足類機(jī)器人的研究和制造。仿生足類機(jī)器人又常見為二足,四足,六足。而其中,六足機(jī)器人的自由度和靈活度都遠(yuǎn)優(yōu)于二足和四足,更不用說輪式和履帶式的機(jī)器人了。六足機(jī)器人可以通過特殊步態(tài)來實(shí)現(xiàn)原地的旋轉(zhuǎn),以及重心的穩(wěn)定。在不平整的路面上,也可以依靠腿部上舵機(jī)角度的協(xié)調(diào)改變來保持平衡。在跨越障礙,上下坡等情況下都擁有良好的表現(xiàn)。同時(shí)能勝任多個(gè)領(lǐng)域的工作,應(yīng)用前景廣闊如軍事偵察、資源開采、海底探索、消防營救等,應(yīng)用前景廣闊。但由于六足機(jī)器人的腿部結(jié)構(gòu)較多,相對離散,在高靈活度、高機(jī)動性的同時(shí),也導(dǎo)致了結(jié)構(gòu)的復(fù)雜和控制的繁瑣。但不管怎么說,六足機(jī)器人的優(yōu)點(diǎn)十分顯著,在未知的復(fù)雜地形上,具有極其優(yōu)越的適應(yīng)性,因此也成為了現(xiàn)今機(jī)器人研究的一大熱門領(lǐng)域。1.2仿生六足機(jī)器人在國內(nèi)外的研究現(xiàn)狀及存在的問題在足類行進(jìn)機(jī)器人發(fā)展的早期,科學(xué)家們更多的是研究與人類貼近的二足機(jī)器人,以及外形類似哺乳類陸生生物,如常見的貓狗一般的四足機(jī)器人,以運(yùn)動能力優(yōu)秀的動物為模板去研究和設(shè)計(jì)。但是結(jié)果并不太順利,因?yàn)楫?dāng)時(shí)的科技水平還無法模擬出肌肉的控制系統(tǒng),而二足和四足的生物,運(yùn)動時(shí)都需要比較大的力量作為基礎(chǔ),以當(dāng)時(shí)的馬達(dá)和機(jī)構(gòu)設(shè)計(jì),想驅(qū)動就很困難了,更別提還要對這股力量進(jìn)行控制。后來科學(xué)家們才將目光投向了六足機(jī)器人,當(dāng)他們發(fā)現(xiàn),雖然采用六足結(jié)構(gòu)的機(jī)器人,行進(jìn)速度并不快,但是通過三角步態(tài),重心能很好地落在三只支撐足組成的三角形中,并且靈活度比起普通的四足機(jī)器人也十分優(yōu)越。而現(xiàn)今,仿生昆蟲的六足機(jī)器人得到了更多的關(guān)注和研究,其靈活度和穩(wěn)定性也得到了更好的體現(xiàn)。近年來國內(nèi)對于六足機(jī)器人的研究依舊火熱,而最出名的還要數(shù)

Vincross人工智能科技公司研發(fā)的HEXA機(jī)器人。這款機(jī)器人在2017年亞洲消費(fèi)電子展里首次亮相,榮獲了當(dāng)年由德國漢諾威工業(yè)設(shè)計(jì)論壇頒布的,含金量十足的if設(shè)計(jì)大獎。HEXA的外觀酷似蜘蛛,頭部可360°任意旋轉(zhuǎn),能攀爬15cm高的障礙并以1.2Km/h的速度奔跑。同時(shí),六足機(jī)器人對復(fù)雜地形的適應(yīng)力也發(fā)揮到了極致,不僅能在各種復(fù)雜地形中行走,甚至還能爬梯、下坑、鉆洞。輔以夜視攝像頭,激光傳感器,三軸加速度計(jì)等模塊,使得HEXA能勝任各種工作和環(huán)境。圖1-1HEXA機(jī)器人而在國外,六足機(jī)器人的研究就更加深入了,畢竟研究內(nèi)容也比較豐富。德國自動化技術(shù)廠商Festo發(fā)布的BionicWheelBot仿生機(jī)器人是一款別有匠心的六足仿生機(jī)器人,靈感來自于摩洛哥一種會翻滾的蜘蛛。它能夠模仿這種蜘蛛,以翻滾模式在復(fù)雜地形上移動,速度是普通三角步態(tài)行進(jìn)方式的兩倍。雖然只是說改變了移動方式,但其中所要用到的技術(shù)卻不能小覷。翻滾時(shí)的平衡,以及如何開始如何結(jié)束如何切換兩種形態(tài),腿部結(jié)構(gòu)的設(shè)計(jì)都是值得我們研究的技術(shù)點(diǎn)。圖1-2HEXA機(jī)器人翻滾動作圖1-3HEXA機(jī)器人腿部關(guān)節(jié)又如英國工程師MattDenton發(fā)明的一個(gè)名為Mantis的機(jī)器人,高2.8米,重2噸,臂展能達(dá)到近2米。主要用途是作為載具,輔以其他模塊后,能在林區(qū)礦區(qū)進(jìn)行勘測,并且采礦的同時(shí)無需進(jìn)行大量的植被清理。圖1-4Mantis機(jī)器人目前來看,國內(nèi)外對于六足仿生機(jī)器人的研究還存在一些差距,但都還沒有特別大的突破,多數(shù)的六足機(jī)器人仍是以概念和樣機(jī)出現(xiàn),用于工業(yè)領(lǐng)域的寥寥無幾,即使有少數(shù)聲稱能進(jìn)行勘測的特種機(jī)器人,也不具備足夠高的可靠性。1.3六足仿生機(jī)器人應(yīng)解決的主要問題對于六足仿生機(jī)器人而言,最主要的問題是如何讓機(jī)器人能夠保持重心穩(wěn)定地進(jìn)行移動。一是步態(tài)的研究,以怎樣的方式行進(jìn),才能充分發(fā)揮多足機(jī)器人用點(diǎn)接觸來行進(jìn)的優(yōu)勢。二是舵機(jī)之間的協(xié)調(diào)控制,由于18個(gè)關(guān)節(jié)上的舵機(jī)都是獨(dú)立控制,雖然換來了較大的自由度,但控制也因此變得繁瑣,如何將舵機(jī)與舵機(jī)之間統(tǒng)籌結(jié)合起來控制,是系統(tǒng)效率提高的關(guān)鍵。三是腿部機(jī)械結(jié)構(gòu)的設(shè)計(jì)。腿部的結(jié)構(gòu)與機(jī)體的穩(wěn)定性密切相關(guān),采用何種機(jī)械結(jié)構(gòu)才能讓腿部滿足理想的運(yùn)動軌跡,是科學(xué)家研究的熱點(diǎn)。

2主要原理2.1仿生六足機(jī)器人行進(jìn)原理本論文仿生六足機(jī)器人的行進(jìn)方式主要參考了六足昆蟲的三角步態(tài),行進(jìn)時(shí)通常將六只腳分為兩組,每組三足呈三角形交替行走以保證重心的穩(wěn)定。這種步態(tài)依靠腿部的前后擺動將身軀前移,雖然為了讓重心保持在三角形內(nèi),導(dǎo)致腿部跨度小,行進(jìn)速度也稱不上快,但是其穩(wěn)定性卻無可置疑。在下列分析中假定左前、右中、左后為A組足,右前、左中、右后為B組足。前進(jìn)的流程,可分解為兩個(gè)過程,以及三個(gè)狀態(tài)間的轉(zhuǎn)換。假設(shè)A組足先動,狀態(tài)a為初始狀態(tài),左三和右三足呈對稱形態(tài)。狀態(tài)b為A組足角度較初始狀態(tài)不變并抬起,B組足組成的重心較初始狀態(tài)滯后。狀態(tài)c為B組足角度較初始狀態(tài)不變并抬起,A組足組成的重心較初始狀態(tài)滯后。過程x為B組足落地,A組足抬起并恢復(fù)初始位置,隨后B組足以足尖為支點(diǎn)帶動身軀前移。過程y為A組足落地,B組足抬起并恢復(fù)初始位置,隨后A組以足尖為支點(diǎn)帶動身軀前移??刂屏鞒虉D圖如圖1,狀態(tài)圖如圖2。圖2-1前進(jìn)控制流程圖圖2-2前進(jìn)步態(tài)圖而定點(diǎn)轉(zhuǎn)彎的實(shí)現(xiàn),其實(shí)也是一樣的原理,甚至更加簡單。通過控制落地足相對機(jī)身的角度,從而實(shí)現(xiàn)方向的改變。定點(diǎn)轉(zhuǎn)彎的流程可分解為三個(gè)狀態(tài)。從左轉(zhuǎn)彎來看,狀態(tài)a為初始狀態(tài),狀態(tài)b時(shí),B組足抬起,A組足角度改變,狀態(tài)c則為B組足落地,A組足恢復(fù)原始角度。當(dāng)轉(zhuǎn)彎時(shí),B組足抬起,同時(shí)A組足控制方向改變,隨后B組足落地,A組足抬起恢復(fù)角度后落地,狀態(tài)從a-b-c-a(d)進(jìn)行循環(huán)。由于轉(zhuǎn)彎的過程實(shí)際就是抬腳與落地,因此過程不進(jìn)行具體講述??刂屏鞒虉D如圖3,狀態(tài)圖如圖4。圖2-3定點(diǎn)轉(zhuǎn)彎流程圖圖2-4定點(diǎn)轉(zhuǎn)彎步態(tài)圖2.2STM32F103系列單片機(jī)定時(shí)器輸出PWM原理定時(shí)器輸出PWM波首先要對CCMR1:OC1M[2:0]進(jìn)行設(shè)置,PWM模式1為[110],PWM模式2為[111],并設(shè)置TIMx_CR1中的DIR寄存器,DIR=0為向上計(jì)數(shù),DIR=1為向下計(jì)數(shù)。定時(shí)器輸出PWM的過程主要是由CNT、ARR、CCRx三個(gè)寄存器控制。CNT寄存器的功能為計(jì)數(shù),儲存當(dāng)前值。ARR寄存器的功能是自動重裝載,計(jì)數(shù)值達(dá)到設(shè)定值后會歸零重新加載。CCRx寄存器的功能是捕獲或比較,這里是為了改變占空比,用到的是比較功能。接下來說明一下,向上和向下計(jì)數(shù),PWM模式1和模式2的區(qū)別。當(dāng)處于向上計(jì)數(shù)時(shí),占空比的比較條件為CNT的值小于CCRx的值,而向下計(jì)數(shù)時(shí),則與之相反,條件CNT的值大于CCRx的值。在PWM模式1下,條件為真,則輸出有效電平,假輸出無效電平,相反,在PWM模式2下,條件為真時(shí),輸出無效電平,反之輸出有效電平。因此,我們可以通過設(shè)定ARR的值,當(dāng)CNT計(jì)數(shù)值達(dá)到ARR的設(shè)定值時(shí),ARR就會歸零,并自動重新裝載,達(dá)到控制PWM輸出頻率的改變。而占空比的控制則通過改變CCRx寄存器的值。當(dāng)不同的值與CNT的值進(jìn)行比較,同一周期內(nèi)輸出的有效電平和無效電平的比例也隨之改變,意味著占空比也隨之改變。2.3圖像傳感器數(shù)據(jù)輸出、讀取原理圖像傳感器的數(shù)據(jù)輸出是在三個(gè)輸入信號的控制下進(jìn)行的,這里采用了QVGA模式輸出像素。如下圖:圖2-5圖像輸出行時(shí)序圖圖2-6圖像輸出幀時(shí)序圖第一個(gè)信號是像素時(shí)鐘PCLK,在PCLK信號的一個(gè)周期里,輸出半個(gè)或者一個(gè)像素?cái)?shù)據(jù)。第二個(gè)信號是幀同步信號VSYNC,當(dāng)檢測到該信號的上升沿時(shí),代表著要開始輸出一幀的數(shù)據(jù),檢測到第二個(gè)上升沿則代表結(jié)束這一幀的輸出,同時(shí)開始下一幀的輸出。最后一個(gè)信號是行同步信號HREF或HSYNC,當(dāng)HREF處于高電平時(shí),代表著此時(shí)的數(shù)據(jù)為有效數(shù)據(jù),PCLK每過一個(gè)周期,輸出一個(gè)有效的字節(jié)數(shù)據(jù),當(dāng)HREF回到低電平時(shí),代表結(jié)束這一行像素的輸出。對于HSYNC信號而言,當(dāng)檢測到下降沿時(shí),代表此時(shí)輸出的數(shù)據(jù)有效,再次檢測到下降沿,代表一行像素輸出完畢。此次設(shè)計(jì)采用了QVGA模式,最終輸出結(jié)果為RGB565格式,一個(gè)像素顏色的數(shù)據(jù)需要兩個(gè)字節(jié)來儲存,同時(shí)代表著R(紅色通道)的值為高字節(jié)的前5位,G(綠色通道)的值為高字節(jié)的后3位加上低字節(jié)的后三位,B(藍(lán)色通道)的值為低字節(jié)的后5位。因此要輸出一張320×240的圖片,一行則要輸出640個(gè)字節(jié),共輸出640個(gè)PCLK周期。PCLK的速率可達(dá)到24Mhz,因此要注意MCU速率是否低于PCLK,如沒有降低PCLK的速率,MCU速率又沒有PCLK快,則會造成數(shù)據(jù)丟失,無法得到正確圖像。

3硬件選型3.1六足機(jī)器人控制系統(tǒng)芯片選型在市面上,可作為控制器的產(chǎn)品主要分為單片機(jī)、嵌入式兩大類,而實(shí)際上其實(shí)這兩者的界限也挺模糊,有些高性能單片機(jī)并不是不能搭載計(jì)算機(jī)系統(tǒng),只是效率不高,沒有必要罷了,而嵌入式大部分也是基于單片機(jī)設(shè)計(jì)的,也可以說是微型計(jì)算機(jī)的裁剪版。因此,在此只是大概劃分了這兩類產(chǎn)品,并介紹其細(xì)分種類下不同系列的產(chǎn)品的優(yōu)劣勢。對于機(jī)器人控制和學(xué)生市場而言,單片機(jī)主要考慮用51單片機(jī),stm32系列單片機(jī)和arduino板。51單片機(jī)是由\t"/item/51%E5%8D%95%E7%89%87%E6%9C%BA/_blank"ATMEL公司推出的一種8位單片機(jī),它的功能相對比較基礎(chǔ),基于匯編語言跑程序的同時(shí),芯片處理速度慢,導(dǎo)致其運(yùn)行速度也慢,只能進(jìn)行一些簡單的控制,優(yōu)點(diǎn)是使用簡單,只要將寄存器配置好,載入程序就行,并且比起其他8位單片機(jī),具有乘除法運(yùn)算,無需調(diào)用子程序來實(shí)現(xiàn)乘除算法。Stm32系列單片機(jī)是ST廠商推出的一款以arm為內(nèi)核的32位單片機(jī),特點(diǎn)是高性能、低成本、低功耗。其最高72Mhz的工作頻率,大大提升了單片機(jī)的運(yùn)行速度,并提供了豐富的外圍接口。Stm32系列單片機(jī)較51較為復(fù)雜,主要在于大量寄存器的配置和使用,也因此可以關(guān)掉不需要使用的功能,降低功耗。而arduino板實(shí)際上是一種基于AVR單片機(jī)設(shè)計(jì)的開發(fā)板,它更多的是提供軟件上的支持,而不是硬件上的支持。官方提供了豐富的庫函數(shù)資源,開發(fā)者不需要去了解內(nèi)部的硬件結(jié)構(gòu)和寄存器的設(shè)置,只需要知道端口的作用,就能夠避開底層驅(qū)動和硬件進(jìn)行開發(fā)。同時(shí)在官方的開源社區(qū),也提供了大量、具有不同功能的函數(shù)庫封裝,方便業(yè)余愛好者使用。圖3-151單片機(jī)圖3-2STM32系列單片機(jī)圖3-3arduino板嵌入式通常是指一種搭載了計(jì)算機(jī)系統(tǒng)的開發(fā)板,它在軟硬件的方方面面上都是根據(jù)用戶需求、功能、可靠性、成本、體積、功耗、環(huán)境等多種因素而進(jìn)行增減的,從而更好地貼合環(huán)境實(shí)際情況,實(shí)現(xiàn)最高效率。對于學(xué)生而言,很難說真正去為了某個(gè)功能而去設(shè)計(jì)專用的嵌入式系統(tǒng)和開發(fā)板,而樹莓派作為一款微型計(jì)算機(jī),搭載了linux系統(tǒng),通過外圍接口的使用,也可以將其當(dāng)做嵌入式開發(fā)板來使用。所以單純就開發(fā)和使用而言,很多想學(xué)習(xí)嵌入式開發(fā)的人往往選擇了樹莓派作為嵌入式開發(fā)板來使用。樹莓派基于arm11而設(shè)計(jì),工作頻率高達(dá)700Mhz,通常在需要某種算法,需要強(qiáng)大的計(jì)算能力時(shí)才會選擇,比如人臉識別,AI算法等功能,這時(shí)采用一般的單片機(jī)實(shí)現(xiàn)起來就會很復(fù)雜很慢。圖3-4樹莓派本次設(shè)計(jì)主要是研究六足機(jī)器人的控制原理,需要一定的運(yùn)算能力和響應(yīng)速度,但暫未考慮人臉識別等高級算法的功能,因此經(jīng)過經(jīng)濟(jì)和需求考慮,決定采用以ARMCortex-M為核心的STM32系列單片機(jī)。又根據(jù)定時(shí)器的使用個(gè)數(shù),I/O口功能及數(shù)量,選定了STM32系列中的STM32F103VCT6。STM32F03VCT6以ARM32位的Cortex?-M3為內(nèi)核,工作頻率可高達(dá)72MHz,擁有256K字節(jié)的閃存程序存儲器、48K字節(jié)的SRAM、80個(gè)I/O口、3個(gè)USART口、2個(gè)UART口、3個(gè)SPI口、2個(gè)I2C口和11個(gè)定時(shí)器,其中有四個(gè)16位定時(shí)器以及兩個(gè)高級定時(shí)器均可輸出多路PWM。3.2舵機(jī)驅(qū)動電池選型可用于驅(qū)動電機(jī)舵機(jī)的電池類型非常多,如市面上常見的一次性電池,通常為堿性或者碳性的干電池。碳性電池電量要遠(yuǎn)少于堿性電池,并且由于發(fā)生化學(xué)反應(yīng),長期使用后會有漏液情況發(fā)生,同時(shí)因?yàn)楹墟k元素,會對環(huán)境造成污染,需要進(jìn)行回收,雖然碳性電池功能不強(qiáng),還有一些缺陷,但是其勝在價(jià)格低廉,一般都使用在耗電量不強(qiáng)的設(shè)備上。而堿性電池電容量大,持續(xù)輸出穩(wěn)定,并且不會漏液和污染環(huán)境,已基本取代了碳性電池的地位,不論是高端的電子產(chǎn)品,還是普通的小家電,堿性電池都能很好的適用。尤其適合適用在耗電量大,持續(xù)時(shí)間久的情況下。堿性電池還有一個(gè)特點(diǎn),當(dāng)電量耗盡后靜置,電量又會恢復(fù)一部分,斷續(xù)適用能讓堿性電池能加耐用。圖3-5堿性電池圖3-6碳性電池又如蓄電池,比較常見的是酸性的鉛酸蓄電池和堿性的鎳鎘蓄電池。這類電池主要以呈酸/堿性水溶液作為\t"/item/%E9%85%B8%E6%80%A7%E8%93%84%E7%94%B5%E6%B1%A0/_blank"電解質(zhì),因此原料簡單資源多,價(jià)格也比較低廉。同時(shí)放電穩(wěn)定,工作電壓高,溫度限制較低,可多次充電反復(fù)使用等優(yōu)勢也讓蓄電池得以發(fā)展,現(xiàn)今已廣泛使用在工業(yè)領(lǐng)域,通常用來驅(qū)動需要較大的電流電壓的設(shè)備。其缺點(diǎn)也十分明顯,雖然原料便宜,但是需要占用的體積重量也很大,電池的能量密度往往也不高,并且還有著自放電的問題,即使沒有使用,放置一陣子后電量也會耗盡。圖3-7鉛酸蓄電池圖3-8鎳鎘蓄電池在能進(jìn)行充電的電池類型中,還有很多類電池廣泛應(yīng)用于電子產(chǎn)品領(lǐng)域,最出名的莫不是鋰電池。它的能量密度非常高,能達(dá)到每千克460至600瓦時(shí),是鉛酸電池6至7倍,也變向地突出了該電池重量輕體積小的特點(diǎn)。其使用壽命很長,能進(jìn)行10000次的充放電,且自放電率極低,幾乎可以忽略不計(jì)。對于環(huán)境也十分友好,一是生產(chǎn)過程不消耗水資源。二是本身及相關(guān)生產(chǎn)過程都不存在有害有毒的重金屬元素和物質(zhì),不會對環(huán)境造成污染。并且對于溫度的限制也不高,一般的鋰電池都可在-20℃到60℃的環(huán)境下使用,甚至可以經(jīng)過特殊處理以適應(yīng)更低或更高的溫度。鋰電池最主要的缺點(diǎn)就是生產(chǎn)工藝比較復(fù)雜。由于鋰電池不允許過充過放電,并且安全性一般,容易發(fā)生爆炸,自然就需要在生產(chǎn)上使用保護(hù)電路、特殊材料和元件來解決安全和損壞問題。圖3-9鋰電池圖3-10手機(jī)鋰電池由于該電池需要裝載在六足機(jī)器人身上,用于驅(qū)動18個(gè)使用電壓3.6v至6v、使用電流500mA至600mA的舵機(jī),因此蓄電池,堿性電池和鋰電池理論上都是可以使用的,但是鑒于鋰電池通常只有以3.7V為倍數(shù)的電壓值,離舵機(jī)最低工作電壓太近,有可能無法較好地驅(qū)動,而鎳鎘電池充電性能一般,有記憶效應(yīng),電量也沒有堿性電池高,最后還是采用了堿性電池作為舵機(jī)的驅(qū)動電源。3.3攝像頭選型本次研究中,對攝像頭的功能并無過多要求。選型的主要因素為攝像頭模塊的工作速度、抗干擾能力、價(jià)格和學(xué)習(xí)資源。最后匹配STM32F103系列的控制器后,選用以PB-0300系列的CMOS圖像傳感器制作的OV7725模塊。該模塊的需要的占用空間很小,工作電壓只需要2.5v到3v,提供多種格式的圖像數(shù)據(jù)如常見的RGB、YUV、YCbCr等,并且從VGA到CIF以下的尺寸都能輸出。同時(shí)該攝像頭最多能輸出有效像素76800個(gè),對應(yīng)的是640×480大小的圖像。數(shù)據(jù)的傳輸則是通過SCCB總線控制,能輸出整幀、子采樣、取窗口等方式的各種分辨率8位影像數(shù)據(jù)。最后,該攝像頭還應(yīng)用了獨(dú)特的圖像傳感器技術(shù),能通過減少光線和硬件本身的缺陷對圖像造成的干擾,從而得到更加清晰完整的圖像。圖3-11CMOS圖像傳感器圖3-12OV7725攝像頭模塊

4控制系統(tǒng)設(shè)計(jì)對于六足機(jī)器人而言,主要應(yīng)用于探索勘測領(lǐng)域。為了能夠被控制和檢測,并擁有一部分自動探查的能力,采用手機(jī)藍(lán)牙實(shí)現(xiàn)通訊,并搭載攝像頭以獲得環(huán)境數(shù)據(jù)。4.1控制系統(tǒng)硬件設(shè)計(jì)圖4-1硬件系統(tǒng)4.2控制器STM32F103VCT6電路原理圖圖4-2單片機(jī)系統(tǒng)原理圖4.3控制系統(tǒng)程序框圖圖4-3控制系統(tǒng)程序框圖4.4六足機(jī)器人主要功能的實(shí)現(xiàn)4.4.1藍(lán)牙串口通訊藍(lán)牙模塊初次使用時(shí),最好先通過usb轉(zhuǎn)ttl模塊,將藍(lán)牙模塊hc-05與電腦相連接,用串口調(diào)試軟件XCOM查詢或配置好hc-05的波特率,配對密碼,姓名等。在接收數(shù)據(jù)時(shí),通常使用檢測接收數(shù)據(jù)的標(biāo)志位USART_IT_RXNE或USART_FLAG_RXNE。前者是接收中斷發(fā)生標(biāo)志位,后者是接收狀態(tài)標(biāo)志位,當(dāng)中斷未開啟時(shí),USART_IT_RXNE不工作,當(dāng)中斷開啟后,兩者實(shí)際用途無差異。在接收完數(shù)據(jù)后,要使用USART_ClearITPendingBit或USART_ClearFLAGPendingBit函數(shù)對標(biāo)志位進(jìn)行清零。如下列代碼所示:發(fā)送完數(shù)據(jù)時(shí),數(shù)據(jù)發(fā)送標(biāo)志位會硬件自動清零,因此只需要在發(fā)送數(shù)據(jù)后等待標(biāo)志位自動清零。發(fā)送數(shù)據(jù)相關(guān)的標(biāo)志位有四個(gè):USART_FLAG中的TXE和TC,USART_IT中的TXE和TC。FLAG和IT的區(qū)別和接收標(biāo)志位一樣,不再闡述。而想知道TXE和TC的區(qū)別就得先知道usart傳輸?shù)南嚓P(guān)原理。在usart的發(fā)送端,是由兩個(gè)寄存器組成的,一個(gè)為USART_DR寄存器,另一個(gè)為移位寄存器。當(dāng)數(shù)據(jù)發(fā)送時(shí),USART_DR寄存器會先將數(shù)據(jù)存放著,然后轉(zhuǎn)移給移位寄存器,再由其發(fā)送給接收端。當(dāng)USART_DR寄存器中無數(shù)據(jù)時(shí),TXE就會置1。當(dāng)移位寄存器發(fā)送完最后一個(gè)數(shù)據(jù)時(shí),TC就會置1。兩者在功能上最大的區(qū)別是:使用TXE來判斷數(shù)據(jù)發(fā)送情況的話,發(fā)送數(shù)據(jù)時(shí)能保證USART_DR寄存器里總是有數(shù)據(jù),保證數(shù)據(jù)連續(xù)不斷地發(fā)送;使用TC來判斷的話,就能準(zhǔn)確得知發(fā)送完成的時(shí)間點(diǎn),在效率上和數(shù)據(jù)的連續(xù)性上,不如采用TXE方便。因?yàn)榘l(fā)送數(shù)據(jù)不寫在中斷函數(shù)里,于是使用了USART_FLAG_TXE,代碼如下列所示:下圖為手機(jī)藍(lán)牙發(fā)送數(shù)據(jù)后,stm32單片機(jī)接收并發(fā)送回所接收到的數(shù)據(jù)。圖4-4藍(lán)牙通訊4.4.2超聲波測距向超聲波模塊的TRIG腳發(fā)送一段10us的高電平,模塊就會發(fā)出超聲波,等待接收到回波,ECHO引腳就會置1,并持續(xù)從發(fā)出超聲波到接收所用的時(shí)間。根據(jù)此功能,只要用定時(shí)器來計(jì)算ECHO高電平持續(xù)的時(shí)間,就可以算出距離障礙物的距離。本次研究中,將周期值設(shè)為1000,預(yù)分頻數(shù)設(shè)置為72,定時(shí)器時(shí)鐘頻率也默認(rèn)等同于工作頻率72Mhz(可改變),計(jì)算后得出每次計(jì)數(shù)為1us。音速在通常環(huán)境下為340m/s,轉(zhuǎn)換單位后位0.0343cm/us,也可以看作29.15us/cm。除去一半路程,實(shí)際障礙物與機(jī)器人的距離和時(shí)間關(guān)系可看作,每微秒58.3厘米。為了運(yùn)算方便,將58.3us/cm約等于58us/cm。具體代碼如下列所示:在功能加入了發(fā)送數(shù)據(jù)的代碼,通過手機(jī)可看到數(shù)據(jù)是否正確,最終實(shí)現(xiàn)如下圖。圖4-5接收長度數(shù)據(jù)圖4-6超聲波模塊實(shí)物圖4.4.3行走功能六足機(jī)器人的行走,實(shí)際上就是舵機(jī)角度的改變,而舵機(jī)角度的改變實(shí)際就是控制信號PWM波占空比的改變。顯示在程序里,就是對定時(shí)器進(jìn)行配置,然后根據(jù)步態(tài)不斷地改變定時(shí)器輸出的PWM波的占空比。下列是前進(jìn)狀態(tài)下其中一個(gè)動作的代碼:加入循環(huán)代碼后,調(diào)整占空比,實(shí)現(xiàn)如流水燈的效果,等效于PWM波占空比的改變。圖4-7PWM占空比控制4.4.4拍照功能部分代碼由于使用了帶FIFO的攝像頭模塊,圖像傳感器傳輸?shù)臄?shù)據(jù)都被緩存在了FIFO模塊中。因此讀數(shù)據(jù)時(shí)不需要對時(shí)序進(jìn)行過多的控制,只要讀取FIFO中的前76800個(gè)像素(QVGA格式)就是所需要的圖片。而對于rgb565格式的像素?cái)?shù)據(jù),需要用16位的空間來存儲。每個(gè)PCLK周期只讀半個(gè)像素,因此需要分別讀低8位和高8位的像素?cái)?shù)據(jù)。讀取數(shù)據(jù)的基本代碼如下列所示:由于沒有上位機(jī)來,轉(zhuǎn)換數(shù)據(jù)成圖片,暫時(shí)使用LCD來讀取像素?cái)?shù)據(jù),以驗(yàn)證數(shù)據(jù)的正確性,模擬效果如下圖。圖4-8lcd讀取照片數(shù)據(jù)

5總結(jié)與展望本次研究,主要實(shí)現(xiàn)了:1.六足機(jī)器人以三角步態(tài)的方式行走:用stm32的定時(shí)器輸出占空比可變的PWM波,以驅(qū)動舵機(jī)角度的改變。2.攝像頭數(shù)據(jù)的讀取。3.利用超聲波模塊進(jìn)行測距避障。4.使用藍(lán)牙對六足機(jī)器人進(jìn)行控制和雙向通訊。主要問題有:1.超聲波測距功能在對比較靠近的細(xì)長物體的測距時(shí)效果很差。2.藍(lán)牙模塊能穩(wěn)定通訊的距離太短了。3.程序效率一般,還有待優(yōu)化。在這次設(shè)計(jì)中,使用了STM32系列的芯片來實(shí)現(xiàn)六足機(jī)器人的控制。由于第一次使用stm32單片機(jī),繁多的寄存器確實(shí)給我?guī)砹瞬簧俾闊?。在調(diào)試各種功能的過程中,往往會遇到某個(gè)寄存器沒有使能或者配置錯誤而導(dǎo)致的失敗。最好的解決方法就是仔細(xì)查看數(shù)據(jù)手冊里的相關(guān)內(nèi)容和官方所提供的相關(guān)庫函數(shù)的定義,了解更底層的實(shí)現(xiàn)原理。經(jīng)過這次畢業(yè)設(shè)計(jì),我已能較好的掌握stm32芯片的學(xué)習(xí)方法和使用,深入了解了其封裝和最小系統(tǒng)。同時(shí)學(xué)習(xí)了各種接口串口以及模塊的原理和使用,也明顯感覺到自己C語言編程的能力還不夠熟練。本次的六足機(jī)器人設(shè)計(jì),只簡單實(shí)現(xiàn)了其控制,以及結(jié)構(gòu)上和步態(tài)上的仿生,各種功能上也仍有很大局限性。此設(shè)計(jì)后,會將超聲波替換成多個(gè)紅外線傳感器,已達(dá)到更精確的測距和更智能的避障。藍(lán)牙通信也應(yīng)用無線通信替代,來實(shí)現(xiàn)更遠(yuǎn)的控制距離。并且應(yīng)該搭載一個(gè)陀螺儀模塊,自適應(yīng)調(diào)整姿態(tài),讓機(jī)器人看起來更加仿生。希望未來有一天能做出活靈活現(xiàn)的,能真正稱得上仿生的六足機(jī)器人。

參考文獻(xiàn)[1]周海濤,吳冬燕,吳陽江,等.基于STM32的六足機(jī)器人研究[J].電子制作,2019,7:29-30.

[2]姜樹海,孫培,唐晶晶,等.仿生甲蟲六足機(jī)器人結(jié)構(gòu)設(shè)計(jì)與步態(tài)分析[J].南京林業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2012,36(6):115-120.[3]李朝青,盧晉,王志勇,等.單片機(jī)原理及接口技術(shù)(第5版)[M].北京航空航天大學(xué)出版社:北京,2017:25.[4]謝鑫,李瓊麟,郭建,等.仿生六足機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械制造,2017,55(638):20-23.[5]趙涓涓,李強(qiáng),任美榮,等.六足仿生機(jī)器人運(yùn)動控制系統(tǒng)的設(shè)計(jì)[J].機(jī)電工程技術(shù),2008,37(12):444-45.[6]玩轉(zhuǎn)單片機(jī).舵機(jī)控制原理與單舵機(jī)調(diào)速算法解析[EB/OL]./article/608940.html,2017-12-29.[7]霽風(fēng)AI.藍(lán)牙模塊——基礎(chǔ)知識介紹[EB/OL]./wwtarticle/details/77833602,2017-09-04.[8]壞壞成不壞.基于STM32的OV7670攝像頭總結(jié)[EB/OL]./HouQi02/article/details/51712994,2016-06-19.[9]Yngz_Miao.【STM32】GPIO工作原理(八種工作方式超詳細(xì)分析,附電路圖)[EB/OL]./qq_38410730/article/details/79858906,2018-04-10.[10]STMicroelectronics.Datasheet-STM32F103VC[EB/OL]./resource/en/datasheet/stm32f103vc.pdf,2018-7.謝辭首先要感謝大學(xué)生活里,為我們學(xué)生付出精力和心血的全體老師們。在這四年的學(xué)習(xí)時(shí)間里,身邊永遠(yuǎn)少不了老師們的循循教誨和陪伴,他們都在幫助我更好更快地成長和學(xué)習(xí)。在此要特別感謝我們的班導(dǎo)師盧桂萍老師,不論是在日常生活方面還是學(xué)習(xí)方面,又或是發(fā)展相關(guān)的問題,都會用心的為我們提供幫助和解答,無微不至。其次是身邊的同學(xué)和朋友,在我灰心或者低迷的時(shí)候,會給予我?guī)椭ハ喙膭睿屛矣行判睦^續(xù)努力下去。也會在我遭遇難題的時(shí)候,為我提供意見和幫助,緩解我的壓力。最后還要由衷感謝本次畢業(yè)設(shè)計(jì)的指導(dǎo)老師李琳老師,不管是在以前的各門專業(yè)課上,還是在本次畢設(shè)的指導(dǎo)上,都給予了我莫大的幫助。在李琳老師的指導(dǎo)下我們敲定選題,建立好論文框架,完成初稿定稿,并且每周還會開一次小會議督促我們畢設(shè)進(jìn)度,解決每一階段里存在的問題。在這如同白馬過隙的四年里,我覺得我何其有幸能夠認(rèn)識這么多優(yōu)秀的同學(xué)和老師。非常感謝成長的一路上有你們的陪伴,你們的心意和恩情我會永遠(yuǎn)銘記心中。附錄附錄1部分程序源代碼主程序 intmain(void){u8sr04_front,sr04_left,sr04_right; delay_init();//延時(shí)初始化delay_ms(1000); //等待上電穩(wěn)定 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中斷分組方式,搶占4,響應(yīng)4hc05_init();//藍(lán)牙初始化Hcsr04Init();//超聲波初始化 TIM_PWM_Init(1999,719);//設(shè)置周期值2000,預(yù)分頻系數(shù)720while(1){ if(usart_flag==1)//接收到數(shù)據(jù){ USART_SendData(USART3,rev_data);//向usart3通道發(fā)送數(shù)據(jù) usart_flag=0;//接收標(biāo)志清零while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); //等待數(shù)據(jù)發(fā)送中斷自動清零 } if(rev_data=='1')//自動模式 { sr04_front=Hcsr04GetLength1();//獲取前方障礙物距離 sr04_left=Hcsr04GetLength2();//獲取左方障礙物距離 sr04_right=Hcsr04GetLength3();//獲取右方障礙物距離 if(sr04_front<=3)//前方有無障礙物 if(sr04_left<=3)//左方有無障礙物 if(sr04_right<=3)//右方有無障礙物 walk_back();//向后走 else walk_right();//向右走 else walk_left();//向左走 elsewalk_front();//向前走 } switch(rev_data){case'2':walk_stop();break;//停止case'3':walk_front();break;//前進(jìn)case'4':walk_left();break;//左轉(zhuǎn)case'5':walk_right();break;//右轉(zhuǎn)case'6':walk_back();break;//后退case'7':photo();break; //拍照后停止default:break; }}超聲波程序floatHcsr04GetLength1(void){u32t=0;floatlengthTemp=0;TRIG1_Send=1;//發(fā)送10us的高電平delay_us(10);TRIG1_Send=0; while(ECHO1_Reci==0);//等待接收回波,若完全接收不到,硬件會置1并取長度為56cm,以防卡死。 OpenTimerForHc();//開啟定時(shí)器并計(jì)數(shù) while(ECHO1_Reci==1); CloseTimerForHc(); t=msHcCount*1000;//周期值*周期數(shù) t+=TIM_GetCounter(TIM6);//加上當(dāng)前計(jì)數(shù)值 lengthTemp=((float)t/58); //計(jì)算距離,以厘米為單位;也可用(float)t*17/1000,但計(jì)算量大。 TIM6->CNT=0;//定時(shí)器當(dāng)前計(jì)數(shù)值清零 returnlengthTemp;//返回距離值}藍(lán)牙中斷接收程序voidUSART3_IRQHandler(void){if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET){rev_data=USART_ReceiveData(USART3);//接收數(shù)據(jù)usart_flag=1;//接收標(biāo)志USART_ClearITPendingBit(USART3,USART_IT_RXNE); //接收中斷標(biāo)志位清零}}前進(jìn)程序voidwalk_front(void){//抬腳TIM_SetCompare4(TIM1,b);TIM_SetCompare3(TIM2,f); TIM_SetCompare1(TIM3,b);TIM_SetCompare2(TIM3,f); TIM_SetCompare2(TIM5,b);TIM_SetCompare3(TIM5,f); delay_ms(20); //落地腳前移,抬起腳恢復(fù)TIM_SetCompare4(TIM2,d); TIM_SetCompare3(TIM3,d);TIM_SetCompare4(TIM5,d); TIM_SetCompare3(TIM1,e); TIM_SetCompare2(TIM4,e);TIM_SetCompare1(TIM5,e); delay_ms(20); //放腳 TIM_SetCompare4(TIM1,c);TIM_SetCompare3(TIM2,e); TIM_SetCompare1(TIM3,c);TIM_SetCompare2(TIM3,e); TIM_SetCompare2(TIM5,c);TIM_SetCompare3(TIM5,e); delay_ms(20); //抬腳TIM_SetCompare1(TIM1,b);TIM_SetCompare2(TIM1,f); TIM_SetCompare4(TIM3,b);TIM_SetCompare1(TIM4,f); TIM_SetCompare3(TIM4,b);TIM_SetCompare4(TIM4,f); delay_ms(20); //落地腳前移,抬起腳恢復(fù)TIM_SetCompare3(TIM1,d); TIM_SetCompare2(TIM4,d);TIM_SetCompare1(TIM5,d); TIM_SetCompare4(TIM2,e); TIM_SetCompare3(TIM3,e);TIM_SetCompare4(TIM5,e); delay_ms(20); //放腳TIM_SetCompare1(TIM1,c);TIM_SetCompare2(TIM1,e); TIM_SetCompare4(TIM3,c);TIM_SetCompare1(TIM4,e); TIM_SetCompare3(TIM4,c);TIM_SetCompare4(TIM4,e); delay_ms(20); }拍照程序voidphoto(void){ u8lightmode=0,effect=0;s8saturation=0,brightness=0,contrast=0;//LCD_Init(); //初始化LCD,用于調(diào)試拍照功能usart1_init(115200);//usart1初始化while(OV7725_Init());//攝像頭初始化 OV7725_Window_Set(OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT,0);//QVGA模式輸出OV7725_Light_Mode(lightmode);OV7725_Color_Saturation(saturation);OV7725_Brightness(brightness);OV7725_Contrast(contrast);OV7725_Special_Effects(effect);OV7725_CS=0;//使能攝像頭EXTI8_Init(); //檢測VSNCY信號上升沿的中斷初始化//LCD_Clear(BLACK);//清屏 OV7725_camera_shot();//讀取一幀像素 while(rev_data==’7’);}讀取一幀像素程序voidOV7725_camera_shot(void){u32i,j;u16color; while(ov_sta){ /*LCD_Scan_Dir(U2D_L2R);//從上到下,從左到右掃描 LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT);//將顯示區(qū)域設(shè)置到屏幕中央 LCD_WriteRAM_Prepare();//開始寫入GRAM */ OV7725_RRST=0; //開始復(fù)位讀指針 OV7725_RCK_L; OV7725_RCK_H; OV7725_RCK_L; OV7725_RRST=1; //復(fù)位讀指針結(jié)束 OV7725_RCK_H; for(i=0;i<OV7725_WINDOW_HEIGHT;i++) { for(j=0;j<OV7725_WINDOW_WIDTH;j++) { OV7725_RCK_L; color=GPIOC->IDR&0XFF; //讀并儲存低8位數(shù)據(jù) OV7725_RCK_H; color<<=8; OV7725_RCK_L; color|=GPIOC->IDR&0XFF; //讀并儲存高8位數(shù)據(jù) OV7725_RCK_H; //LCD->LCD_RAM=color;//用lcd顯示代替圖像儲存USART_SendData(USART3,color);//向usart3通道發(fā)送數(shù)據(jù)while(USART_GetFlagStatus(USART3,USART_F

溫馨提示

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

最新文檔

評論

0/150

提交評論