機(jī)電控制系統(tǒng)設(shè)計(jì)及仿真_第1頁(yè)
機(jī)電控制系統(tǒng)設(shè)計(jì)及仿真_第2頁(yè)
機(jī)電控制系統(tǒng)設(shè)計(jì)及仿真_第3頁(yè)
機(jī)電控制系統(tǒng)設(shè)計(jì)及仿真_第4頁(yè)
機(jī)電控制系統(tǒng)設(shè)計(jì)及仿真_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要六足仿生機(jī)器人可以代替人類(lèi)在各種不適宜的環(huán)境中進(jìn)行探測(cè)和救援。它屬于是一種仿生足式機(jī)器人,并且具有良好的性能。六足仿生機(jī)器人的穩(wěn)定特征可以用于一些未來(lái)的太空探索、災(zāi)區(qū)搜救、人類(lèi)活動(dòng)和生活的其他方面,代替人類(lèi)完成一些高風(fēng)險(xiǎn)和繁瑣困難的任務(wù),為減輕人類(lèi)的負(fù)擔(dān),幫助科學(xué)技術(shù)的發(fā)展。該畢業(yè)設(shè)計(jì)是通過(guò)根據(jù)其預(yù)定功能設(shè)計(jì)電路原理圖,并連接各種功能模塊(如單片機(jī)和光電傳感器以及舵機(jī)等)而設(shè)計(jì)的。自行設(shè)計(jì)的仿生機(jī)器人的框架是支撐平臺(tái)。在六足仿生機(jī)器人的控制操作方向上,選擇通用的廉價(jià)單片機(jī)作為軟件開(kāi)發(fā)平臺(tái),以轉(zhuǎn)向控制舵機(jī)作為中間控制模塊來(lái)控制機(jī)械足的操作和運(yùn)行。關(guān)鍵詞:六足機(jī)器人;單片機(jī);控制系統(tǒng);程序編程DesignandSimulationofelectromechanicalcontrolsystemforhexapodrobotAbstractHexapodbionicrobotscanreplacehumansfordetectionandrescueinvariousunsuitableenvironments.Itbelongstoabionicfootrobotandhasgoodperformance.Thestablecharacteristicsofthehexapodbionicrobotcanbeusedinsomefuturespaceexploration,searchandrescueindisasterareas,humanactivitiesandotheraspectsoflife,replacinghumanstocompletesomehigh-risktediousanddifficulttaskstoreducehumanburden,helpscienceandTechnologydevelopment.Thisgraduationdesignisbasedonthepre-setfunctionaldesigncircuitschematicdiagram,andconnectseachfunctionalmodule(suchassingle-chipmicrocomputer,photoelectricsensor,servo,etc.)fordesign.Theframeoftheself-designedbionicrobotisthesupportingplatform.Inthecontroloperationdirectionofthehexapodbionicrobot,thegeneralcheapsingle-chipmicrocomputerwasselectedasthesoftwaredevelopmentplatform.Keywords:Hexapodrobot;singlechipmicrocomputer;controlsystem;programprogramming目錄TOC\o"1-3"\h\u307051緒論 162971.1本設(shè)計(jì)的背景及意義 1310151.2本設(shè)計(jì)在國(guó)內(nèi)外的發(fā)展概況及存在的問(wèn)題 295621.3本設(shè)計(jì)應(yīng)解決的主要問(wèn)題 4140432方案設(shè)計(jì)及系統(tǒng)模塊的選型 52462.1機(jī)身設(shè)計(jì) 592142.2系統(tǒng)模塊的選型 7325912.2.1感知模塊的選型 917432.2.2微控制器的選型 10122652.2.3電機(jī)驅(qū)動(dòng)模塊的選型 1146062.2.4電源模塊 13161313仿真硬件電路設(shè)計(jì) 15153203.1Proteus軟件 151543.1.1軟件功能介紹 15275843.1.2硬件電路設(shè)計(jì)流程 15318643.2仿真硬件電路 1662763.2.1最小系統(tǒng) 16193823.2.2時(shí)鐘電路 1816163.2.3復(fù)位電路 18233913.2.4電源電路模塊 1923833.2.5超聲波感應(yīng)電路 1912993.2.6電機(jī)驅(qū)動(dòng)電路 2067153.2.7仿真硬件電路 22137874軟件設(shè)計(jì) 23134084.1主程序設(shè)計(jì) 23236994.2中斷 24289054.2.1內(nèi)部定時(shí)和外部計(jì)數(shù)中斷 24257364.2.2中斷控制的有關(guān)寄存器 24126594.3子程序設(shè)計(jì) 25261864.3.1串口驅(qū)動(dòng)子程序設(shè)計(jì) 25317894.3.2按鍵子程序設(shè)計(jì) 25183644.3.3顯示屏子程序設(shè)計(jì) 27322794.4軟件調(diào)試 2935555結(jié)論 303099參考文獻(xiàn) 3130221謝辭 32537附錄 3322847附錄1 33PAGE61緒論六足仿生機(jī)器人屬于地面多足機(jī)器人中的其中一類(lèi),這種機(jī)器人有著強(qiáng)大的運(yùn)動(dòng)能力,自動(dòng)化程度高,結(jié)構(gòu)穩(wěn)定,學(xué)習(xí)采用生物的運(yùn)動(dòng)模式進(jìn)行工作。自然界里存在一些人類(lèi)無(wú)法到達(dá)或者對(duì)人類(lèi)生命有危險(xiǎn)的地方。有如礦井、防災(zāi)救援等等環(huán)境下,足式機(jī)器人的優(yōu)勢(shì)在于極強(qiáng)的地形通過(guò)能力。并且可設(shè)計(jì)或大或小的各類(lèi)型機(jī)器人,進(jìn)入危險(xiǎn)區(qū)域進(jìn)行收集信息,大大的改善了人類(lèi)無(wú)法活動(dòng)區(qū)域的限制,在目前都比較常見(jiàn)的是輪式機(jī)器人和履帶式機(jī)器人中。而且多足機(jī)器人的腿部具有多個(gè)自由度,利用三組步態(tài)和定點(diǎn)轉(zhuǎn)彎等姿態(tài)控制,通過(guò)調(diào)節(jié)腿的伸展程度大大增強(qiáng)機(jī)器人自身的靈活性,也可以控制機(jī)身重心的位置更讓機(jī)器人擁有更高的穩(wěn)定性。本設(shè)計(jì)基于仿生學(xué)原理,通過(guò)51單片機(jī)的控制多個(gè)舵機(jī)的組合實(shí)現(xiàn)其獨(dú)特的特殊性能使得多足仿生機(jī)器人研究的出現(xiàn)更突顯步行機(jī)器人的優(yōu)勢(shì)。1.1本設(shè)計(jì)的背景及意義六足機(jī)器人可以代替人類(lèi)在各種不適宜的環(huán)境下進(jìn)行探測(cè)和救援。利用六足仿生機(jī)器人的穩(wěn)定性特點(diǎn),我們可以代替人類(lèi)完成一些高風(fēng)險(xiǎn)或者不方便不適合人類(lèi)到達(dá)完成的任務(wù),減輕人類(lèi)的負(fù)擔(dān),幫助科學(xué)技術(shù)的發(fā)展。當(dāng)應(yīng)用于復(fù)雜的應(yīng)用地形時(shí),例如房屋倒塌、山體滑坡、礦井坍塌等廢墟環(huán)境下,與輪式履帶式機(jī)器人相比六足機(jī)器人能適應(yīng)復(fù)雜惡劣的地形環(huán)境,識(shí)別性強(qiáng),思維局限性較低,自動(dòng)分析地理環(huán)境從而執(zhí)行不同的步態(tài),控制模式也更加簡(jiǎn)潔方便,對(duì)比蛇型機(jī)器人更加容易實(shí)現(xiàn),本設(shè)計(jì)對(duì)機(jī)器人軀干和腿的結(jié)構(gòu)、運(yùn)動(dòng)方式和控制系統(tǒng)進(jìn)行了研究。為六足機(jī)器人在不同結(jié)構(gòu)空間和復(fù)雜環(huán)境下的控制奠定了基礎(chǔ)。六足機(jī)器人由于其關(guān)節(jié)自由度高,運(yùn)動(dòng)靈活以及能夠適應(yīng)復(fù)雜地形并且穩(wěn)定性強(qiáng)被應(yīng)用于各種復(fù)雜多變的環(huán)境中。在全球擁有各類(lèi)機(jī)器人,機(jī)器人已經(jīng)變得更加多樣化。綜合考慮其機(jī)械機(jī)身結(jié)構(gòu)和各種步態(tài)模式,避免了諸多動(dòng)態(tài)平衡的問(wèn)題。但是,由于許多自由度,控制系統(tǒng)的復(fù)雜性增加了。因此,設(shè)計(jì)一種能夠?qū)崿F(xiàn)多自由度協(xié)調(diào)運(yùn)動(dòng)的柔性控制系統(tǒng)是關(guān)鍵技術(shù)。人類(lèi)研制的機(jī)器人已經(jīng)不僅僅是業(yè)內(nèi)人士埋頭地研究,人們還注重研究生物,并從自然中汲取靈感,學(xué)習(xí)它們的運(yùn)動(dòng)原理、運(yùn)動(dòng)的機(jī)制和行為的控制,使得機(jī)器人與仿生學(xué)結(jié)合,賦予其更多的使用功能,使得仿生機(jī)器人的研究更多元化。本次設(shè)計(jì)利用舵機(jī)對(duì)機(jī)器人進(jìn)行控制實(shí)現(xiàn)各種步態(tài)行走操作,舵機(jī)相當(dāng)于是機(jī)器人的大腦神經(jīng),目的是對(duì)機(jī)器人各足部協(xié)調(diào)發(fā)送指令動(dòng)作。機(jī)身各結(jié)構(gòu)基節(jié)則是機(jī)器人的四肢和驅(qū)干,在這基礎(chǔ)上還需要機(jī)器人的主要控制大腦,這個(gè)大腦需要對(duì)外部的信息進(jìn)行接受和處理,分析需要執(zhí)行的指令,并對(duì)舵機(jī)統(tǒng)一命令操作。該機(jī)器人對(duì)外的傳感器是機(jī)器人的眼睛,本設(shè)計(jì)利用超聲波的原理,范圍廣識(shí)別度高,它負(fù)責(zé)接收勘測(cè)到的信號(hào)。發(fā)送給大腦,而舵機(jī)并不是機(jī)器人的核心。為了實(shí)現(xiàn)機(jī)器人的智能,我們必須添加另一個(gè)主控件,即為機(jī)器人安裝一個(gè)大腦,而單片機(jī)可以成為機(jī)器人的主控件。研究了六足仿生機(jī)器人的機(jī)械結(jié)構(gòu),控制和功能。六足仿生機(jī)器人身體和腿部結(jié)構(gòu)的優(yōu)化,結(jié)合機(jī)身自身重量和各模塊部件的裝配,設(shè)計(jì)更高效率的運(yùn)動(dòng)結(jié)構(gòu)、傳動(dòng)系統(tǒng)及控制系統(tǒng),優(yōu)化和豐富其探測(cè)功能,使仿生機(jī)器人達(dá)到更有效、更輕便,更具有適應(yīng)性,能量消耗更低。1.2本設(shè)計(jì)在國(guó)內(nèi)外的發(fā)展概況及存在的問(wèn)題在眾多機(jī)器人中,由昆蟲(chóng)運(yùn)動(dòng)原理而來(lái)的六足機(jī)器人在復(fù)雜環(huán)境及非結(jié)構(gòu)性空間下體現(xiàn)出靈活與高效,代替了人完成人所不適應(yīng)或力所不及的各種工作,高效的解決問(wèn)題。近年來(lái)美國(guó)就機(jī)器人這一領(lǐng)域在國(guó)際社會(huì)頻頻出彩,這背后是美國(guó)對(duì)機(jī)器人研究的大力支持。美國(guó)NSF最開(kāi)始建立是為了促進(jìn)美國(guó)的科學(xué)進(jìn)步,在機(jī)器人行業(yè)NSF投入了諸多的精力財(cái)力和人力,發(fā)展時(shí)間也經(jīng)歷了非常長(zhǎng)的過(guò)程。美國(guó)前置性的早期投資,在機(jī)器人相關(guān)問(wèn)題的實(shí)踐下,對(duì)機(jī)器人的方向的指導(dǎo)以及探索不斷深入。最近幾年,西班牙科學(xué)家利用3D打印技術(shù)創(chuàng)造了一款六足機(jī)器人NeuroPod,如圖1.1所示。利用內(nèi)置的集成人工神經(jīng)網(wǎng)絡(luò)模擬自然界的昆蟲(chóng)在不同的步態(tài)之間轉(zhuǎn)換。根據(jù)報(bào)道這款六足機(jī)器人裝配30個(gè)人工的神經(jīng)元,用以接受電子刺激,以瞬間對(duì)腿部電機(jī)發(fā)送指令,完成各種步態(tài)的卻換,比如從慢走到奔跑?,F(xiàn)在科研人員還在為機(jī)器人裝各種傳感器以便可對(duì)外界環(huán)境做出不同的響應(yīng)。圖1.1NeuroPod機(jī)器人2018年4月,德國(guó)著名自動(dòng)化技術(shù)廠(chǎng)商費(fèi)斯托公司推出一款名為BionicWheelBot的新型仿蜘蛛機(jī)器人如下圖1.2所示。該仿生機(jī)器人身長(zhǎng)約為55cm,這個(gè)機(jī)器人不僅能在地面正常行走,還能蜷縮成球用腿輔助向前翻滾。該機(jī)器人具有較強(qiáng)的適應(yīng)性,可應(yīng)用于農(nóng)業(yè)、探測(cè)以及戰(zhàn)場(chǎng)偵查等領(lǐng)域。圖1.2BionicWheelBot機(jī)器人近年來(lái),國(guó)內(nèi)的阿爾戈智能機(jī)器人團(tuán)隊(duì),研發(fā)出了一種具有創(chuàng)造性適應(yīng)能力的六足輪腿混合機(jī)器人Creadapt,如下圖1.3所示,這個(gè)機(jī)器人利用最新的運(yùn)動(dòng)學(xué)和機(jī)電一體化設(shè)計(jì),配備了最新的適應(yīng)算法,屬于一款多功能的機(jī)器人,不僅可以用輪式行走,也可以使用足部,兩種程序算法各自獨(dú)立互不影響,并且這種算法是可以反向運(yùn)作的的,即使因?yàn)榄h(huán)境的原因被翻轉(zhuǎn)過(guò)來(lái),依舊可以繼續(xù)完成它的指令,雖然是擁有六條腿,但即使多條腿都損壞了無(wú)法行動(dòng),它還是能夠繼續(xù)有效的移動(dòng),Creadapt機(jī)器人是國(guó)內(nèi)第一個(gè)基于自適應(yīng)算法設(shè)計(jì)的移動(dòng)機(jī)器人。圖1.3Creadapt機(jī)器人六足仿生機(jī)器人在移動(dòng)機(jī)器人這一領(lǐng)域是非常重要研究方向。與其他類(lèi)型的移動(dòng)機(jī)器人相比,仿生六角形機(jī)器人在非典型環(huán)境中具有巨大優(yōu)勢(shì),可用于現(xiàn)場(chǎng)檢查,救災(zāi)和崎嶇不平的道路運(yùn)輸。在復(fù)雜的環(huán)境中,我們研究了基于仿生運(yùn)動(dòng)學(xué)的系統(tǒng)控制算法,仿生結(jié)構(gòu)設(shè)計(jì),控制系統(tǒng),圖形處理算法,本體結(jié)構(gòu)設(shè)計(jì)以及仿生六足機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)。1.3本設(shè)計(jì)應(yīng)解決的主要問(wèn)題機(jī)器人控制技術(shù)是一項(xiàng)非常全面和廣泛的主題技術(shù),包括機(jī)器,自動(dòng)控制,計(jì)算機(jī),人工智能等許多科學(xué)研究領(lǐng)域的先進(jìn)技術(shù),六足機(jī)器人的控制系統(tǒng)是機(jī)器人運(yùn)動(dòng)部分的中心。設(shè)計(jì)出一個(gè)需要在非典型環(huán)境中滿(mǎn)足基本的移動(dòng)性要求。同時(shí)滿(mǎn)足關(guān)鍵零件的強(qiáng)度、剛度和使用壽命要求等條件,然后進(jìn)行輕量化和小型化優(yōu)化設(shè)計(jì),得到基本的結(jié)構(gòu)尺寸,同時(shí)考慮使用高強(qiáng)度和低密度特性的材料,提高機(jī)器人的運(yùn)動(dòng)效率。本文以統(tǒng)一的形式分析了六邊形機(jī)器人模型,研究了機(jī)器人的節(jié)奏和步態(tài)產(chǎn)生,簡(jiǎn)單的控制,靈活的運(yùn)動(dòng)在構(gòu)建控制硬件平臺(tái)方面。軟件系統(tǒng)。需擬解決問(wèn)題目前主要以下幾個(gè):1、六足機(jī)器人可以左右旋轉(zhuǎn)以靈活旋轉(zhuǎn)2、機(jī)器人可以越過(guò)一些簡(jiǎn)單的小障礙3、確定機(jī)械支撐架的承受范圍,選擇合適的驅(qū)動(dòng)方式4、運(yùn)用軟件進(jìn)行模擬仿真2方案設(shè)計(jì)及系統(tǒng)模塊的選型2.1機(jī)身設(shè)計(jì)在機(jī)械系統(tǒng)中,現(xiàn)今對(duì)六足機(jī)器人的研究日漸深入,機(jī)身結(jié)構(gòu)的形狀也層出不窮,最為典型且應(yīng)用最為廣泛的是以下三種機(jī)身結(jié)構(gòu):對(duì)稱(chēng)并排分布、正六邊形分布、類(lèi)橢圓形六邊分布。機(jī)身的形狀結(jié)構(gòu)影響這步行腿的分布,進(jìn)而對(duì)步行腿的擺動(dòng)空間和六足機(jī)器人行走運(yùn)動(dòng)過(guò)程中的穩(wěn)定性產(chǎn)生較大的影響,小組對(duì)以上三種機(jī)身結(jié)構(gòu),就腿部擺動(dòng)空間和行走穩(wěn)定性進(jìn)行對(duì)比分析。合適的機(jī)身機(jī)構(gòu)可以使步行腿有更大的擺動(dòng)空間,更廣的觸底平面,在機(jī)身總長(zhǎng)度及步行腿長(zhǎng)度相同的情況下,兩種機(jī)身結(jié)構(gòu)的步行腿進(jìn)行相同擺動(dòng)角度,對(duì)類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)和對(duì)稱(chēng)機(jī)身結(jié)構(gòu)進(jìn)行步行腿擺動(dòng)空間對(duì)比。在機(jī)身總長(zhǎng)度及步行腿長(zhǎng)度相同的情況下,兩種機(jī)身結(jié)構(gòu)的步行腿使用相同擺動(dòng)角度,類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)并未發(fā)生步行腿相撞的情況,但對(duì)稱(chēng)并排機(jī)身結(jié)構(gòu)的步行腿的擺動(dòng)空間已發(fā)生相交,說(shuō)明此角度已超出最大限制,發(fā)生步行腿相撞的情況,如圖2.1所示??捎纱朔治龅贸鲱?lèi)橢圓形六邊機(jī)身結(jié)構(gòu)的空間擺動(dòng)范圍即觸地平面比對(duì)稱(chēng)并排機(jī)身結(jié)構(gòu)大。圖2.1步行腿擺動(dòng)空間對(duì)比圖六足機(jī)器人在正常情況下行走時(shí),其穩(wěn)定性與步態(tài)息息相關(guān),所以在分析穩(wěn)定性前,需選擇一種步態(tài),對(duì)三種機(jī)身結(jié)構(gòu)進(jìn)行穩(wěn)定性對(duì)比分析。三種機(jī)身結(jié)構(gòu)中,正六邊形機(jī)身結(jié)構(gòu)和類(lèi)橢圓形六邊機(jī)身機(jī)構(gòu)相似,都屬于六邊形機(jī)身結(jié)構(gòu),而對(duì)稱(chēng)并排結(jié)構(gòu)與之相差甚遠(yuǎn),所以需先比較六邊形機(jī)身機(jī)構(gòu)與對(duì)稱(chēng)并排機(jī)身結(jié)構(gòu)的穩(wěn)定性。在小組成員的分析各種對(duì)比后得出,當(dāng)六邊形結(jié)構(gòu)越趨向類(lèi)橢圓形六邊形時(shí),其穩(wěn)定裕度越大,但L值的增大范圍和D值的減少范圍均有有限制,否則會(huì)機(jī)身左端會(huì)觸碰至支撐相,導(dǎo)致比例失調(diào),穩(wěn)定性下降,如圖2.2所示。所以可知在一定的D值與L值變化范圍內(nèi),類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)的運(yùn)動(dòng)穩(wěn)定性最高,正六邊形次之。圖2.2機(jī)身部分參數(shù)示意圖綜合上節(jié)的步行腿穩(wěn)定性分析,類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)不僅可以減少支腳之間的干擾和碰撞,還能保證六足機(jī)器人運(yùn)動(dòng)的穩(wěn)定性,本課題的設(shè)計(jì)的機(jī)身選擇類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)。機(jī)身結(jié)構(gòu)選定為類(lèi)橢圓形六邊機(jī)身結(jié)構(gòu)。在建模設(shè)計(jì)前,計(jì)算機(jī)身的幾個(gè)重要設(shè)計(jì)參數(shù),如圖2.2所示。通過(guò)小組成員設(shè)計(jì)根據(jù)步行腿的設(shè)計(jì)可知,步行腿的總長(zhǎng)度為258mm。為保證步行腿基節(jié)在平面擺動(dòng)角度一般為前后60°,但為保證有盡可能大的擺動(dòng)空間及避免相撞的現(xiàn)象發(fā)生,H的值至少要大于腿長(zhǎng),即260mm,設(shè)計(jì)選擇的數(shù)值應(yīng)更大,初始選為520mm,D的值只要大于258即可,初始選定為260mm,L初始選定為400mm。足部結(jié)構(gòu)如圖2.3所示。圖2.3足部結(jié)構(gòu)參數(shù)示意圖根據(jù)選定的尺寸,對(duì)六足機(jī)器人的機(jī)身進(jìn)行參數(shù)結(jié)構(gòu)設(shè)計(jì)并與步行腿進(jìn)行組裝,如圖2.4所示,六足機(jī)器人完成基本的機(jī)身和步行腿設(shè)計(jì)。圖2.4六足機(jī)器人組裝示意圖2.2系統(tǒng)模塊的選型在控制硬件方面主要分為兩部分構(gòu)成,一是控制系統(tǒng),二是驅(qū)動(dòng)系統(tǒng),總體分為四大模塊:感應(yīng)識(shí)別模塊、控制器模塊、電機(jī)驅(qū)動(dòng)模塊和電源模塊進(jìn)行構(gòu)成,第一步由識(shí)別模塊進(jìn)行障礙物的檢測(cè),然后像控制器模塊發(fā)出信號(hào),接著由控制器模塊發(fā)出指令控制,對(duì)驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)系統(tǒng)的脈沖,通過(guò)控制電流的脈沖達(dá)到電機(jī)角度的轉(zhuǎn)動(dòng),進(jìn)而控制六足機(jī)器人的行走。而電源模塊主要就是提供系統(tǒng)所需的電源,使得機(jī)器人可在不人為連線(xiàn)供電的情形下自身提供各系統(tǒng)所需的電源。其關(guān)聯(lián)方式如圖2.5所示:機(jī)器人行走電機(jī)驅(qū)動(dòng)模塊控制器模塊感知模塊機(jī)器人行走電機(jī)驅(qū)動(dòng)模塊控制器模塊感知模塊電源模塊電源模塊圖2.5系統(tǒng)結(jié)構(gòu)方式圖每一個(gè)模塊的功能作用如下:1、感知模塊作為功能需要去感應(yīng)前方是由一個(gè)發(fā)射和接收超聲波傳感器以及一個(gè)單片機(jī)組成,主要負(fù)責(zé)測(cè)量一定范圍內(nèi)障礙物的距離,感應(yīng)傳感器檢測(cè)到在機(jī)器人前方某個(gè)距離范圍內(nèi)的東西然后反饋給系統(tǒng)。2、控制器模塊作為控制系統(tǒng)的核心,進(jìn)行數(shù)據(jù)的分析處理,對(duì)各子程序進(jìn)行控制信號(hào)的傳遞,需要對(duì)系統(tǒng)每一結(jié)構(gòu)進(jìn)行協(xié)調(diào),完成事先預(yù)定的功能程序。3、電機(jī)驅(qū)動(dòng)模塊對(duì)每只腳單獨(dú)驅(qū)動(dòng),通過(guò)脈沖調(diào)整,這一驅(qū)動(dòng)主要是由控制器進(jìn)行驅(qū)動(dòng)。4、電源模塊就是為六足機(jī)器人的各功能模塊提供能量,以此來(lái)保證機(jī)器人各系統(tǒng)的穩(wěn)定運(yùn)行??傮w方案設(shè)計(jì)如下圖2.6所示:直流伺服電機(jī)控制直流伺服電機(jī)控制硬件設(shè)計(jì)軟件設(shè)計(jì)硬件設(shè)計(jì)軟件設(shè)計(jì)按鍵按鍵直流電機(jī)驅(qū)動(dòng)電路單片機(jī)C語(yǔ)言程序設(shè)計(jì)電機(jī)控制直流電機(jī)驅(qū)動(dòng)電路單片機(jī)C語(yǔ)言程序設(shè)計(jì)電機(jī)控制顯示顯示Keil軟件Keil軟件電路原理圖電路原理圖Proteus軟件Proteus軟件仿真調(diào)試仿真調(diào)試圖2.6總體方案設(shè)計(jì)2.2.1感知模塊的選型目前市面上比較普遍的傳感器主要有源式傳感器和無(wú)源式傳感器兩種類(lèi)型。對(duì)各類(lèi)型傳感器的使用情況和作用分析,無(wú)源傳感器通過(guò)吸收被測(cè)對(duì)象的能量來(lái)輸出信號(hào);而有源傳感器需要由電源提供。雖然無(wú)源傳感器簡(jiǎn)單方便,但是會(huì)因?yàn)楸粶y(cè)對(duì)象的影響,而導(dǎo)致靈敏度不高也更加容易受到干擾,在這有源傳感器更具有優(yōu)勢(shì),靈敏度高也不容易收到干擾,只是需要外部電源的提供。觸覺(jué)傳感器屬于有源傳感器的其中一種,通常安裝在外部環(huán)境容易接近被測(cè)量物體附近的地方。主要功能是將圖像轉(zhuǎn)換為水平信號(hào),即是根據(jù)時(shí)間順序,照射到傳感器感光表面的光強(qiáng)度信息將轉(zhuǎn)換為串行輸出水平信號(hào)。就目前來(lái)說(shuō),視覺(jué)傳感器廣泛用于工業(yè)機(jī)器人和各類(lèi)型移動(dòng)機(jī)器人上。傳感器將超聲波信號(hào)轉(zhuǎn)換為其他能量信號(hào)的聲波傳感器。超聲具有高頻,方向性特別好的特點(diǎn)。對(duì)于液體和固體的超聲波滲透非常好,尤其是對(duì)于不透光的固體。有顯著的效果。但是超聲波會(huì)產(chǎn)生大量反射,從而形成反射回波,只要感應(yīng)到前方存在物體,則會(huì)發(fā)生多普勒效應(yīng)。在此次課題設(shè)計(jì)的探測(cè)機(jī)器人中使用超聲波傳感器用于檢測(cè)與障礙物之間的距離,超聲波傳感器小巧容易安裝,類(lèi)型繁多購(gòu)買(mǎi)方便,實(shí)用性強(qiáng),此次實(shí)驗(yàn)選用超聲波傳感器型號(hào)為HC-SR04,如圖2.7所示:產(chǎn)品主要參數(shù)如下表2.8所示:圖2.7HC-SR04超聲波傳感器表2.8產(chǎn)品模塊主要參數(shù)產(chǎn)品名稱(chēng)HC-SR04超聲波模塊使用電壓DC5V靜態(tài)電流小于2mA電平輸出低0v感應(yīng)角度不大于15度探測(cè)距離2CM-450CM高精度可達(dá)3MM該產(chǎn)品安裝方便、尺寸更小,不易老化、材料堅(jiān)固且耐腐蝕,使用壽命也長(zhǎng),采用IO觸發(fā)測(cè)距,測(cè)距距離=(高電平時(shí)間*聲速340M/S/2)。比較其他超聲波傳感器此型號(hào)有精度高的特點(diǎn),自動(dòng)檢測(cè)是否有信號(hào)返回。2.2.2微控制器的選型微型控制器俗稱(chēng)單片機(jī),把CPU、定時(shí)器、計(jì)數(shù)器和多版本I/O接口集成在一塊芯片上,構(gòu)成了一個(gè)小型迷你的微電腦,可以在不同的場(chǎng)合控制不同的應(yīng)用,它內(nèi)部?jī)?nèi)部有著振蕩器、RAM、ROM、并行I/O端口、中斷系統(tǒng)、可編程串行口以及定時(shí)器等組成。它具有低功耗、體積小、高性能、成本低等優(yōu)點(diǎn),非常適用于開(kāi)發(fā)。本設(shè)計(jì)基于單片機(jī)控制電機(jī),實(shí)現(xiàn)足部驅(qū)動(dòng)系統(tǒng)的運(yùn)作。單片機(jī)用作中央處理器。與各種傳感器模塊配合。因此,選擇一塊好的單片機(jī)顯得非常重要。由于技術(shù)成熟,51系列單片機(jī)可提供完整的信息,它為系統(tǒng)開(kāi)發(fā)提供了極大的便利。因此系統(tǒng)選擇STC89C52RC模型與51系列內(nèi)核完全兼容的單片機(jī)。這個(gè)型號(hào)單片機(jī)具有可編程可擦除只讀存儲(chǔ)器的低電壓、高性能的微處理器。并且它指令簡(jiǎn)單、自學(xué)也易懂容易上手,加上程序編程等硬件設(shè)計(jì)方便,執(zhí)行操作也簡(jiǎn)單,主要它價(jià)格實(shí)惠,易于購(gòu)買(mǎi),也可多個(gè)單片機(jī)同時(shí)操作,所以用它作為本次設(shè)計(jì)項(xiàng)目的主體控制部分尤為合適。此型號(hào)芯片如下圖2.9所示:圖2.9STC89C52RC單片機(jī)單片機(jī)STC89C52RC工作原理為其可以不斷地讀取執(zhí)行指令,再在寄存器中進(jìn)行譯碼功能,最后通過(guò)其他部件完成執(zhí)行指令。該芯片具有以下特征:(1)完全兼容傳統(tǒng)8051系列產(chǎn)品,程序可兼容,屬于升級(jí)版增強(qiáng)型單片機(jī)。(2)相同的晶體振蕩器STC89C52RC比傳統(tǒng)的51單片機(jī)快8至12倍。(3)內(nèi)置MAX810復(fù)位通道,可進(jìn)行8次高速10A/D轉(zhuǎn)換,無(wú)需外部A/D模塊。(4)此系列單片機(jī)針對(duì)電機(jī)的控制,比舊版具有強(qiáng)的抗干擾性能。(5)比普通51單片機(jī)多了兩個(gè)定時(shí)器,具有PWM功能。STC89C52RC的管腳排列如下圖2.10:圖2.10單片機(jī)管腳排列圖如上圖所示STC89C52RC具有40個(gè)引腳,其中32個(gè)是外部雙向輸入/輸出(I/O)端口,加上2個(gè)外部中斷源、3個(gè)16位可編程定時(shí)器/計(jì)數(shù)器中斷和2個(gè)串行中斷。2條讀寫(xiě)中斷線(xiàn)。可以根據(jù)現(xiàn)有方法對(duì)STC89C52RC進(jìn)行編程。它結(jié)合了通用微處理器和閃存,特別是可以重復(fù)擦除的微處理器,極大化的降低了開(kāi)發(fā)成本。2.2.3電機(jī)驅(qū)動(dòng)模塊的選型作為控制機(jī)器人各角度轉(zhuǎn)動(dòng)的電機(jī),現(xiàn)在使用最為廣泛的主要為兩種:其一種是步進(jìn)電機(jī),另一種為伺服電機(jī)。伺服電機(jī)又分為伺服交流電機(jī)和伺服直流電機(jī),對(duì)機(jī)器人的控制一般使用伺服直流電機(jī),所以另外一種在此不做深究。步進(jìn)電機(jī)原理是接收到脈沖信號(hào)時(shí),電機(jī)沿設(shè)定方向旋轉(zhuǎn)固定角度,以固定角度逐步執(zhí)行旋轉(zhuǎn)。但是沒(méi)有反饋信號(hào),精度較低,也可以控制脈沖的頻率大小控制電機(jī)轉(zhuǎn)動(dòng)的速度以便加速或減速,進(jìn)而達(dá)到需要調(diào)整電機(jī)節(jié)奏速度的目的。伺服電機(jī)控制脈沖數(shù),當(dāng)電動(dòng)機(jī)旋轉(zhuǎn)時(shí),它將發(fā)送相應(yīng)數(shù)量的脈沖。在此同時(shí)驅(qū)動(dòng)器也接收到反饋的信號(hào),精確的控制電機(jī)的旋轉(zhuǎn),精度可達(dá)微米級(jí)別,并且電機(jī)內(nèi)部的轉(zhuǎn)子是永磁體,電機(jī)自帶編碼器,該精度遠(yuǎn)遠(yuǎn)的高于步進(jìn)電機(jī)。其電機(jī)原理圖如下圖2.11所示:2.11伺服電機(jī)原理圖步進(jìn)電機(jī)和伺服電機(jī)的速度響應(yīng)性能也不同。步進(jìn)電機(jī)當(dāng)從靜止?fàn)顟B(tài)加速到工作速度時(shí)需要幾百毫秒的時(shí)間距離。而伺服電機(jī)系統(tǒng)往往只需要幾毫秒的時(shí)間,有著更加優(yōu)良的加速性能,它可用于需要快速啟動(dòng)和停止以及高位置精度的控制站??紤]到舵機(jī)的數(shù)量和應(yīng)用的方向,小組討論決定采用型號(hào)為AX-18伺服電機(jī),AX-18伺服電動(dòng)機(jī)具有精度高,對(duì)速度和轉(zhuǎn)矩進(jìn)行閉環(huán)控制的優(yōu)點(diǎn),并克服了步進(jìn)電動(dòng)機(jī)失步的問(wèn)題。電機(jī)穩(wěn)定性能強(qiáng),無(wú)論低速還是高速都能滿(mǎn)足要求也不會(huì)存在步進(jìn)電機(jī)的現(xiàn)象,加上及時(shí)性強(qiáng)的特點(diǎn),電機(jī)加減速的動(dòng)態(tài)相應(yīng)時(shí)間短,短短在幾十毫秒之內(nèi)可完成。所以決定使用該型號(hào)電機(jī)AX-18電機(jī)如圖2.12所示、參數(shù)如表2.13所示:圖2.12AX-18伺服數(shù)字電機(jī)表2.13電機(jī)參數(shù)產(chǎn)品尺寸40.7*19.7*42.9mm產(chǎn)品質(zhì)量55g工作扭矩16.5kg/cm反應(yīng)轉(zhuǎn)速53-62r/m使用溫度-5°C-+85°C死區(qū)設(shè)定4微秒插頭類(lèi)型JR、FUTABA通用轉(zhuǎn)動(dòng)角度180度/360度舵機(jī)類(lèi)型模擬電機(jī)使用電壓7-10v工作電流900mA結(jié)構(gòu)材質(zhì)金屬銅齒、空心杯電機(jī)、雙滾珠軸承伺服電機(jī)的控制通常需要大約20Ms的時(shí)基脈沖。脈沖的高電平部分通常是角度控制脈沖部分。以180°伺服直流電機(jī)為例,對(duì)應(yīng)的關(guān)系是:0.5Ms--0°、1.0Ms--45°、1.5Ms--90°、2.0Ms--135°、2.5Ms--180°。許多時(shí)候適用于機(jī)械臂的選配和航模電機(jī)的使用等。2.2.4電源模塊由于需要考慮六足機(jī)器人的工作環(huán)境和自身結(jié)構(gòu)可知,機(jī)器人必須自帶電源。以此確保機(jī)器人的穩(wěn)定運(yùn)作,本課題設(shè)計(jì)的六足機(jī)器人所需的能源主要用于驅(qū)動(dòng)電機(jī)和控制電路以及超聲波范圍。伺服電機(jī)可以直接使用通用電源,但超聲波傳感器和單片機(jī)控制電路則是需要5V電源。電路模塊上也存在許多感性元件,不能直接通入高壓電源,考慮到六足機(jī)器人的工作時(shí)間,自身重量,電池尺寸和成本,使用容量為5200mAH的24V5.2Ah鋰電池。鋰電池在和鎳鎘電池和鉛酸電池等類(lèi)型電池相比之下,鋰電池有著更高的性?xún)r(jià)比。鋰電池也擁有諸多優(yōu)點(diǎn),比如沒(méi)有污染,電池輸出電流大,使用壽命長(zhǎng),循環(huán)次數(shù)多等優(yōu)點(diǎn)。電池處理模塊采用PCA9685芯片進(jìn)行驅(qū)動(dòng)伺服電機(jī)的運(yùn)作,它是一個(gè)采用I2C通信,內(nèi)置了PWM驅(qū)動(dòng)器和一個(gè)時(shí)鐘。和TLC5940系列有很大不同,這個(gè)芯片不需要不斷發(fā)送信號(hào)占用單片機(jī)。也可有效壓制輸入電流來(lái)使器件不會(huì)受到輸入信號(hào)的影響。它是5V的兼容,即使是3.3V的單片機(jī)控制也能安全地驅(qū)動(dòng)到6V輸出。相比于L298N驅(qū)動(dòng)芯片,可有效控制電機(jī)正反轉(zhuǎn)的效果。外部端子用于連接外圍檢測(cè)電阻器。另外可放置另一個(gè)輸入電源,以允許邏輯在低壓下工作。該驅(qū)動(dòng)模塊如下圖2.14所示:圖2.14PCA9685電機(jī)驅(qū)動(dòng)模塊PCA9685芯片具有更強(qiáng)的驅(qū)動(dòng)能力。并且有著過(guò)電流保護(hù)功能,當(dāng)系統(tǒng)出現(xiàn)電機(jī)卡死時(shí),可以保護(hù)電路和電機(jī)等。模塊以及各個(gè)接口如圖2.15所示:圖2.15PCA9685驅(qū)動(dòng)各接口功能3仿真硬件電路設(shè)計(jì)單片機(jī)作為一種典型的嵌入式系統(tǒng),本身是沒(méi)有帶開(kāi)發(fā)功能的,需要借助外部工具進(jìn)行燒錄程序。而尋找一種能夠模擬硬件電路工作方式的平臺(tái)是一種好的辦法。這就需要模擬仿真器,將外圍設(shè)備的功能在軟件中實(shí)現(xiàn)。在單片機(jī)開(kāi)發(fā)上,發(fā)現(xiàn)Proteus與KeilC聯(lián)調(diào)可以進(jìn)行全部的軟件和大多數(shù)硬件系統(tǒng)的調(diào)試。以Proteus仿真實(shí)驗(yàn)實(shí)現(xiàn)系統(tǒng)的動(dòng)態(tài)仿真時(shí),就單片機(jī)而言該軟件有著顯著的優(yōu)勢(shì)。不僅可以提高單片機(jī)系統(tǒng)設(shè)計(jì)效率,并且也擁有良好的靈活性方便進(jìn)行各式各樣的調(diào)整和實(shí)驗(yàn)。3.1Proteus軟件3.1.1軟件功能介紹Proteus軟件是應(yīng)用頗為廣泛的電子線(xiàn)路仿真軟件,它也是目前單片機(jī)仿真軟件中較容易操作上手快可以自學(xué)的工具軟件,自軟件1989年問(wèn)世至今經(jīng)歷30年的發(fā)展優(yōu)化,功能不斷完善,性能也越來(lái)越好,元器庫(kù)儲(chǔ)量越來(lái)越多,因?yàn)樽陨斫Y(jié)構(gòu)的特點(diǎn),使用用戶(hù)也頗為龐大遍布全球,最方便的,是Proteus還可以仿真數(shù)碼管、液晶顯示器,可以仿真按容鍵、各種傳感器等等。軟件功能特點(diǎn):(1)原理布圖;(2)PCB自動(dòng)或人工布線(xiàn);(3)SPICE電路仿真。(4)各種信號(hào)源和電路虛擬儀表;(5)普遍都支持第三方的軟件編譯和調(diào)試環(huán)境;3.1.2硬件電路設(shè)計(jì)流程打開(kāi)軟件后,將出現(xiàn)一個(gè)仿真電路窗口,用于構(gòu)思設(shè)計(jì)以及設(shè)計(jì)完畢后的仿真運(yùn)行。提前進(jìn)行構(gòu)想完成后,在提前預(yù)想好電路大致板塊以及個(gè)元器件的編碼,根據(jù)設(shè)計(jì)需要提取Proteus元件庫(kù)中選取所需的組件,將它們放置在編輯區(qū)域中并執(zhí)行電路設(shè)計(jì),例如電路連接。設(shè)計(jì)電路之后,可以使用系統(tǒng)提供的電氣測(cè)試工具對(duì)電路進(jìn)行電氣測(cè)試。如若在之前設(shè)計(jì)的過(guò)程中出現(xiàn)錯(cuò)誤則會(huì)出現(xiàn)電氣錯(cuò)誤提示,根據(jù)該報(bào)告,可以排除電氣錯(cuò)誤直至電路完善。本課題設(shè)計(jì)的六足機(jī)器人控制系統(tǒng)電路主要由電源穩(wěn)壓電路、時(shí)鐘電路、復(fù)位電路、顯示系統(tǒng)、超聲波感應(yīng)系統(tǒng)、伺服直流電機(jī)等組成,硬件仿真設(shè)計(jì)總體框圖如下圖3.1所示:時(shí)鐘電路單片機(jī)STC89C52RC時(shí)鐘電路單片機(jī)STC89C52RC復(fù)位電路復(fù)位電路伺服直流電機(jī)伺服直流電機(jī)按鍵模塊按鍵模塊顯示模塊顯示模塊感應(yīng)模塊感應(yīng)模塊電源電路模塊電源電路模塊圖3.1仿真設(shè)計(jì)總體框圖3.2仿真硬件電路3.2.1最小系統(tǒng)單片機(jī)主機(jī)系統(tǒng)電路主要由單片機(jī)和穩(wěn)壓模塊組成。工作原理為其可以不斷地讀取執(zhí)行指令,然后再在寄存器中進(jìn)行譯碼功能,最后通過(guò)其他的部件完成執(zhí)行指令。最小系統(tǒng)是單片機(jī)系統(tǒng)中必不可少的部分,是由可以使單個(gè)芯片工作的最少設(shè)備組成的系統(tǒng)。STC89C52RC已經(jīng)包含8KB的程序存儲(chǔ)器,可以輕松地構(gòu)建最小的單片機(jī)系統(tǒng),只需要連接電源,增加時(shí)鐘電路和復(fù)位電路即可。最小系統(tǒng)電路圖如圖3.2所示,仿真圖如圖3.3所示:圖3.2最小系統(tǒng)組成圖3.3最小系統(tǒng)滴電路仿真圖3.2.2時(shí)鐘電路在所有的單片機(jī)電路系統(tǒng)中,就算是最簡(jiǎn)單的電路,也都是需要有一個(gè)時(shí)鐘電路,時(shí)鐘電路由晶振組成,晶振為單片機(jī)提供基本震蕩源,晶振的震蕩就好比人類(lèi)心臟的跳動(dòng),單片機(jī)會(huì)檢測(cè)到震蕩,有了心跳節(jié)拍,才可以實(shí)現(xiàn)各種程序運(yùn)行,不然若連計(jì)數(shù)都無(wú)法完成,則單片機(jī)是無(wú)法啟動(dòng)的,所以在設(shè)計(jì)仿真時(shí)務(wù)必加入時(shí)鐘電路并保證時(shí)鐘的穩(wěn)定,一旦受到干擾對(duì)系統(tǒng)是非常致命的。時(shí)鐘電路電路圖和仿真圖如下圖3.4所示:(b)圖3.4時(shí)鐘電路圖3.2.3復(fù)位電路單片機(jī)的復(fù)位主要是由RST引腳的電壓控制,當(dāng)收到上升沿或者下降沿時(shí),都會(huì)對(duì)系統(tǒng)進(jìn)行一次復(fù)位,或者當(dāng)程序或操作不正確時(shí),可能導(dǎo)致系統(tǒng)崩潰甚至死機(jī)結(jié)果,這時(shí)便需要通過(guò)復(fù)位操作使其重新開(kāi)始工作。如下圖3.5所示:(b)圖3.5復(fù)位電路圖3.2.4電源電路模塊考慮到系統(tǒng)中有存在著比較感性的遠(yuǎn)件,比如電動(dòng)機(jī)和繼電器等等,因此感性組件的運(yùn)行將拉低系統(tǒng)電壓,導(dǎo)致了調(diào)節(jié)值偏離出相應(yīng)范圍外。它的功能是為單片機(jī)的直流電源供電,把交流電源轉(zhuǎn)換為穩(wěn)壓直流電源。對(duì)輸出的電壓進(jìn)行整流,經(jīng)過(guò)正負(fù)電源,同時(shí)獲得采樣電壓。為了接線(xiàn)簡(jiǎn)單以及節(jié)省元器件,使用橋式電路將220V電壓變成整流電路要求的直流電壓,從而實(shí)現(xiàn)220V直流穩(wěn)壓狀態(tài)。穩(wěn)壓電路仿真圖如下圖3.6所示:圖3.6電源穩(wěn)壓電路圖3.2.5超聲波感應(yīng)電路超聲波感應(yīng)裝置采用STC89C52RC單片機(jī)與相關(guān)的光電檢測(cè)設(shè)備來(lái)設(shè)計(jì)類(lèi)似超聲波感應(yīng)裝置,由于Proteus系統(tǒng)元件庫(kù)內(nèi)沒(méi)有超聲波傳感模塊,也沒(méi)有類(lèi)似聲波感應(yīng)模塊,所以采用ADC芯片進(jìn)行代替也是一個(gè)非常好的方案。ADC芯片模擬超聲波傳感器采用電阻器元件作為檢測(cè)元件的傳感器,通過(guò)電阻器元件模擬接受外部光信號(hào)轉(zhuǎn)化成電信號(hào)然后通過(guò)按鍵調(diào)節(jié)進(jìn)行反饋,也同時(shí)擁有發(fā)射裝置、接收裝置和電路裝置,,所以采用替換且能達(dá)到一樣效果的超聲波傳感器,從而實(shí)現(xiàn)通過(guò)外界環(huán)境的改變而自動(dòng)控制機(jī)器人電機(jī)的轉(zhuǎn)動(dòng)。同時(shí)在仿真圖中考慮到無(wú)法實(shí)現(xiàn)和實(shí)際中檢測(cè)到前方信號(hào)的反饋,采取人為控制的按鍵模塊和顯示模塊進(jìn)行表達(dá)實(shí)際檢測(cè)情況,通過(guò)按鍵模塊調(diào)節(jié)六足機(jī)器人前方障礙物的距離,并由顯示板塊直觀表達(dá)出來(lái),模擬機(jī)器人在實(shí)際行走中遇到的各種信號(hào)。所以超聲波感應(yīng)電路其功能模塊主要包括檢測(cè)模塊、顯示模塊以及處理模塊三類(lèi),其檢測(cè)模塊和處理模塊電路圖如下圖3.7所示,顯示屏模塊如下圖3.8所示:圖3.7信號(hào)檢測(cè)與按鍵模塊圖3.8顯示模塊仿真3.2.6電機(jī)驅(qū)動(dòng)電路伺服直流電機(jī)通過(guò)電機(jī)驅(qū)動(dòng)系統(tǒng)驅(qū)動(dòng),其中一端連接到12V外部電源,另一端接到STC89C52RC單片機(jī)的各個(gè)引腳上進(jìn)行控制。通過(guò)控制電流脈沖的時(shí)間,對(duì)電機(jī)轉(zhuǎn)動(dòng)的角度進(jìn)行精確控制,考慮到本次課題設(shè)計(jì)的機(jī)器人電機(jī)有18個(gè),如果在仿真圖中表示,占幅會(huì)非常大,所以未在仿真圖中全部表達(dá),由于本次設(shè)計(jì)的機(jī)器人行走步態(tài)為三足步態(tài),三只足部的控制方式相同,三組步態(tài)如下圖3.9所示:圖3.9三足步態(tài)相位圖在步態(tài)相同控制方式節(jié)拍相同的情形下,對(duì)六只足步分為兩組,為每只腳進(jìn)行編號(hào)后,如下圖3.10所示,1、3、5足部定為A組,2、4、6足部定為B組,通過(guò)控制A、B組的步態(tài)節(jié)奏達(dá)到機(jī)器人各種模式的實(shí)現(xiàn)。電機(jī)驅(qū)動(dòng)電路仿真如下圖3.11所示:圖3.10各足部編號(hào)示意圖圖3.11電機(jī)驅(qū)動(dòng)仿真圖3.2.7仿真硬件電路如下圖3.12所示,是在Proteus軟件中仿真的完整硬件電路的示意圖。通過(guò)微控制器STC89C52RC為控制中心,選擇合適的元件而形成可執(zhí)行功能的仿真硬件電路。圖3.12控制仿真電路圖4軟件設(shè)計(jì)4.1主程序設(shè)計(jì)依照提前預(yù)定好的方案設(shè)計(jì)要求,設(shè)計(jì)主程序、子程序。六足機(jī)器人控制系統(tǒng)上電后,首先,進(jìn)行初始化,比如:定時(shí)器0、外部中斷0、等。然后,感知模塊和電機(jī)驅(qū)動(dòng)模塊工作,超聲波傳感器檢測(cè)機(jī)器人周?chē)h(huán)境等,該程序主要完成系統(tǒng)初始化和各種功能的調(diào)用,檢測(cè)并處理取消中斷的指示位,并監(jiān)視和顯示完成每個(gè)功能的工作過(guò)程。在這個(gè)以STC89C52RC為大腦的單片機(jī)機(jī)電控制系統(tǒng)中,單片機(jī)需要完成的工作是通過(guò)軟件編程將信號(hào)指令發(fā)送到每個(gè)功能模塊以執(zhí)行其功能。實(shí)現(xiàn)一般合作并達(dá)到最終控制目的。主程序設(shè)計(jì)的基本流程是執(zhí)行功能的基本步驟。當(dāng)啟動(dòng)后,系統(tǒng)自動(dòng)進(jìn)行初始化,包括將單片機(jī)的每個(gè)引腳端口設(shè)置為高電平并清除內(nèi)部存儲(chǔ)器。然后啟用系統(tǒng)預(yù)設(shè),按下按鈕后,系統(tǒng)進(jìn)行識(shí)別,超聲波感應(yīng)器開(kāi)始探測(cè)前方的環(huán)境狀態(tài),接受信號(hào)發(fā)送到單片機(jī),大腦發(fā)出指令,脈沖計(jì)數(shù)器記錄電機(jī)速度,輸出在特定占空比下執(zhí)行前進(jìn)、后退或轉(zhuǎn)向避障等模式。主流程圖如下圖4.1所示:開(kāi)始開(kāi)始初始化(外部中斷、定時(shí)器0)初始化(外部中斷、定時(shí)器0)超聲波傳感器檢測(cè)超聲波傳感器檢測(cè)是否有障礙是否有障礙模式檢查模式檢查直行模式避障模式直行模式避障模式圖4.1主程序流程圖4.2中斷中斷服務(wù)功能在功能模塊的編程中占有非常重要的位置??梢酝ㄟ^(guò)在達(dá)到所需目標(biāo)之前降低中斷功能來(lái)解決CPU使用率過(guò)高的問(wèn)題。其中,超聲掃描應(yīng)用于定時(shí)中斷功能,速度測(cè)量適用于外部中斷源和計(jì)時(shí)器,脈沖輸出被添加到計(jì)時(shí)器。因?yàn)槊總€(gè)子功能模塊都更為重要,主程序僅是進(jìn)行幾個(gè)輔助調(diào)用,而關(guān)鍵部分是每個(gè)中斷服務(wù)功能的使用。在繼續(xù)特定的軟件設(shè)計(jì)之前,有必要開(kāi)發(fā)STC89C52RC中斷的內(nèi)容。當(dāng)CPU執(zhí)行某個(gè)程序時(shí),有時(shí)會(huì)發(fā)生內(nèi)部或外部緊急事件,需要CPU暫停其工作并處理緊急事件。處理事件后,返回原始中斷位置。繼續(xù)運(yùn)行最初中斷的程序。此過(guò)程稱(chēng)為中斷。4.2.1內(nèi)部定時(shí)和外部計(jì)數(shù)中斷在機(jī)電控制系統(tǒng)中應(yīng)用的中斷源和中斷原因如下表4.2所示:表4.2中斷源中斷源名稱(chēng)中斷引起原因INT0外部中斷0引腳輸入低電平或下降沿信號(hào)INT1外部中斷1引腳輸入低電平或下降沿信號(hào)T0定時(shí)器0中斷定時(shí)計(jì)數(shù)器0計(jì)數(shù)回零溢出T1定時(shí)器1中斷定時(shí)計(jì)數(shù)器1計(jì)數(shù)回零溢出T2定時(shí)器2中斷定時(shí)計(jì)數(shù)器2計(jì)數(shù)回零溢出單片機(jī)定時(shí)器的作用:(1)可用于精確的延遲處理,比較延遲時(shí)間為1ms。(2)可用作計(jì)數(shù)器。例如,將此功能IO端口連接到時(shí)鐘源,就可以計(jì)算出有多少個(gè)脈沖信號(hào)。4.2.2中斷控制的有關(guān)寄存器CPU的打開(kāi)和屏蔽中斷源以及是否可以中斷每個(gè)中斷源均由IE中斷啟用寄存器。如表4.3所示:表4.3中斷允許控制寄存器IE的位位序D7D6D5D4D3D2D1D0位標(biāo)志EA--ET2ESET1EX1ET0EX0中斷使能控制寄存器IE在打開(kāi)和關(guān)閉中斷中實(shí)現(xiàn)兩級(jí)控制。總的中斷位EA。部分程序如下:voidtimer0()interrupt1{TL0=TIMER0_MODE1_INIT_VALUE_L;///<設(shè)定定時(shí)器初值 TH0=TIMER0_MODE1_INIT_VALUE_H; timer0_irq();///<定時(shí)器0中斷處理函數(shù)timer0_irq();///<定時(shí)器0中斷處理函數(shù)}4.3子程序設(shè)計(jì)控制的子程序設(shè)計(jì)包括電機(jī)驅(qū)動(dòng)程序設(shè)計(jì)、前進(jìn)后退切換程序設(shè)計(jì)、避障程序設(shè)計(jì)、按鍵和顯示屏程序設(shè)計(jì)、超聲波距離傳感程序設(shè)計(jì)等等。4.3.1串口驅(qū)動(dòng)子程序設(shè)計(jì)串行接口是一種可以將從CPU接收到的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流并發(fā)送它們的設(shè)備,同時(shí)可以將接收到的串行數(shù)據(jù)流轉(zhuǎn)換為數(shù)據(jù)字符的設(shè)備并行的CPU。通常執(zhí)行此操作電路。保留串行端口控制器的重要性在于到時(shí)候可以通過(guò)藍(lán)牙通訊模塊接入智能手機(jī)控制機(jī)器人步態(tài)系統(tǒng)。4.3.2按鍵子程序設(shè)計(jì)按鍵模塊主要是用于模擬調(diào)整超聲波感知環(huán)境參數(shù)使用,按鍵模塊有距離+、距離-及手動(dòng)控制電機(jī)運(yùn)動(dòng)功能。由于實(shí)際演示之時(shí)存在的環(huán)境條件上的難以控制的因素,所以改為手動(dòng)按鈕模擬調(diào)節(jié)的形式,這樣子即安全又方便,可以在整體演示之時(shí)進(jìn)行恰當(dāng)?shù)姆抡嫜菔荆膊皇橐粋€(gè)解決問(wèn)題的好方案。部分程序如下:#defineKEY_ADD 1 //加#defineKEY_SUB 2 //減sbitKEYSET0=P1^5;//按鍵增sbitKEYSET1=P1^6;//按鍵減ucharKey_Scan(){ staticucharkey_up=1;//按鍵按松開(kāi)標(biāo)志 if(key_up&&(KEYSET0==0||KEYSET1==0)) { delayms(10);//去抖動(dòng) key_up=0; if(KEYSET0==0)return1; elseif(KEYSET1==0)return2; } elseif(KEYSET0==1&&KEYSET1==1) key_up=1; return0;//無(wú)按鍵按下} voidKey_pross(){ ucharkey;key=Key_Scan(); //按鍵掃描 if(key==KEY_ADD)set_f++; elseif(key==KEY_SUB)set_f--; }4.3.3顯示屏子程序設(shè)計(jì)顯示屏采用LCD1602顯示屏,可實(shí)現(xiàn)超聲波傳感器對(duì)環(huán)境的檢測(cè)數(shù)據(jù)并把數(shù)據(jù)實(shí)時(shí)反饋在LCD1602顯示屏上面,作為一個(gè)數(shù)據(jù)輸出的反饋設(shè)備,可以方便告訴人們現(xiàn)階段系統(tǒng)處于的狀態(tài)。此外也方便觀察的數(shù)據(jù)和在Proteus軟件上進(jìn)行仿真調(diào)整距離,直觀的進(jìn)行演示。部分程序如下:voidLCD_write_command(uchardat){ //LCD_Busy(); LCD_RS=0;//指令 LCD_RW=0;//寫(xiě)入 LCD_DB=dat; delay_n40us(3); LCD_E=1;//允許 delay_n40us(13); LCD_E=0;}voidLCD_write_data(uchardat){ //LCD_Busy(); LCD_RS=1;//數(shù)據(jù) LCD_RW=0;//寫(xiě)入 LCD_DB=dat; delay_n40us(3); LCD_E=1;//允許 delay_n40us(13); LCD_E=0; }voidLCD_disp_char(ucharx,uchary,uchardat){ ucharadd; //根據(jù)顯示位置(x,y)確定顯示地址 if(y==1) //在第1行顯示 add=0x80+x; elseif(y==2) //在第2行顯示 add=0xc0+x; elseif(y==3) //在第1行顯示 add=0x90+x; elseif(y==4) //在第2行顯示 add=0xd0+x; LCD_write_command(add);//寫(xiě)入需要顯示的地址 LCD_write_data(dat);//寫(xiě)入需要顯示的內(nèi)容}voidlcd1602_write_String(ucharx,uchary,uchar*p){ ucharadd; //根據(jù)顯示位置(x,y)確定顯示地址 if(y==1) //在第1行顯示 add=0x80+x; elseif(y==2) //在第2行顯示 add=0xc0+x; elseif(y==3) //在第3行顯示 add=0x90+x; elseif(y==4) add=0xd0+x; //在第4行顯示 LCD_write_command(add);//寫(xiě)入需要顯示的地址 while(*p!='\0') //寫(xiě)入需要顯示的內(nèi)容,直到字符串全部顯示完成 { LCD_write_data(*p++); }}4.4軟件調(diào)試調(diào)試是一整個(gè)六足機(jī)器人控制系統(tǒng)設(shè)計(jì)中的最關(guān)鍵環(huán)節(jié)。首先,先進(jìn)行硬件調(diào)試,各個(gè)元件安裝、線(xiàn)路的連接等是否無(wú)誤;然后進(jìn)行軟件調(diào)試,該程序主要完成系統(tǒng)初始化和各種功能指令的調(diào)用與運(yùn)行,檢測(cè)并處理取消中斷的指示位,并監(jiān)視和顯示完成每個(gè)功能的工作過(guò)程。在以STC89C52RC為核心的單片機(jī)控制系統(tǒng)中,單片機(jī)需要完成的工作是通過(guò)軟件編程,信號(hào)指令被賦予每個(gè)功能模塊以執(zhí)行其功能,實(shí)現(xiàn)整體協(xié)作并達(dá)到最終控制目標(biāo)。主要的程序設(shè)計(jì)的基本思想流程就是功能實(shí)現(xiàn)的基本銜接步驟。程序編寫(xiě)完成之后,我們要在Keil平臺(tái)上編譯。首先,對(duì)各個(gè)單獨(dú)的子程序進(jìn)行編譯,每個(gè)子程序沒(méi)有出現(xiàn)語(yǔ)法錯(cuò)誤之后,再對(duì)各個(gè)模塊合并進(jìn)行編譯,直至沒(méi)有錯(cuò)誤則為編譯成功。完成實(shí)物仿真。常見(jiàn)的軟件調(diào)試錯(cuò)誤如下:(1)使用中斷的時(shí)候,注意中斷的優(yōu)先級(jí)別。(2)在中斷開(kāi)始時(shí),通常必須首先保護(hù)站點(diǎn),然后再保護(hù)處理程序以防中斷,返回后,需要恢復(fù)站點(diǎn)以確保站點(diǎn)上的數(shù)據(jù)不被破壞。(3)在使用循環(huán)的時(shí)候,要加上時(shí)間限制,否則很可能會(huì)出現(xiàn)無(wú)條件死循環(huán)。(4)在調(diào)試中,沒(méi)有開(kāi)啟看門(mén)狗。導(dǎo)致有些問(wèn)題被掩蓋,不利于調(diào)試。本設(shè)計(jì)中出現(xiàn)了引腳定義錯(cuò)誤這種低級(jí)錯(cuò)誤,還出現(xiàn)了死循環(huán)的問(wèn)題。整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程中,硬件和軟件的分別調(diào)試功夫只占三分之一,軟件與硬件的綜合調(diào)試才是設(shè)計(jì)成功與否的關(guān)鍵。所以,為了后面綜合調(diào)試故障排除的降低,前面的各個(gè)模塊的硬件和軟件單獨(dú)調(diào)試有必要謹(jǐn)慎對(duì)待。單個(gè)模塊的聯(lián)合調(diào)試成功并不意味著各個(gè)模塊合并在一起也能順利運(yùn)行。而且Keil的調(diào)試只能檢測(cè)基本的語(yǔ)法的編譯錯(cuò)誤,邏輯錯(cuò)誤等只能與硬件聯(lián)合調(diào)試發(fā)現(xiàn)問(wèn)題。5結(jié)論六足仿生機(jī)器人的控制系統(tǒng)采用STC89C52RC單片機(jī)為控制器,完成了六足機(jī)器人行走的基本功能,通過(guò)直流伺服電機(jī)的旋轉(zhuǎn),利用脈沖對(duì)電機(jī)進(jìn)行角度的精確控制,控制電機(jī)正反轉(zhuǎn)的方向?qū)崿F(xiàn)前進(jìn)后退,從而實(shí)現(xiàn)機(jī)器人各步態(tài)的穩(wěn)定執(zhí)行。仿真模擬通過(guò)按鍵和顯示屏的配合,調(diào)整光電傳感器的數(shù)據(jù)以模擬超聲波探測(cè)到的距離,以在顯示屏中直觀體現(xiàn),并完成仿真的演示。有地形適應(yīng)性強(qiáng),肢體冗余度高,容錯(cuò)性強(qiáng)等突出優(yōu)點(diǎn),具有重要的研究?jī)r(jià)值。由于其控制的復(fù)雜性,控制系統(tǒng)的研究是仿生六足機(jī)器人的重點(diǎn)和難點(diǎn)。六足仿生機(jī)器人項(xiàng)目的長(zhǎng)期目標(biāo)是開(kāi)發(fā)一種結(jié)構(gòu)緊湊,易于控制,地形適應(yīng)性強(qiáng)的小腳自主移動(dòng)機(jī)器人平臺(tái)。在了解六足機(jī)器人的行走任務(wù)模式和行走環(huán)境的檢測(cè)后,設(shè)計(jì)并實(shí)現(xiàn)了具有高度安全性,可靠性和實(shí)時(shí)安全性高并且容易控制的成本低廉的六足機(jī)器人運(yùn)動(dòng)控制系統(tǒng)??梢詫?shí)現(xiàn)機(jī)器人正常的行走和步態(tài)間自由切換控制任務(wù)的要求。目前,這個(gè)六足機(jī)器人控制系統(tǒng)設(shè)計(jì)尚未完全成熟,例如增加多傳感器的檢測(cè)識(shí)別,以達(dá)到機(jī)器人的各種動(dòng)作的實(shí)現(xiàn),因?yàn)樯形丛谡鎸?shí)的硬件環(huán)境中測(cè)試系統(tǒng)的異常故障處理機(jī)制,所以可以實(shí)現(xiàn)對(duì)所有仿生機(jī)器人電機(jī)的同步控制。一旦機(jī)器人硬件完全完成,就需要進(jìn)行進(jìn)一步的調(diào)整和故障異常處理測(cè)試。這些問(wèn)題都是未來(lái)需要繼續(xù)去研究和繼續(xù)探索。參考文獻(xiàn)[1]程院蓮.淺析步進(jìn)電機(jī)、伺服電機(jī)和舵機(jī)的區(qū)別[J].輕工科技,2020,36(01):36-37+62.[2]陳文鑫.基于51單片機(jī)的多功能智能小車(chē)的探討[J].現(xiàn)代信息科技,2019,3(23):25-29.[3]喬凌霄,郭超維,劉源濤,溫帥,孟朝霞.基于超聲傳感器的避障小車(chē)系統(tǒng)設(shè)計(jì)[J].運(yùn)城學(xué)院學(xué)報(bào),2019,37(03):12-15.[4]徐維超.小型六足機(jī)器人運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2019.[5]趙旭磊,耿召里,李小華.智能小車(chē)避障算法和速度調(diào)節(jié)算法研究[J].遼寧科技大學(xué)學(xué)報(bào),2018,41(03):212-217.[6]黃嘉斌,黃海鵬.多功能全地形智能小車(chē)設(shè)計(jì)[J].電工技術(shù),2018(10):88-90.[7]李俊偉.自主巡邏機(jī)器人行進(jìn)避障及火災(zāi)預(yù)警研究[D].內(nèi)蒙古工業(yè)大學(xué),2017.[8]李冠湛,黃海軍.自主移動(dòng)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2016(21):172-173.[9]李程.六足機(jī)器人控制系統(tǒng)設(shè)計(jì)[D].燕山大學(xué),2016.[10]莊嚴(yán),宋鳴,張劭鳳,李超.基于51單片機(jī)的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)與制作[J].價(jià)值工程,2013,32(30):51-53.[11]劉德高.六足機(jī)器人運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工業(yè)大學(xué),2013.[12]吳明煜.基于伺服電機(jī)精確定位系統(tǒng)的研制[D].南京師范大學(xué),2013.[13]徐崇福.六足機(jī)器人運(yùn)動(dòng)規(guī)劃與控制系統(tǒng)設(shè)計(jì)[D].哈爾濱理工大學(xué),2013.[14]徐昭.基于AT89C52的多功能實(shí)驗(yàn)板的開(kāi)發(fā)[D].吉林大學(xué),2012.[15]李進(jìn)吉.六足機(jī)器人結(jié)構(gòu)參數(shù)優(yōu)化與控制系統(tǒng)設(shè)計(jì)[D].哈爾濱工業(yè)大學(xué),2012.[16]楊華棟.基于單片機(jī)家用機(jī)器人的自主移動(dòng)控制系統(tǒng)研究[D].沈陽(yáng)理工大學(xué),2011.[17]羅孝龍,羅慶生,韓寶玲,趙小川.仿生六足機(jī)器人多電機(jī)控制系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2008(04):491-493.[18]馬剛,李向倉(cāng).用Proteus與Keil整合構(gòu)建單片機(jī)虛擬仿真平臺(tái)[J].現(xiàn)代電子技術(shù),2006(24):129-131.謝辭為期一學(xué)期的畢業(yè)設(shè)計(jì)馬上就要結(jié)束了,意味著我在北京理工大學(xué)珠海學(xué)院的大學(xué)生涯也即將結(jié)束。在畢業(yè)設(shè)計(jì)的這段時(shí)間里,我得到了很大的自身提高,其中有包含了對(duì)單片機(jī)控制系統(tǒng)知識(shí)的理解、還有對(duì)Proteus仿真軟件的認(rèn)識(shí)等。本次畢業(yè)設(shè)計(jì)是在李春導(dǎo)師悉心指導(dǎo)下完成的,畢業(yè)設(shè)計(jì)期間面臨2020年嚴(yán)重的疫情,小組成員分隔多地,交流受阻,老師仍然負(fù)責(zé)地為我們開(kāi)會(huì),指導(dǎo)我們畢業(yè)設(shè)計(jì)的出現(xiàn)的困難及問(wèn)題。同時(shí)也給我提供了大量的幫助和建議,設(shè)計(jì)過(guò)程中遇到了問(wèn)題,都耐心地講解,論文的字里行間都凝聚了老師大量心血和汗水,老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,誨人不倦的品德也將時(shí)刻的激勵(lì)著我不斷努力前進(jìn),在此,衷心感謝李春老師的悉心教導(dǎo)。在這次學(xué)習(xí)的過(guò)程中,也得到了許多同學(xué)和朋友的耐心幫助,常常抽空為我解答一些疑惑,在此誠(chéng)摯地表示謝意。最后,特別感謝母校對(duì)我的悉心栽培,致以最崇高的敬禮!祝愿北京理工大學(xué)珠海學(xué)院前程似錦!祝愿所有的老師身體健康,萬(wàn)事順意!附錄附錄1程序源代碼六足機(jī)器人控制系統(tǒng)主程序:#include"reg52.h"#include"servo.h"#include"adc.h"#include"lcd.h"#defineKEY_ADD 1 //加#defineKEY_SUB 2 //減sbitKEYSET0=P1^5;//按鍵增sbitKEYSET1=P1^6;//按鍵減ucharadval;uchardist[3];ucharset_f=120;uchari; voiddelayms(uintx){ uinty,z; for(z=x;z>0;z--) for(y=110;y>0;y--);}ucharKey_Scan(){ staticucharkey_up=1;//按鍵按松開(kāi)標(biāo)志 if(key_up&&(KEYSET0==0||KEYSET1==0)) { delayms(10);//去抖動(dòng) key_up=0; if(KEYSET0==0)return1; elseif(KEYSET1==0)return2; } elseif(KEYSET0==1&&KEYSET1==1) key_up=1; return0;//無(wú)按鍵按下} voidKey_pross(){ ucharkey;key=Key_Scan(); //按鍵掃描 if(key==KEY_ADD)set_f++; elseif(key==KEY_SUB)set_f--; }voidTIME0_Init(){ TMOD|=0X01; TH0=(65535-50000)/256; TH0=(65535-50000)%256; ET0=1; TR0=1; EA=1;}voidTimer()interrupt1{ TH0=(65535-50000)/256; TH0=(65535-50000)%256; Key_pross(); lcd1602_write_String(0,1,"Setdist:"); lcd1602_write_String(0,2,"Actdist:"); adval=ADC0832_read(0); dist[0]=ASCII[adval/100]; dist[1]=ASCII[adval%100/10]; dist[2]=ASCII[adval%10]; lcd1602_write_String(9,1,dist); LCD_disp_char(9,2,ASCII[set_f/100]); LCD_disp_char(10,2,ASCII[set_f%100/10]); LCD_disp_char(11,2,ASCII[set_f%100%10]); }intmain(){ LCD_init(); TIME0_Init(); pca_set_freq(); pca_set_pwm(0,80); //0 pca_set_pwm(1,80); //0 pca_set_pwm(2,80); //0 pca_set_pwm(3,80); //0 pca_set_pwm(4,80); //0 pca_set_pwm(5,80); //0 delayms(500); while(1) { if(set_f>adval) { //B組電機(jī) pca_set_pwm(4,93);//B組2號(hào)電機(jī)正旋轉(zhuǎn)30° pca_set_pwm(5,93);//B組3號(hào)電機(jī)正旋轉(zhuǎn)30° pca_set_pwm(3,55);//B組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° delayms(500); pca_set_pwm(5,80);//B組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(4,80);//B組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° delayms(500); //A組電機(jī) pca_set_pwm(1,93);//A組2號(hào)電機(jī)正旋轉(zhuǎn)30° pca_set_pwm(2,93);//A組3號(hào)電機(jī)正旋轉(zhuǎn)30° pca_set_pwm(0,55);//A組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° delayms(500); //AB組電機(jī)同時(shí)旋轉(zhuǎn)36度 pca_set_pwm(0,80);//B組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° pca_set_pwm(3,80);//B組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° delayms(500); pca_set_pwm(2,80);//A組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(1,80);//A組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° delayms(500); } elseif(set_f==adval) { for(i=0;i<3;i++) { pca_set_pwm(2,93);//A組2號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(1,93);//A組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(0,93);//A組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° delayms(500); pca_set_pwm(2,80);//A組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(1,80);//A組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(4,93);//B組2號(hào)電機(jī)正旋轉(zhuǎn)30° delayms(500); pca_set_pwm(0,80);//A組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(4,80);//B組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° delayms(500); } } else { pca_set_pwm(4,93);//B組2號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(5,93);//B組3號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(3,55);//A組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° delayms(500); pca_set_pwm(5,80);//B組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(4,80);//B組2號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(1,93);//A組3號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(2,93);//A組3號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(0,55);//A組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° delayms(500); pca_set_pwm(0,80);//A組1號(hào)電機(jī)正轉(zhuǎn)旋轉(zhuǎn)36° pca_set_pwm(3,80);//B組1號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)36° pca_set_pwm(2,80);//A組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° pca_set_pwm(1,80);//A組3號(hào)電機(jī)反轉(zhuǎn)旋轉(zhuǎn)30° } }}ADC0832子程序:#ifndef_ADC_H_#define_ADC_H_#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitADCLK=P1^0;//時(shí)鐘接口sbitADDI=P1^1;//數(shù)據(jù)輸入接口sbitADDO=P1^1;//數(shù)據(jù)輸出接口sbitADCS=P1^2;//使能接口voidADC0832_start(); //AD轉(zhuǎn)換初始化ucharADC0832_read(uintCH);//CH=0選擇通道ch0,=1選擇ch1進(jìn)行AD轉(zhuǎn)換voidADC0832_start(){ ADCS=1; //重置ADC芯片 ADCS=0; //開(kāi)啟轉(zhuǎn)化 ADDI=1; ADCLK=1; ADCLK=0;//第1個(gè)下降沿DI=1}ucharADC0832_read(uintCH){ uchartemp; uinti; ADC0832_start();//發(fā)送起始信號(hào) if(CH==0) //選擇通道0 { ADDI=1; ADCLK=1; ADCLK=0;//第2個(gè)下降沿DI=1 ADDI=0; ADCLK=1; ADCLK=0;//第3個(gè)下降沿DI=0 } else //否則,選擇通道1 { ADDI=1; ADCLK=1; ADCLK=0;//第2個(gè)下降沿DI=1 ADDI=1; ADCLK=1; ADCLK=0;//第3個(gè)下降沿DI=1 } ADCLK=1; ADCLK=0; for(i=0;i<8;i++) { temp=temp<<1;//每讀取一位后將數(shù)據(jù)往左移動(dòng)一位,最右端補(bǔ)0 ADDI=1; //拉高數(shù)據(jù)信號(hào)線(xiàn) ADCLK=1;//拉高時(shí)鐘信號(hào)線(xiàn) if(ADDO)//如果讀取數(shù)據(jù)為1,將數(shù)據(jù)寫(xiě)入緩存 temp+=0x01; ADCLK=0; //拉低時(shí)鐘信號(hào)線(xiàn),產(chǎn)生下降沿 } returntemp;}顯示屏子程序:#ifndef_LCD_H#define_LCD_H#include<reg52.h>#defineucharunsignedchar//宏定義#defineuintunsignedint#defineLCD_DBP0sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_E=P2^2;sbitPSB=P3^2;voidLCD_init(); //初始化函數(shù)voidLCD_write_command(ucharcommand); //寫(xiě)指令函數(shù)voidLCD_write_data(uchardat); //寫(xiě)數(shù)據(jù)函數(shù)voidLCD_disp_char(ucharx,uchary,uchardat);//顯示一個(gè)字符,X(0-16),y(1-2)。voidlcd1602_write_String(ucharx,uchary,uchar*p);//顯示一個(gè)字符串,X(0-16),y(1-2)。voidlcd1602_write_pic(ucharadd,uchar*pic_num);//寫(xiě)入自定義字符voiddelay_n40us(uintn); //延時(shí)函數(shù)ucharcodepic[8]={0x00,0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00};//自定義“℃”字符ucharcodezeng[8]={0x04,0x0a,0x15,0x04,0x04,0x04,0x04,0x00};//自定義“↑”字符ucharcodejian[8]={0x00,0x04,0x04,0x04,0x04,0x15,0x0a,0x04};//自定義“↓”字符ucharcodeASCII[]={'0','1','2','3','4','5','6','7','8','9',':','/','.',''};//LCD1602顯示的字符數(shù)組voidLCD_init(){ LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7 LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7 LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7 LCD_write_command(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍 LCD_write_command(0x06);//設(shè)定輸入方式,增量不移位 LCD_write_command(0x01);//清除屏幕顯示 delay_n40us(100);}voidLCD_write_command(uchardat){ LCD_RS=0;//指令 LCD_RW=0;//寫(xiě)入 LCD_DB=dat; delay_n40us(3); LCD_E=1;//允許 delay_n40us(13); LCD_E=0;}voidLCD_write_data(uchardat){ LCD_RS=1;//數(shù)據(jù) LCD_RW=0;//寫(xiě)入 LCD_DB=dat; delay_n40us(3); LCD_E=1;//允許 delay_n40us(13); LCD_E=0; }voidLCD_disp_char(ucharx,uchary,uchardat){ ucharadd; if(y==1) //在第1行顯示 add=0x80+x; elseif(y==2) //在第2行顯示 add=0xc0+x; elseif(y==3) //在第1行顯示 add=0x90+x; elseif(y==4) //在第2行顯示 add=0xd0+x; LCD_write_command(add);//寫(xiě)入需要顯示的地址 LCD_write_data(dat);//寫(xiě)入需要顯示的內(nèi)容}voidlcd1602_write_String(ucharx,uchary,uchar*p){ ucharadd; if(y==1) //在第1行顯示 add=0x80+x; elseif(y==2) //在第2行顯示 add=0xc0+x; elseif(y==3) //在第3行顯示 add=0x90+x; elseif(y==4) add=0xd0+x; //在第4行顯示 LCD_write_command(add);//寫(xiě)入需要顯示的地址 while(*p!='\0') //寫(xiě)入需要顯示的內(nèi)容,直到字符串全部顯示完成 { LCD_write_data(*p++); }}voidlcd1602_write_pic(ucharadd,uchar*pic_num){ unsignedchari; add=add<<3; for(i=0;i<8;i++) { LCD_write_command(0x40|add+i); LCD_write_data(*pic_num++); }}voiddelay_n40us(uintn){ uinti; ucharj; for(i=n;i>0;i--) for(j=0;j<2;j++);}電機(jī)驅(qū)動(dòng)子程序:#ifndef_SERVO_H#define_SERVO_H#include"reg52.h"#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitSCL=P1^3;//定義時(shí)鐘引腳sbitSDA=P1^4;//定義數(shù)據(jù)引腳#definePCA9685_adrr0x80//1+A5+A4+A3+A2+A1+A0+w/r#definePCA9685_SUBADR10x2#definePCA9685_SUBADR20x3#definePCA9685_SUBADR30x4#definePCA9685_MODE10x0#definePCA9685_MODE20x1#definePCA9685_PRESCALE0xFE#definepwm0_ON_L0x6#definepwm0_ON_H0x7#definepwm0_OFF_L0x8#definepwm0_OFF_H0x9#defineALLpwm_ON_L0xFA#defineALLpwm_ON_H0xFB#defineALLpwm_OFF_L0xFC#defineALLpwm_OFF_H0xFDvoidiic_delay()//延時(shí)5us{_nop_();_nop_();_nop_();_nop_();_nop_();}voidiic_start()//scl高電平區(qū)間,sda一個(gè)下降沿啟動(dòng)信號(hào){SDA=1;iic_delay();SCL=1;iic_delay();SDA=0;iic_delay();SCL=0;iic_delay();}voidiic_stop()//scl在高電平區(qū)間,sda一個(gè)上升沿信號(hào){SDA=0;iic_delay();SCL=1;iic_delay();SDA=1;iic_delay();}voidiic_wait_ack()//在scl高位時(shí),從機(jī)拉低sda引腳表示應(yīng)答{unsignedchari=0;SCL=1;iic_delay();while((SDA==1)&&(i<255)){i++;}SCL=0;iic_delay();}voidiic_init()//初始化IIC通訊引腳{SCL=1;iic_delay();SDA=1;iic_delay();}voidiic_send_ack(bitiic_ack)//接受完成之后,發(fā)送應(yīng)答位,0應(yīng)答繼續(xù)發(fā)送,1不應(yīng)答停止發(fā)送{SDA=iic_ack;SCL=1;iic_delay();SCL=0;iic_delay();}voidiic_write_byte(unsignedchariic_byte){unsignedchari=0;for(i=0;i<8;i++){SCL=0;iic_delay();SDA=iic_byte&0X80;iic_byte=iic_byte<<1;iic_delay();SCL=1;iic_delay();}SCL=0;iic_delay();SDA=1;iic_wait_ack();}voidiic_write(unsignedcharslave_addr,unsignedchariic_addr,unsignedchariic_byte){iic_init();iic_start();iic_write_byte(slave_addr);iic_write_byte(iic_addr);iic_write_byte(iic_byte);iic_stop();}uchariic_read_byte()//讀字節(jié),先讀高位,左移{unsignedchari=0;unsignedchariic_byte=0;SCL=0;iic_delay();SDA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論