畢業(yè)設(shè)計(jì)(論文)-基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于51單片機(jī)的兩輪自平衡小車設(shè)計(jì)DESIGNOFTWO-WHEELSELF-BALANCINGVEHICLEBASEDON51SCMPAGEII摘要兩輪自平衡小車具有倒立擺系統(tǒng)的結(jié)構(gòu),具有本質(zhì)不穩(wěn)定、多變量、非線性、強(qiáng)耦合等特點(diǎn),屬于復(fù)雜系統(tǒng)的一種,同時(shí)結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),且成本不高,因此是檢驗(yàn)各種控制算法的理想平臺(tái)。本文是以STC15F2K60S2單片機(jī)做為主控芯片,借助MPU6050姿態(tài)檢測(cè)芯片及霍爾編碼器測(cè)速模塊獲得小車運(yùn)動(dòng)狀態(tài)信息,再由主控芯片對(duì)這些信息進(jìn)行分析處理,得到電機(jī)驅(qū)動(dòng)的PWM數(shù)據(jù),輸出給電機(jī)驅(qū)動(dòng)芯片來對(duì)電機(jī)進(jìn)行控制,以實(shí)現(xiàn)兩輪自平衡小車的動(dòng)態(tài)平衡。通過分析對(duì)比已有研究方案,對(duì)小車的機(jī)械結(jié)構(gòu)設(shè)計(jì)、主控芯片選擇與電路設(shè)計(jì)、姿態(tài)檢測(cè)芯片選擇及電路設(shè)計(jì)、速度檢測(cè)模塊選擇及電路設(shè)計(jì)、電機(jī)驅(qū)動(dòng)芯片選擇及電路設(shè)計(jì)等硬件方面做出合理的設(shè)計(jì);在兩輪自平衡小車控制算法中借鑒已有研究成果,將PID控制算法應(yīng)用與小車的平衡控制及速度控制中,采用C語言作為本次設(shè)計(jì)中的軟件編程語言,為系統(tǒng)編寫相關(guān)的控制算法,使整體系統(tǒng)能夠?qū)崿F(xiàn)基本功能。關(guān)鍵詞兩輪自平衡小車;倒立擺;單片機(jī);MPU6050;PIDAbstractTwo-wheelself-balancingvehiclehavinginvertedpendulumstructure,withunstablenature,multivariable,nonlinear,strongcouplingandothercharacteristics,itisacomplexsystem,butthestructureissimple,easytoimplement,andthecostisnothigh,sothetestisidealplatformforvariouscontrolalgorithms.ThisarticleisSTC15F2K60S2microcontrollerasthemaincontrolchip,withthechipandtheattitudedetectionMPU6050Hallencoderspeedmoduleobtainvehiclemovementstateinformation,andthenbythemainchipoftheinformationanalysisandprocessing,dataobtainedmotordrivePWMoutputtomotordriverchiptocontrolthemotorinordertoachieveself-balancingrobothomeostasis.Byanalyzingandcomparingtheexistingresearchprograms,hardware,mechanicaldesignofthecar,themasterchipselectionandcircuitdesign,selectionandorientation-detectingchipcircuitdesign,speeddetectionmoduleselectionandcircuitdesign,motordrivecircuitdesignandchipselecttodoareasonabledesign;theself-balancingrobotcontrolalgorithmreferenceresearchresults,thebalancecontrolandPIDcontrolalgorithmspeedandcarcontrol,usingClanguageasthisdesignsoftwareprogramminglanguageforthesystemrelatedtothepreparationofthecontrolalgorithm,andtheoverallsystemtoachievethebasicfunctions.KeywordsTwo-wheeledselfbalancingvehicleinvertedpendulumSCMMPU6050PIDPAGE45目錄15947摘要 I18792Abstract II51791緒論 1246891.1機(jī)器人的發(fā)展 1251331.1.1機(jī)器人介紹 193571.1.2兩輪自平衡小車介紹 2221811.2兩輪自平衡小車研究背景及意義 394491.3兩輪自平衡小車研究?jī)?nèi)容 4235241.4兩輪自平衡小車研究方法技術(shù)路線 490342兩輪自平衡小車總體方案設(shè)計(jì) 6212552.1機(jī)械結(jié)構(gòu)設(shè)計(jì)與比較 644062.2控制系統(tǒng)設(shè)計(jì)與比較 743282.2.1主控芯片選擇與比較 7153022.2.2姿態(tài)檢測(cè)芯片選擇與比較 8295012.2.3速度檢測(cè)模塊選擇與比較 10171072.2.4驅(qū)動(dòng)電機(jī)選擇與比較 12224162.2.5電機(jī)驅(qū)動(dòng)芯片選擇與比較 1278192.2.6電源模塊設(shè)計(jì) 15191953兩輪自平衡小車硬件設(shè)計(jì) 16201493.1系統(tǒng)總體設(shè)計(jì) 16165993.2機(jī)械結(jié)構(gòu)設(shè)計(jì) 16269343.2.1電機(jī)與車輪固定 17204043.2.2電機(jī)與車身固定 18106433.2.3測(cè)速模塊分布與固定 18121273.2.4電池與電路板安裝 18290433.3控制檢測(cè)電路設(shè)計(jì) 19183633.3.1STC15F2K60S2單片機(jī)系統(tǒng)設(shè)計(jì) 19272693.3.2姿態(tài)檢測(cè)模塊設(shè)計(jì) 19245023.3.3速度檢測(cè)模塊設(shè)計(jì) 20154013.3.4電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì) 21134813.3.5電源穩(wěn)壓模塊設(shè)計(jì) 2171204兩輪自平衡小車軟件設(shè)計(jì) 24178814.1STC15F2K60S2單片機(jī)內(nèi)部時(shí)鐘設(shè)置 24299384.2軟件部分總體框圖 25156144.3延時(shí)子程序設(shè)計(jì) 2835844.4姿態(tài)檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì) 28255904.5速度檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì) 33311824.6小車平衡直立控制子程序設(shè)計(jì) 33227954.7小車速度控制模塊子程序設(shè)計(jì) 36248884.8電機(jī)驅(qū)動(dòng)子程序設(shè)計(jì) 3832374結(jié)論 4120248致謝 4218191參考文獻(xiàn) 431緒論1.1機(jī)器人的發(fā)展1.1.1機(jī)器人介紹機(jī)器人是一種通過計(jì)算機(jī)控制,可以實(shí)現(xiàn)重復(fù)編程,功能強(qiáng)、靈活的操作機(jī)[1]。一般情況下,機(jī)器人既能夠按照人類命令或指令執(zhí)行動(dòng)作,又可以根據(jù)已設(shè)置好的代碼程序執(zhí)行動(dòng)作,按照人類的意愿執(zhí)行相應(yīng)動(dòng)作。常見的機(jī)器人由以下五個(gè)部分構(gòu)成[2]:控制部分、動(dòng)力機(jī)構(gòu)、測(cè)量機(jī)構(gòu)、執(zhí)行機(jī)構(gòu)及機(jī)械部分。各個(gè)部分之間有如下對(duì)應(yīng)關(guān)系:由測(cè)量機(jī)構(gòu)對(duì)四周進(jìn)行檢測(cè)并通過轉(zhuǎn)換成可測(cè)有效信號(hào)發(fā)給控制部分,控制部分對(duì)測(cè)量信號(hào)判斷處理后向動(dòng)力機(jī)構(gòu)發(fā)出相應(yīng)驅(qū)動(dòng)指令,動(dòng)力機(jī)構(gòu)按照驅(qū)動(dòng)指令控制執(zhí)行機(jī)構(gòu)動(dòng)作,最終完成了機(jī)器人相應(yīng)的操作?,F(xiàn)如今,隨著科技的發(fā)展,工業(yè)制造越來越趨于自動(dòng)化,越來越多的場(chǎng)合不再需要人們親自操作。人們只需要給機(jī)器人下達(dá)命令,機(jī)器人自然會(huì)按照指令完成下達(dá)的任務(wù)。在中國(guó),基本上將機(jī)器人分為兩大類:工業(yè)機(jī)器人和特種機(jī)器人。研究制造機(jī)器人的最根本的目的就是幫助或代替人類完成工作,其應(yīng)用場(chǎng)合很廣,例如生產(chǎn)業(yè)、建筑業(yè),或是危險(xiǎn)的工作場(chǎng)合。機(jī)器人已被頻繁應(yīng)用于軍事領(lǐng)域、科研領(lǐng)域、生產(chǎn)領(lǐng)域以及日常生活等領(lǐng)域?;诘沽[模型的機(jī)器人是一種重要的新式輪式機(jī)器人?;诘沽[模型的機(jī)器人分為兩大類,如圖1-1所示,即獨(dú)輪機(jī)器人和兩輪機(jī)器人。由于倒立擺機(jī)器人的重心位于輪軸上方,因此倒立擺機(jī)器人本身是一個(gè)不穩(wěn)定系統(tǒng),故不同于傳統(tǒng)機(jī)器人的運(yùn)行方式,倒立擺機(jī)器人需要在維持自身平衡穩(wěn)定的前提下才能夠執(zhí)行相應(yīng)命令。雖然倒立擺機(jī)器人對(duì)控制系統(tǒng)的要求有所提高,但由于其自身的諸多優(yōu)勢(shì),如體積小巧、能耗低、輕快靈活等特點(diǎn),倒立擺機(jī)器人的研究熱潮一直高漲。圖1-1獨(dú)輪機(jī)器人(左)和兩輪機(jī)器人(右)1.1.2兩輪自平衡小車介紹兩輪自平衡小車是一種具有左右兩輪同軸安裝結(jié)構(gòu)的自平衡機(jī)器人,對(duì)比于其他類型的機(jī)器人,其最顯著的特點(diǎn)是具有自平衡能力,即要在不同狀態(tài)下維持動(dòng)態(tài)平衡[3]。兩輪自平衡小車作為一種新型輪式機(jī)器人,可實(shí)現(xiàn)載人或載物運(yùn)動(dòng)時(shí)車體的動(dòng)態(tài)平衡。其具有適應(yīng)性強(qiáng)、靈活便捷、綠色節(jié)能等優(yōu)勢(shì),因此有著很廣的應(yīng)用場(chǎng)合,例如可作為載人行駛的代步工具、貨物運(yùn)輸、偵測(cè)地形等。兩輪自平衡小車的平衡理念源自于倒立擺模型,通過檢測(cè)車體傾斜角度,根據(jù)“動(dòng)態(tài)穩(wěn)定”基本原理[4],控制左右電機(jī)使車身前進(jìn)或后退,克服重心偏移現(xiàn)象,實(shí)現(xiàn)車體的動(dòng)態(tài)平衡。圖1-2為兩輪自平衡小車的側(cè)面模擬框圖,車身可以繞電機(jī)軸心線為向前或向后轉(zhuǎn)動(dòng),假設(shè)小車前進(jìn)方向?yàn)閄,電機(jī)軸線方向?yàn)閅,垂直軸線方向?yàn)閆,并且X、Y、Z符合右手螺旋定則,與姿態(tài)檢測(cè)模塊的相關(guān)定義一致。如圖所示,設(shè)定車身靜止時(shí)Z軸與地面垂直,為90度,X、Y都在水平面中。這樣可以極大的方便了姿態(tài)檢測(cè)模塊的測(cè)量。圖1-2兩輪自平衡小車側(cè)面示意圖在沒有對(duì)小車控制時(shí),不論車體前傾或者后仰,兩個(gè)車輪都是靜止的狀態(tài),車體向前向后擺動(dòng)與車輪的轉(zhuǎn)動(dòng)是分開的,即各自獨(dú)立的。而當(dāng)開始對(duì)小車控制時(shí),車體在豎直位置狀態(tài)下獲釋,兩輪自平衡小車有三種運(yùn)動(dòng)方式,即靜止、前進(jìn)、后退[5]。在合理有效的控制方式下,小車能維持自身的直立平衡。以下對(duì)這三種運(yùn)動(dòng)方式及對(duì)應(yīng)的控制方式作簡(jiǎn)要描述:方式一:靜止當(dāng)車體質(zhì)心在電機(jī)軸線的正上方時(shí),則小車將繼續(xù)保持靜止平衡的狀態(tài),而實(shí)際中我們知道,由于偏差的存在,小車不可能絕對(duì)靜止,它其實(shí)是以一種微小的運(yùn)動(dòng)來維持著車體平衡,即動(dòng)態(tài)平衡。方式二:前傾當(dāng)車體質(zhì)心靠前時(shí),車體便會(huì)向前傾,此時(shí)令電機(jī)正轉(zhuǎn)以驅(qū)動(dòng)車輪向前轉(zhuǎn),來實(shí)現(xiàn)小車的動(dòng)態(tài)平衡。方式三:后仰當(dāng)車體質(zhì)心靠后時(shí),車體便會(huì)向后仰,此時(shí)令電機(jī)反轉(zhuǎn)以驅(qū)動(dòng)車輪向后轉(zhuǎn),來實(shí)現(xiàn)小車的動(dòng)態(tài)平衡??刂苾奢喿云胶庑≤囍绷⑵胶獾暮诵乃枷胧牵寒?dāng)檢測(cè)到傾斜角度與預(yù)定角度(一般為0度)不一致,即有偏差產(chǎn)生時(shí),定義此時(shí)車體發(fā)生傾斜,并且根據(jù)偏差的正負(fù)來確定車體是前傾或后仰,進(jìn)而根據(jù)測(cè)得的偏差產(chǎn)生一個(gè)對(duì)應(yīng)的控制電機(jī)驅(qū)動(dòng)兩個(gè)車輪的PWM波,實(shí)時(shí)調(diào)整相應(yīng)的轉(zhuǎn)速,以保持小車自身的動(dòng)態(tài)平衡。當(dāng)需要讓兩輪自平衡小車從靜止前提下向某一方向運(yùn)動(dòng)時(shí),較常見的控制方式是在向設(shè)定方向運(yùn)行前先讓小車向與設(shè)定方向相反的方向稍微動(dòng)一下,這樣便可以產(chǎn)生一個(gè)角度,這個(gè)角度就是自平衡小車在維持平衡狀態(tài)下以一定速度運(yùn)動(dòng)時(shí)的預(yù)定角度。如圖1-3所示:圖1-3自平衡小車啟動(dòng)示意圖本次的兩輪平衡小車的設(shè)計(jì),旨在實(shí)現(xiàn)在51單片機(jī)的控制下,兩輪平衡小車能夠自動(dòng)調(diào)整姿態(tài)以實(shí)現(xiàn)動(dòng)態(tài)平衡。1.2兩輪自平衡小車研究背景及意義現(xiàn)如今,世界各國(guó)的能源和環(huán)境面臨著空前巨大的挑戰(zhàn)。各國(guó)環(huán)境污染的報(bào)道數(shù)不勝數(shù),而2015年出現(xiàn)在大眾視野中最頻繁的字眼“霧霾”,從原本晦澀的專業(yè)詞匯,現(xiàn)在已經(jīng)家喻戶曉。霧霾產(chǎn)生的主要原因有工業(yè)生產(chǎn)排放的廢氣,燃煤排放的煙塵,機(jī)動(dòng)車排放的尾氣,以及建筑工地和道路交通產(chǎn)生的揚(yáng)塵等。在我國(guó)京津冀主要城市,機(jī)動(dòng)車尾氣排放為最主要污染源。尾氣排放對(duì)環(huán)境污染現(xiàn)象日益加重,影響范圍日益擴(kuò)大,給民眾帶來了無法計(jì)算的健康、工作和生活方面的損害,民眾對(duì)尾氣污染治理呼聲越來越強(qiáng)烈。不僅如此,由于能源危機(jī)、碳排放標(biāo)準(zhǔn)、環(huán)境污染、城市交通擁堵等現(xiàn)實(shí)因素的限制,傳統(tǒng)交通工具不得不向新能源交通工具轉(zhuǎn)型。2014年5月23日習(xí)近平總書記明確指示“發(fā)展新能源汽車是我國(guó)由汽車大國(guó)邁向汽車強(qiáng)國(guó)的必由之路”[6]。據(jù)預(yù)測(cè),到2040年全球75%的輕型汽車將由電力驅(qū)動(dòng)[7]。兩輪自平衡小車是兩輪直立式機(jī)器人與新能源車輛結(jié)合產(chǎn)品中一個(gè)典型的代表,它給城市交通壓力帶來了很大的緩解,并且在不久的將來,其也會(huì)緩解城市的環(huán)境污染問題。兩輪自平衡小車是一種新式交通工具,具有小巧靈活、環(huán)保節(jié)能等優(yōu)點(diǎn)。它是多個(gè)學(xué)科交叉的產(chǎn)物,具有廣闊的市場(chǎng)前景和較高的科研價(jià)值。作為一種新型的出行智能電動(dòng)交通工具,兩輪自平衡小車的研究與發(fā)展響應(yīng)了國(guó)家大力發(fā)展新能源汽車號(hào)召,是一個(gè)既可以有效保護(hù)環(huán)境又能提高經(jīng)濟(jì)增長(zhǎng)的有力手段。1.3兩輪自平衡小車研究?jī)?nèi)容本次設(shè)計(jì)主要解決以下幾個(gè)問題:機(jī)械結(jié)構(gòu)部分:兩輪自平衡小車基于倒立擺模型,其重心位于電機(jī)軸線上方,故本次設(shè)計(jì)的機(jī)械結(jié)構(gòu)應(yīng)滿足此要求。但如果過于笨重的話,兩輪自平衡小車系統(tǒng)將難于控制,且需要更笨重的驅(qū)動(dòng)電機(jī)和電池來提供更大的驅(qū)動(dòng)功率,因此小車的重量應(yīng)該適中,這樣才能體現(xiàn)出兩輪自平衡機(jī)器人靈活輕便的特性。另外,兩輪自平衡小車的主要材料應(yīng)當(dāng)選擇輕質(zhì)量、抗碰撞一類材料。主控芯片部分:因?yàn)閮奢喿云胶庑≤囅到y(tǒng)需要處理多種數(shù)據(jù)及執(zhí)行相關(guān)控制算法,故對(duì)其主控芯片的要求較為嚴(yán)格:1.具有高速的運(yùn)算速度,CPU處理能力強(qiáng);2.具備足夠的IO口供系統(tǒng)接受各路檢測(cè)信號(hào);3.具備豐富的片內(nèi)資源,減少額外的電路設(shè)計(jì)及軟件設(shè)計(jì)等。主控芯片的選擇應(yīng)該合理恰當(dāng),要充分利用主控芯片的片內(nèi)資源,避免造成片內(nèi)資源的閑置。檢測(cè)模塊部分:檢測(cè)模塊部分包括姿態(tài)檢測(cè)模塊和車輪速度檢測(cè)模塊。姿態(tài)檢測(cè)模塊部分應(yīng)該具有精確測(cè)量小車姿態(tài)信息的能力,包括精確測(cè)量?jī)A斜角度和加速度的能力。車輪速度檢測(cè)模塊應(yīng)該具有精確測(cè)量車輪轉(zhuǎn)速的能力。通過將上訴檢測(cè)到的信號(hào)構(gòu)成的小車狀態(tài)信息反饋給主控芯片,讓其對(duì)這些信息分析、處理,形成驅(qū)動(dòng)電機(jī)的控制信號(hào)以實(shí)現(xiàn)對(duì)兩輪自平衡小車的平衡控制。執(zhí)行機(jī)構(gòu)部分:執(zhí)行機(jī)構(gòu)部分包括電機(jī)和電機(jī)驅(qū)動(dòng)芯片。其中電機(jī)驅(qū)動(dòng)芯片是把主控芯片發(fā)出的控制信號(hào)轉(zhuǎn)換為電機(jī)驅(qū)動(dòng)信號(hào),施加在電機(jī)上面,控制做相應(yīng)的轉(zhuǎn)動(dòng)。電機(jī)應(yīng)該具有足夠的轉(zhuǎn)矩及較大范圍的可調(diào)轉(zhuǎn)速。另外,對(duì)于兩輪自平衡小車的控制特性,其驅(qū)動(dòng)電機(jī)在工作時(shí)會(huì)根據(jù)具體情況做正轉(zhuǎn)或反轉(zhuǎn),頻率或快或慢,因此要求兩輪自平衡小車的驅(qū)動(dòng)電機(jī)應(yīng)該還具有有一定抗電壓沖擊能力、發(fā)熱小等能力。軟件編程部分:要求兩輪自平衡小車的控制算法清晰易懂,編程語言編寫方便易懂。1.4兩輪自平衡小車研究方法技術(shù)路線兩輪自平衡小車結(jié)構(gòu)的設(shè)計(jì):為了符合倒立擺模型,兩輪自平衡小車的重心位于其電機(jī)軸線中心的上方,常見的有兩種方式:1.小車重心高度遠(yuǎn)離電機(jī)軸線中心,即將除電機(jī)和車輪的部分,如電源、電路板、固定板等豎直安裝在電機(jī)軸上方,如圖1-4所示;2.小車重心接近電機(jī)軸線中心但仍然位于軸線上方,即將除電機(jī)和車輪的部分,水平安裝在電機(jī)軸上方,如圖1-5所示。這兩類僅僅是機(jī)械結(jié)構(gòu)的差異,在控制思想方面并無太大區(qū)別,故本文以第二種機(jī)械結(jié)構(gòu)為設(shè)計(jì)參考。圖1-4豎直安裝結(jié)構(gòu)兩輪自平衡小車圖1-5水平安裝結(jié)構(gòu)兩輪自平衡小車2.兩輪自平衡小車控制方式的選擇:直立平衡的控制模塊很多種,如ARM、STM32、MC9S12XS128、AVR、DSP等等,各個(gè)芯片模塊各有其特色、優(yōu)劣勢(shì),需根據(jù)具體情況進(jìn)行選擇。3.姿態(tài)檢測(cè)芯片的選擇:姿態(tài)檢測(cè)芯片可以選擇一組ADXL345加速度計(jì)芯片及ITG3205陀螺儀芯片,利用卡爾曼濾波來確保姿態(tài)檢測(cè)的結(jié)果準(zhǔn)確;還可以選擇MPU6050芯片,其內(nèi)部集成了3軸MEMS陀螺儀和3軸MEMS加速度計(jì),是一款低成本的六軸傳感器模塊,使用方法更加簡(jiǎn)單。還可以使用其他傳感器來測(cè)量,具體確定還需比較。4.速度檢測(cè)模塊的選擇:速度檢測(cè)模塊可以選擇光電編碼器或者霍爾編碼器來測(cè)量,兩者各有其優(yōu)劣勢(shì)。還可以其他測(cè)速傳感器來測(cè)量,具體確定還需比較。5.編程語言選擇:現(xiàn)在常見的編程語言有C、C++、Java、Linx、Python等等,在分析對(duì)比之后選擇簡(jiǎn)練、可靠的語言進(jìn)行程序編寫。2兩輪自平衡小車總體方案設(shè)計(jì)本章主要對(duì)兩輪自平衡小車的每個(gè)部分進(jìn)行方案的選擇和比較,其中包括機(jī)械結(jié)構(gòu)設(shè)計(jì)和硬件電路設(shè)計(jì)兩大方面,硬件電路設(shè)計(jì)包括主控芯片的選擇、姿態(tài)檢測(cè)芯片的選擇、速度檢測(cè)模塊的選擇及電機(jī)驅(qū)動(dòng)芯片的選擇。2.1機(jī)械結(jié)構(gòu)設(shè)計(jì)與比較方案一:直立式結(jié)構(gòu)如圖2-1所示[8],是由兩個(gè)電機(jī)控制分別控制兩個(gè)輪子,這種結(jié)構(gòu)的小車重心離電機(jī)軸線最遠(yuǎn),系統(tǒng)自身的穩(wěn)定性最差,因外界條件的干擾及自身傳感器的測(cè)量誤差,小車很難達(dá)到真正的平衡靜止?fàn)顟B(tài)。運(yùn)動(dòng)時(shí)的加速減速會(huì)造成系統(tǒng)有較大的不穩(wěn)定現(xiàn)象,所以不考慮采用。圖2-1直立式小車結(jié)構(gòu)圖方案二:分層式結(jié)構(gòu)如圖2-2所示[9],與方案一的主要區(qū)別在于其重心接近于電機(jī)軸線但仍然位于電機(jī)軸線上方,故其具有倒立擺模型的特有結(jié)構(gòu)。在降低了小車的重心后,其運(yùn)動(dòng)更加的靈活,且對(duì)于小車的控制更加方便容易,包括直立平衡控制、速度控制及方向控制等。圖2-2分層式小車結(jié)構(gòu)圖綜上所述,采用方案二。2.2控制系統(tǒng)設(shè)計(jì)與比較2.2.1主控芯片選擇與比較由于本次設(shè)計(jì)的系統(tǒng)要實(shí)時(shí)處理來自多傳感器及其他信號(hào)源發(fā)來的信息,并能做出快速響應(yīng),要求主控芯片的運(yùn)算速度快且有足夠多的IO管腳及盡可能具有PWM輸出功能,滿足這些要求的主控芯片有很多,故有如下方案:方案(1)采用STM32f103vbt6作為主控芯片[10]。STM32f103vbt6片內(nèi)集成有128KB的FLASH、20KB的RAM、一個(gè)USB、一個(gè)CAN、四個(gè)定時(shí)器、三個(gè)USART、兩個(gè)ADC、一個(gè)SPI、兩個(gè)IIC及八十個(gè)GPIO。另外其CPU主頻是72M赫茲。STM32f103vbt6最小外圍系統(tǒng)電路如圖2-3所示:圖2-3STM32f103vbt6最小外圍系統(tǒng)電路方案(2)采用MC9S12XS128作為主控芯片[11]。MC9S12XS128片內(nèi)集成有16位CPU、8KB的RAM、128KB的供程序用FLASH、8KB的工數(shù)據(jù)用FLASH、一個(gè)SPI、兩個(gè)SCI、一個(gè)八通道的ITM、一個(gè)中斷定時(shí)器PIT、16通道的ADC及一個(gè)8通道PWM模塊。MC9S12XS128最小外圍系統(tǒng)電路如圖2-4所示:圖2-4MC9S12XS128最小外圍系統(tǒng)電路方案(3)采用STC15F2K60S2作為主控芯片。STC15F2K60S2單片機(jī)是由宏晶科技有限公司設(shè)計(jì)生產(chǎn)的。宏晶科技有限公司生產(chǎn)的8051系列單片機(jī)種類豐富,功能強(qiáng)大,典型的8051單片機(jī)有STC12系列及STC15系列1T8051單片機(jī),其中STC12系列的STC12C5A60S2單片機(jī)[12]具I2C接口和PWM輸出,抗干擾能力強(qiáng)。而STC15系列單片機(jī)具有超高速四串口、高速A/D、比較器;寬電壓、低功耗;內(nèi)部高可復(fù)位,可徹底省去外部復(fù)位電路;內(nèi)部集成高精度R/C時(shí)鐘,5MHz-35MHz寬范圍可設(shè)置,可徹底省去外部昂貴的晶振電路??紤]本次設(shè)計(jì)要求及涉及功能,選擇STC15系列的STC15F2K60S2芯片。其引腳圖如圖2-5所示。該芯片重要資源如下:定時(shí)器/計(jì)數(shù)器:3個(gè)6位可重裝載普通定時(shí)器/計(jì)數(shù)器CCP:3路捕獲(Capture)、比較(Compare)、脈寬調(diào)制(PWM)外部中斷:5個(gè)串行口:2組高速異步串行口,1組高速同步串行通行端口(SPI)A/D:8路高速10位A/D轉(zhuǎn)換器數(shù)據(jù)指針:2個(gè)DPTRI/O口:42個(gè)I/O口圖2-5STC15F2K60S2引腳實(shí)踐證明,本設(shè)計(jì)所選用的主控芯片具有良好的性能、豐富的功能及簡(jiǎn)潔的外圍電路,能夠滿足系統(tǒng)需要。因此本次設(shè)計(jì)中選擇了宏晶科技有限公司的STC15F2K60S2芯片。綜上所述,采用方案三。2.2.2姿態(tài)檢測(cè)芯片選擇與比較本次設(shè)計(jì)系統(tǒng)需檢測(cè)角度、角速度、加速度等,具有檢測(cè)這些信號(hào)功能的芯片有很多種,但精度、適應(yīng)場(chǎng)合均有所不同,姿態(tài)檢測(cè)芯片選擇有如下方案:方案一:采用ADXL345加速度計(jì)芯片及ITG3205陀螺儀芯片[13]作為姿態(tài)檢測(cè)芯片。ADXL345加速度計(jì)芯片是ADI公司采用MEMS技術(shù)制成的三軸加速度計(jì),其具有IIC及SPI數(shù)字輸出能力,感應(yīng)精度達(dá)3.9mg/LSB,可感應(yīng)最大±16g加速度,測(cè)量誤差小于1度。ADXL345三軸加速度計(jì)典型電路圖如圖2-6所示:圖2-6ADXL345加速度計(jì)外圍電路圖圖2-7ITG3205陀螺儀外圍電路圖ITG3205陀螺儀是一種通過數(shù)字形式輸出的三軸姿態(tài)信息的陀螺儀,其以整合技術(shù)將數(shù)字輸出的角速度等信號(hào)合到一個(gè)的電路上,并且通過400k赫茲的IIC總線串行接口與主控芯片通信[14]。ITG3205陀螺儀外圍電路圖如圖2-7所示。方案二:采用MPU6050芯片作為姿態(tài)檢測(cè)芯片。MPU6050六軸傳感器芯片是InvenSense公司生產(chǎn)的一款集成了3軸MEMS陀螺儀和3軸MEMS加速度計(jì)的低成本的六軸傳感器模塊,其體積小巧,用途非常廣。并且MPU6050每個(gè)軸對(duì)應(yīng)有一個(gè)16位AD轉(zhuǎn)換器,測(cè)量范圍達(dá)±16g,其高分辨率(3.9mg/LSB)能夠測(cè)量不到1度的傾斜角度變化。芯片正常工作時(shí),陀螺儀和加速度計(jì)分別采集x軸、y軸和z軸的電壓值,然后通過AD轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字信號(hào),最后通過IIC總線傳送到控制芯片,但此時(shí)得到的值并不是實(shí)際的角度和角速度值,還必須經(jīng)過一定的比例關(guān)系進(jìn)行轉(zhuǎn)換,才能得到實(shí)際的角度和角速度值[15]。其主要引腳功能如下表所示:表2-1MPU6050的主要管腳功能管腳名稱功DDGNDSCLSDACLKINAD0INT電源電壓接地端I2C串行時(shí)鐘I2C串行數(shù)據(jù)可選外部時(shí)鐘輸入,不用時(shí)可接地I2CSlave地址LSB中斷數(shù)字輸出(推免或開漏)STC15F2K60S2與MPU6050模塊進(jìn)行I2C通信,MPU6050模塊自帶有封裝好的程序供使用,那么僅需要知道加速度計(jì)三個(gè)軸與陀螺儀三個(gè)軸的數(shù)據(jù)寄存器讀取地址就可以讀出數(shù)據(jù),然后再經(jīng)過單位換算就能得到需要進(jìn)行濾波的數(shù)據(jù)。在讀取信息之前還需要知道對(duì)應(yīng)數(shù)據(jù)在MPU6050模塊中的存儲(chǔ)地址,從MPU6050的數(shù)據(jù)手冊(cè)上找到如圖2-8所示的內(nèi)部寄存器地址。圖2-8MPU6050內(nèi)部寄存器地址方案一和方案二均可檢測(cè)出需求的量,但方案一后續(xù)的數(shù)據(jù)處理比較麻煩,對(duì)存在的溫漂及累積誤差的消除比較麻煩,并且對(duì)實(shí)際安裝要求較高;方案二中MPU6050以其自身的優(yōu)良性能彌補(bǔ)了實(shí)際應(yīng)用中的缺陷,有可靠的數(shù)據(jù)輸出。綜上所述,采用方案二。2.2.3速度檢測(cè)模塊選擇與比較由于本次的設(shè)計(jì)系統(tǒng)需要實(shí)時(shí)檢測(cè)小車的運(yùn)動(dòng)狀態(tài),速度無疑是最直接的可測(cè)的運(yùn)動(dòng)狀態(tài)輸出量了。速度檢測(cè)單元需要為系統(tǒng)提供了車輪轉(zhuǎn)速及轉(zhuǎn)向信息,對(duì)小車的平衡、速度及方向控制極為重要。通過檢測(cè)小車車輪的轉(zhuǎn)速,判斷小車的運(yùn)行狀態(tài)是加速、減速或靜止,進(jìn)而執(zhí)行相應(yīng)的指令控制或任務(wù)。精準(zhǔn)的速度反饋是兩輪自平衡小車系統(tǒng)實(shí)現(xiàn)的重要條件,故速度檢測(cè)元件的選擇有著舉足輕重的地位。編碼器是一種將角位移或者角速度轉(zhuǎn)換成一連串電數(shù)字脈沖的旋轉(zhuǎn)式傳感器,那么就可以通過編碼器測(cè)量到位移或者速度信息。本次設(shè)計(jì)中要對(duì)車輪速度進(jìn)行檢測(cè),車輪速度的檢測(cè)大多是通過編碼器進(jìn)行間接測(cè)量得到的,而編碼器從輸出數(shù)據(jù)類型上分為增量式編碼器和絕對(duì)式編碼器。這兩類編碼器又分別對(duì)應(yīng)霍爾編碼器和光電編碼器,故本次設(shè)計(jì)中速度檢測(cè)單元的選擇方案有一下兩種:方案一:采用霍爾編碼器作為速度檢測(cè)元件?;魻柧幋a器是利用霍爾元件的霍爾效應(yīng)(如圖2-9所示)對(duì)變化的磁場(chǎng)在一定的時(shí)間內(nèi)進(jìn)行計(jì)數(shù),從而實(shí)現(xiàn)測(cè)速目的?;魻栐鐖D所示?;魻柧幋a器在使用時(shí)會(huì)給出兩種方波,這兩種方波的相位差存在一定的角度,通常稱為A相和B相,而A、B相分別對(duì)應(yīng)兩個(gè)通道,即A通道和B通道。僅一個(gè)通道的數(shù)據(jù)就可以得到與車輪轉(zhuǎn)速有關(guān)的信息,但為了精確到車輪的轉(zhuǎn)速方向,還需通過另一個(gè)通道的數(shù)據(jù)信號(hào)與第一個(gè)通道數(shù)據(jù)通過順序?qū)Ρ鹊姆椒?,得到車輪的旋轉(zhuǎn)方向信息。圖2-9霍爾效應(yīng)優(yōu)點(diǎn):可以用來測(cè)得多種車輪轉(zhuǎn)動(dòng)信息,如轉(zhuǎn)速、旋轉(zhuǎn)方向、轉(zhuǎn)動(dòng)角度、移動(dòng)距離等。結(jié)構(gòu)簡(jiǎn)單,特別是使用微機(jī)采集的時(shí)候,使用非常方便。缺點(diǎn):斷電導(dǎo)致數(shù)據(jù)丟失,抗干擾能力差。方案二:采用光電編碼器作為速度檢測(cè)元件[16],如圖2-10所示。光電編碼器光碼刻盤上有許多條光通道刻線,如圖2-11所示,每條刻線依次以2線、4線、8線、16線等呈2的k-1次方編排,如此,在編碼器的每條刻線位置都有唯一的編碼,依靠從每條刻線讀取到亮、暗不同的信息,就可獲得一組從2的0次方到2的k-1次方的唯一的二進(jìn)制編碼,即格雷碼。以此對(duì)應(yīng)求得車輪轉(zhuǎn)速信息。圖2-10光電編碼器圖2-11編碼盤優(yōu)點(diǎn):它不受停電及干擾的影響。光電編碼器由機(jī)械位置決定了其每個(gè)位置有唯一的二進(jìn)制編碼,這決定了其無需記憶,無需找參考點(diǎn),并且無需不停的計(jì)數(shù)。光電編碼器的抗干擾特性及數(shù)據(jù)的可靠性較高。缺點(diǎn):僅可求得速度與轉(zhuǎn)角,并且成本高。對(duì)比分析方案一和方案二的優(yōu)缺點(diǎn),方案一中采用霍爾編碼器,雖然其在斷電是會(huì)導(dǎo)致數(shù)據(jù)丟失,抗干擾能力差,但對(duì)于本次的設(shè)計(jì)系統(tǒng)有較強(qiáng)的機(jī)械結(jié)構(gòu),能夠大大降低硬件掉電事故,并且其較低的成本相對(duì)于光電編碼器是一較大優(yōu)勢(shì)。綜上所述,采用方案一。2.2.4驅(qū)動(dòng)電機(jī)選擇與比較考慮本次設(shè)計(jì)系統(tǒng)的主要的控制對(duì)象是電機(jī),電機(jī)控制包括電機(jī)正轉(zhuǎn)反轉(zhuǎn)的方向控制和加速減速及勻速的速度控制等,對(duì)電機(jī)的可控性及可靠性要求很高,并且需要一定的瞬時(shí)加速度及轉(zhuǎn)矩,即電機(jī)驅(qū)動(dòng)在接收到有效信號(hào)后控制電機(jī)能夠快速準(zhǔn)確地達(dá)到預(yù)定速度狀態(tài),故直流電機(jī)是很好的選擇。直流電機(jī)的種類有很多種,故有多種電機(jī)選擇方案,以下列出本文比較的三種直流電機(jī)方案。方案一:采用步進(jìn)電機(jī)。這種電機(jī)的轉(zhuǎn)動(dòng)直接受到電流脈沖的控制,其速度控制和轉(zhuǎn)動(dòng)幅度完全滿足兩輪自平衡小車的系統(tǒng)要求,但是其過小的轉(zhuǎn)矩難以帶動(dòng)小車進(jìn)行足夠快的響應(yīng),這就無法實(shí)現(xiàn)小車最基本的直立平衡控制要求,且其價(jià)格稍貴,因此本次設(shè)計(jì)不考慮使用步進(jìn)電機(jī)作為驅(qū)動(dòng)電機(jī)。方案二:采用直流減速電機(jī)。這種電機(jī)通過外接減速器,實(shí)現(xiàn)增大扭矩的效果。對(duì)比于普通電機(jī)和步進(jìn)電機(jī),直流減速電機(jī)具有價(jià)格優(yōu)惠、速度控制精確、扭矩大等優(yōu)勢(shì)。方案三:采用普通直流電機(jī)。這種電機(jī)常見于電動(dòng)玩具汽車上,是一種得電即轉(zhuǎn)的簡(jiǎn)單電機(jī)。它的轉(zhuǎn)速與供電電流的大小相關(guān)聯(lián),因此其轉(zhuǎn)動(dòng)的速度控制難以滿足兩輪自平衡小車系統(tǒng)的需求,且制動(dòng)效果不理想,所以這種電機(jī)不在考慮范圍。所以綜上所述,采用方案二。2.2.5電機(jī)驅(qū)動(dòng)芯片選擇與比較電機(jī)驅(qū)動(dòng)芯片是一種可通過數(shù)字信號(hào)控制電機(jī)運(yùn)動(dòng)狀態(tài)的芯片。典型的電機(jī)驅(qū)動(dòng)芯片采用標(biāo)準(zhǔn)的TTL邏輯電平信號(hào)控制,具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或禁止器件工作,有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作,并可以外接檢測(cè)電阻,將變化量反饋給控制電路。不同的控制芯片有著一定的差異,包括硬件電路及軟件控制等。以下針對(duì)兩款不同的典型電機(jī)驅(qū)動(dòng)芯片擬出兩個(gè)方案:方案一:以L298N芯片[17]作為電機(jī)驅(qū)動(dòng)芯片,其芯片管腳圖如圖2-12所示,圖2-12L298N管腳功能圖SGS公司生產(chǎn)的L298N芯片是一款內(nèi)部集成有四通道的邏輯驅(qū)動(dòng)電路芯片。L298N芯片可作為二相和四相電機(jī)的驅(qū)動(dòng)芯片,因?yàn)槠鋬?nèi)部含有兩個(gè)H橋的高電壓大電流的驅(qū)動(dòng)器,即雙全橋式驅(qū)動(dòng)器。并且能夠與標(biāo)準(zhǔn)TTL邏輯電平信號(hào)兼容。與此同時(shí),L298N的驅(qū)動(dòng)能力很強(qiáng),能夠驅(qū)動(dòng)46V以下的最大支持2A的電機(jī)。其相關(guān)參數(shù)如下:1.邏輯電壓、電流:5V、0mA-36mA

2.驅(qū)動(dòng)電壓、電流:5V-35V、2A(MAX單橋)

3.最大功率:25W其典型應(yīng)用電路如圖2-13所示。圖2-13L298N驅(qū)動(dòng)芯片典型電路方案二:采用TB6612FNG芯片作為電機(jī)驅(qū)動(dòng)芯片。TB6612FNG芯片如圖2-14所示:圖2-14TB6612FNG芯片圖2-15TB6612FNG內(nèi)部邏輯電路TB6612FNG是由東芝半導(dǎo)體公司生產(chǎn)的一款直流電機(jī)驅(qū)動(dòng)芯片,它具有大電流MOSFET-H橋結(jié)構(gòu),雙通道電路輸出,可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī)。其內(nèi)部邏輯電路如圖2-15所示:TB6612FNG的主要參數(shù)如下所示:1.最大輸入電壓:VM=15V2.最大輸出電流:Iout=1.2A(平均)/3.2A(峰值)3.正反轉(zhuǎn)/短路剎車/停機(jī)功能模式4.內(nèi)置過熱保護(hù)和低壓檢測(cè)電路 TB6612FNG的引腳功能如下圖2-16所示:圖2-16 TB6612FNG的引腳功能其真值表如下表2-3所示:表2-3TB6612FNG真值表AIN1010AIN2001停止正轉(zhuǎn)反轉(zhuǎn)對(duì)比上訴兩個(gè)方案,方案一中使用的L2986N電機(jī)驅(qū)動(dòng)芯片,由其電路圖可以看出,其外部電路較為復(fù)雜,并且在長(zhǎng)時(shí)間工作或驅(qū)動(dòng)一些大功率的電機(jī)時(shí)發(fā)熱嚴(yán)重,還需外加散熱器或散熱片,故綜合考慮其各方面,L298N不在本次設(shè)計(jì)中的驅(qū)動(dòng)芯片首選位置。對(duì)于方案二中使用的TB6612FNG電機(jī)驅(qū)動(dòng)芯片,通過改變PWMA、AIN2、AIN1,可實(shí)現(xiàn)對(duì)直流減速電機(jī)的控制。其中PWMA接到單片機(jī)的PWM引腳,一般10Khz的PWM即可,并通過改變占空比來調(diào)節(jié)電機(jī)的速度,改變AIN1、AIN2狀態(tài)來改變電機(jī)停止與運(yùn)行及轉(zhuǎn)動(dòng)方向??紤]到TB6612FNG的主要性能參數(shù),其能夠很好的與上訴所選取的25GA20E260型號(hào)直流減速電機(jī)相匹配。并且相比于L298N的熱耗性和外圍復(fù)雜的電路,TB6612FNG驅(qū)動(dòng)芯片無需外加散熱片,外圍電路簡(jiǎn)單,只需外接電源濾波電容就可以直接驅(qū)動(dòng)電機(jī),利于減小系統(tǒng)尺寸。綜上所述,采用方案二。2.2.6電源模塊設(shè)計(jì)穩(wěn)定的供壓電源是一個(gè)系統(tǒng)能夠可靠、穩(wěn)定運(yùn)行的保障。本次系統(tǒng)設(shè)計(jì)中所涉及的電壓源有5V及12V電壓源。鑒于現(xiàn)如今電池的種類極為豐富,其中鋰電池技術(shù)的發(fā)展相當(dāng)?shù)某墒?,其較小的體積中能夠裝有較大的電流容量,可充放電性能優(yōu)異,故本次設(shè)計(jì)中的供電電源模塊選擇鋰電池,具體型號(hào)為18650的3.7V、6000mAh的鋰電池,共四節(jié)電池為系統(tǒng)提供14.8V原始電壓,通過兩個(gè)降壓型穩(wěn)壓芯片降壓為5V及12V供電電壓。本次設(shè)計(jì)所選電源轉(zhuǎn)換芯片是由德州儀器公司生產(chǎn)的降壓開關(guān)型電流輸出集成穩(wěn)壓芯片LM2596,其能夠有效地輸出3A的驅(qū)動(dòng)電流,并且同時(shí)具有很好的帶負(fù)載可調(diào)節(jié)特性和線性特性。LM2596芯片經(jīng)典穩(wěn)定輸出電壓電路有3.3V、5V和12V,典型輸出可調(diào)電壓電路支持輸出小于37V的各種穩(wěn)定電壓[18]。LM2596芯片內(nèi)部集成有固定頻率發(fā)生器及頻率補(bǔ)償器,其開關(guān)頻率為150K赫茲,對(duì)比于低頻開關(guān)調(diào)節(jié)器,其可以使用非常小型號(hào)的濾波元器件。由于LM2596芯片僅僅需要四個(gè)簡(jiǎn)單的外接元器件,即能使用通用的標(biāo)準(zhǔn)電感元件,這大大地優(yōu)化了LM2596芯片的使用效果,很大程度上簡(jiǎn)化了電源穩(wěn)壓電路的設(shè)計(jì)。3兩輪自平衡小車硬件設(shè)計(jì)本章將具體設(shè)計(jì)分析兩輪自平衡小車的各個(gè)硬件系統(tǒng),其中包括兩輪自平衡小車的系統(tǒng)總體設(shè)計(jì)、機(jī)械結(jié)構(gòu)設(shè)計(jì)、控制檢測(cè)電路設(shè)計(jì),具體內(nèi)容如下:3.1系統(tǒng)總體設(shè)計(jì)基于上訴總體方案的設(shè)計(jì)與對(duì)比,擬定了兩輪自平衡小車的最終方案,整個(gè)小車系統(tǒng)通過四節(jié)3.7V鋰電池提供14.8V的原始電壓,經(jīng)過兩個(gè)LM2596芯片降壓、穩(wěn)壓分別輸出5V及12V供電電壓給系統(tǒng)相應(yīng)模塊供電;以STC15F2K60S2單片機(jī)作為主控芯片,姿態(tài)檢測(cè)芯片選用MPU6050六軸傳感器為系統(tǒng)提供姿態(tài)信息;速度檢測(cè)模塊選用霍爾編碼器用來測(cè)量小車車輪轉(zhuǎn)速,為系統(tǒng)提供小車的運(yùn)動(dòng)狀態(tài)信息;電機(jī)驅(qū)動(dòng)芯片選用TB6612FNG芯片,將STC15F2K60S2單片機(jī)輸出的電機(jī)控制PWM信號(hào)轉(zhuǎn)換為電機(jī)驅(qū)動(dòng)電流,控制兩個(gè)直流減速電機(jī)做出相應(yīng)的動(dòng)作。系統(tǒng)各元器件之間的關(guān)系如圖3-1所示:電源模塊電源模塊姿態(tài)檢測(cè)模塊車身姿態(tài)單片機(jī)最小系統(tǒng)電機(jī)驅(qū)動(dòng)模塊姿態(tài)檢測(cè)模塊車身姿態(tài)單片機(jī)最小系統(tǒng)電機(jī)驅(qū)動(dòng)模塊測(cè)速模塊測(cè)速模塊直流電機(jī)直流電機(jī)圖3-3系統(tǒng)方案框架圖由圖3-3可以知道,兩輪自平衡小車系統(tǒng)運(yùn)行方式是:由姿態(tài)檢測(cè)模塊MPU6050檢測(cè)的車身姿態(tài)信息及測(cè)速模塊霍爾編碼器檢測(cè)的車輪轉(zhuǎn)速信息輸送給STC15F2K60S2單片機(jī)做綜合分析、處理,得到電機(jī)控制PWM信號(hào),再將PWM信號(hào)輸送到TB6612FNG電機(jī)驅(qū)動(dòng)芯片,對(duì)兩個(gè)直流減速電機(jī)做出相應(yīng)的控制,獲得期望的車身姿態(tài)。整個(gè)系統(tǒng)為一個(gè)閉環(huán)控制系統(tǒng),這一系統(tǒng)符合設(shè)計(jì)要求。3.2機(jī)械結(jié)構(gòu)設(shè)計(jì)此次設(shè)計(jì)的兩輪自平衡小車總體結(jié)構(gòu)設(shè)計(jì)成分層式倒立擺小車結(jié)構(gòu)。其機(jī)械結(jié)構(gòu)總體圖如圖3-2所示:圖3-2兩輪自平衡小車的機(jī)械結(jié)構(gòu)總圖1-六角銅柱2-車輪3-直流減速電機(jī)4-霍爾編碼器安裝位置5-雙電機(jī)固定座6-下層固定板7-螺母螺栓8-上層固定板9-螺栓10-電路板固定預(yù)留槽11-電路板固定預(yù)留孔其中,車身整體尺寸:高度為88mm,寬度為148mm,車輪直徑為48mm;上下層固定板尺寸:長(zhǎng)為102mm,寬為58mm,厚為3mm如圖3-2所示,小車由兩個(gè)直流減速電機(jī)驅(qū)動(dòng)車輪運(yùn)動(dòng)實(shí)現(xiàn)直立平衡或運(yùn)動(dòng)。姿態(tài)檢測(cè)模塊按照1.1.2小節(jié)介紹規(guī)則安裝,即MPU6050模塊的X、Y、Z對(duì)應(yīng)到小車的相應(yīng)位置安裝,且安裝時(shí)須保證MPU6050模塊盡可能的位于小車的機(jī)械結(jié)構(gòu)中心位置;分層結(jié)構(gòu)使得各個(gè)電路模塊及電源模塊有足夠的空間去安裝固定,安裝固定應(yīng)遵循盡量使小車的整體質(zhì)量均勻分布、對(duì)稱的原則。具體安裝固定見以下介紹。3.2.1電機(jī)與車輪固定本次設(shè)計(jì)中的設(shè)計(jì)對(duì)象是固定質(zhì)心不變的兩輪自平衡小車系統(tǒng)[19],小車承受的重量為其有限的自重,故對(duì)電機(jī)與車輪的固定只需滿足過盈配合即可,如圖3-3所示。經(jīng)檢驗(yàn),這樣的電機(jī)車輪組合完全滿足系統(tǒng)要求,在電機(jī)工作時(shí),能夠承受足夠大的外應(yīng)力而不發(fā)生電機(jī)軸與車輪打滑現(xiàn)象。圖3-3電機(jī)與車輪的固定3.2.2電機(jī)與車身固定為了保證電機(jī)與車身在工作時(shí)不會(huì)出現(xiàn)滑動(dòng)現(xiàn)象,本次設(shè)計(jì)中將電機(jī)與車身通過電機(jī)座固定連接。其中,鑒于兩輪自平衡小車系統(tǒng)的特殊性,其兩個(gè)驅(qū)動(dòng)電機(jī)需嚴(yán)格的按照同軸連接、獨(dú)立驅(qū)動(dòng)原則進(jìn)行安裝,為避免使用兩個(gè)電機(jī)座分別將電機(jī)固定到車身上時(shí)出現(xiàn)的安裝誤差(主要是同軸度誤差),本次設(shè)計(jì)中使用專用電機(jī)座——雙電機(jī)固定座如圖3-4所示。這種電機(jī)座上面預(yù)留的安裝孔能夠滿足其與車身可靠地固定,如圖3-5所示。圖3-4雙電機(jī)固定座圖3-5雙電機(jī)固定座與車身固定3.2.3測(cè)速模塊分布與固定本次設(shè)計(jì)中的速度檢測(cè)模塊霍爾編碼器模塊需與直流減速電機(jī)直接連接。具體安裝固定如圖3-6所示:圖3-6霍爾編碼器安裝位置3.2.4電池與電路板安裝鋰電池可采用最簡(jiǎn)單的膠帶固定,將每節(jié)電池之間正負(fù)相接構(gòu)成系統(tǒng)原始供電電壓源,將電池固定在底層固定板上,如圖3-7所示,并通過接線將電源引入電壓穩(wěn)壓模塊;各個(gè)電路板的安裝位置分布如圖3-8所示。圖3-7電池固定安裝位置圖3-8電路板固定安裝位置3.3控制檢測(cè)電路設(shè)計(jì)3.3.1STC15F2K60S2單片機(jī)系統(tǒng)設(shè)計(jì)本次設(shè)計(jì)采用的STC15F2K60S2單片機(jī)是由宏晶科技有限公司設(shè)計(jì)生產(chǎn)制作的。其有經(jīng)典51單片機(jī)所有的引腳結(jié)構(gòu)及與51單片機(jī)完全兼容的指令系統(tǒng)。在此基礎(chǔ)上擴(kuò)展了更多的實(shí)用功能,并且優(yōu)于傳統(tǒng)51單片機(jī)的是其內(nèi)部高可復(fù)位,可徹底省去外部復(fù)位電路;內(nèi)部集成高精度R/C時(shí)鐘,5MHz-35MHz寬范圍可設(shè)置,可徹底省去外部昂貴的晶振電路。因此其最小系統(tǒng)極其簡(jiǎn)單如圖3-9所示:圖3-9STC15F2K60S2單片機(jī)最小系統(tǒng)電路其中,電容C1、C2為去耦電容,其作用是降低電源線噪聲影響,提高控制系統(tǒng)的抗干擾能力。3.3.2姿態(tài)檢測(cè)模塊設(shè)計(jì)姿態(tài)檢測(cè)模塊電路根據(jù)對(duì)MPU6050模塊所使用到的功能進(jìn)行設(shè)計(jì)的。本次設(shè)計(jì)中僅使用到MPU6050模塊的加速度計(jì)與陀螺儀,并且使用的是標(biāo)準(zhǔn)的IIC通信技術(shù),即對(duì)應(yīng)于MPU6050模塊上面的SDA與SCL兩個(gè)管腳。其支持的供電電壓范圍是3V到6V,鑒于本次設(shè)計(jì)中的電源模塊能夠提供的穩(wěn)定電壓輸出是5V和12V,故對(duì)于MPU6050模塊的電路設(shè)計(jì)中采用的是5V供電電壓。MPU6050芯片本身性能要求在SDA與SCL管腳處需接上拉電阻,未使用到的管腳可以處于空閑模式,因此姿態(tài)檢測(cè)模塊的電路設(shè)計(jì)如下圖3-10所示:圖3-10姿態(tài)檢測(cè)模塊電路3.3.3速度檢測(cè)模塊設(shè)計(jì)本次設(shè)計(jì)選用的霍爾編碼器,又叫霍爾旋轉(zhuǎn)編碼器[20],是一種增量型編碼器,利用霍爾元件對(duì)磁場(chǎng)敏感的特性即霍爾效應(yīng)作為工作原理。電路設(shè)計(jì)中包括兩路霍爾傳感器構(gòu)成的測(cè)速模塊,其電路完全相同,只是存在了一個(gè)90度的相位角,因此該電路不僅可以對(duì)同一測(cè)量對(duì)象檢測(cè)出兩路速度信號(hào),通過兩路信號(hào)的對(duì)比、求平均值即可得出精確的速度信息,還可以通過霍爾元件對(duì)磁場(chǎng)極性的敏感特性知道車輪旋轉(zhuǎn)的正負(fù)方向?;魻柧幋a器測(cè)速原理圖如圖3-11所示:圖3-11霍爾編碼器電路3.3.4電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)隨著直流電機(jī)的發(fā)展,其傳統(tǒng)的機(jī)械結(jié)構(gòu)和控制方式發(fā)生了極大的變化,可編程控制進(jìn)入了電機(jī)控制領(lǐng)域,并伴隨著各種新式的電子元器件的出現(xiàn),脈寬調(diào)制(PWM)控制方式得以在電機(jī)控制領(lǐng)域大顯身手,并且單片機(jī)能夠能非常容易實(shí)現(xiàn)這一控制方式。本次設(shè)計(jì)中單片機(jī)控制的直流減速電機(jī)通過采用的電機(jī)驅(qū)動(dòng)集成電路構(gòu)成,即B6612FNG電機(jī)驅(qū)動(dòng)集成電路,B6612FNG的典型外圍應(yīng)用電路如下圖3-12所示:圖3-12B6612FNG的典型外圍應(yīng)用電路其應(yīng)用電路圖更可簡(jiǎn)化為下圖3-13所示:圖3-13TB6612FNG簡(jiǎn)化應(yīng)用電路圖3.3.5電源穩(wěn)壓模塊設(shè)計(jì)在兩輪自平衡小車系統(tǒng)中,各個(gè)模塊的供電電壓往往不同,如主控制芯片模塊、車速檢測(cè)模塊、姿態(tài)檢測(cè)模塊需5V供電電壓、電機(jī)驅(qū)動(dòng)模塊需12V供電電壓等。由于電機(jī)本身的特性,在驅(qū)動(dòng)電機(jī)時(shí)會(huì)引起系統(tǒng)電路中的供電電流出現(xiàn)較大的波動(dòng),因此考慮到各個(gè)模塊對(duì)穩(wěn)定電壓的要求,電源穩(wěn)壓模塊需采用低壓降的三端穩(wěn)壓器。本次設(shè)計(jì)采用LM2596作為穩(wěn)壓芯片。根據(jù)LM2596使用手冊(cè)上面的測(cè)試電路及其布線方案[21]如圖3-14所示:圖3-14LM2596測(cè)試電路其中,由此可見,穩(wěn)壓電路輸出電壓的調(diào)節(jié)參數(shù)為R2,且R2與VOUT有關(guān)。由2.2.6節(jié)電源模塊設(shè)計(jì)中介紹,本次設(shè)計(jì)采用14.8V供應(yīng)電壓電源,系統(tǒng)中需要兩種供電電壓,即5V和12V。因此將VOUT=5V及VOUT=12V代入R2計(jì)算公式,可以得到在這兩種輸出電壓下的電阻R2值為:5V輸出時(shí)R2=3.06K,查常用電阻值表后取3.09K,1%12V輸出時(shí)R2=8.75K,查常用電阻值表后取8.8K,1%由上訴求得數(shù)據(jù)可以繪出5V穩(wěn)壓電路及12V穩(wěn)壓電路圖如圖3-15和圖3-16所示:圖3-155V電源穩(wěn)壓電路圖3-1612V電源穩(wěn)壓電路經(jīng)測(cè)試,LM2596電源穩(wěn)壓模塊的輸出電壓具有小波動(dòng)、低壓降等良好性質(zhì),能夠完全滿足系統(tǒng)要求。4兩輪自平衡小車軟件設(shè)計(jì)上訴章節(jié)介紹了兩輪自平衡小車的硬件結(jié)構(gòu)設(shè)計(jì),這好比給了整個(gè)系統(tǒng)一個(gè)單純的外殼,而要讓系統(tǒng)能夠“活”起來,就需要軟件設(shè)計(jì)賦予其靈魂。本章將設(shè)計(jì)兩輪自平衡小車的主要軟件,包括:延時(shí)子程序設(shè)計(jì)、姿態(tài)檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)、速度檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)、小車平衡直立控制子程序設(shè)計(jì)、電機(jī)驅(qū)動(dòng)子程序設(shè)計(jì),附錄中將給出完整程序。4.1STC15F2K60S2單片機(jī)內(nèi)部時(shí)鐘設(shè)置STC15F2K60S2單片機(jī)是一種1T高速51單片機(jī),其具有外部時(shí)鐘源及內(nèi)部時(shí)鐘源兩個(gè)時(shí)鐘源[22]。本次兩輪自平衡小車系統(tǒng)的設(shè)計(jì)中,對(duì)主控芯片的運(yùn)算速度有較高要求,故為了充分發(fā)揮出STC15F2K60S2單片機(jī)的高速特性及減少開支,采用STC15F2K60S2單片機(jī)的內(nèi)部自帶時(shí)鐘源為其自身提供振蕩時(shí)鐘。STC15F2K60S2單片機(jī)的內(nèi)部時(shí)鐘源可設(shè)置范圍是5M赫茲到35M赫茲[23],其設(shè)置方式很簡(jiǎn)單:通過宏晶公司的STC-ISP單片機(jī)程序下載調(diào)試軟件即可對(duì)STC15F2K60S2單片機(jī)的內(nèi)部時(shí)鐘源工作頻率進(jìn)行設(shè)置,STC-ISP軟件顯示如下圖4-1所示。內(nèi)部時(shí)鐘設(shè)置的具體方式如以下步驟:1.單片機(jī)型號(hào)欄:選擇STC15F2K60S2;2.串口號(hào)欄:選擇對(duì)應(yīng)串口或者直接掃描;3.硬件選項(xiàng):輸入用戶程序運(yùn)行時(shí)的IRC頻率欄設(shè)置想要工作的頻率;4.完成下載程序或者調(diào)試的其他步驟。圖4-1STC-ISP軟件界面對(duì)于傳統(tǒng)51單片機(jī)的常見工作時(shí)鐘頻率12M赫茲,這一工作時(shí)鐘頻率能夠很容易地對(duì)系統(tǒng)軟件程序中有關(guān)延時(shí)的程序進(jìn)行計(jì)算。因此,為了方便后續(xù)的計(jì)算及滿足系統(tǒng)高速運(yùn)行的要求,本次主控芯片STC15F2K60S2單片機(jī)的工作頻率設(shè)置為24M赫茲,如圖4-2所示:圖4-2主控芯片內(nèi)部時(shí)鐘設(shè)4.2軟件部分總體框圖程序總流程圖如圖4-3所示:開始單片機(jī)各功能模塊初始化MPU6050模塊采樣霍爾編碼器模塊采樣數(shù)據(jù)分析處理直立平衡PD算法計(jì)算控制輸出電機(jī)控制PWM占空比是小車姿態(tài)是否正常否斷開系統(tǒng)電源結(jié)束圖4-3程序總體流程示意圖圖4-3顯示了本次論文程序設(shè)計(jì)的思路。鑒于STC15F2K60S2單片機(jī)在經(jīng)典51結(jié)構(gòu)單片機(jī)的基礎(chǔ)上擴(kuò)展了許多的功能,這些功能涉及到的一些特殊功能寄存器在原有的Keil編輯環(huán)境中沒有做相關(guān)的定義,故在使用Keil開發(fā)程序之前需對(duì)相關(guān)特殊功能寄存器進(jìn)行定義[24];另外,MPU6050模塊的內(nèi)部地址也需要在程序中進(jìn)行相關(guān)的定義[25]。在進(jìn)入到主程序之前需對(duì)相關(guān)的參數(shù)、引腳進(jìn)行定義以方便程序的閱讀和查錯(cuò)。相關(guān)定義如下所示:STC15F2K60S2單片機(jī)部分相關(guān)寄存器定義://PWM特殊功能寄存器sfrCCON=0xD8;//PWM控制寄存器sbitCF=CCON^7;sbitCR=CCON^6;sbitCCF2=CCON^2;sbitCCF1=CCON^1;sbitCCF0=CCON^0;sfrCMOD=0xD9;//PWM工作方式寄存器sfrCL=0xE9;//PWM計(jì)數(shù)器低8位sfrCH=0xF9;//PWM計(jì)數(shù)器高8位sfrCCAPM0=0xDA;//CCP模塊0的PWM寄存器sfrCCAPM1=0xDB;//CCP模塊1的PWM寄存器sfrPCA_PWM0=0xF2;//CCP模塊0的PWM寄存器sfrPCA_PWM1=0xF3;//CCP模塊1的PWM寄存器sfrCCAP0H=0xFA;//CCP模塊0的PWM數(shù)值寄存器高8位sfrCCAP1H=0xFB;//CCP模塊1的PWM數(shù)值寄存器高8位sfrCCAP0L=0xEA;//CCP模塊0的PWM數(shù)值寄存器低8位sfrCCAP1L=0xEB;//CCP模塊1的PWM數(shù)值寄存器低8位MPU6050內(nèi)部相關(guān)地址定義:#define SMPLRT_DIV 0x19 #define Configure 0x1A #define GYRO_Configure 0x1B #define Accelerometer_Configure 0x1C #define Accelerometer_X_H 0x3B#define Accelerometer_X_L 0x3C#define Accelerometer_Y_H 0x3D#define Accelerometer_Y_L 0x3E#define Gyro_X_H 0x43#define Gyro_X_L 0x44 #define Gyro_Y_H 0x45#define Gyro_Y_L 0x46#define Gyro_Z_H 0x47#define Gyro_Z_L 0x48#define PWR_MGMT_1 0x6B #define WHO_AM_I 0x75 #define SlaveAddress 0xD0 STC15F2K60S2單片機(jī)相關(guān)引腳定義:sbitSCL=P0^4;//定義IIC時(shí)鐘總線sbitSDA=P0^5;//定義IIC數(shù)據(jù)總線sbitAMOTA=P3^5;//定義霍爾編碼器A的A相輸出計(jì)數(shù)端sbitBMOTA=P3^1;//定義霍爾編碼器B的A相輸出計(jì)數(shù)端sbitPWMA=P2^5;//定義電機(jī)A的PWM控制端sbitPWMB=P2^6;//定義電機(jī)B的PWM控制端sbitAIN1=P0^0;sbitAIN2=P0^1;//定義電機(jī)A的正轉(zhuǎn)反轉(zhuǎn)控制端sbitBIN1=P0^2;sbitBIN2=P0^3;//定義電機(jī)B的正轉(zhuǎn)反轉(zhuǎn)控制端4.3延時(shí)子程序設(shè)計(jì)延時(shí)子程序voiddelay_ms(unsignedintk) //延時(shí)kms{ unsignedintdataTemp1,Temp2,Temp3; for(Temp1=0;Temp1<k;Temp1++){for(Temp3=0;Temp3<4;Temp3++) {Temp2=250; while(Temp2)Temp2--;}}}已知本次設(shè)計(jì)中,通過上一小節(jié)的方法將STC15F2K60S2單片機(jī)的時(shí)鐘振蕩頻率設(shè)置為24M赫茲,為傳統(tǒng)51單片機(jī)12M赫茲時(shí)鐘振蕩頻率的雙倍,所以可以簡(jiǎn)單計(jì)算出在這一工作頻率下的單片機(jī)運(yùn)算速度大致為傳統(tǒng)51單片機(jī)的雙倍。通過Keil軟件進(jìn)行測(cè)時(shí)調(diào)試,該程序基本滿足毫秒級(jí)別的延時(shí)。另外對(duì)于本次設(shè)計(jì)的系統(tǒng)來說,要求有多種不同程度的延時(shí),包括毫秒級(jí)別和微妙級(jí)別的延時(shí)程序,微妙級(jí)別的程序設(shè)計(jì)同以上程序類似,這里不做示例。4.4姿態(tài)檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)開始發(fā)送開始信號(hào)寫MPU6050地址位和寫數(shù)據(jù)位發(fā)送寄存器地址位否接收到MPU6050應(yīng)答信號(hào)是再發(fā)送開始信號(hào)寫MPU6050地址位和讀數(shù)據(jù)位否接收到MPU6050應(yīng)答信號(hào)是接收MPU6050寄存器數(shù)據(jù)否接收完數(shù)據(jù)是發(fā)送拒絕應(yīng)答信號(hào)和停止標(biāo)志位結(jié)束圖4-4MPU6050模塊數(shù)據(jù)讀取流程圖如上面流程圖所示,要從姿態(tài)檢測(cè)模塊獲得數(shù)據(jù)需要經(jīng)過多個(gè)步驟流程才可以。本次設(shè)計(jì)中,使用的是MPU6050模塊的IIC總線通信方式獲得相應(yīng)數(shù)據(jù)信息的[26]。具體姿態(tài)檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)如下所示:voidIIC_Begin()//IIC開始信號(hào)(S){SDA=1;//IIC數(shù)據(jù)總線拉為高電平SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);//50us延時(shí)SDA=0;//IIC數(shù)據(jù)總線降為低電平產(chǎn)生下降沿信號(hào)delay_us(50);//50us延時(shí)SCL=0;//IIC時(shí)鐘總線降為低電平}voidIIC_End()//IIC終止信號(hào){SDA=0;//IIC數(shù)據(jù)總線降為低電平SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);//50us延時(shí)SDA=1;//IIC數(shù)據(jù)總線拉為高電平delay_us(50);//50us延時(shí)}voidIIC_TransmitACK(bitack)//IIC發(fā)送應(yīng)答信號(hào)//入口參數(shù):ack(0:ACK1:NAK){SDA=ack;//IIC數(shù)據(jù)總線寫應(yīng)答信號(hào)SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);//50us延時(shí)SCL=0;//IIC時(shí)鐘總線降為低電平delay_us(50);//50us延時(shí)}bitIIC_ReceiveACK()//IIC接收應(yīng)答信號(hào){SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);//50us延時(shí)CY=SDA;//讀取IIC數(shù)據(jù)總線應(yīng)答信號(hào)SCL=0;//IIC時(shí)鐘總線降為低電平delay_us(50);//50us延時(shí)returnCY;}voidIIC_TransmitByte(uchardat)//向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù){uchari;for(i=0;i<8;i++)//8位計(jì)數(shù)器{dat<<=1;//移出數(shù)據(jù)的最高位SDA=CY;//IIC數(shù)據(jù)總線送數(shù)據(jù)口SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);//50us延時(shí)SCL=0;//IIC時(shí)鐘總線降為低電平delay_us(50);//50us延時(shí)}IIC_ReceiveACK();}ucharIIC_ReceiveByte()//從IIC總線接收一個(gè)字節(jié)數(shù)據(jù){uchari;uchardat=0;SDA=1;//IIC數(shù)據(jù)總線上拉,開始獲得MPU6050數(shù)據(jù),for(i=0;i<8;i++)//8位計(jì)數(shù)器{dat<<=1;SCL=1;//IIC時(shí)鐘總線拉為高電平delay_us(50);/50us/延時(shí)dat|=SDA;//讀取MPU6050相應(yīng)寄存器數(shù)據(jù)SCL=0;//IIC時(shí)鐘總線降為低電平delay_us(50);//50us延時(shí)}returndat;}voidSingle_WriteIIC(ucharRegister_Address,ucharRegister_data)//向IIC設(shè)備寫入一個(gè)字節(jié)數(shù)據(jù){IIC_Begin();//發(fā)送開始信號(hào)子函數(shù)調(diào)用IIC_TransmitByte(SlaveAddress);//發(fā)送MPU6050地址位和寫數(shù)據(jù)位子函數(shù)調(diào)用IIC_TransmitByte(Register_Address);//發(fā)送寄存器地址位子函數(shù)調(diào)用IIC_TransmitByte(Register_data);//發(fā)送寄存器數(shù)據(jù)子函數(shù)調(diào)用IIC_End();//終止信號(hào)子函數(shù)調(diào)用}ucharSingle_ReadIIC(ucharRegister_Address)//從IIC設(shè)備讀取一個(gè)字節(jié)數(shù)據(jù){ ucharRegister_data; IIC_Begin();//發(fā)送開始信號(hào) IIC_TransmitByte(SlaveAddress);//發(fā)送MPU6050地址位和寫數(shù)據(jù)位 IIC_TransmitByte(Register_Address);//發(fā)送MPU6050寄存器地址地址 IIC_Begin();//發(fā)送開始信號(hào) IIC_TransmitByte(SlaveAddress+1);//發(fā)送MPU6050地址位和讀數(shù)據(jù)位 Register_data=IIC_ReceiveByte();//讀出MPU6050相應(yīng)寄存器數(shù)據(jù) IIC_TransmitACK(1);//發(fā)送應(yīng)答信號(hào)(拒絕應(yīng)答) IIC_End();//發(fā)送終止信號(hào) returnRegister_data;//返回相應(yīng)寄存器數(shù)據(jù)}該程序是在1ms中斷中執(zhí)行的,通過返回的寄存器數(shù)據(jù),如果返回的是角速度,則可根據(jù):角度=角速度*時(shí)間,求得當(dāng)前角度;如果返回的是角角速度,則可根據(jù):角度=角加速度*(時(shí)間)2,其中,時(shí)間即1ms。角度計(jì)算程序如下:floatGet_Angle(ucharRegister_Address)//獲得角度子函數(shù){ uintH,L,lastRegister_data; H=Single_ReadIIC(Register_Address); L=Single_ReadIIC(Register_Address+1); lastRegister_data=(H<<8)+L;//合成16位數(shù)據(jù)If(Register_Address>0x40)//如果返回參數(shù)為角速度 {Angle=lastRegister_data*0.001//角度=角速度*時(shí)間}Elseif//如果返回參數(shù)為角加速度{angle=lastRegister_data*0.000001//角度=角加速度*(時(shí)間)2}returnAngle;//返回角度值}4.5速度檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)速度檢測(cè)的方法是通過單片機(jī)的外部計(jì)數(shù)器端口在一定時(shí)間t內(nèi)對(duì)霍爾編碼器輸出方波信號(hào)進(jìn)行計(jì)數(shù),通過速度計(jì)算公式:速度=t時(shí)間內(nèi)的計(jì)數(shù)次數(shù)/t,計(jì)算出車輪速度。本次設(shè)計(jì)中對(duì)速度檢測(cè)有較高的要求,即要求在盡可能短的時(shí)間內(nèi)獲得盡可能多的速度信息,并完成對(duì)短時(shí)間內(nèi)的速度值求平均值,以滿足系統(tǒng)的算法要求。此次設(shè)計(jì)中設(shè)定的測(cè)速頻率為每毫秒內(nèi)獲得兩側(cè)左右車輪的速度值,即在1ms周期內(nèi)對(duì)左右霍爾編碼器分別進(jìn)行兩次方波采樣,再對(duì)計(jì)數(shù)值求平均值,獲得最后反饋給主控芯片的的速度值[27]。具體的速度檢測(cè)模塊數(shù)據(jù)讀取子程序設(shè)計(jì)如下所示:IntGet_Speed(ucharcounter)//測(cè)速子函數(shù){ while(TF0)

//定時(shí)器0中斷觸發(fā)

{n=counter;//記下計(jì)數(shù)器數(shù)值speed=n/4;

//計(jì)算速度,每四個(gè)脈沖轉(zhuǎn)一圈

if(TF0==1)

{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論