新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)_第1頁(yè)
新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)_第2頁(yè)
新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)_第3頁(yè)
新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)_第4頁(yè)
新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)—控制系統(tǒng)設(shè)計(jì)摘要在園林設(shè)計(jì)和修剪時(shí)割草機(jī)是必不可少的重要工具,尤其對(duì)于園藝工人來說割草機(jī)的使用更是家常便飯,然而對(duì)于修剪草坪的工作并不是一件輕松容易的活。機(jī)器笨重、發(fā)動(dòng)機(jī)轟鳴是很多人對(duì)割草機(jī)的刻板印象。設(shè)計(jì)一款省時(shí)、省力、高效并且低噪音的割草機(jī)即是本課題主要目的。新型自動(dòng)割草機(jī)的控制核心系統(tǒng)為基于ARMCortex—M3的架構(gòu),采用STM32F1系列為控制芯片,采用四輪四驅(qū)的編碼器電機(jī)實(shí)現(xiàn)驅(qū)動(dòng),同時(shí)配合MPU6050陀螺儀芯片實(shí)現(xiàn)PID算法控制實(shí)現(xiàn)割草機(jī)精準(zhǔn)運(yùn)動(dòng)。操作方式采用遙控Wi-Fi遠(yuǎn)程控制,其采用NRF24L01芯片通過SPI通信將數(shù)據(jù)傳輸至核心控制板。為了實(shí)現(xiàn)割草的高度,使用PWM控制兩個(gè)舵機(jī)的角度配合連接桿來完成升降。割草刀片使用直流電機(jī)采用往復(fù)式的運(yùn)動(dòng)方式實(shí)現(xiàn)草坪修剪。關(guān)鍵詞:割草機(jī);STM32F1;編碼電機(jī);PID算法;NRF24L01;舵機(jī)Designanddevelopmentofnewautomaticlawnmower—controlsystemdesignAbstractThelawnmowerisanindispensableandimportanttoolingardendesignandmowing.Especiallyforgardeners,theuseoflawnmowersiscommonplace,butitisnotaneasyjobforlawntrimming.Heavymachinesandroaringenginesarestereotypesoflawnmowers.Designingalawnmowerthatsavestime,effort,efficiency,andlownoiseisthemainpurposeofthistopic.ThecontrolcoresystemofthenewautomaticlawnmowerisbasedontheARMCortex-M3architecture,usingtheSTM32F1seriesasthecontrolchip,usingfour-wheeldriveencodermotortoachievethedrive.Atthesametime,itcooperateswithMPU6050chiptorealizePIDalgorithmcontroltoachieveprecisemotionoflawnmower.TheoperationmodeusesremotecontrolWi-Firemotecontrol,whichusestheNRF24L01chiptotransmitdatatothecorecontrolboardthroughSPIcommunication.Inordertoachievetheheightofmowing,PWMisusedtocontroltheangleofthetwoservosandtheconnectingrodtocompletethelifting.ThemowingbladeusesaDCmotortoreciprocatethelawnusingareciprocatingmotion.Keywords:Lawnmower;STM32F1;Codedmotor;PIDalgorithm;NRF24L01;Steeringgear

目錄1緒論 11.1本設(shè)計(jì)的意義及其目的 11.2割草機(jī)在國(guó)內(nèi)外的發(fā)展概況 11.3割草機(jī)主要技術(shù)內(nèi)容 21.4新型自動(dòng)割草機(jī)的主要優(yōu)勢(shì) 22割草機(jī)總體設(shè)計(jì)方案 32.1設(shè)計(jì)原理及方案 32.2割草刀具 32.3車身獨(dú)立懸掛 62.4刀具升降結(jié)構(gòu) 73元器件選型 83.1主控芯片選型 83.2無(wú)線通訊芯片選型 93.3舵機(jī)選型 103.3.1舵機(jī)的應(yīng)用 103.3.2舵機(jī)工作原理及選型 113.4編碼器電機(jī)選型 123.4.1霍爾編碼編碼器的原理 123.4.2直流減速電機(jī)的選型 133.5電機(jī)驅(qū)動(dòng) 144硬件設(shè)計(jì)及連接 164.1通用I/O口引腳分配 164.2電機(jī)過載電路設(shè)計(jì) 174.3電路布局 175開發(fā)環(huán)境介紹 195.1編譯環(huán)境Keil 195.2STLINK仿真器 205.3匿名上位機(jī)姿態(tài)采集 216程序底層配置與系統(tǒng)軟件設(shè)計(jì) 226.1STM32芯片底層配置 226.1.1底層代碼的意義 226.1.2固件庫(kù)配置過程 236.2舵機(jī)定時(shí)器配置 266.32.4G無(wú)線通信配置 286.3.1SPI通信配置 286.3.2NRF24L01芯片配置 316.5電子陀螺儀MPU6050及IIC配置 346.5.1MPU6050配置流程 346.5.2歐拉角獲取 356.6PID算法 356.6.1PID算法的應(yīng)用 356.6.2離散化PID 367總結(jié) 38參考文獻(xiàn) 39附錄 41附錄1部分程序代碼 41附錄2英文文獻(xiàn) 50附錄3英文文獻(xiàn)翻譯 57PAGE61緒論1.1本設(shè)計(jì)的意義及其目的割草機(jī)作為生活當(dāng)中常見的工具,經(jīng)常在公園、小區(qū)、學(xué)校等場(chǎng)所進(jìn)入人們視野。割草機(jī)能將過長(zhǎng)的草坪修剪成人們需要的高度,以此避免昆蟲蛇鼠等動(dòng)物棲息,以及保持環(huán)境美觀的功能。割草機(jī)的出現(xiàn)極大幫助人們?cè)趫@林綠化方面減輕了負(fù)擔(dān),然而一直以來使用的割草機(jī)留給人們的都是笨重、噪聲大、揚(yáng)塵、尾氣味濃等印象。由于割草機(jī)自問世以來由于需求少、技術(shù)含量低、利潤(rùn)也不高所以很少得到人們的關(guān)注。因其目標(biāo)人群小眾,生產(chǎn)制造商很少投入研究改善傳統(tǒng)割草機(jī)。在市場(chǎng)上很難看見一款輕便、高效、低噪音的割草機(jī),因此本課題就割草機(jī)升級(jí)迭代進(jìn)行研究。新型自動(dòng)割草機(jī)的設(shè)計(jì)與開發(fā)的目的為改良升級(jí)傳統(tǒng)燃油發(fā)動(dòng)機(jī)式割草機(jī),致力于解決傳統(tǒng)割草機(jī)存在的詬病,提升操作人員的使用感和方便性。將理發(fā)器的工作原理融入至割草機(jī)中,使用電能電機(jī)替代燃油發(fā)動(dòng)機(jī)的方式再融入現(xiàn)代智能設(shè)備和人性化的設(shè)計(jì),可以減少刀片磨損和對(duì)草地的傷害同時(shí)降低了工作時(shí)的揚(yáng)塵。擯棄燃油發(fā)動(dòng)機(jī)的使用可以大大減輕割草機(jī)機(jī)身的重量,同時(shí)沒有了尾氣對(duì)環(huán)境污染的困擾,另外噪音擾民的問題也得到了有效解決。一直以來都很少有人對(duì)園藝工人使用的工作器械進(jìn)行重視,希望在將此項(xiàng)割草機(jī)設(shè)計(jì)生產(chǎn)出來能得到更多人的青睞和體驗(yàn)。非常適合在學(xué)校、公園、圖書館、小區(qū)、院子等需要安靜作業(yè)的場(chǎng)所使用,以及地勢(shì)不規(guī)整的區(qū)域使用。1.2割草機(jī)在國(guó)內(nèi)外的發(fā)展概況最早的割草機(jī)出現(xiàn)時(shí)間在1805年,最初的割草機(jī)是一些簡(jiǎn)單的手動(dòng)工具,隨著內(nèi)燃機(jī)的普及應(yīng)用,英國(guó)工程師倫敦恩斯于1902年設(shè)計(jì)出的滾筒式割草機(jī)是世界第一臺(tái)以內(nèi)燃發(fā)動(dòng)機(jī)作為動(dòng)力的割草機(jī),現(xiàn)在的很多割草機(jī)依舊采用該原理。在20世紀(jì)50年代后隨著自動(dòng)化農(nóng)機(jī)的迅速發(fā)展,割草機(jī)發(fā)展也隨之迅速崛起;在70年代之后,歐美等國(guó)家經(jīng)濟(jì)水平迅速提升,越來越多小型割草機(jī)進(jìn)入歐美家庭成為必不可少的工具;在90年代后歐美國(guó)家的技術(shù)能力提升,農(nóng)作物的機(jī)械化種植越來越普遍,割草機(jī)也作為農(nóng)機(jī)的一種,在此時(shí)技術(shù)水平也得到提升,種類和品牌也變得繁多。我國(guó)的草坪機(jī)械設(shè)備起步較晚,直至70年代改革發(fā)放后才緩慢發(fā)展,到90年代后期中國(guó)市場(chǎng)受到西方資本的青睞開始對(duì)華投資建廠,因此開始著手割草機(jī)的設(shè)計(jì)加工,由此也開辟了的國(guó)內(nèi)的市場(chǎng),割草機(jī)的需求被逐漸開拓出來。目前中國(guó)生產(chǎn)制造的割草機(jī)已出口世界各地,家庭消費(fèi)級(jí)割草機(jī)占全球總銷售量的30%以上。1.3割草機(jī)主要技術(shù)內(nèi)容解決能源問題,使用鋰電池為儲(chǔ)電能源。采用的鋰電池容量大小會(huì)影響整車的重量和空間占用而電源的電壓和放電倍率會(huì)直接影響到穩(wěn)壓和電機(jī)的選型;割草機(jī)具備四輪獨(dú)立懸掛結(jié)構(gòu)以應(yīng)對(duì)復(fù)雜不規(guī)整的工作環(huán)境,同時(shí)具備調(diào)節(jié)割草高度的功能;整車需要使用的傳感器、通信設(shè)備和電機(jī)的數(shù)量會(huì)提升對(duì)I/O引腳的需求也會(huì)對(duì)芯片具體型號(hào)有所影響,因此需根據(jù)實(shí)際需求對(duì)主控芯片進(jìn)行合理選型和配置;割草機(jī)使用Wi-Fi通訊技術(shù)進(jìn)行遠(yuǎn)程遙控操作,所采用的通訊芯片應(yīng)達(dá)到需求的傳輸距離。在傳輸過程中保證數(shù)據(jù)傳送的順利,在數(shù)據(jù)丟失時(shí)應(yīng)采取及時(shí)的響應(yīng);割草機(jī)使用了四個(gè)電機(jī)獨(dú)立驅(qū)動(dòng),通過對(duì)輪子之間的差速來實(shí)現(xiàn)車子不同程度的轉(zhuǎn)彎,另外需要對(duì)于準(zhǔn)確的直行后退需進(jìn)行閉環(huán)控制達(dá)到誤差的補(bǔ)償?shù)靡詫?shí)現(xiàn)更精確的控制;選用合適的刀片刀具配合相應(yīng)運(yùn)動(dòng)方式,達(dá)到高效切割青草的目的同時(shí)搭配合適的護(hù)具來避免操作者和他人受到傷害。1.4新型自動(dòng)割草機(jī)的主要優(yōu)勢(shì)新型割草機(jī)通過遙控?fù)u桿來控制其運(yùn)動(dòng)路徑,可遙控距離180-240米(空曠地帶),減輕操作人員的工作壓力和負(fù)擔(dān)。選擇最優(yōu)的刀具和工作方式實(shí)現(xiàn)高效整齊地將草地修剪成需要的高度,同時(shí)刀片具備可調(diào)整高度功能,提供用戶個(gè)性化需求。電機(jī)具備過載保護(hù)電路,遇到堅(jiān)硬的物體會(huì)自動(dòng)停止工作,能有效避免刀具損壞或者人員傷害。割草機(jī)以應(yīng)對(duì)不同場(chǎng)合下的需求,所設(shè)計(jì)的機(jī)械結(jié)構(gòu)需具備能適合不同地形行駛和工作,因此四輪獨(dú)立懸掛顯得必不可少。機(jī)械結(jié)構(gòu)差異、內(nèi)部誤差、地勢(shì)不規(guī)整會(huì)造成割草機(jī)前進(jìn)方向不能按照理想狀態(tài),所以使用霍爾編碼器采集電機(jī)數(shù)據(jù)配合電子陀螺儀MPU6050芯片獲取車身姿態(tài)信息融入PID算法,實(shí)現(xiàn)PID雙閉環(huán)控制系統(tǒng)以完成割草機(jī)車身校準(zhǔn)。 2割草機(jī)總體設(shè)計(jì)方案2.1設(shè)計(jì)原理及方案車身采用雙層承重架設(shè)計(jì)的方案,兩層板均使用3mm厚度的鋁合金材料,車架通過定制切割、打孔及折彎等工序完成。頂層為支撐板用于支撐獨(dú)立懸掛的輪子以及舵機(jī)所承載的刀片,同時(shí)支撐板頂層還用于放置PCB電路板、驅(qū)動(dòng)電路及通信天線。底層為承重板用于放置電池及電機(jī),承重板在板寬邊緣有10mm的90度彎折,目的是是為了防止底板受力彎曲變形。兩層板之間使用10根M4銅柱固定。車身總長(zhǎng)386mm,寬325mm,高199mm承重板距離地面129mm。整體車身結(jié)構(gòu)如圖2.1所示。圖2.1整體車身結(jié)構(gòu)2.2圖2.1整體車身結(jié)構(gòu)割草機(jī)刀片在市場(chǎng)上用于割草的方式常見形式有以下幾種;

(1)圓盤式刀片如圖2.2所示,采用一整塊圓形刀片圓周附有鋸齒通過電機(jī)旋轉(zhuǎn)實(shí)現(xiàn)割草效果,也是比較傳統(tǒng)和常見的割草方式。其優(yōu)點(diǎn)是旋轉(zhuǎn)后的線速度大可以切割枝干或粗壯的雜草,而缺點(diǎn)是圓盤式割草機(jī)占用空間較大容易,質(zhì)量重旋轉(zhuǎn)慣性大在操作人員操控不當(dāng)具有發(fā)生意外的可能;圖2.3甩繩式轉(zhuǎn)盤圖2.2圓盤式刀片(2)甩繩式轉(zhuǎn)盤如圖2.3所示,通常采用兩根或四根打草繩固定轉(zhuǎn)盤上旋轉(zhuǎn)將草割斷,其優(yōu)點(diǎn)是,能有效避免了操作不當(dāng)帶來的傷害同時(shí)打草繩韌性較好,避免剛性沖擊延長(zhǎng)了使用壽命圖2.3甩繩式轉(zhuǎn)盤圖2.2圓盤式刀片圖2.4甩刀式刀片(3)甩刀式刀片如圖2.4所示,使用在很多手推式的割草機(jī)上也是日常身后中最常見的一種割草方式,其優(yōu)點(diǎn)還是結(jié)構(gòu)簡(jiǎn)單能將草坪修修剪的整齊平整,缺點(diǎn)是甩刀式刀片容易磕碰的到堅(jiān)硬物體而損壞刀片圖2.4甩刀式刀片圖2.5六葉刀轉(zhuǎn)盤(4)六葉刀轉(zhuǎn)盤如圖2.5所示,是圓盤式刀片的衍生版由六個(gè)刀片銜接在轉(zhuǎn)盤上銜接處為活動(dòng)軸,其優(yōu)點(diǎn)是刀片在旋轉(zhuǎn)的過程中碰到堅(jiān)硬的物體會(huì)回彈收縮,缺點(diǎn)則是遇到枝干較硬的雜草很難完成切割,圖2.5六葉刀轉(zhuǎn)盤圖2.6往復(fù)式刀片示意圖而本次設(shè)計(jì)課題所采用的刀片類型為往復(fù)式刀片如圖2.6所示,類似于理發(fā)刀的機(jī)械結(jié)構(gòu),通過電機(jī)帶動(dòng)齒輪做偏心輪運(yùn)動(dòng)帶動(dòng)上層刀片做往復(fù)式運(yùn)動(dòng),待修剪草進(jìn)入到刀縫間即可將其割斷。相較于以上刀片其具備更節(jié)省空間、修剪平整、不容易磕碰以及對(duì)操作者更加安全的優(yōu)點(diǎn),但缺點(diǎn)是相等的割草范圍面積下其刀片質(zhì)量較重圖2.6往復(fù)式刀片示意圖2.3車身獨(dú)立懸掛割草機(jī)采用四驅(qū)獨(dú)立懸掛結(jié)構(gòu)(如圖2.7所示),獨(dú)立懸掛支架固定于底板之下通過使用兩個(gè)M4法蘭軸與電機(jī)支架連接實(shí)現(xiàn)旋轉(zhuǎn)副的功能,電機(jī)固定于電機(jī)支架上,電機(jī)則使用M6聯(lián)軸器與輪子相連接,輪子采用82mm直徑的防滑橡膠材質(zhì),寬度為35mm有足夠的抓地力,保證在陡坡或者打滑的地面行駛。在電機(jī)支架與頂板之間配備兩個(gè)減震彈簧支撐,實(shí)現(xiàn)小車吸能減震的功能,適應(yīng)在復(fù)雜多變的草地平穩(wěn)行駛,也使得草地能修剪的整齊一致。圖2.7圖2.7車身獨(dú)立懸掛示意圖2.4刀具升降結(jié)構(gòu)圖2.8刀具升降結(jié)構(gòu)為了實(shí)現(xiàn)能調(diào)整刀具高度以達(dá)到割草機(jī)能切割不同高度的草坪,因此使用雙舵機(jī)和活動(dòng)連接桿來實(shí)現(xiàn)刀具升降,連接桿拉著滑塊在固定的兩根導(dǎo)桿上滑動(dòng)即可實(shí)現(xiàn)平行移動(dòng)的過程,同時(shí)固定在滑塊上的還有刀具支架、刀具以及電機(jī),因此該升降機(jī)構(gòu)可實(shí)現(xiàn)刀具電機(jī)整體性的平行上移,刀具升降結(jié)構(gòu)如圖2.8圖2.8刀具升降結(jié)構(gòu)3元器件選型3.1主控芯片選型根據(jù)課題功能需求和預(yù)期功能因此采用STM32Cortex-M3系列芯片作為割草機(jī)的主控芯片,STM32芯片由瑞士的意法半導(dǎo)體所設(shè)計(jì),作為行業(yè)內(nèi)知名芯片廠商,主要經(jīng)營(yíng)范圍為片上系統(tǒng)SoC產(chǎn)品、無(wú)線處理器、微控制器(MCU)、存儲(chǔ)設(shè)備、功率晶體管等眾多產(chǎn)品。其眾多產(chǎn)品中被人們熟悉的產(chǎn)品非微控制器STM32系列的控制器產(chǎn)品不可,因STM32性能優(yōu)越、價(jià)格低廉及受廣泛的電子硬件類人士及學(xué)生的追捧和喜愛,STM32在中國(guó)的相關(guān)論壇眾多而且用戶活躍討論熱度高,對(duì)于資源和項(xiàng)目共享程度高。對(duì)于一些商品級(jí)產(chǎn)品都采用了STM32的芯片,如報(bào)警器、掃地機(jī)器人、計(jì)算器、家用電器等生活中常見電子設(shè)備。STM32芯片基于ARM架構(gòu)設(shè)計(jì)開發(fā)外設(shè)、存取器及I/O等集一體的芯片,在十年前ARM7、ARM9這類的芯片風(fēng)靡電子圈,當(dāng)時(shí)的許多電子產(chǎn)品及設(shè)備都采用ARM7芯片作為核心控制板,例如當(dāng)時(shí)紅透半邊天的諾基亞手機(jī)的部分機(jī)型就采用了該款芯片。而現(xiàn)在開發(fā)的STM32芯片性能比ARM7更強(qiáng)大更易操作。圖3.1內(nèi)核性能比較STM32Cortex-M3系列芯片采用了ARMv7-M架構(gòu)(哈佛架構(gòu)),其優(yōu)點(diǎn)為能將指令和數(shù)據(jù)的總線分開來,這樣一來就不會(huì)出現(xiàn)瓶頸,STM32Cortex-M3為Thumb-2指令集可以實(shí)現(xiàn)32位操作同時(shí)也可以混用16位的操作,省去了狀態(tài)的切換。STM32具備更低功耗支持內(nèi)置睡眠功能為可穿戴設(shè)備提供了更多可能,優(yōu)異的性能為中小型項(xiàng)目提供了有利的支撐,相較于16位芯片及ARM7芯片等芯片有突出的表現(xiàn)(如圖3.1圖3.1內(nèi)核性能比較圖3.2STM32F103RCT芯片示意圖在明確了課題任務(wù)的需求,經(jīng)過統(tǒng)計(jì)需要使用到45個(gè)通用I/0引腳,以及一個(gè)SPI接口一個(gè)IIC接口、兩個(gè)通用定時(shí)器,一個(gè)高級(jí)定時(shí)器以及預(yù)留一些端口作為外設(shè),因此為達(dá)成有足夠使用的引腳和外設(shè)又要保證性能足夠滿足以及不浪費(fèi)空閑的性能所以選擇使用了STM32F103RCT6芯片(如3.2示意圖)作為核心控制處理器,選用LQFP64封裝形式,具備64個(gè)引腳,其中51個(gè)通用I/O口,CPU頻率可達(dá)到72MHz,配備有256KB的FLASH閃存以及48KBSRAM的存儲(chǔ)器。其外設(shè)具備了兩個(gè)IIC接口、三個(gè)SPI接口、四個(gè)通用定時(shí)器及兩個(gè)高級(jí)定時(shí)器,因此圖3.2STM32F103RCT芯片示意圖3.2無(wú)線通訊芯片選型本課題采用成都集芯微電子公司的射頻產(chǎn)品—2.4G無(wú)線數(shù)字傳輸模塊采用AS01-ML01DP5產(chǎn)品型號(hào),其方案基于nRF24L01P芯片開發(fā),該芯片工作頻段為2.4G,為全球共享的ISM頻段,為用戶提供免許可權(quán)。擁有的可選頻率通道達(dá)126個(gè),即通道2400MHz至通道2525MHz滿足多點(diǎn)通信和調(diào)頻通信的需要。2.4G無(wú)線通信速度最快為2Mbps,同時(shí)采用效果更佳的GFSK調(diào)制方案,數(shù)據(jù)速度傳輸快、在空中停留時(shí)間短暫因此抗干擾能力強(qiáng)。在最大功率20dBm的情況下可以在空曠的場(chǎng)地傳輸距離最遠(yuǎn)到2200m,割草機(jī)的操控范圍需要在操作人員肉眼所見處移動(dòng),為此傳輸距離需在100m之內(nèi),而該款nRF24L01P芯片傳輸距離滿足實(shí)際需求已綽綽有余。nRF24L01P芯片產(chǎn)品特性詳情數(shù)據(jù)如表3.1所示。表3.1nRF24L01P芯片產(chǎn)品特性詳情參數(shù)名稱參數(shù)數(shù)值備注傳輸速率250kbps~2Mbps三級(jí)可調(diào)速率(250Kbps、1Mbps、2Mbps)頻段調(diào)制方式GFSK、FSK接收電流小于15mA在傳輸速率2Mbps情況下發(fā)射電流小于12mA(0dBm)在傳輸速率2Mbps情況下接收靈敏度小于-83dBm在傳輸速率2Mbps情況下光斷電流1.08uA將nRF24L01P設(shè)置為掉電模式,CE為低電平通訊形式SPI通信啟動(dòng)時(shí)間小于130uS待機(jī)功耗小于15uA關(guān)斷功耗小于0.7uA芯片電壓范圍1.8-3.6V以3.3V為最佳數(shù)字IO電壓3.3V、5V晶振頻率16MHz±60ppm低成本晶振3.3舵機(jī)選型3.3.1舵機(jī)的應(yīng)用舵機(jī)是一種可實(shí)現(xiàn)位置的伺服驅(qū)動(dòng)器,廣泛應(yīng)用在需要維持恒定位置的場(chǎng)合中,它并不是普通的電機(jī)實(shí)際上它是一個(gè)伺服電機(jī)。目前,在許多操控性模型被廣泛應(yīng)用,如汽模、航模和賽艇模型以及娛樂型的機(jī)器人關(guān)節(jié)。在這些控制操作系統(tǒng)中,模型的控制效果取決于舵機(jī)的性能。舵機(jī)作為一個(gè)被封裝好的執(zhí)行器在端口與微控制器相連,可以被很容易被微控制器系統(tǒng)控制。3.3.2舵機(jī)工作原理及選型舵機(jī)的信號(hào)調(diào)制芯片通過數(shù)據(jù)線接收來自微控制的脈沖調(diào)整旋轉(zhuǎn)的角。舵機(jī)內(nèi)部會(huì)產(chǎn)生20毫秒的周期信號(hào)作為舵機(jī)執(zhí)行的參考,捕獲到脈沖信號(hào)與參考信號(hào)電壓進(jìn)行對(duì)比,以此產(chǎn)生電壓差輸出,之后輸出的電壓差由舵機(jī)里自帶的電機(jī)驅(qū)動(dòng)芯片來改變舵機(jī)的正順時(shí)針轉(zhuǎn)還是逆時(shí)針旋轉(zhuǎn)。恒定和電機(jī)轉(zhuǎn)速會(huì)通過串級(jí)減速齒輪進(jìn)行減速并增大扭矩實(shí)現(xiàn)舵機(jī)四兩撥千斤的效果,在電壓差達(dá)到0時(shí)電機(jī)便會(huì)停止轉(zhuǎn)動(dòng)在收到下一條命令時(shí)會(huì)一直保持現(xiàn)有角度??刂贫鏅C(jī)時(shí)需要產(chǎn)生一段20毫秒左右的周期信號(hào),該脈沖的高電平時(shí)間需要持續(xù)0.5ms~2.5ms,通過高電平等分以及參考舵機(jī)規(guī)格來達(dá)到所需旋轉(zhuǎn)角。大多數(shù)舵機(jī)設(shè)計(jì)為1024個(gè)位置等級(jí),假設(shè)舵機(jī)角度控制范圍是180度,那么就可以計(jì)算出其每個(gè)位置等級(jí)角度約為0.18度(180/1024≈0.18),則時(shí)間上的脈寬控制精度時(shí)間約為2us(2000/1024us≈2us)。圖3.3舵機(jī)示意圖根據(jù)本次升降臺(tái)的需求和結(jié)構(gòu)設(shè)計(jì)應(yīng)選用180°數(shù)字舵機(jī),因此選用JX6621系列數(shù)字舵機(jī)(如圖3.3所示),規(guī)格尺寸為40.5*20.2*38mm,死區(qū)時(shí)間為4μs。其齒輪為高強(qiáng)度金屬齒輪,輸入電壓為6V,電流不應(yīng)低于1A否則容易出現(xiàn)堵轉(zhuǎn)現(xiàn)象,單個(gè)舵機(jī)輸出扭矩達(dá)20Kg·cm,由于減速器的原因轉(zhuǎn)動(dòng)速度并不是很快,齒輪空載轉(zhuǎn)動(dòng)速度為0.21sec/60°圖3.3舵機(jī)示意圖3.4編碼器電機(jī)選型3.4.1霍爾編碼編碼器的原理編碼器作為旋轉(zhuǎn)傳感器可以通過電子數(shù)字信號(hào)脈沖來獲取電機(jī)當(dāng)前的角速度或角位移,電機(jī)的速度或位移信息通過編碼器測(cè)量來獲取其詳細(xì)運(yùn)動(dòng)數(shù)據(jù)。根據(jù)編碼器不同的輸出數(shù)據(jù)可劃分為增量型和絕對(duì)型。而根據(jù)編碼器不同檢測(cè)方式可劃分為光電型、電容型、感應(yīng)型及磁型等。通常使用的編碼器基本都是光電編碼器(光學(xué)型)和霍爾編碼器(磁型),兩種傳感器處理數(shù)據(jù)方式基本相同,不過霍爾傳感器抗干擾性強(qiáng)受外界環(huán)境影響小,因此本次課題選用霍爾傳感器作為電機(jī)數(shù)據(jù)采集工具。其傳感器工作原理是通過磁轉(zhuǎn)換成電并將輸出軸的機(jī)械幾何位移轉(zhuǎn)換為數(shù)字信號(hào)或者脈沖。霍爾編碼器元件包含霍爾碼盤和霍爾組件。其組件通常將恒定相位差方波信號(hào)輸出為兩組,以檢測(cè)多個(gè)脈沖信號(hào)并確定轉(zhuǎn)向。傳感器的碼盤在圓板上以一定距離布局著不同磁性的磁極,傳感器碼盤與電動(dòng)機(jī)同軸轉(zhuǎn)動(dòng),因此就能獲取到電機(jī)的轉(zhuǎn)動(dòng)方向和速度。在電機(jī)旋轉(zhuǎn)時(shí)編碼器會(huì)采集到一系列的標(biāo)準(zhǔn)方波信號(hào),因此可以使用微控制器對(duì)標(biāo)準(zhǔn)方波直接讀取。軟件通過兩種方式處理硬件計(jì)數(shù),直接計(jì)數(shù)使用帶有編碼器接口的微控制器。沒有編碼器接口的微控制器,則可以通過外部中斷計(jì)數(shù)的方式讀取。例如,編碼器A相觸發(fā)了微控制器的外部中斷,接著在相對(duì)應(yīng)的外部中斷函數(shù)內(nèi)通過判斷B相電位就可以確定電機(jī)運(yùn)動(dòng)方向是正轉(zhuǎn)還是反轉(zhuǎn)。在A相出現(xiàn)電位的改變,此時(shí)B相電位為高,則被視為正旋轉(zhuǎn),反之電位為低即被視為反轉(zhuǎn)。編碼器電機(jī)如圖3.4所示。圖3.4圖3.4霍爾傳感器直流減速電機(jī)3.4.2直流減速電機(jī)的選型表3.2JGB37-520系列選型表在割草機(jī)車身上需要用到4個(gè)帶霍爾傳感器直流減速的電機(jī)作為車子四輪動(dòng)力輸出,需要一個(gè)到有AB相位的高速直流電機(jī)用于割草機(jī)刀片的切割。本次項(xiàng)目采用的直流減速電機(jī)均為深圳市馳名電機(jī)所生產(chǎn)的JGB37-520系列和25GA370系列,皆使用12V直流電源款。根據(jù)JGB37-520系列選型表(如表3.2所示),選用減速比為56:1的電機(jī),其額定轉(zhuǎn)矩為6.5Kg/cm,額定轉(zhuǎn)速為140rmp,由于我們的割草機(jī)所采用的輪子直徑為82mm使用由公式3.1得,小車額定速度約為60cm/s,根據(jù)式3.2公式其整車驅(qū)動(dòng)力約為62N/cm。根據(jù)25GA370系列電機(jī)選型表(如表3.3所示),選用轉(zhuǎn)速為280rpm,轉(zhuǎn)矩為3Kg·cm以表3.2JGB37-520系列選型表小車額定轉(zhuǎn)速=電機(jī)額定轉(zhuǎn)速*輪子直徑*π÷時(shí)間(公式3.1)驅(qū)動(dòng)力=額定扭矩÷輪子半徑*輪子數(shù)(公式3.2)表3.325GA370系列電機(jī)選型表3.5電機(jī)驅(qū)動(dòng)表3.325GA370系列電機(jī)選型表圖3.5TB6612FNG芯片由于微控制器屬于精密儀器使用低電壓運(yùn)行,其IO口的帶負(fù)載能力弱,至多僅可以支持輸入輸出5V的電壓,而直流電機(jī)屬于大電流負(fù)載,所以單憑微控制器無(wú)法直接驅(qū)動(dòng)電機(jī),所以需要使用到功率放大器件。為此使用了東芝半導(dǎo)體公司所開發(fā)生產(chǎn)的TB6612FNG芯片(如圖3.5所示),其集成電路擁有大電流MOSFET的H橋,其性能超過采用晶體管的H橋驅(qū)動(dòng)器,能同時(shí)驅(qū)動(dòng)兩個(gè)電動(dòng)機(jī)的雙通道電路輸出。由于需要使用四個(gè)直流減速電機(jī),因此需要兩塊TB6612FNG。圖3.5TB6612FNG芯片TB6612FNG的主要針腳有AINl、AIN2、BIN1、BIN2、PWMA、PWMB這六個(gè)接口的功能都是控制信號(hào)的輸入端。引腳AO1、A02,B01、B02四個(gè)通道是雙向電動(dòng)機(jī)控制輸出端。STBY是正常操作與待機(jī)模式控制針腳。VM為電機(jī)驅(qū)動(dòng)輸入電壓范圍為4.5V~15V,VCC為邏輯輸入口電壓,輸入電壓范圍為2.7V~5.5V??稍?20℃~85℃的溫度下工作,封裝規(guī)格采用了SSOP24小型貼片。TB6612FNG的特點(diǎn)是可以直接驅(qū)動(dòng)電機(jī)并且體積小節(jié)省占用空間。早期的使用的L293D芯片,其端口驅(qū)動(dòng)電流僅支持最高600mA的且脈沖峰值電流最高1.2A相比,TB6612FNG擁有兩倍的輸出負(fù)載容量的能力,其端口的最大輸出電流高達(dá)1.2A,最大脈沖達(dá)2A以及最大3.2A的啟動(dòng)峰值,。與L298N驅(qū)動(dòng)的散熱裝置和外部二極管相比,TB6612FNG芯片不需要使用散熱片同時(shí)整體電路簡(jiǎn)單體積小,僅需在外部電源接濾波電容。微控制器通過脈沖的波形占空比來形成PWM信號(hào),電機(jī)的速度控制取決于驅(qū)動(dòng)輸出的電壓的大小驅(qū),動(dòng)器輸出電壓的平均值取則決于PWM波的占空比大小。TB6612FNG的PWM調(diào)制方式采用單極性和固定頻率的方式,以確保電機(jī)調(diào)速穩(wěn)定??刂贫丝谳斎氩煌娖綍?huì)有不同的工作模式,A通道與B通道的控制邏輯一致。TB6612FNG運(yùn)行時(shí),STBY端口處于高電位;IN1和IN2保持原狀態(tài),再改變PWM端口的輸入信號(hào),那么減速電機(jī)執(zhí)行控制單方向的速度;將PWM端口設(shè)置為高電位并對(duì)IN1和IN2的輸入信號(hào)進(jìn)行調(diào)整,那么減速電機(jī)可以執(zhí)行正向、反向和速度控制。TB6612FNG的邏輯真值表見表3.4所示。表3.4TB6612FNG邏輯真值表TB6612FNG邏輯真值表輸入輸出IN1IN2PWMSTBYO1O2電機(jī)模式HHH/LHLL制動(dòng)LHHHLH反向LHLHLL制動(dòng)HLHHHL正向HLLHLL制動(dòng)LLHHOFF停止H/LH/LH/LLOFF待機(jī)4硬件設(shè)計(jì)及連接4.1通用I/O口引腳分配割草機(jī)所需外設(shè)引腳共累計(jì)需要46個(gè)引腳,以及多對(duì)的VCC與GND電源,割草機(jī)核心控制板需要使用一塊nRF2401P芯片、兩個(gè)I/O控制的LED、一個(gè)電源指示燈、三個(gè)觸發(fā)按鍵、一個(gè)復(fù)位按鍵、一個(gè)JTAG調(diào)試接口、一個(gè)MPU6050電子陀螺儀、一個(gè)高速時(shí)鐘、一個(gè)低速時(shí)鐘、兩個(gè)舵機(jī)接口、四個(gè)霍爾編碼器直流減速電機(jī)、一個(gè)直流減速電機(jī)、一個(gè)ISP下載串口,對(duì)于遙控板另外有YG搖桿接口,而遙控板并不需要MPU6050電子陀螺儀、舵機(jī)、霍爾編碼器直流減速電機(jī)、以及直流減速電機(jī),核心板板和控制板的STM32F103RCT6芯片I/O口與外設(shè)對(duì)應(yīng)引腳表如表4.1所示。表4.SEQ圖\*ARABIC1STM32F103RCT6芯片I/O口與外設(shè)對(duì)應(yīng)引腳表STM32F103RCT6芯片I/O口與外設(shè)對(duì)應(yīng)引腳表外設(shè)名稱STM32引腳外設(shè)引腳外設(shè)名稱STM32引腳外設(shè)引腳nRF2401P芯片對(duì)應(yīng)接口PA4NRFCE舵機(jī)PC6PA5SPI1SCKPC7PA6SPI1MISO編碼電機(jī)AB相輸出端PA15AO1PA7SPI2MISIPB3AO2PC4NRFCSPA11BO1PC5NRFIRQPA12BO2LEDPA8LED0PB6CO1PD2LED1PB7CO2按鍵PC1KEY0PA1DO1PC13KEY1PA3DO2PA0WK_UP編碼電機(jī)霍爾傳感器數(shù)據(jù)采集接口PC2AIN1JTAG調(diào)試接口PA14JTDIPC3AIN2PA15JTCKPB12BIN1PB3JTDOPB13BIN2PB4JTRSTPB0CIN1MPU6050電子陀螺儀PB10SCLPC8CIN2PB11SDAPB1DIN1PB15INTPC0DIN2低速時(shí)鐘PC14OSCIN1ISP下載串口PA9RX1PC15OSCOUT1PA10TX1高速時(shí)鐘PD0OSCIN2減速電機(jī)PC9PD1OSCOUT2復(fù)位電路RESETYG搖桿PB5PB64.2電機(jī)過載電路設(shè)計(jì)圖4.SEQ圖\*ARABIC2電機(jī)過載電路圖割草機(jī)在割草的過程中刀片難免會(huì)磕碰到堅(jiān)硬的巖石、水泥及木頭等物品,因此在工作的工程中需要添加過載保護(hù)電路(如圖4.1所示)作為安全保險(xiǎn),但電機(jī)出現(xiàn)堵轉(zhuǎn)、過載或者高溫時(shí)就會(huì)自行熔斷觸發(fā)斷路保護(hù)刀片和人身安全。電機(jī)由于使用12V電壓而stm32的I/O口無(wú)法提供高強(qiáng)度電壓和電流,因此需要使用繼電器來控制電機(jī)的運(yùn)動(dòng),微控制器通過端口輸出高電平使得放大電路將5V電壓的信號(hào)傳輸給光電耦合器,光電耦合器可以起到光電隔離的作用減少外界干擾,導(dǎo)通后的繼電器通過線圈吸附圖4.SEQ圖\*ARABIC2電機(jī)過載電路圖4.3電路布局根據(jù)需求的功能和I/O口引腳對(duì)應(yīng)的外設(shè)端口,割草機(jī)的主控板及遙控板皆可完成原理圖繪制、線路排布和PCB繪制。我們使用AltiumDesigner軟件進(jìn)行電路的原理圖繪,選擇需求的電子元件、修改數(shù)值及完成布線,之后再對(duì)其電路正確性進(jìn)行檢查,最后生成主控板原理圖(如圖4.3所示)。在繪制PCB電路前需要先對(duì)其各個(gè)電子元器件的封裝有所掌握,可以參照電子商城上所提供的規(guī)格和自己任務(wù)需求選擇封裝型號(hào)獲取數(shù)據(jù),之后進(jìn)行布局和布線,合理的電路布置對(duì)信號(hào)傳遞快不會(huì)產(chǎn)生干擾,合理的對(duì)頂板和底板進(jìn)行走線并善用過孔技能,最后對(duì)電路的走線進(jìn)行優(yōu)化并對(duì)PCB實(shí)行覆銅的操作,最后完成PCB板的繪制可送至PCB加工工場(chǎng)進(jìn)行PCB打樣(如4.4所示)。圖4.圖4.SEQ圖\*ARABIC4遙控板PCB圖圖4.3割草機(jī)主板原理圖5開發(fā)環(huán)境介紹5.1編譯環(huán)境KeilKeil軟件是由許多微控制器應(yīng)用程序開發(fā)的優(yōu)秀軟件之一,該應(yīng)用程序功能包括程序編輯、程序編譯、程序模擬、程序集支持、C語(yǔ)言編程和匯編語(yǔ)言,并且界面友好又易于學(xué)習(xí)。Keil在1982年成立于德國(guó),現(xiàn)已被美國(guó)的ARM公司收購(gòu),最初的業(yè)務(wù)來源于銷售給美國(guó)硅谷的公司,提供開發(fā)產(chǎn)品工具,Keil實(shí)現(xiàn)了第一個(gè)為單片機(jī)8051微控制器設(shè)計(jì)的C語(yǔ)言編譯器即微控制器體系結(jié)構(gòu)的集成開發(fā)環(huán)境(IDE)其開發(fā)環(huán)境被眾多微控制器開發(fā)工程師選用。KeilVision5(如圖5.1所示)是一個(gè)經(jīng)典且強(qiáng)大的集成開發(fā)環(huán)境在硬件開發(fā)的業(yè)界知名度高、聲譽(yù)好。擁有著卓越的界面管理系統(tǒng),提供多個(gè)可視化窗口可根據(jù)用戶需求布置,可直觀的顯示數(shù)據(jù)。因此用戶可以根據(jù)個(gè)性化需求利用界面空間,管理多個(gè)窗口位置的擺放,簡(jiǎn)明快捷的界面為用戶提供了高效的環(huán)境。同時(shí)支持市面上大部分的ARM芯片,具備完善的功能。圖圖SEQ圖\*ARABIC5.1KeilVision5圖示其中KeilMDK(如圖5.2所示)適用于基于ARM7、ARM9、Cortex等內(nèi)核處理器的開發(fā)環(huán)境,在KeilMDK開發(fā)的ARM系列的芯片時(shí)采用C語(yǔ)言進(jìn)行程序編寫,C語(yǔ)言相比于以往的匯編語(yǔ)言具有出色的結(jié)構(gòu)、豐富的功能、可讀性更好以及維護(hù)更加便利,因此被廣大用戶接納。KeilMDK提供了豐富的開發(fā)方案,例如C語(yǔ)言編譯器、鏈接器、程序庫(kù)管理、宏匯編器以及程序模擬調(diào)試器,將這些部分合并到單個(gè)集成開發(fā)環(huán)境之中。圖5.2KeilMDK操作界面5.2STLINK仿真器Keil公司的Vision調(diào)試器(如圖5.3所示)準(zhǔn)確模擬了微控制器片上外設(shè)如IIC通信、UART通信、中斷、定時(shí)、SPI通信、A/D轉(zhuǎn)換器、PWM脈沖、CAN通信、D/A轉(zhuǎn)換器和I/O端口等功能設(shè)備。該功能的調(diào)試有助于硬件配置過程,減少花在硬件故障和程序問題上的時(shí)間。此外,測(cè)試應(yīng)用程序可以與模擬一起,在寫入目標(biāo)硬件之前使用。ISDARM系統(tǒng)內(nèi)的調(diào)試器需要使用STLINK、JTAG、ULINK這類的仿真器才能燒錄和調(diào)試系統(tǒng)程序代碼。圖5.3ST STLINK仿真器5.3匿名上位機(jī)姿態(tài)采集圖5.3ST STLINK仿真器在使用MPU6050電子陀螺儀時(shí)需要測(cè)試程序其功能達(dá)到預(yù)期的效果,因此需要上位機(jī)進(jìn)行數(shù)據(jù)圖標(biāo)分析,才能判斷編譯的程序是否出現(xiàn)BUG,為此選用匿名上位機(jī)軟件。該軟件可以通過微控制器使用UART接口將mpu6050獲取的加速度和陀螺儀數(shù)據(jù)上傳至電腦PC端進(jìn)行波形繪制和顯示。匿名上位機(jī)最主要的功能就是波形顯示,對(duì)于PID調(diào)試和數(shù)據(jù)分析十分有利。在主界面的左側(cè)的頂部帶有功能按鈕的功能選擇欄,里面可以更改自己需要調(diào)教的設(shè)置,左邊一列部分顯示波形名稱、顏色以及數(shù)值,可根據(jù)需求選擇性勾選,界面的底部是波形清除按鈕,用于清除之前的歷史數(shù)據(jù)。功能區(qū)與波形區(qū)間有一條藍(lán)色豎線,在單擊此線后會(huì)隱藏并顯示功能區(qū)。主界面最大面積顯示的是波形顯示區(qū),波形的橫坐標(biāo)為數(shù)據(jù)幀數(shù)大小,X軸都會(huì)隨著時(shí)間增加而增大。波形的縱坐標(biāo)單位是數(shù)值大小,波形數(shù)據(jù)Y值的基準(zhǔn)單位數(shù)值大小會(huì)隨著最小值和最大值進(jìn)行自動(dòng)的縮放。匿名上位機(jī)(如圖5.4所示)可以配置20條波形的數(shù)據(jù)源,每條數(shù)據(jù)擁有不同的顏色,其功能繪制各個(gè)波形的所有數(shù)據(jù)點(diǎn)。本次所需要顯示車身的數(shù)據(jù)有X軸、Y軸、Z軸的加速度和陀螺儀項(xiàng),為此需要勾選上ACC_X、ACC_Y、ACC_Z、GYR_X、GYR_Y、GYR_Z這六項(xiàng)。在設(shè)置內(nèi)打開“顯示所有數(shù)據(jù)”功能這一項(xiàng)時(shí),當(dāng)一頁(yè)需要顯示的數(shù)據(jù)太多時(shí),上位機(jī)會(huì)自動(dòng)隱藏一些數(shù)據(jù)點(diǎn)但并不會(huì)影響數(shù)據(jù)直接觀察,只有當(dāng)每頁(yè)的X軸點(diǎn)數(shù)太大時(shí)才會(huì)加載該功能。例如,電腦的顯示器的水平分辨率為1080P,但一頁(yè)上的x軸被設(shè)置為1600點(diǎn)時(shí)就會(huì)出現(xiàn)一定有一些數(shù)據(jù)點(diǎn)無(wú)法繪制。若未打開此功能,隱藏點(diǎn)則可以忽略,波形繪制的速度可以大大加快也便于直觀觀察數(shù)據(jù)。圖圖5.4匿名上位機(jī)示意圖6程序底層配置與系統(tǒng)軟件設(shè)計(jì)6.1STM32芯片底層配置6.1.1底層代碼的意義建立在STM32芯片的開發(fā)必須要對(duì)其底層進(jìn)行合理的配置,否則無(wú)法進(jìn)行之后的代碼編寫,STM官方提供了基于寄存器的底層代碼和基于固件庫(kù)的底層代碼,可以依照官方的配置內(nèi)容進(jìn)行相應(yīng)的配置,固件庫(kù)的操作更加靈活和簡(jiǎn)單因此本次的代碼選用了基于固件庫(kù)的底層代碼。操作庫(kù)函數(shù)的目的在底層代碼里操作寄存器,官方提供的庫(kù)函數(shù)頭文件就已編寫好了寄存器的定義。反之由于寄存器沒有引入庫(kù)函數(shù)的相關(guān)定義,所以并不可以在寄存器底層代碼調(diào)用庫(kù)函數(shù)。將底層的代碼配置好之后在開發(fā)過程中方信手拈來,游刃有余。倘若使用寄存器進(jìn)行程序編寫,在察覺到底層代碼配置有問題就需要查閱大量資料和數(shù)據(jù)手冊(cè)才能找到BUG,因?yàn)檎{(diào)試代碼底層只能通過查看寄存器相關(guān)配置,STM32底層固件庫(kù)整體配置結(jié)果如圖6.1圖6.SEQ圖表\*ARABIC圖6.SEQ圖表\*ARABIC1STM32底層固件庫(kù)架構(gòu)圖6.1.2固件庫(kù)配置過程在新建工程之后還必須添加啟動(dòng)代碼此外,以C語(yǔ)言文件為例,在添加了啟動(dòng)代碼會(huì)運(yùn)行堆棧的初始化以及定義出現(xiàn)異常問題的入口地址的向量表,不過最主要的目的還是實(shí)現(xiàn)main函數(shù)調(diào)用。由于不同STM32芯片的容量大小有所差異,因此ST公司提供了startup_stm32f10x_ld.s、startup_stm32f10x_md.s以及startup_stm32f10x_hd.s三種不同的啟動(dòng)文件給用戶,,其中l(wèi)d.s適合低容量的芯片;md.s適合中等容量芯片,hd.s適合大容量芯片;而我們所使用的STM32F103RCT6內(nèi)存為256KB屬于大容量的芯片所以將Startup_stm32f10x_hd.s復(fù)制創(chuàng)建的用戶文件夾中。在工具欄找到?Target1下的“CORE”雙擊打開,再打開文件類型為?“Asm?Source?file”的欄目將startup_stm32f10x_hd.s添加進(jìn)去,如圖6.2所示。圖6.圖6.SEQ圖表\*ARABIC2添加固件窗口在USER的文件夾下,工程內(nèi)容必會(huì)用到的兩個(gè)文件就是啟動(dòng)文件MDK5項(xiàng)目文件以及startup_stm32f10x_hd.s。KeilMDK會(huì)自動(dòng)生成兩個(gè)文件夾分別為L(zhǎng)istings和Objects這兩個(gè)文件夾,同時(shí)在Listings和Objects文件夾下會(huì)存放著很多文件,這些文件都是MDK在編譯后產(chǎn)生的中間文件,在建立了一個(gè)較大的項(xiàng)目工程后,那么產(chǎn)生的中間文件可能會(huì)占用上百兆空間。在默認(rèn)的情況下所有的中間文件都是存放在USER文件夾項(xiàng)目之下因此可能會(huì)混淆。因此在工程文件中創(chuàng)建新的OBJ文件夾用來存儲(chǔ)編譯過程時(shí)的中間文件。然后右鍵單擊Target目錄欄中的“ManageProjectItems”選項(xiàng)再點(diǎn)擊位于頂部中間列中的“NEW”按鈕,分別創(chuàng)建USER和SYSTEM組別。然后再點(diǎn)擊“AddFiles”,將SYSTEM文件夾下的sys.c、delay.c以及usart.c都添加到SYSTEM組別中,界面如圖6.3所示。圖6.SEQ圖表\*ARABIC3 文件添加窗口接著創(chuàng)建新的lawnmower.c文件,并將其保存到USER文件夾內(nèi)。再點(diǎn)擊“USER”文件,就會(huì)自動(dòng)圖6.SEQ圖表\*ARABIC3 文件添加窗口此時(shí)對(duì)程序進(jìn)行編譯那么在“Objects”和“Listings”文件夾下會(huì)產(chǎn)生很多中間文件,因此需要設(shè)置中間文件的輸出路徑。單擊“OptionsforTarget”打開“OptionsforTarget'Target1”窗口,然后點(diǎn)擊“Output”按鈕,打開用于創(chuàng)建Hex文件的“CreateHexFile”,接著點(diǎn)擊“SelectFileforObjects”找到?OBJ?文件夾再點(diǎn)擊?“OK”按鈕完成設(shè)置。然后設(shè)置?Listings?文件路徑,打開?Listing?選項(xiàng)卡再點(diǎn)擊?“SelectFolder?for?Listings”找到OBJ文件夾,最后點(diǎn)擊?“OK”按鈕就可回到?IDE?主界面。我們使用STM32F103RCT6作為核心板具備256KB的閃存容量因此我們需要將圖6.4所示位置設(shè)置為STM32F10X_HD。最后一件任務(wù)就是添加源文件路徑,再次單擊“OptionsforTarget”按鈕會(huì)彈出“OptionsforTarget'Target1”的對(duì)話框,選擇C/C選項(xiàng)卡然后在“Include?Paths”處點(diǎn)擊右邊的正方形小框在彈出的對(duì)話框中加入?SYSTEM?文件夾下的?3個(gè)文件夾名字,把這幾個(gè)路徑都添加進(jìn)去,至此整個(gè)項(xiàng)目的底層搭建完成,可以進(jìn)行程序的編寫。圖6.4操作窗口圖示6.2舵機(jī)定時(shí)器配置圖6.4操作窗口圖示舵機(jī)使用PC6作為PWM輸出端口,因PC6及PC7為定時(shí)器TIM3的通道1和通道2,需要將端口設(shè)置為完全重映射,對(duì)定時(shí)器3進(jìn)行使能,再對(duì)GPIO口進(jìn)行結(jié)構(gòu)體定義首先需要初始化GPIOC的Pin6及Pin7并使能且設(shè)置其為推挽輸出,設(shè)置端口速度為50MHz,最后對(duì)AFIO復(fù)用功能模塊時(shí)鐘進(jìn)行使能,為此PC6及PC7被會(huì)有PWM的脈沖輸出。因此I/O口配置程序如下:程度6.1端口初始化首先對(duì)定時(shí)器3進(jìn)行初始化定義TIM_TimeBaseInit()函數(shù),ARR為下一次進(jìn)行自動(dòng)重裝載的寄存器周期值,PSC用于設(shè)置TIM3時(shí)鐘頻率的預(yù)分頻值,再定義時(shí)鐘分割Tck_tim=0,定時(shí)器計(jì)數(shù)分為三種:向下計(jì)數(shù)、向上計(jì)數(shù)以及雙邊計(jì)數(shù),這三種計(jì)數(shù)區(qū)別不大,為此選用向上計(jì)數(shù)模式進(jìn)行計(jì)數(shù)。根據(jù)函數(shù)TIM_SetCompare2()不斷改變比較值CCRx,達(dá)到不同的占空比的效果。根據(jù)選用的舵機(jī)一個(gè)周期在20ms左右,有效高電平脈沖時(shí)間為0.5ms~2.5ms,根據(jù)需求將旋轉(zhuǎn)角分為五個(gè)等級(jí)如表6.1所示,為此僅需以0.5ms設(shè)為基準(zhǔn),芯片使用72M的時(shí)鐘頻率,根據(jù)試6.1的公式計(jì)算出ARR=4,PSC=35999.定時(shí)器3的底層配置如程序6.2所示。程序6.2定時(shí)器3的底層配置Tout(溢出時(shí)間)=(ARR+1)(PSC+1)/Tclk(式6.1)表6.1舵機(jī)旋轉(zhuǎn)角對(duì)應(yīng)脈沖時(shí)間表舵機(jī)旋轉(zhuǎn)角所需的高電平脈動(dòng)時(shí)間0度0.5ms45度1.0ms90度1.5ms135度2.0ms180度2.5ms6.32.4G無(wú)線通信配置6.3.1SPI通信配置SPI是串行外圍設(shè)備接口的簡(jiǎn)稱。SPI通信協(xié)議由Motorola公司在其處理器首次進(jìn)行了定義和使用,現(xiàn)在發(fā)展成硬件主流的通信方式。SPI作為一種同步全雙工串行通信總線,擁有高速的通信速度,SPI通信僅占用四個(gè)端口,減少了芯片的引腳應(yīng)用,同時(shí)也為PCB電路板的布線提供便利。SPI接口使用4條線通信引腳分別為SCLK、MISO、MISO以及CS,硬件上為4根線功能分別為:主機(jī)設(shè)備由SCLK產(chǎn)生時(shí)鐘信號(hào);MISO作為從機(jī)設(shè)備的數(shù)據(jù)輸出端,主設(shè)備數(shù)據(jù)輸入端;MISO則作為從機(jī)設(shè)備數(shù)據(jù)輸入端,主機(jī)設(shè)備數(shù)據(jù)輸出端;CS是從機(jī)設(shè)備片選信號(hào)控制端,由主機(jī)設(shè)備控制。SPI的引腳配置模式如表6.2所示。串行移位寄存器通過MOSI端口將數(shù)據(jù)發(fā)送給從機(jī),從機(jī)也可以將通過自身的SPI串行移位寄存器寫入數(shù)據(jù)通過MISO端口發(fā)送給主機(jī)。如此一來主機(jī)和從機(jī)就可以通過自身的兩個(gè)移位寄存器就可以實(shí)現(xiàn)數(shù)據(jù)互相傳輸,而且外設(shè)可以同步進(jìn)行寫操作和讀操作。如果SPI通信只進(jìn)行寫操作,那么主機(jī)可以忽略接收到的數(shù)據(jù);倘若主機(jī)要讀取從機(jī)的一串?dāng)?shù)據(jù),首先要先發(fā)送一個(gè)空數(shù)據(jù)來觸發(fā)從機(jī)的發(fā)送。表6.2SPI配置模式與引腳配置對(duì)應(yīng)關(guān)系SPI引腳配置模式對(duì)應(yīng)GPIO配置SPIx_SCK從模式浮空輸入主模式推挽復(fù)用輸出SPIx_MOSI全雙工模式/從模式上拉輸入或浮空輸入全雙工模式/主模式推挽復(fù)用輸出簡(jiǎn)單的雙向數(shù)據(jù)線/從模式未使用,可將其作為通用I/O口簡(jiǎn)單的雙向數(shù)據(jù)線/主模式推挽復(fù)用輸出SPIx_MISO全雙工模式/從模式推挽復(fù)用輸出全雙工模式/主模式上拉輸入或浮空輸入簡(jiǎn)單的雙向數(shù)據(jù)線/從模式推挽復(fù)用輸出簡(jiǎn)單的雙向數(shù)據(jù)線/主模式未使用,可將其作為通用I/O口SPIx_NSS硬件主/從模式浮空輸入或下拉輸入或上拉輸入硬件主模式/NSS輸出使能推挽復(fù)用輸出軟件模式未使用,可將其作為通用I/O口根據(jù)前面表4.1的I/O口分配布局,此次的SPI通信接口為SPI1,同時(shí)根據(jù)表6.2的SPI配置模式與引腳配置對(duì)應(yīng)關(guān)系,根據(jù)需求將SPI設(shè)置為雙線雙向全雙工模式,使用SCK、MOSI、MISO配置均設(shè)置為推挽復(fù)用輸出功能。由此編寫底層程序,將GPIOA的PIN5、PIN6、PIN7設(shè)置為推挽復(fù)用輸出并分別對(duì)應(yīng)SCK、MISO、MISI。首先設(shè)置STM32通訊引腳的復(fù)用功能,調(diào)用GPIO_Init函數(shù)對(duì)SPI1時(shí)鐘進(jìn)行使能。接著對(duì)SPI1進(jìn)行初始化,對(duì)SPI_Init函數(shù)配置,將其設(shè)置為SPI_Direction_2Lines_FullDuplex即雙向雙通道并將工作模式設(shè)置為SPI_Mode_Master令其為主機(jī),SPI_DataSize_8b是將SPI的發(fā)送接收數(shù)據(jù)字節(jié)設(shè)置為8位字節(jié)。串行時(shí)鐘穩(wěn)態(tài)設(shè)置為時(shí)鐘懸空即定義SPI_CPOL_High,在數(shù)據(jù)獲取時(shí)以第二個(gè)時(shí)鐘邊沿開始捕獲,將時(shí)鐘線的預(yù)分頻值設(shè)為256即SPI_BaudRatePrescaler_256,定義發(fā)送數(shù)據(jù)由MSB位開始傳輸。接著使能SPI1即調(diào)用SPI_Cmd(SPI1,ENABLE)函數(shù),配置好了SPI基本設(shè)置之后便啟動(dòng)傳輸SPI1_ReadWriteByte(0xff)。在需要查看SPI傳輸狀態(tài)時(shí)可以調(diào)用函數(shù)SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)。SPI通訊底層代碼配置函數(shù)調(diào)用程序如程序6.3所示。程序6.3SPI通訊底層代碼配置

6.3.2NRF24L01芯片配置NRF24L01芯片通信接口控制線由三根引腳分別為:CS、CE以及IRQ,其中CS為SPI的片選信號(hào)線,IRQ為信號(hào)中斷線。CE為SPI的模式控制線,CE在片選信號(hào)為低電平的狀態(tài)下,NRF24L01的工作狀態(tài)將由CE與寄存器CONFIG的PWR_UP和PRIM_RX協(xié)同控制(如表6.3所示)。SPI在接收到中斷時(shí)會(huì)變?yōu)榈碗娢?,同時(shí)在RxFIFO接收到數(shù)據(jù)、已達(dá)重發(fā)次數(shù)以及TxFIFO發(fā)送完成并收到已使能的ACK數(shù)據(jù)的狀態(tài)下都會(huì)變?yōu)榈碗娢弧1?.3NRF24L01工作模式配置關(guān)系表NRF24L01工作模式NRF24L01所處模式PWR_UP位狀態(tài)PRIM_RX位狀態(tài)CE引腳電平狀態(tài)FIFO寄存器狀態(tài)發(fā)送模式101數(shù)據(jù)暫存在TXFIFO寄存器中發(fā)送模式101→0停在發(fā)送模式,直到數(shù)據(jù)全部發(fā)送完接收模式111-待機(jī)模式I1-0無(wú)數(shù)據(jù)傳輸待機(jī)模式II101TXFIFO為空掉電模式0---NRF24L01具有三種數(shù)據(jù)收發(fā)模式:ShockBurstTM模式、EnhancedShockBurstTM模式和數(shù)據(jù)直接收發(fā)模式。本次使用的方式為EnhancedShockBurstTM模式在發(fā)送狀態(tài)時(shí)發(fā)送方必須在收到數(shù)據(jù)后需要自動(dòng)反饋響應(yīng)信號(hào),才能檢測(cè)到數(shù)據(jù)是否存在丟失,并在丟失時(shí)重新發(fā)送數(shù)據(jù)。數(shù)據(jù)重傳設(shè)置0X04地址的數(shù)據(jù)重傳設(shè)置寄存器設(shè)置重傳次數(shù),并設(shè)置在未接收到響應(yīng)信號(hào)后等待重傳的時(shí)間。在接收狀態(tài)時(shí),最多可以接收6條路徑的數(shù)據(jù),其中各個(gè)數(shù)據(jù)通道的地址都不相同,但共享相同的頻道。其意思為如果將六個(gè)不同的NRF24L01工作模式都設(shè)置為發(fā)送模式,那么能與設(shè)置為接收模式的NRF24L01進(jìn)行通信,另外接收方需要設(shè)置NRF24L01可以標(biāo)識(shí)這六個(gè)發(fā)送方。

在EnhancedShockBurstTM模式下優(yōu)先讓片內(nèi)數(shù)據(jù)進(jìn)出堆棧區(qū)域,在微控制器中以低速讀取數(shù)據(jù),通過以高速寫入數(shù)據(jù),可以最大限度地節(jié)省能源。因此即使使用低速率微控制器,也可以實(shí)現(xiàn)高速的數(shù)據(jù)傳輸速度。由于與射頻協(xié)議有掛鉤的高速信號(hào)都是在片內(nèi)進(jìn)行處理,因此有三個(gè)主要優(yōu)點(diǎn):其一最大限度地節(jié)約能源,降低了運(yùn)行成本;其二數(shù)據(jù)低延遲、較強(qiáng)的抗干擾能力;其三EnhancedShockBurstTM的應(yīng)用可以大大降低整個(gè)運(yùn)行系統(tǒng)的平均電流。EnhancedShockBurstTM收發(fā)模式的工作流程:1.EnhancedShockBurstTM數(shù)據(jù)發(fā)送流程(1)設(shè)置發(fā)送地址(收發(fā)地址如程序6.4所示),并將待發(fā)數(shù)據(jù)裝入數(shù)組內(nèi);(2)設(shè)置CONFIG寄存器讓處于待發(fā)射的工作狀態(tài);(3)將微控制器的CE端口設(shè)置為高電平(10us以上),使得NRF24L01開始Enhancedshorkberg發(fā)射。(4)N24L01的發(fā)送數(shù)據(jù)時(shí)首先為RF前端供電,接著數(shù)據(jù)以封裝好的形式高速發(fā)送,在完成了發(fā)送后NRF24L01自動(dòng)進(jìn)入空閑模式。2.EnhancedShockBurstTM數(shù)據(jù)接收流程(1)設(shè)置接收地址并定義接收數(shù)據(jù)串的大小。(2)設(shè)置CONFIG寄存器讓NRF24L01切換到接收模式,同時(shí)將CE端口設(shè)置為高電平。(3)在等待130us之后,NRF24L01會(huì)自動(dòng)切換至監(jiān)視模式,直到有收到新的數(shù)據(jù)串;(4)收到完整的數(shù)據(jù)串后,NRF2401會(huì)自主刪除數(shù)據(jù)字頭、地址和CRC驗(yàn)證;(5)NRF24L01將負(fù)責(zé)控制器中斷的STATUS寄存器下的RX_DR位設(shè)置為高電平并讓微控制器獲悉已完成數(shù)據(jù)解析;(6)微控制器會(huì)由NewMsg_RF2401數(shù)組中獲取收到的數(shù)據(jù)。(7)獲取了數(shù)據(jù)之后需要?jiǎng)h除STATUS寄存器的數(shù)據(jù),為下一次接收內(nèi)容提供空間。constu8TX_ADDRESS[TX_ADR_WIDTH]={0x78,0xAA,0x10,0x74,0x12};constu8RX_ADDRESS[RX_ADR_WIDTH]={0x78,0xAA,0x10,0x74,0x12};程序6.4發(fā)射和接收地址

程序配置時(shí)先將所用到的PA1.PA4以及PC4初始化,將PA1設(shè)置為上拉輸入模式,將PA4及PC4設(shè)置為推挽輸出并使能。將PA1.PA4及PC4定義為IR、QCE、CSN三根引腳的輸出關(guān)系。由于需要調(diào)用IPS的通信接口所以其余配置與IPS通信大同小異。如程序6.5所示。程序6.5NRF24L01引腳配置6.5電子陀螺儀MPU6050及IIC配置6.5.1MPU6050配置流程MPU6050具有內(nèi)部集成的3軸陀螺和3軸加速度傳感器如圖6.5所示。MPU6050芯片采用的是IIC通訊,微控制器可以通過此IIC接口采集MPU6050內(nèi)部數(shù)據(jù),其中SCL和SDA數(shù)據(jù)線就是連接微控制器的接口,還具有另一個(gè)可連接磁性傳感器的IIC接口,通過AUX_CL和AUX_DA接口可以配置成9軸傳感器。MPU6050的端口電壓為1.8V~3.5V,通常直接連接到VDD。圖SEQ圖\*ARABIC6.5六軸傳感器方向使用微控制器對(duì)MPU6050芯片進(jìn)行初始化設(shè)置后,即可獲取所需的圖SEQ圖\*ARABIC6.5六軸傳感器方向(1)由于MPU6050使用的是IIC協(xié)議與微控制器進(jìn)行通信,首先需要對(duì)IIC接口初始化,因此初始化SDA和SCL端口為主要目的;(2)為了確保MPU6050內(nèi)的寄存恢復(fù)到設(shè)定的初始值,因此需要對(duì)0X6B位電源管理寄存器1中的位7置位為高電平即可實(shí)現(xiàn)恢復(fù)初始值。復(fù)位之后,就需要將電源管理寄存器1恢復(fù)初始值:0X40;(3)為了保證數(shù)據(jù)可靠,因此需要對(duì)MPU6050的輸出范圍進(jìn)行設(shè)置;(4)由于采樣的數(shù)據(jù)中并不需要使用中斷方式讀取,同時(shí)我們的MPU6050芯片未外接其他傳感器因此也未使用AUXIIC接口,為了避免干擾因此對(duì)中斷和AUXIIC接口的相關(guān)寄存器進(jìn)行關(guān)閉;(5)接著對(duì)數(shù)字低通濾波器及陀螺儀采樣率進(jìn)行設(shè)置。其中數(shù)字低通濾波器將其設(shè)置為1/2的DLPF帶寬,陀螺儀采樣率將設(shè)置為50;(6)通過電源管理寄存器1(0X1B)進(jìn)行設(shè)置系統(tǒng)時(shí)鐘源,將其設(shè)置為1,參考時(shí)鐘選用X軸的陀螺PLL,這樣產(chǎn)生的時(shí)鐘更加精準(zhǔn)。將角速度傳感器和加速度傳感器使能。6.5.2歐拉角獲取我們?cè)谥獣粤薓PU6050的加速度和角速度的原始數(shù)據(jù)之后,需要將數(shù)據(jù)轉(zhuǎn)換成更直觀的歐拉角,即航向角、俯仰角和橫滾角這三個(gè)更方便利用的角。MPU6050的DMP輸出的數(shù)為放大了2的30次方倍的浮點(diǎn)數(shù),其數(shù)據(jù)為四元數(shù)為q30格式。因此轉(zhuǎn)換成歐拉角時(shí),就需要將數(shù)據(jù)轉(zhuǎn)變成浮點(diǎn)數(shù),那么就是將獲取的數(shù)據(jù)除以2的30次方之后再進(jìn)行三個(gè)歐拉角的計(jì)算,計(jì)算列數(shù)如下:q0=quat[0]/q30; //q30格式轉(zhuǎn)換為浮點(diǎn)數(shù)q1=quat[1]/q30;q2=quat[2]/q30;q3=quat[3]/q30;pitch=asin(-2*q1*q3+2*q0*q2)*57.3;//俯仰角roll=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1)*57.3;//橫滾角yaw=atan2(2*(q1*q2+q0*q3),q0*q0+q1*q1-q2*q2-q3*q3)*57.3;//航向角公式中的quat[0]、quat[1]、quat[2]、quat[3]是MPU6050的DMP經(jīng)過解算后的四元數(shù),q30的格式。q30是2的30次方即1073741824。其中57.3是弧度轉(zhuǎn)換為角度,即180/π的結(jié)果。6.6PID算法6.6.1PID算法的應(yīng)用在許多項(xiàng)目過程中經(jīng)常會(huì)使用的到閉環(huán)控制,因此,我們希望實(shí)現(xiàn)此算法以適合更多的應(yīng)用程序。對(duì)研發(fā)人員來說,PID算法的設(shè)計(jì)和實(shí)現(xiàn)是完成自動(dòng)控制系統(tǒng)的基本要求,編寫者十分容易獲取到反饋數(shù)據(jù)并對(duì)設(shè)備進(jìn)行操控。PID算法的執(zhí)行過程并不復(fù)雜,利用傳感器反饋檢測(cè)偏差信號(hào),通過偏差信號(hào)控制控制量??刂破鞅旧砭褪前驯壤?xiàng)、積分項(xiàng)、微分項(xiàng)三個(gè)方面融入進(jìn)去,如圖6.6所示。圖6.6圖6.6閉環(huán)控制結(jié)果圖6.6.2離散化PID在考慮了特定時(shí)間點(diǎn)的t,其中輸入為rin(t),輸出為route(t),偏差計(jì)算為err(t)=rin(t)-route(t)。因此,PID的默認(rèn)控制規(guī)則公式為公式6.1所示。其中Kp是比例環(huán)節(jié),Ti是積分環(huán)節(jié),Td是環(huán)節(jié)。公式6.1PID公式如果系統(tǒng)采樣周期為T,同時(shí)獲取到第K次的采樣周期,那么對(duì)K周期進(jìn)行采樣分析,那么偏差列示為err(K)=rin(K)-rout(K),積分環(huán)節(jié)列式為:err(K)+err(K+1)+······,微分環(huán)節(jié)列式為:(err(K)-err(K-1))/T。那么對(duì)第K次周期進(jìn)行數(shù)據(jù)采樣,PID算法的離散公式如公式6.2所示,同時(shí)還可以用其進(jìn)行簡(jiǎn)單的化簡(jiǎn)更直觀的表達(dá)為公式6.3。公式6.2PID離散表達(dá)式公式6.3位置式PID離散表達(dá)式根據(jù)公式6.3的公式描述了第k個(gè)采樣周期的表達(dá)式,那么在K周期的前一周期第k-1周期的采樣周期公式如公式6.4所示,同時(shí)采樣周期k的結(jié)果可以表示為kU(k)=U(k-1)+?U(k),由此可以推出第K個(gè)采樣周期的增量為U(k)-U(k-1)。接著就使用第k個(gè)采樣周期的式子減去第k-1個(gè)采樣周期的式子,于是就得到了增量型PID算法的表達(dá)式如公式6.5所示。公式6.4k-1周期的表達(dá)式公式6.5增量式PID離散表達(dá)式Kp為控制器的比例系數(shù),其作用是在出現(xiàn)偏差的時(shí)刻立即做出響應(yīng)。偏離生成后PID控制器會(huì)迅速做出控制響應(yīng),會(huì)不斷的更改控制量使偏離縮小。控制效果的強(qiáng)度由比例系數(shù)Kp的數(shù)值大小來決定,當(dāng)比例系數(shù)Kp較大時(shí),那控制效果會(huì)變得十分明顯,響應(yīng)過程也會(huì)更快,因此就會(huì)減小控制過程的靜態(tài)偏差。在比例系數(shù)Kp不斷增大的同時(shí)振蕩就發(fā)生的頻率就也變高,因此對(duì)系統(tǒng)的穩(wěn)定性造成破壞。所以,比例系數(shù)Kp在調(diào)節(jié)響應(yīng)速度的同時(shí)還需要兼顧系統(tǒng)的穩(wěn)定性。Ti為控制器積分系數(shù),其作用是消除系統(tǒng)本身的靜態(tài)誤差,不過會(huì)增大超調(diào),減緩了系統(tǒng)的響應(yīng)速度。當(dāng)增大積分系數(shù)Ti,積累誤差減弱,系統(tǒng)就不會(huì)產(chǎn)生振蕩。不過增大積分系數(shù)Ti的同時(shí)還會(huì)減慢靜態(tài)誤差的消逝,因此會(huì)延長(zhǎng)了消除偏差的時(shí)間,不過較大的積分系數(shù)Ti可以減少過度補(bǔ)償,提高系統(tǒng)穩(wěn)定性,PID應(yīng)用程序見附錄。Td為控制器微分系數(shù),作用是減少偏差變化具有阻尼效果。Td受偏差的變化進(jìn)行系統(tǒng)控制,偏差改變的趨勢(shì)越強(qiáng)則相應(yīng)的微分控制器的輸出就會(huì)增大。在系統(tǒng)中增加Td能大大減少超調(diào)量,克服振蕩達(dá)到系統(tǒng)穩(wěn)定。但是Td系數(shù)對(duì)噪聲十分靈敏,因此在信號(hào)噪聲大的情況下,通常不會(huì)加入微分項(xiàng),除非在微分工作之前濾波信號(hào)。

7總結(jié)本論文所研究的新型自動(dòng)割草機(jī),最主要的目的是減輕操作人員的工作壓力和負(fù)擔(dān),降低園藝工人在烈日炎炎的環(huán)境下的工作強(qiáng)度。本論文主要介紹了自主設(shè)計(jì)的新型自動(dòng)割草機(jī)的結(jié)構(gòu)設(shè)計(jì)、電路布局、硬件的配置以及程序搭建,具體完成了以下幾項(xiàng)任務(wù):介紹了新型自動(dòng)割草機(jī)在現(xiàn)有階段的狀況、功能對(duì)比以及國(guó)內(nèi)外的發(fā)展?fàn)顩r,以及預(yù)計(jì)發(fā)成的目標(biāo);分析了自主構(gòu)思設(shè)計(jì)的新型自動(dòng)割草機(jī)的機(jī)械結(jié)構(gòu)如:獨(dú)立懸掛結(jié)構(gòu)應(yīng)對(duì)的場(chǎng)景、割草機(jī)刀片的設(shè)計(jì)同時(shí)還對(duì)新型自動(dòng)割草機(jī)的操作方式進(jìn)行了設(shè)定;新型自動(dòng)割草機(jī)的功能分析,并對(duì)其功能進(jìn)行硬件的選型,對(duì)主控核心芯片、電機(jī)類型、通信方式以及舵機(jī)的型號(hào)規(guī)格進(jìn)行了系統(tǒng)的選型分析;對(duì)所需要的使用的硬件進(jìn)行I/O口的分配并進(jìn)行線路布局和分配;介紹了新型自動(dòng)割草機(jī)開發(fā)環(huán)境所需的開發(fā)軟件及輔助軟件,并分析了其使用功能及用途;對(duì)自動(dòng)割草機(jī)的程序編寫的底層進(jìn)行了配置,如Wi-Fi通信的nRF240l芯片進(jìn)行通信設(shè)置,以及SPI和IIC通訊接口進(jìn)行了搭建已達(dá)到后期總體編程時(shí)的自由調(diào)配;對(duì)割草機(jī)需要使用到的PID算法進(jìn)行了分析,并對(duì)增量式PID和位置式PID進(jìn)行不同的公式應(yīng)用。同時(shí)由于設(shè)計(jì)的機(jī)身大小是實(shí)際使用機(jī)型的縮小版,不過零配件并不能完成的的縮小所以與理想尺寸存在一定的不同,約束現(xiàn)有的割草機(jī)的功能例如收集裝置就沒能很好的融入進(jìn)去,未來希望能進(jìn)一步的研究和提升,也希望有更多的農(nóng)機(jī)自動(dòng)化設(shè)備被設(shè)計(jì)和開發(fā)。

參考文獻(xiàn)[1]王建平盧杉武歡歡.TB6612FNG在直流電機(jī)控制設(shè)計(jì)中的應(yīng)用[J].電子設(shè)計(jì)工程,2010(06):71-73.

[2]王瑞江蔡虎高鋮潘巨龍.智慧健康養(yǎng)老系統(tǒng)中跌倒檢測(cè)裝置設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2018(1):2-2.

[3]錢游張建平.基于HT66單片機(jī)的自行車智能無(wú)線防盜報(bào)警器[J].信息與電腦,2018(16):3-3.

[4]李延浩.機(jī)器視覺在多領(lǐng)域內(nèi)的應(yīng)用[J].電子技術(shù)與軟件工程,2018(1):2-2.

[5]謝俊聃曹劍中.基于SPI總線技術(shù)的同步422接口設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010(08):33-35.

[6]汪華平唐榮聯(lián)吳卓坪楊勇.PID算法仿真在樹脂砂熱法再生爐中的應(yīng)用[J].中國(guó)鑄造裝備與技術(shù),2015(03):88-91.

[7]張婷.鐵路巡線人員定位系統(tǒng)的設(shè)計(jì)[J].中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù),2017(08):73-73.

[8]李梅金力.《智能車PID算法的設(shè)計(jì)》實(shí)驗(yàn)綜述[J].電腦知識(shí)與技術(shù),2013(16):178-181.

[9]徐勝華.基于STM32的智能掃地機(jī)器人研究與設(shè)計(jì)[J].中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù),2016(03):53-53.

[10]謝亮.基于nRF24LE1的無(wú)線寬帶結(jié)構(gòu)健康監(jiān)測(cè)[J].微計(jì)算機(jī)信息,2009(19):100-102.

[11]徐施博李輝黃毅陳彬.基于STM32的單軸雙輪自平衡小車的設(shè)計(jì)[J].儀表技術(shù),2018(2):3-3.

[12]姚存治.基于Proteus和Keil的單片機(jī)課程教學(xué)模式改革[J].鄭州鐵路職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014(01):85-87.

[13]季凱源.基于SOPC技術(shù)和nRF24L01的無(wú)線傳輸系統(tǒng)[J].艦船電子對(duì)抗,2012(02):120-122.

[14]鄒迪.基于NRF24L01的壓電振動(dòng)式無(wú)線報(bào)警器[J].信息與電腦(理論版),2014(05):78-78.

[15]徐偉胡志忠肖前貴李志宇.AD7490與AT91RM9200的SPI接口及其驅(qū)動(dòng)程序的實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2009(10):220-222.

[16]陳新興林其偉高銀.基于nRF24L01無(wú)線巷道離層儀設(shè)計(jì)[J].福建電腦,2008(01):21-21.

[17]朱嶸濤葉傳濤.基于nRF2401和STC15F2K61S2的多點(diǎn)無(wú)線溫濕度檢測(cè)系統(tǒng)的設(shè)計(jì)[J].石油儀器,2014(01):8-8.

[18]徐廣偉陳金鷹高嵩.基于ARM7RFID讀卡器的設(shè)計(jì)及應(yīng)用[J].煤炭技術(shù),2010(01):59-61.

[19]馮劍勇.分布式獨(dú)立控制多旋翼飛行器的設(shè)計(jì)與研究[J].中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù),2016(01):77-77.

[20]曾美霞陳立定.扭矩實(shí)時(shí)檢測(cè)與數(shù)據(jù)分析系統(tǒng)[J].儀表技術(shù)與傳感器,2012(12):60-62.

[21]袁瑞豪王豪孫振涵.基于K66單片機(jī)的恩智浦智能小車制作[J].無(wú)線互聯(lián)科技,2019(11):128-130.

謝辭在整個(gè)畢業(yè)設(shè)計(jì)過程中小組成員的協(xié)作是給我的最大動(dòng)力,每個(gè)人都很積極的討論,分享自己的看法和不同的想法,使得我們?cè)谌蝿?wù)進(jìn)行時(shí)能很快的解決問題并且避免了很多錯(cuò)誤的發(fā)生,互相學(xué)習(xí)互相鼓勵(lì)互相分享經(jīng)驗(yàn)的過程是整個(gè)畢設(shè)過程中最難忘的時(shí)刻,感謝組員們的默默奉獻(xiàn)和相互合作。也十分感謝我們的曹彥玲指導(dǎo)老師,無(wú)時(shí)無(wú)刻的為我們解答問題,每周都會(huì)開展小組例會(huì)督促我們加緊任務(wù)注意時(shí)間。在大一時(shí),一門由曹少泳老師上的機(jī)械電子導(dǎo)論課打開了我對(duì)電控學(xué)習(xí)的求知欲望,讓我在大學(xué)有了明確的目標(biāo)。同時(shí)感謝黃堅(jiān)鑫、杜易臻、溫開旺、葉樹仁以及梁純健師兄,是在他們的鼓勵(lì)和影響之下帶領(lǐng)我走上學(xué)科競(jìng)賽和科研項(xiàng)目的道路上,開啟了我對(duì)各類電控、機(jī)械、硬件等方面的探索和研究。感謝曾經(jīng)機(jī)器人協(xié)會(huì)的TA207實(shí)驗(yàn)室,讓我對(duì)課余時(shí)間有了更好的支配,能和那么多優(yōu)秀的師兄一起在實(shí)驗(yàn)室學(xué)習(xí)、工作。在大學(xué)過程中也參加許多大大小小的比賽和項(xiàng)目其中很多都是由盧桂萍老帶領(lǐng)和指導(dǎo),雖然沒有取得很好的成績(jī),但是十分感謝她一直默默的支持。同時(shí)也感謝北京理工大學(xué)珠海學(xué)院能給我這么好的一個(gè)平臺(tái),能讓我遇到如此多良師益友,為我的生活增添色彩。四年的大學(xué)的時(shí)光轉(zhuǎn)眼就過去了,總有很多難忘的回憶讓我流連忘返,但也有一些遺憾的事情當(dāng)初沒有好好珍惜,沒有加倍努力。對(duì)于多去沒有方法可以改變,但是我現(xiàn)在需要放眼未來,踏實(shí)工作認(rèn)真對(duì)待每一件事提升自己能力,實(shí)現(xiàn)經(jīng)濟(jì)獨(dú)立報(bào)答二十幾年來?yè)狃B(yǎng)自己的父母,走自己想要走的路完成當(dāng)初立下的夢(mèng)想,愿明天更好,祝未來可期。

附錄附錄1部分程序代碼#include"stm32f10x.h"#include"sys.h"u8Flag_Stop=1,Flag_Show=0;//停止標(biāo)志位和顯示標(biāo)志位默認(rèn)停止顯示打開intEncoder_A,Encoder_B,Encoder_C,Encoder_D;//編碼器的脈沖計(jì)數(shù)longintPosition_A,Position_B,Position_C,Position_D,Rate_A,Rate_B,Rate_C,Rate_D;//PID控制相關(guān)變量intEncoder_A_EXTI;//通過外部中斷讀取的編碼器數(shù)據(jù)longintMotor_A,Motor_B,Motor_C,Motor_D;//電機(jī)PWM變量longintTarget_A,Target_B,Target_C,Target_D;//電機(jī)目標(biāo)值floatShow_Data_Mb;//全局顯示變量,用于顯示需要查看的數(shù)據(jù)u8delay_50,delay_flag;//延時(shí)相關(guān)變量floatPitch,Roll,Yaw,Move_X,Move_Y,Move_Z;//三軸角度和XYZ軸目標(biāo)速度u16PID_Parameter[10],Flash_Parameter[10];//Flash相關(guān)數(shù)組float Position_KP=40,Position_KI=0,Position_KD=40;//位置控制PID參數(shù)floatVelocity_KP=10,Velocity_KI=10; //速度控制PID參數(shù)intRC_Velocity=30,RC_Position=3000;//設(shè)置遙控的速度和位置值intYG_LX,YG_LY,YG_RX,YG_RY,YG_KEY;intmain(void){ delay_init(); //延時(shí)函數(shù)初始化 JTAG_Set(SWD_ENABLE);//打開SWD接口可以利用主板的SWD接口調(diào)試 LED_Init();//初始化與LED連接的硬件接口 KEY_Init();//按鍵初始化 MY_NVIC_PriorityGroupConfig(2); //設(shè)置中斷分組 if(MODE==0)Run_Flag=1;//啟動(dòng)的過程中,根據(jù)模式選擇開關(guān)確定進(jìn)入位置模式還是速度模式 elseRun_Flag=0;//啟動(dòng)的過程中,根據(jù)模式選擇開關(guān)確定進(jìn)入位置模式還是速度模式 Encoder_Init_TIM2();//初始化編碼器A Encoder_Init_TIM3();//初始化編碼器B Encoder_Init_TIM4();//初始化編碼器C Encoder_Init_TIM5();//初始化編碼器D IIC_Init();//IIC初始化 MPU6050_initialize();//MPU6050初始化 DMP_Init();//初始化DMP MiniBalance_PWM_Init(7199,0);//初始化PWM10KHZ,用于驅(qū)動(dòng)電機(jī) MiniBalance_EXTI_Init();//MPU60505ms定時(shí)中斷初始化while(1) { YG_LX=YG_AnologData(PSS_LX); YG_LY=YG_AnologData(PSS_LY); YG_RX=YG_AnologData(PSS_RX); YG_RY=YG_AnologData(PSS_RY); YG_KEY=YG_DataKey(); delay_flag=1; delay_50=0; while(delay_flag); //通過MPU6050的INT中斷實(shí)現(xiàn)的50ms精準(zhǔn)延時(shí) }}*******************************************************************************/voidMPU6050_newValues(int16_tax,int16_tay,int16_taz,int16_tgx,int16_tgy,int16_tgz){ unsignedchari; int32_tsum=0; for(i=1;i<10;i++)//FIFO操作 { MPU6050_FIFO[0][i-1]=MPU6050_FIFO[0][i]; MPU6050_FIFO[1][i-1]=MPU6050_FIFO[1][i]; MPU6050_FIFO[2][i-1]=MPU6050_FIFO[2][i]; MPU6050_FIFO[3][i-1]=MPU6050_FIFO[3][i]; MPU6050_FIFO[4][i-1]=MPU6050_FIFO[4][i];

溫馨提示

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