基于stm32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第1頁
基于stm32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第2頁
基于stm32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第3頁
基于stm32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第4頁
基于stm32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于STM32的兩輪自平衡車控制系統(tǒng)設(shè)計(jì) Control system design of two wheel self balancing vehicle based on stm32 內(nèi)容摘要本論文主要研究兩輪自平衡車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。兩輪自平衡車的機(jī)械結(jié)構(gòu)簡單,直立行駛的方式賦予靈活的操控方式,能在不同的場景中投入使用,如日常生活的代步、工業(yè)生產(chǎn)特殊搬運(yùn)需求等等。其控制系統(tǒng)的相關(guān)算法和相關(guān)理論具有廣闊的應(yīng)用前景。本文以STM32單片機(jī)為主控芯片,提出了系統(tǒng)設(shè)計(jì)方案,講解兩輪自平衡車控制系統(tǒng)的需求、框架和設(shè)計(jì)思路。然后對需要硬件進(jìn)行選型和電路設(shè)計(jì),并且對系統(tǒng)進(jìn)行軟件開發(fā)。通過兩輪平衡小

2、車的姿態(tài)分析并解算后,運(yùn)用PID算法的PD、PI、P算法對兩輪平衡車的直立環(huán)、速度環(huán)和轉(zhuǎn)向環(huán)進(jìn)行控制。并且使用藍(lán)牙無線通訊技術(shù),實(shí)現(xiàn)兩輪自平衡小車的無線操控功能,實(shí)現(xiàn)其控制便捷性。最后對系統(tǒng)進(jìn)行調(diào)試和測試,證明來該兩輪平衡車控制系統(tǒng)的可行性與穩(wěn)定性。關(guān)鍵詞:兩輪自平衡車 控制系統(tǒng) STM32單片機(jī) PID算法 藍(lán)牙無線通訊AbstractThis paper mainly studies the design and implementation of a two-wheel self-balancing vehicle control system. The mechanical struc

3、ture of the two-wheel self-balancing car is simple, and the upright driving mode gives flexible control methods, which can be put into use in different scenarios, such as daily life mobility, special handling requirements for industrial production, etc. The related algorithms and related theories of

4、 its control system have broad application prospects.This article takes STM32 microcontroller as the main control chip, puts forward a system design plan, and explains the requirements, framework and design ideas of the two-wheel self-balancing vehicle control system. Then select the required hardwa

5、re and circuit design, and software development of the system. After analyzing and solving the attitude of the two-wheel balancing car, the PD, PI, and P algorithms of the PID algorithm are used to control the upright ring, speed ring, and steering ring of the two-wheel balancing car. And the use of

6、 Bluetooth wireless communication technology to achieve two-wheeled self-balancing car wireless control function, to achieve its control convenience.Finally, the system was debugged and tested to prove the feasibility and stability of the two-wheel balance car control system.Keywords: Two-wheeled se

7、lf-balancing car Control system STM32 single-chip PID algorithm Bluetooth目錄第一章 緒論11.1 論文研究背景和意義11.2 國內(nèi)外兩輪平衡車研究歷史和現(xiàn)狀11.3 論文研究內(nèi)容和目標(biāo)21.4 論文結(jié)構(gòu)安排2第二章 系統(tǒng)設(shè)計(jì)方案32.1 需求分析32.2 系統(tǒng)框架32.3 設(shè)計(jì)思路4第三章 硬件系統(tǒng)設(shè)計(jì)53.1 STM32最小系統(tǒng)設(shè)計(jì)53.1.1 主控芯片53.1.2 最小系統(tǒng)的設(shè)計(jì)63.2 電源系統(tǒng)63.2.1 降壓芯片選型63.2.2 電源系統(tǒng)原理圖73.3 MPU-6050六軸陀螺儀傳感器模塊73.3.1 MPU-

8、6050概述73.3.2 MPU-6050系統(tǒng)原理圖83.4 TB6612FNG電機(jī)驅(qū)動模塊93.4.1 TB6612FNG模塊概述93.4.2 TB6612FNG原理圖93.5 BT04-A藍(lán)牙串口模塊103.5.1 BT04-A藍(lán)牙串口模塊概述103.5.2 BT04-A藍(lán)牙串口模塊原理圖103.6 OLED顯示屏模塊113.6.1 OLED顯示屏概述113.6.2 OLED顯示屏接線圖113.7 電機(jī)編碼器123.8 本章小結(jié)12第四章 軟件系統(tǒng)開發(fā)134.1 總體方案134.2 MPU-6050讀取姿態(tài)信息134.2.1 讀取原始數(shù)據(jù)134.2.2 讀取DMP并轉(zhuǎn)換為歐拉角144.2.

9、3 IIC通訊方式144.3 霍爾編碼器測速164.3.1 程序框圖164.3.2 編碼器軟件四倍頻164.4 藍(lán)牙無線傳輸174.4.1 STM32串口通訊174.5 遙控終端的開發(fā)18第五章 兩輪平衡小車關(guān)鍵算法205.1 MPU-6050姿態(tài)解算205.1.1 DMP輸出四元數(shù)205.1.2 歐拉角轉(zhuǎn)換205.2 兩輪平衡車的PID控制算法205.2.1 PID算法的概述和應(yīng)用205.2.2 基于PD控制的直立環(huán)215.2.3 基于PI控制的速度環(huán)215.2.4 基于PD控制的轉(zhuǎn)向環(huán)22第六章 系統(tǒng)測試236.1 測試目的與測試環(huán)境236.2 電源系統(tǒng)檢測236.3 STM32最小系統(tǒng)測

10、試246.4 藍(lán)牙無線通訊測試256.5 陀螺儀測試256.6 兩輪自平衡車PID調(diào)試276.6.1 直立環(huán)PD算法的調(diào)試276.6.2 速度環(huán)PI算法的調(diào)試286.6.3 轉(zhuǎn)向環(huán)PD算法的調(diào)試286.7 兩輪自平衡車遙控測試306.8 本章小結(jié)30結(jié)論31參考文獻(xiàn)32致謝33廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)第一章 緒論1.1 論文研究背景和意義人類的生存發(fā)展已經(jīng)步入21世紀(jì),這是一個高科技的時(shí)代,我們的日常生產(chǎn)生活中離不開數(shù)字技術(shù)、計(jì)算機(jī)技術(shù)和機(jī)械設(shè)計(jì)技術(shù)等高科技技術(shù)。兩輪自平衡電動車,以兩輪共軸為機(jī)械結(jié)構(gòu),通過自帶精密電子陀螺儀(Solid-State Gyroscopes)的電子平衡系統(tǒng)

11、,實(shí)現(xiàn)了自動平衡和直立行走的功能。其外形小巧、行動靈活、環(huán)保方便的特點(diǎn),得到了市場的廣大認(rèn)同和發(fā)展。目前各種需要移動運(yùn)輸操作的傳統(tǒng)機(jī)械設(shè)備,基本都以后驅(qū)四輪式或者履帶式的形式存在。這些傳統(tǒng)的機(jī)械的移動方式已經(jīng)滿足不了人們生產(chǎn)生活對人工智能的要求。因此,市場上急需一種更為方便靈活的機(jī)械輔助移動設(shè)備,直立式兩輪自平衡電動車的出現(xiàn)滿足了這一需求。兩輪自平衡車系統(tǒng)運(yùn)行時(shí),自平衡控制規(guī)劃、行駛操控等多種功能同時(shí)運(yùn)行。最關(guān)鍵一點(diǎn)是實(shí)現(xiàn)自平衡的同時(shí),還要在不同的環(huán)境中直立行駛,實(shí)現(xiàn)控制操作。兩輪自平衡車的概念,以其不穩(wěn)定的動態(tài)性能和系統(tǒng)非線性,迅速成為各種控制理論的研究平臺,具有較大的科研意義。1.2 國內(nèi)

12、外兩輪平衡車研究歷史和現(xiàn)狀近年來全球各國對兩輪自平衡機(jī)器人的研究越來越火爆,使其得到了迅速的發(fā)展。多國紛紛研發(fā)了實(shí)驗(yàn)機(jī),兩輪平衡車的平衡控制的方案陸續(xù)被研發(fā)設(shè)計(jì)出來,呈現(xiàn)出控制系統(tǒng)的多樣性。兩輪自平衡車有了穩(wěn)定的行駛平衡系統(tǒng),再經(jīng)過改造,可快速方便地應(yīng)用到不同的環(huán)境里,如工業(yè)生產(chǎn)所需的承載運(yùn)輸、日常生活代步等。對于各國來說這是一個巨大的機(jī)遇,使得一些外國公司也在市場上生產(chǎn)研發(fā)相應(yīng)的商業(yè)產(chǎn)品,并且投放到市場。2002年,一臺名為“Segway HT”的兩輪直立式自平衡載人設(shè)備問世,該設(shè)備由美國Segway公司研制。該設(shè)備以其行駛靈活、體型小巧的特點(diǎn),被用于人員密集的機(jī)場中。機(jī)場的安保警務(wù)人員站立

13、在該兩輪平衡車上,可在人群中靈活快速地移動行駛,居高臨下的行駛方式滿足了觀察機(jī)場各處的需求,能夠及時(shí)地發(fā)現(xiàn)和處理可疑情況。2006年,一家位于德國的Transport公司,針對室內(nèi)外的現(xiàn)場攝影工作者,研發(fā)了兩輪攝像車,該設(shè)備后來廣泛應(yīng)用于電視節(jié)目的錄制,甚至用于電影特殊情節(jié)的拍攝之中。2007年,日本豐田汽車公司研發(fā)了一臺豐田機(jī)動機(jī)器人(MobilityRobot),這臺只有15千克的機(jī)器人,最高行駛速度高達(dá)每小時(shí)20千米。哈爾濱工程大學(xué)的研究人員,使用兩塊C8051單片機(jī)與人機(jī)交互上位機(jī),組成了一個控制系統(tǒng),通過不同傳感器測量計(jì)算得出車體姿態(tài)信息,使用脈沖寬度調(diào)制(PWM)控制兩臺直流電機(jī),

14、外加人機(jī)交互和無線傳輸?shù)燃夹g(shù),制造了一臺兩輪直立自平衡機(jī)器人。中國科技大學(xué)研發(fā)了一款兩輪自平衡代步電動車。采用了左右輪共軸的機(jī)械結(jié)構(gòu),通過建立系統(tǒng)數(shù)學(xué)模型建立控制算法,計(jì)算輸出脈沖寬度調(diào)制(PWM)控制,來控制兩個伺服電機(jī)的轉(zhuǎn)矩,使電動車在行駛過程中保持直立平衡。1.3 論文研究內(nèi)容和目標(biāo)本論文研究內(nèi)容:(1)兩輪自平衡車的系統(tǒng)設(shè)計(jì)方案;(2)兩輪自平衡車的硬件選型和電路設(shè)計(jì);(3)兩輪自平衡車的控制算法;(4)控制系統(tǒng)的調(diào)試及測試。根據(jù)本設(shè)計(jì)的功能要求,在實(shí)現(xiàn)兩輪自平衡小車自平衡的情況下,完成遙控操作兩輪自平衡車的前進(jìn)、后退、轉(zhuǎn)彎等行駛功能。1.4 論文結(jié)構(gòu)安排本論文的主要由以下六個章節(jié)構(gòu)成

15、:第一章,緒論。研究本論文的背景和意義,分析國內(nèi)外兩輪自平衡車的歷史和現(xiàn)狀,提出論文研究的意義和目的。第二章,系統(tǒng)設(shè)計(jì)方案。對兩輪自平衡車的需求進(jìn)行分析并設(shè)計(jì)系統(tǒng)框架,提出設(shè)計(jì)思路。第三章,硬件系統(tǒng)設(shè)計(jì)。結(jié)合兩輪自平衡車的功能需求,對所需硬件進(jìn)行選型分析,并設(shè)計(jì)其原理圖。第四章,軟件系統(tǒng)開發(fā)。提出軟件系統(tǒng)總體方案,分析各模塊的軟件系統(tǒng)開發(fā)和流程。第五章,兩輪平衡車關(guān)鍵算法。對陀螺儀輸出的姿態(tài)數(shù)據(jù)進(jìn)行解算。使用PID算法對電機(jī)進(jìn)行控制,從而使兩輪自平衡車保持直立、平衡。第六章,系統(tǒng)測試。對兩輪平衡車的系統(tǒng)進(jìn)行測試,PID算法的調(diào)試。驗(yàn)證了兩輪平衡車控制算法的可行性與穩(wěn)定性。第二章 系統(tǒng)設(shè)計(jì)方案2

16、.1 需求分析本系統(tǒng)要求在兩輪自平衡小車自平衡的狀態(tài)下,通過藍(lán)牙無線傳輸技術(shù),遙控實(shí)現(xiàn)兩輪自平衡車移動行駛功能。本系統(tǒng)使用STM32F103C8T6作為平衡小車的主控芯片,實(shí)現(xiàn)以下功能要求:(1)獲取小車的平衡姿態(tài),并進(jìn)行姿態(tài)解算;(2)使用PID算法控制兩輪自平衡車,在靜止和行駛的狀態(tài)下保持自平衡;(3)能夠通過藍(lán)牙無線傳輸技術(shù)使用手機(jī)APP藍(lán)牙遙控操縱小車的行駛;(4)OLED顯示屏顯示電池電容量等小車狀態(tài)信息;2.2 系統(tǒng)框架本系統(tǒng)其核心控制器選用STM32F103C8T6單片機(jī)。由LM2596和AMS1117芯片組成的電源系統(tǒng),提供各硬件穩(wěn)定安全的工作電壓環(huán)境。MPU-6050六軸傳感

17、器可測量出小車的車體行駛姿態(tài)。電機(jī)編碼器可得到小車的移動速度。OLED顯示屏顯示車體姿態(tài)信息和電池電壓狀況。TB6612電機(jī)驅(qū)動模塊負(fù)責(zé)驅(qū)動大電流直流電機(jī)運(yùn)轉(zhuǎn)。BT04-A藍(lán)牙模塊實(shí)現(xiàn)了兩輪自平衡車和遙控器之間的無線通訊功能。其系統(tǒng)結(jié)構(gòu)如圖2.1所示。圖2.1 系統(tǒng)結(jié)構(gòu)圖2.3 設(shè)計(jì)思路根據(jù)各模塊和傳感器與STM32之間的連接通訊方式,系統(tǒng)設(shè)計(jì)思路圖如圖2.2所示。圖2.2 硬件設(shè)計(jì)思路第三章 硬件系統(tǒng)設(shè)計(jì)3.1 STM32最小系統(tǒng)設(shè)計(jì)3.1.1 主控芯片兩輪自平衡車的系統(tǒng)工作時(shí),需反復(fù)快速地讀取陀螺儀、電機(jī)編碼器等傳感器的數(shù)據(jù),并馬上經(jīng)過算法處理,輸出控制量反饋控制到直流電機(jī)。因此,控制系統(tǒng)

18、對主控芯片的處理速度以及運(yùn)行內(nèi)存要求較高。本控制系統(tǒng)的主控芯片選取意法半導(dǎo)體公司(ST)生產(chǎn)的STM32F103C8T6型號單片機(jī)。其內(nèi)核Cortex-M3由ARM公司設(shè)計(jì)。主要參數(shù)如表3.1所示。表3.1 STM32C8T6參數(shù)表工作電壓2V3.6V總線寬度32位速度72 MHzFLASH容量64KBRAM容量20K可以看到,其72MHz的速度和32位的總線寬度,滿足了兩輪平衡車控制系統(tǒng)對處理速度的要求,64 KB的FLASH存儲器也是可以滿足程序的存儲。如圖3.1為STM32F10x的系統(tǒng)構(gòu)架圖。該圖提供了STM32F103C8T6單片機(jī)內(nèi)部的結(jié)構(gòu)關(guān)系,外設(shè)資源一目了然,對STM32的運(yùn)用

19、與開發(fā)提供幫助。圖3.1 STM32F10x系列系統(tǒng)構(gòu)架圖3.1.2 最小系統(tǒng)的設(shè)計(jì)單片機(jī)最小系統(tǒng)的定義為可滿足單片機(jī)正常工作的系統(tǒng)。STM32單片機(jī)最小系統(tǒng)除了單片機(jī)之外,還有電源、復(fù)位、時(shí)鐘三種電路和調(diào)試接口、boot啟動選項(xiàng)組。圖3.2為本系統(tǒng)的最小系統(tǒng)原理圖。單片機(jī)選取LQFP-48封裝的單片機(jī)。電源使用降壓后的電源,電源系統(tǒng)的詳細(xì)設(shè)計(jì)內(nèi)容在下面章節(jié)中分析。復(fù)位電路設(shè)計(jì)為按鍵觸發(fā)復(fù)位。將RST引腳通過按鍵S2。當(dāng)按鍵按下后,引腳RST接地,RST引腳由高電平被拉低為低電平,觸發(fā)單片機(jī)的復(fù)位功能。按鍵松開后,系統(tǒng)正常工作。復(fù)位電路中1uf電容和10k電阻,提供可靠的復(fù)位時(shí)間。外置8MHz

20、晶振時(shí)鐘,并加入20uf的負(fù)載電容,該電容的作用是保證晶振的正常工作,使時(shí)鐘電路提供精準(zhǔn)時(shí)間。使用SWD下載模式,所需引腳較少,節(jié)約偏上資源。設(shè)置boot模式的設(shè)計(jì)較為簡單,只需把把boot0和boot1引腳引出,使用跳線帽的方式設(shè)置即可。圖3.2 STM32F103C8T6最小系統(tǒng)原理圖。3.2 電源系統(tǒng)3.2.1 降壓芯片選型由于直流電機(jī)的驅(qū)動電壓、電流較大,本系統(tǒng)選取12V的鋰電池來供電。但是12V的電壓環(huán)境對單片機(jī)、各傳感器和各模塊來說電壓太高,直接供電會燒毀擊穿各模塊,所以還需要對電壓進(jìn)行降壓處理。選用LM2596降壓芯片,其最大可輸入電壓為40V,最大驅(qū)動電流達(dá)到3A,有熱關(guān)斷和限

21、流保護(hù)能力,負(fù)載調(diào)節(jié)能力強(qiáng)。12V的鋰電池電壓通過LM2596組成的降壓電路后,輸出穩(wěn)定的5V電壓。選用AMS111733正向低壓降穩(wěn)壓器,把LM2596輸出的5V電壓進(jìn)行降壓,最后輸出得到到3.3V的電壓。3.2.2 電源系統(tǒng)原理圖根據(jù)本設(shè)備所需電源要求,根據(jù)LM2596和AMS111733的數(shù)據(jù)手冊,設(shè)計(jì)出本設(shè)備的電源系統(tǒng)如圖3.3。圖3.3 電源系統(tǒng)原理圖平衡車的輸入電壓為12V,經(jīng)LM2596降壓,輸出電壓為5V,最大負(fù)載3A。5V的電壓經(jīng)AMS111733降壓后,輸出3.3V電壓。電源系統(tǒng)加入大電流開關(guān)S3,打開S3后系統(tǒng)電源開啟,各降壓模塊開始工作,提供穩(wěn)定電壓,關(guān)閉S3后整個電源

22、系統(tǒng)關(guān)閉。3.3 MPU-6050六軸陀螺儀傳感器模塊3.3.1 MPU-6050概述MPU-6050六軸陀螺儀傳感器,內(nèi)含MEMS 陀螺儀、MEMS加速度計(jì)各三軸。內(nèi)嵌DMP(Digital Motion Processor)數(shù)字運(yùn)動處理器,其通訊方式為IIC協(xié)議或SPI協(xié)。VCC引腳接入3.3V或5V的電壓,GND引腳接地。SDA和SCL兩組引腳為IIC通訊引腳的信號線。當(dāng)MPU-6050六軸陀螺儀傳感器需要外接傳感器時(shí),XDA和XCL引腳分別接IIC主串行數(shù)據(jù)信號線和時(shí)鐘信號線。AD0可通過接地或接電來設(shè)置AD0的值為0或1,AD0=0時(shí)MPU-6050的地址為0x68,AD0=1時(shí)MP

23、U-6050的地址為0x69。INT引腳為中斷輸出引腳。MPU-6050六軸陀螺儀傳感器的引腳及其說明如表3.2。表3.2 MPU-6050引腳說明引腳名稱說明VCC電源輸入3.3V或5VGND接地SCLIIC從時(shí)鐘信號線SCLSDAIIC從數(shù)據(jù)信號線SDAAUX_DAIIC主串行數(shù)據(jù)信號線,用于外接傳感器AUX_CLIIC主串行時(shí)鐘信號線,用于外接傳感器AD0接地、懸空時(shí)地址為0x68;接VCC地址為0x69INT中斷輸出引腳3.3.2 MPU-6050系統(tǒng)原理圖翻閱MPU-6050數(shù)據(jù)手冊,設(shè)計(jì)出接線原理圖,如圖3.4所示。圖3.4 MPU-6050原理圖MPU-6050的電源引腳3.3V

24、的電壓,并且在電源入口和器件旁邊加入濾波電容,用來濾除交流成分,使輸出的直流更平滑,確保MPU-6050硬件穩(wěn)定性,滿足控制系統(tǒng)對高精度姿態(tài)數(shù)值的需要。AD0引腳接地,AD0的值為0,設(shè)置MPU-6050的設(shè)備地址為0x68。IIC通訊引腳SDA與SCL分別接入STM32的PB9和PB8引腳,并且加入了一個4.7K的上拉電阻,作用是保證有正常的高電平輸出,起到保護(hù)芯片的作用。3.4 TB6612FNG電機(jī)驅(qū)動模塊3.4.1 TB6612FNG模塊概述兩輪平衡車自帶兩個直流電機(jī),12V的鋰電池雖然可以使電機(jī)轉(zhuǎn)動,但是無法直接控制其轉(zhuǎn)速來控制車體保持平衡。所以需要一塊專門負(fù)責(zé)驅(qū)動、控制電機(jī)的芯片。

25、東芝半導(dǎo)體公司生產(chǎn)的TB6612FNG芯片,是一款直流電機(jī)驅(qū)動器件。該芯片自帶來大電流MOSFET-H橋結(jié)構(gòu),能夠輸出雙通道的電路。剛好可以驅(qū)動兩輪自平衡車的兩個電機(jī),而且該芯片有低熱耗,不需要加散熱片。100KHz的PWM信號輸入頻率也滿足了兩輪平衡車控制系統(tǒng)的需求。TB6612FNG的主要參數(shù)如表3.3所示:表3.3 TB6612FNG的參數(shù)表工作電壓5V最大輸入電壓15V最大輸出電流3.2A功能模式正反轉(zhuǎn)、短路剎車、停機(jī)圖3.5 TB6612FNG芯片圖3.4.2 TB6612FNG原理圖TB6612FNG與電機(jī)連接的原理圖如圖3.6。圖3.6 TB6612FNG原理圖TB6612FNG

26、芯片的PWMA引腳和PWMB引腳分別接到STM32單片機(jī)PA11引腳和PA8引腳,用于單片機(jī)輸出PWM信號控制兩個電機(jī),TB6612FNG的輸出引腳O1、O2和O3、O4引腳分兩組引出來,方便點(diǎn)機(jī)的接線。AN1、AN2和BN1、BN2分別連接到單片機(jī)對應(yīng)IO口上來控制電機(jī)轉(zhuǎn)向,其真值表如表3.4所示。表3.4 TB6612FNG控制電機(jī)運(yùn)轉(zhuǎn)方向真值表引腳停止正轉(zhuǎn)反轉(zhuǎn)AN1010AN20013.5 BT04-A藍(lán)牙串口模塊3.5.1 BT04-A藍(lán)牙串口模塊概述此設(shè)備使用BT04-A藍(lán)牙模塊。該模塊采用藍(lán)牙V2.1+EDR技術(shù)并且兼容UART接口。成本低,功耗低,接收靈敏性高。其外圍電路只需少許

27、幾個元件,就能實(shí)現(xiàn)藍(lán)牙無線傳輸?shù)墓δ?。圖3.7 BT04-A藍(lán)牙串口通訊模塊BT04-A藍(lán)牙串口模塊的主要參數(shù)為:表3.5 BT04-A參數(shù)表工作電壓3.3V通訊模式UART通訊有效距離15米左右用戶可根據(jù)需要,通過AT模式輸入對應(yīng)的AT指令,來設(shè)置本藍(lán)牙模塊的名字、主角色(Master)或者從角色(Slave)以及配對碼等信息。3.5.2 BT04-A藍(lán)牙串口模塊原理圖BT04-A藍(lán)牙串口模塊原理圖如圖3.8所示。圖3.8 BT04-A藍(lán)牙串口模塊原理圖BT04-A模塊的串口通訊引腳跟STM32上的串口通訊引腳交叉相連,即STM32上的串口輸出引腳連接到BT04-A模塊的串口輸入引腳,STM

28、32上的串口輸入引腳連接到BT04-A模塊的串口輸出引腳。BT04-A模塊的P12引腳外接LED燈,用于顯示藍(lán)牙模塊的狀態(tài)。3.6 OLED顯示屏模塊3.6.1 OLED顯示屏概述0.96寸的OLED顯示屏,用顯示于兩輪自平衡車上電時(shí)的電壓、車體的傾斜姿態(tài)、電機(jī)編碼器的數(shù)值等信息。其主要參數(shù)如表3.6所示。表3.6 OLED顯示屏參數(shù)表工作電壓3.3V分辨率12864顯示內(nèi)存12864位字節(jié)響應(yīng)時(shí)間幾微秒到幾十微秒表3.7為OLED顯示屏模塊的引腳說明。表3.7 OLED顯示屏模塊的引腳表GND電源地線SDA數(shù)據(jù)線VCC輸入電壓RST復(fù)位SCL時(shí)鐘線D/C命令/數(shù)據(jù)3.6.2 OLED顯示屏接

29、線圖OLED顯示屏的接線如圖3.9所示。其輸入電壓為3.3V。SCL、SDA、RST和D/C引腳分別接STM32的PC15、PC14、PC13和PB4引腳上。圖3.9 OLED顯示屏接線圖3.7 電機(jī)編碼器編碼器可以把軸角度方向的位移,轉(zhuǎn)換成數(shù)字脈沖,是一種的旋轉(zhuǎn)式的傳感器。將編碼器設(shè)置到電機(jī)轉(zhuǎn)動軸的位置,輸出對應(yīng)波形,得到電機(jī)轉(zhuǎn)動的速度信息。本設(shè)備采用AB相輸出的增量式霍爾編碼器,如圖3.10。只需給編碼器接上5V的工作電源,電機(jī)上電后便輸出AB相的方波信號,可以辨別轉(zhuǎn)向和測量速度。圖3.10 增量式霍爾編碼器3.8 本章小結(jié)本章的主要針對硬件的選型并設(shè)計(jì)對應(yīng)外圍電路。從自平衡車的功能出發(fā)來

30、設(shè)計(jì)硬件系統(tǒng),對各芯片模塊進(jìn)行介紹并設(shè)計(jì)工作電路。各模塊與主控芯片STM32連接,完成硬件系統(tǒng)的設(shè)計(jì)。第四章 軟件系統(tǒng)開發(fā)4.1 總體方案軟件系統(tǒng)開始時(shí),初始化各函數(shù),讀取電壓值,判斷定時(shí)器是否定時(shí)時(shí)間到,如果定時(shí)時(shí)間未到則回到定時(shí)開始,如果定時(shí)時(shí)間到了,陀螺儀輸出DMP數(shù)據(jù),并轉(zhuǎn)換為歐拉角,顯示屏顯示車體狀態(tài)信息。判斷自平衡啟動按鍵是否按下,按鍵沒有按下則循環(huán)檢測按鍵,如果按鍵按下則進(jìn)行PID運(yùn)算,并以輸出PWM 控制電機(jī)運(yùn)轉(zhuǎn)來控制小車自平衡。檢測藍(lán)牙是否連接,如果藍(lán)牙已連接則點(diǎn)亮指示燈,接收指令,并輸出對應(yīng)PWM控制小車行駛狀態(tài),如果藍(lán)牙沒有連接,則回到自平衡啟動按鍵的檢測檢。軟件系統(tǒng)流程

31、圖如圖4.1所示。圖4.1 軟件系統(tǒng)流程圖4.2 MPU-6050讀取姿態(tài)信息4.2.1 讀取原始數(shù)據(jù)MPU-6050原始數(shù)據(jù)獲取流程如圖4.2所示。圖4.2 MPU-6050姿態(tài)讀取流程圖根據(jù)IIC協(xié)議的通訊方式,使用軟件的方式控制STM32的兩個IO口,模擬出IIC通訊協(xié)議。然后對MPU-6050陀螺儀進(jìn)行初始化操作,配置其時(shí)鐘、陀螺儀最大量程、加速度最大量程等,初始化后就可以通過軟件模擬的IIC協(xié)議讀取MPU-6050寄存器的值,得到加速度和角加速度的信息。4.2.2 讀取DMP并轉(zhuǎn)換為歐拉角讀取MPU-6050內(nèi)置DMP的姿態(tài)信息并轉(zhuǎn)換為歐拉角流程如圖4.3所示。圖4.3讀取DMP并轉(zhuǎn)

32、換為歐拉角流程圖對MPU6050初始化設(shè)置后,通過IIC讀取FIFO寄存器中的值,得到q30格式的值,再進(jìn)行浮點(diǎn)數(shù)計(jì)算,最后經(jīng)過歐拉角轉(zhuǎn)換計(jì)算出Pitch和Roll。4.2.3 IIC通訊方式本文中MPU6050與STM32的通訊方式為IIC通信。IIC是一種由數(shù)據(jù)總線SDA和時(shí)鐘總線SCL兩條串行總線組成的一種串行通信協(xié)議總線。IIC連接到設(shè)備上時(shí),可以設(shè)置為主機(jī)和從機(jī)。當(dāng)設(shè)置為主機(jī)模式時(shí),地址總線需要獲取從機(jī)的地址。當(dāng)設(shè)置為從機(jī)模式時(shí),需要再配置其匹配地址,從而才能對主機(jī)發(fā)出應(yīng)答信號。在本設(shè)備中,MPU-6050倍設(shè)置為從機(jī)使用。整個IIC協(xié)議通信流程包含起始信號(S)、應(yīng)答信號(ACK)

33、、數(shù)據(jù)傳輸(發(fā)送/接收)、停止信號(P)。當(dāng)STM32需要讀取MPU6050的數(shù)據(jù)時(shí),STM32先發(fā)起開始信號 (S),其方式為數(shù)據(jù)總線SDA和時(shí)鐘總線SCL保持高電平,數(shù)據(jù)總線SDA由高電平轉(zhuǎn)換到低電平,形成一個下降沿,此周期為0.6us。當(dāng)IIC通訊結(jié)束時(shí),時(shí)鐘總線SCL保持高電平,在0.6us內(nèi),數(shù)據(jù)總線SDA由低電平升到高電平形成上升沿,此為IIC通訊結(jié)束的標(biāo)志(P)。IIC開始信號和結(jié)束時(shí)序如圖4.4所示。圖4.4 IIC開始信號和結(jié)束信號圖IIC數(shù)據(jù)的寬度為8位字節(jié),在IIC開始信號發(fā)出后,發(fā)送8位數(shù)據(jù)。當(dāng)時(shí)鐘總線SCL處于高電平且數(shù)據(jù)總線SDA保持穩(wěn)定的低電平時(shí),發(fā)送數(shù)據(jù)0。反之

34、,當(dāng)時(shí)鐘總線SCL處于高電平且數(shù)據(jù)總線SDA保持穩(wěn)定的高電平電平時(shí),則發(fā)送數(shù)據(jù)1。圖4.5 IIC數(shù)據(jù)發(fā)送方式 在發(fā)送完8位二進(jìn)制的數(shù)后,還需跟隨一個應(yīng)答信號(ACK),此信號用于判定是否傳輸一次數(shù)據(jù)。如果在第9個時(shí)鐘脈沖期間,時(shí)鐘線為的高電平,且數(shù)據(jù)總線SDA為穩(wěn)定的低電平,那么這就是一個有效應(yīng)答位(Acknowledge)。如果在第9個時(shí)鐘脈沖之前的低電平期間,數(shù)據(jù)總線SDA保持高電平,則此次應(yīng)答信號為一個無效應(yīng)答位。(Not-acknowledge)。圖4.6 IIC應(yīng)答信號時(shí)序圖4.3 霍爾編碼器測速4.3.1 程序框圖電機(jī)編碼器測速的流程如圖4.7。圖4.7 電機(jī)編碼器測速流程系統(tǒng)一

35、開始,首先對STM32的定時(shí)器TIM2和定時(shí)器TIM4進(jìn)行初始化,設(shè)置成編碼器接口模式,然后打開2個定時(shí)器。編碼器接口的電平跳變觸發(fā)定時(shí)器計(jì)算,讀取STM32的定時(shí)器計(jì)數(shù)寄存器的值,計(jì)算得出速度。4.3.2 編碼器軟件四倍頻假如在時(shí)間T內(nèi),編碼器輸出的AB相2個波形,如圖也就是圖4.8所示。使用M法則測量A相(或B相)的上升沿或者下降沿來測速的時(shí)候,那么在時(shí)間T內(nèi),這樣的測速方式就只能計(jì)數(shù)2次。使用軟件四倍頻算法,對編碼器輸出波形進(jìn)行四倍頻,在A相和B相各輸出一個完整波形的波形時(shí),同時(shí)測量A相和B相編碼器的上升沿和下降沿,如圖4.8中14所示,這樣在同樣時(shí)間T內(nèi),可以計(jì)數(shù)8次,提高了測速的工作

36、效率。圖4.8 編碼器AB相波形4倍頻4.4 藍(lán)牙無線傳輸該設(shè)備使用的藍(lán)牙無線傳輸技術(shù)是基于STM32的USART串口傳輸技術(shù)。連接好藍(lán)牙模塊后就可以以全雙工的傳輸模式直接串口數(shù)據(jù)傳輸。就相當(dāng)于連接上普通的串口線,可以進(jìn)行數(shù)據(jù)的無線傳輸。4.4.1 STM32串口通訊STM32的串口通訊流程圖如圖4.9所示。圖4.9 串口通訊流程圖4.5 遙控終端的開發(fā)平衡小車控制系統(tǒng)內(nèi)嵌了藍(lán)牙無線傳輸技術(shù),使得遙控終端的開發(fā)就較為簡單方便。首先在STM32編程設(shè)置好前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等操作的指令,其指令表如表4.1所示。表4.1 遙控操作指令表操作字符指令十六進(jìn)制(HEX)指令前進(jìn)A0x41后退E0x4

37、5左轉(zhuǎn)B0x42右轉(zhuǎn)F0x46剎車Z0x5A然后手機(jī)下載 “藍(lán)牙調(diào)試器”APP,打開編程模式對“前進(jìn)”、“后退”、“左轉(zhuǎn)”、“右轉(zhuǎn)”4個按鍵進(jìn)行編輯。當(dāng)“前進(jìn)”按鈕被按下時(shí),發(fā)送前進(jìn)指令“A”,當(dāng)“前進(jìn)”按鈕松開時(shí)發(fā)送剎車指令“Z”以防陷入前進(jìn)操作的循環(huán)。按鍵編程圖如圖4.10圖4.13所示。 圖4.10 “前進(jìn)”按鍵設(shè)置 圖4.11“后退”按鍵設(shè)置 圖4.12 “左轉(zhuǎn)”按鍵設(shè)置 圖4.13 “右轉(zhuǎn)”按鍵設(shè)置設(shè)置好四個操作按鍵后,“藍(lán)牙調(diào)試器”APP遙控界面如圖4.14所示。使用“藍(lán)牙調(diào)試器”APP連接平衡車主板上的藍(lán)牙。當(dāng)按下編程好的按鍵時(shí),“藍(lán)牙調(diào)試器”APP發(fā)送相應(yīng)指令到平衡小車主板上,

38、通過串口傳輸?shù)絊TM32上,STM32計(jì)算好PWM來控制小車完成對應(yīng)行駛操作。圖4.14 “藍(lán)牙調(diào)試器”APP遙控界面第五章 兩輪平衡小車關(guān)鍵算法5.1 MPU-6050姿態(tài)解算5.1.1 DMP輸出四元數(shù)四元數(shù)是一種超復(fù)數(shù),代表一個加入旋轉(zhuǎn)角的三維空間。其表達(dá)式為:q=(q0,q1,q2,q3) (5.1)其中q0為實(shí)數(shù),q1q3為虛部的實(shí)數(shù)。MPU-6050自帶硬件運(yùn)動處理器DMP(Digital Motion Processing),能夠把原始角速度數(shù)據(jù)轉(zhuǎn)換為四元數(shù),這減輕了主控芯片STM32的工作負(fù)擔(dān)。DMP的使用較為簡單,只需下載其官方DMP驅(qū)動庫文件,并移植到STM32即可。使用D

39、MP得到各軸的加速度和角速度。需要注意的是DMP輸出數(shù)據(jù)的格式為浮點(diǎn)數(shù)放大了230倍的q30模式,需要將輸出的數(shù)轉(zhuǎn)化為浮點(diǎn)數(shù),表達(dá)公式為:q0=quat0 / q30 (5.2)q1=quat1 / q30 (5.3)q2=quat2 / q30 (5.4)q3=quat3 / q30 (5.5)5.1.2 歐拉角轉(zhuǎn)換歐拉角是用來確定某個圍繞定點(diǎn)轉(zhuǎn)動的剛體位置的一組三個獨(dú)立角參量,可理解為由X軸上的滾轉(zhuǎn)角(roll)、Y軸上的俯仰角(pitch)、Z軸上的航偏角(yaw) 組成。此系統(tǒng)應(yīng)用到pitch和roll兩個參數(shù)。pitch值轉(zhuǎn)換式為:asin2q1q3+2q0q2/180 (5.6)r

40、oll值的轉(zhuǎn)換式為:atan2(2q2q3+2q0q1, 2q1q12q22+1)180/ (5.7)5.2 兩輪平衡車的PID控制算法5.2.1 PID算法的概述和應(yīng)用PID算法是常見的控制算法之一,由比例(Proportional)、積分(Integral)和微分(Differential)三種計(jì)算組成。在工程實(shí)踐中,一般P是必須的,所以衍生出許多組合的PID控制器,如P、PI、PID等。本兩輪自平衡車控制系統(tǒng)分為三部分。第一是兩輪自平衡車直立控制系統(tǒng),第二是兩輪自平衡車速度控制系統(tǒng),第三是兩輪自平衡車轉(zhuǎn)向控制系統(tǒng)。這三個系統(tǒng)分別使用到不同的PID控制算法。圖5.1 PID算法圖5.2.2

41、 基于PD控制的直立環(huán)直立控制系統(tǒng)使用PD控制器,D(微分)控制的加入能夠快速地響應(yīng)車體受到的干擾,調(diào)整車體平衡狀態(tài)。PD控制車體直立的程序框圖如圖5.2所示。圖5.2 PD控制直立流程圖5.2.3 基于PI控制的速度環(huán)速度控制系統(tǒng)使用PI控制器。P控制器具有線性,利用實(shí)際輸出值與給定值兩者之間的偏差,將偏差的比例和積分進(jìn)行線性組合,從而構(gòu)成控制量,來控制目標(biāo)對象。PI控制車體速度的程序框圖如圖5.3。圖5.3 PI控制直立流程圖5.2.4 基于PD控制的轉(zhuǎn)向環(huán)PD控制車體速度的程序框圖如圖5.4。圖5.4 PD控制轉(zhuǎn)向流程圖第六章 系統(tǒng)測試6.1 測試目的與測試環(huán)境兩輪自平衡車的系統(tǒng)功能實(shí)現(xiàn)

42、需要通過各個功能模塊相互配合完成的,為了保證兩輪自平衡車控制系統(tǒng)的正常運(yùn)轉(zhuǎn),需要對兩輪自平衡小車不同模塊與PID算法進(jìn)行調(diào)試,確保系統(tǒng)的穩(wěn)定性。本系統(tǒng)在瓷磚表面的房間里進(jìn)行不同的測試。6.2 電源系統(tǒng)檢測測試方法:兩輪自平衡車控制主板接好電池后,打開電源系統(tǒng)總開關(guān)。使用萬用表測量LM2596芯片的2號輸出引腳與電源地之間的電壓,再測量AMS111733的2號輸出引腳與電源地之間的電壓。測試結(jié)果:LM2596芯片的2號輸出輸出電壓為4.98V,如圖6.1所示。AMS111733的2號輸出引腳輸出電壓為3.3V,如圖6.2所示。結(jié)論:測試結(jié)果顯示電源系統(tǒng)的功能正常。圖6.1 LM2596輸出電壓測

43、試圖圖6.2 AMS111733輸出電壓測試圖6.3 STM32最小系統(tǒng)測試測試方法:使用Keil uVision5軟件編寫測試程序,控制LED燈以1S的時(shí)間間隔進(jìn)行閃爍,編譯并且通過ST-Link燒錄器下載到兩輪自平衡車控制主板的STM32芯片里,觀察LED情況。測試結(jié)果如表6.1所示表6.1 STM32最小系統(tǒng)測試測試步驟預(yù)期情況實(shí)際情況結(jié)論控制主板上電LED燈以1S的時(shí)間間隔進(jìn)行閃爍LED燈以1S的時(shí)間間隔進(jìn)行閃爍下載調(diào)試、時(shí)鐘和IO功能正常長按復(fù)位按鍵LED燈熄滅LED燈熄滅復(fù)位功能正常松開復(fù)位按鍵LED燈恢復(fù)閃爍LED燈恢復(fù)閃爍圖6.3 最小系統(tǒng)點(diǎn)燈圖圖6.4 最小系統(tǒng)熄燈圖6.4

44、藍(lán)牙無線通訊測試藍(lán)牙無線通訊是實(shí)現(xiàn)小車與控制終端的重要通訊方式,它在兩輪自平衡車的無線遙控過程中起到非常重要的作用,實(shí)現(xiàn)操控便捷性。測試方法:藍(lán)牙模塊通過數(shù)據(jù)線連接到電腦,并在電腦上打開串口調(diào)試器。手機(jī)使用藍(lán)牙調(diào)試助手,連接藍(lán)牙模塊。分別在空曠和有墻體的房間里面,根據(jù)手機(jī)端和藍(lán)牙模塊間的距離分別進(jìn)行測試,觀察電腦上串口調(diào)試器接受到的信息。測試結(jié)果如表6.2所示。表6.2 藍(lán)牙無線通訊測試最小系統(tǒng)測試空間狀態(tài)距離預(yù)期情況實(shí)際情況結(jié)論開闊且無障礙5米電腦端串口調(diào)試器接受收到手機(jī)端發(fā)來的信息電腦上接收到信息通過10米電腦上接收到信息通過相隔一面墻體5米電腦上接收到信息通過10米電腦上接收到信息通過測

45、試結(jié)果:STM32串口功能正常,藍(lán)牙模塊功能正常,無線通訊功能正常。6.5 陀螺儀測試MPU6050六軸陀螺儀提供控制系統(tǒng)精準(zhǔn)的姿態(tài)信息,其模塊運(yùn)行是否正常影響兩輪自平衡小車的自平衡功能。測試方法:小車控制系統(tǒng)主板上電,以MPU-6050的X軸為旋轉(zhuǎn)軸改變主板傾斜角度,觀察OLED屏上的角度信息。測試結(jié)果如表6.3所示表6.3 MPU-6050測試表小車主板姿態(tài)預(yù)期情況實(shí)際情況結(jié)論主板正面朝上水平放置于桌面顯示屏顯示角度為0顯示屏顯示角度為359通過主板正面朝前垂直放置于桌面顯示屏顯示角度為270顯示屏顯示角度為275通過主板正面朝前垂直放置于桌面顯示屏顯示角度為90顯示屏顯示角度為90通過圖

46、6.5 MPU-6050讀取主板正面朝上且水平于桌面姿態(tài)圖圖6.6 MPU-6050讀取主板正面朝前且垂直于桌面姿態(tài)圖 圖6.7 MPU-6050讀取主板背面朝前且垂直于桌面姿態(tài)圖測試結(jié)果:MPU-6050測試出來的姿態(tài)方向信息正確,但是由于桌面無法保證水平的程度,加上手扶著主板觀察顯示屏,其讀取出來的數(shù)值存在誤差,可通過后期PID控制調(diào)試來控制小車自平衡,所以該誤差忽略不計(jì)。此測試還驗(yàn)證了OLED屏幕的功能正常。6.6 兩輪自平衡車PID調(diào)試經(jīng)過以上測試之后,兩輪平衡車的關(guān)鍵系統(tǒng)均正常,接下來調(diào)試PID算法,驗(yàn)證平衡車的自平衡功能,測試其靜止?fàn)顟B(tài)下和外力干擾下能否實(shí)現(xiàn)自平衡功能。6.6.1

47、直立環(huán)PD算法的調(diào)試測試方法:改變kp值和kd值的大小,觀察小車的平衡狀態(tài)。測試結(jié)果如表6.4和表6.5所示。測試結(jié)果:當(dāng)kp值為500且kd值為1時(shí),小車趨于平衡但是還有抖動現(xiàn)象,一段時(shí)間后便倒下。此時(shí)對kp、kd值進(jìn)行小幅放大或縮小,得到當(dāng)kp、kd值縮小0.6倍時(shí),也就是kp值為300且kd值為1時(shí),基本沒有抖動現(xiàn)象,但一段時(shí)間還是倒下,接下來需要加入速度環(huán)的控制才能保持穩(wěn)定性。表6.4 直立環(huán)kp值調(diào)試表kp小車狀態(tài)分析-100小車傾斜瞬間電機(jī)朝傾斜的方向加速運(yùn)轉(zhuǎn),小車倒下。kp值極性錯誤,導(dǎo)致小車倒下。100小車傾斜瞬間電機(jī)朝傾斜方向的反方向加速運(yùn)轉(zhuǎn),小車趨于直立后又倒下。kp值極性正確,響應(yīng)過慢導(dǎo)致小車倒下。300小車傾斜瞬間,響應(yīng)加快,趨于平衡后又倒。kp值偏小導(dǎo)致小車倒下。500小車傾斜瞬間,響應(yīng)快,并出現(xiàn)來回抖動狀況。kp值基本滿足條件,需要調(diào)節(jié)kd來抑制抖動。表6.5 直立環(huán)kd值調(diào)試表kd小車狀態(tài)分析-0.5小車傾斜瞬間,電機(jī)朝傾斜的方向運(yùn)轉(zhuǎn),小車倒下。kd值極性錯誤,導(dǎo)致小車倒下。0.5小車傾斜瞬間電機(jī)朝傾斜方向的反方向運(yùn)轉(zhuǎn),小車倒下但有平衡趨勢。kd值極性正確,響應(yīng)過慢導(dǎo)致小車倒下。1小車趨于平衡。kd值基本滿足條件,微調(diào)使之更完美。6.6.2 速度環(huán)PI算法的調(diào)試由于速度的控制為正

溫馨提示

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

評論

0/150

提交評論