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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

if(TF0==1)

{

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論