附件里面含有基于STM32F103RCT6的平衡小車設(shè)計(jì)資料,供大家學(xué)習(xí)交流
0.png (52.32 KB, 下載次數(shù): 67)
下載附件
2018-9-28 01:39 上傳
完整的Word格式文檔51黑下載地址:
平衡小車.rar
(14.29 MB, 下載次數(shù): 49)
2018-9-27 17:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
- 實(shí)驗(yàn)?zāi)康?/font>
通過基于32位單片機(jī)的兩輪車平衡系統(tǒng)大型實(shí)驗(yàn),使學(xué)生能綜合應(yīng)用“微機(jī)原理”、“計(jì)算機(jī)控制技術(shù)”、“單片機(jī)的原理及應(yīng)用”,“電子技術(shù)”以及“自動(dòng)控制理論”等課程的基礎(chǔ)知識(shí)。初步掌握單片機(jī)控制系統(tǒng)的硬件設(shè)計(jì)、控制器算法設(shè)計(jì)及應(yīng)用程序設(shè)計(jì),以及硬軟件調(diào)試和控制系統(tǒng)調(diào)試。為畢業(yè)設(shè)計(jì)及今后計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)開發(fā)打下良好基礎(chǔ)。 設(shè)計(jì)基于單片機(jī)的兩輪平衡車控制器,用于控制兩輪小車的直立平衡,具體要求如下 : - 控制兩輪平衡車保持動(dòng)態(tài)站立平衡
- 傾角≤15°時(shí)具有良好的抗干擾性
3、與上位機(jī)進(jìn)行通信,通過上位機(jī)實(shí)現(xiàn)動(dòng)態(tài)調(diào)參和姿態(tài)數(shù)據(jù)的傳輸,將姿態(tài)數(shù)據(jù)繪制成曲線。 - TM4C1294單片機(jī)或STM32單片機(jī)
- 兩輪車
- 外圍檢測(cè)、驅(qū)動(dòng)模塊等
- 微型電子計(jì)算機(jī)
系統(tǒng)包括上位機(jī)(臺(tái)式電腦)和下位機(jī)(單片機(jī)兩輪平衡車控制系統(tǒng))兩部分。上位機(jī)用于顯示小車的實(shí)時(shí)姿態(tài)及傳送控制參數(shù)和指令給下位機(jī)。下位機(jī)由控制器模塊、傳感器模塊、顯示模塊、電機(jī)驅(qū)動(dòng)模塊、藍(lán)牙串口模塊等組成,硬件組成框圖如下圖。  圖1 兩輪平衡車系統(tǒng)硬件組成 控制器采用TM4C1294或STM32單片機(jī),陀螺儀及加速度計(jì)采用MPU-6050三軸運(yùn)動(dòng)處理傳感器,電機(jī)編碼器采用AB相光電編碼器,顯示模塊采用OLED液晶顯示屏,電機(jī)驅(qū)動(dòng)模塊采用L298N電機(jī)驅(qū)動(dòng)器,藍(lán)牙模塊采用HC-05模塊。在控制過程中,陀螺儀及加速度計(jì)測(cè)量小車的姿態(tài)信息,編碼器測(cè)量小車的速度信息,控制器根據(jù)控制算法計(jì)算出相應(yīng)的脈寬調(diào)制PWM信號(hào),通過控制直流電機(jī)的轉(zhuǎn)矩來保持平衡,同時(shí)通過藍(lán)牙模塊將小車的實(shí)時(shí)狀態(tài)信息傳送至上位機(jī)并可接受上位傳送的指令。 2.主要模塊硬件電路 (1)單片機(jī)最小系統(tǒng) a)基于TM4C1294單片機(jī) 選用TM4C1294核心板,TM4C1294 微處理器是Cortex-M4 系列單片機(jī)中一種,并采用TI的核心板,如圖2。核心板將芯片端口信號(hào)引致插針,方便實(shí)驗(yàn)選取連接。實(shí)驗(yàn)系統(tǒng)引腳連接圖如圖3。 圖2 TM4C1294核心板 圖3 TM4C1294最小系統(tǒng)電路圖 b)基于STM32單片機(jī) 控制器采用STM32F103RCT6單片機(jī),該控制器是一種基于 Cortex M3 內(nèi)核的高性能 MCU,運(yùn)行時(shí)鐘最高為 72 MHz,運(yùn)算速度高達(dá) 1. 25 DMIPS/MHz,片上64 kB Flash ROM、20 kB RAM,內(nèi)含 7個(gè)定時(shí)器,可輸出多路 PWM 信號(hào)又可配置成增量型編碼器接口 ,尤其適合于車輪測(cè)速傳感器輸出的 AB 相脈沖信號(hào)的處理。核心板實(shí)物如圖4,實(shí)驗(yàn)系統(tǒng)電路連線如圖5。 圖4 STM32核心板 圖5 STM32F103RCT6最小系統(tǒng)電路圖 (2)系統(tǒng)電源 選用智能小車專用12V鋰電池為系統(tǒng)供電,該電池參數(shù):11.1V/ 3000mAh/ 5C。電池輸出端接至電機(jī)驅(qū)動(dòng)模塊L298N,為其提供工作電壓,并利用該模塊中5V穩(wěn)壓電路輸出的+5V電壓為其它的模塊供電,將L298N模塊的+5V輸出連到單片機(jī)最小系統(tǒng)板,經(jīng)最小系統(tǒng)板的3.3V穩(wěn)壓電路輸出3.3V,供傳感模塊、藍(lán)牙模塊、顯示模塊等其它模塊電路供電。
圖6 系統(tǒng)供電框圖 (3)傳感器模塊 選擇MPU6050模塊作為小車姿態(tài)檢測(cè)。該模塊采用InvenSense公司的 MPU6050 芯片作為核心,該芯片內(nèi)部整合了 3 軸陀螺儀和 3 軸加速度傳感器,并可利用自帶的數(shù)字運(yùn)動(dòng)處理器(DMP: Digital Motion Processor)硬件加速引擎,通過主 IIC 接口,向應(yīng)用端輸出姿態(tài)解算后的數(shù)據(jù)。有了DMP,我們可以使用 InvenSense 公司提供的運(yùn)動(dòng)處理資料庫(kù),非常方便的實(shí)現(xiàn)姿態(tài)解算,降低了運(yùn)動(dòng)處理運(yùn)算對(duì)操作系統(tǒng)的負(fù)荷,同時(shí)大大降低了開發(fā)難度。MPU6050模塊實(shí)物如圖7,MPU6050模塊電路如圖8。 圖7 MPU6050模塊實(shí)物圖 圖8 MPU6050模塊測(cè)量電路圖 從圖8可以看出,模塊自帶了3.3V超低壓差穩(wěn)壓芯片,給MPU6050供電,因此外部供電可以選擇:3.3V/ 5V都可以。模塊通過P1排針與外部連接,引出了 VCC、GND、IIC_SDA、IIC_SCL、MPU_INT 和 MPU_AD0 等信號(hào),其中,IIC_SDA 和 IIC_SCL 帶了 4.7K上拉電阻,外部可以不用再加上拉電阻了,另外MPU_AD0 自帶了10K下拉電阻,當(dāng)AD0懸空時(shí),默認(rèn)IIC 地址為(0X68)。各引腳的詳細(xì)描述如表1所示。 表1 MPU6050 六軸傳感器模塊引腳說明 
(4)電機(jī)驅(qū)動(dòng)模塊 實(shí)驗(yàn)系統(tǒng)采用L298N驅(qū)動(dòng)模塊,L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。該芯片采用15腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器,可以用來驅(qū)動(dòng)直流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號(hào)控制;具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或禁止器件工作有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作。使用L298N芯片可以驅(qū)動(dòng)兩臺(tái)直流電機(jī)。功率部分的供電電壓范圍是2.5-48V,邏輯部分5V供電。一般情況下,功率部分的電壓應(yīng)大于6V否則芯片可能不能正常工作。L298N驅(qū)動(dòng)模塊實(shí)物如圖9。模塊電路如圖10。 圖9 L298N驅(qū)動(dòng)模塊實(shí)物 圖10 L298N驅(qū)動(dòng)模塊電路圖 如圖模塊內(nèi)部含7805穩(wěn)壓芯片,供L298N的Vss邏輯電壓+5V,IN1~IN4分別為電機(jī)1和2的邏輯控制端, IN1~IN4接至單片機(jī),由單片機(jī)控制,經(jīng)L298N后輸出兩路電機(jī)控制電壓,OUT1、OUT2和OUT3、OUT4。 表2 L298N邏輯功能表
In3,In4的邏輯圖與表2相同。由表2可知當(dāng)ENA為高電平,輸入電平為一高一低,電機(jī)正或反轉(zhuǎn)。同為低或高電平電機(jī)剎停。其中IN1、IN2控制電機(jī)M1;IN3、IN4控制電機(jī)M2。調(diào)速就是改變高電平的占空比。 (5)速度檢測(cè)電路 使用的是固定在電機(jī)軸上的霍爾編碼器;魻柧幋a器是一種通過磁電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器;魻柧幋a器是由霍爾碼盤和霍爾元件組成;魻柎a盤是在一定直徑的圓板上等分地布置有不同的磁極;魻柎a盤與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),霍爾元件檢測(cè)輸出若干脈沖信號(hào),為判斷轉(zhuǎn)向,一般輸出兩組存在一定相位差的方波信號(hào)。 
圖11 霍爾編碼器工作原理示意圖 實(shí)際使用的小車上是一款增量式輸出的霍爾編碼器。編碼器有 AB 相輸出,所以不僅可以測(cè)速,還可以辨別轉(zhuǎn)向。根據(jù)下圖的接線說明可以看到,我們只需給編碼器電源5V 供電,在電機(jī)轉(zhuǎn)動(dòng)的時(shí)候即可通過 AB 相輸出方波信號(hào)。編碼器自帶了上拉電阻,所以無需外部上拉,可以直接連接到單片機(jī) IO 讀取。在實(shí)驗(yàn)系統(tǒng)中,只檢測(cè)了一路脈沖信號(hào),通過它的頻率測(cè)量得到電機(jī)的轉(zhuǎn)速。 
圖12 霍爾編碼器實(shí)物圖 (6)OLED顯示模塊 顯示模塊用于顯示系統(tǒng)角度、PID參數(shù)等信息,采用0.96 寸 OLED 顯示屏,分辨率為 128*64, 多種接口方式:IIC 接口方式。共四根引出線:1. GND 電源地;2. VCC 電源正(3~5.5V);3. SCL OLED 的 D0 腳,在 IIC 通信中為時(shí)鐘管腳;4. SDA OLED 的 D1 腳,在 IIC 通信中為數(shù)據(jù)管腳。模塊實(shí)物圖如圖13。 
圖13 OLED顯示模塊實(shí)物圖 五、系統(tǒng)軟件設(shè)計(jì) 1. 控制原理 (1)直立控制 兩輪小車平衡控制是通過負(fù)反饋來實(shí)現(xiàn)的,控制器算法采用PD控制,維持小車在直立位置保持平衡。直立控制控制原理框圖如圖14。  (2)速度控制 實(shí)驗(yàn)要求小車的控制目標(biāo)是直立平衡,并不要求行駛,似乎不需要速度控制,但是實(shí)際上小車的平衡是動(dòng)態(tài)的平衡,在調(diào)整姿態(tài)的同時(shí)會(huì)產(chǎn)生位移,因此加上速度控制環(huán),有利于小車的平衡和抗擾動(dòng)。速度控制原理框圖如圖15。 
圖15 兩輪車控制原理框圖 2. 陀螺儀漂移和加速度傳感器數(shù)據(jù)的預(yù)處理 車體傾角測(cè)量由陀螺儀和加速度傳感器實(shí)現(xiàn),單獨(dú)使用陀螺儀或加速度傳感器都無法完成傾角的測(cè)量。由于陀螺儀低頻漂移的影響,積分后低頻擾動(dòng)會(huì)產(chǎn)生較大誤差;加速度計(jì)解算的姿態(tài)角會(huì)受到平衡車運(yùn)行中機(jī)體高頻振動(dòng)的影響, 輸出角度中攜帶較大分量的高頻干擾。 二者在頻域上具有互補(bǔ)特性,采用互補(bǔ)濾波器對(duì)這兩種傳感器數(shù)據(jù)融合,可提高姿態(tài)角度測(cè)量的精度和動(dòng)態(tài)響應(yīng)的性能。偏移角度數(shù)字融合濾波算法模型如圖15所示。其數(shù)字形式為 
為第n次濾波后的角度; 為第n-1次濾波后的角度;a為高通濾波系數(shù); 為陀螺儀的角速度值;dt為采樣時(shí)間;b為低通濾波系數(shù); 為加速度計(jì)的值。其中a,b滿足a+b=1。

圖16 數(shù)字融合濾波算法模型 3. 軟件流程圖 兩輪平衡小車軟件設(shè)計(jì)包括主程序設(shè)計(jì)和各個(gè)模塊的子程序設(shè)計(jì)。實(shí)現(xiàn)了如下功能:1)控制功能:通過傳感器測(cè)量小車的偏移角度、角速度、運(yùn)行速度來進(jìn)行PID運(yùn)算,實(shí)現(xiàn)小車的動(dòng)態(tài)平衡;2)人機(jī)接口:包括兩個(gè)按鍵KEY0、KEY1,串口模塊和顯示模塊,其中KEY1按下小車停止控制,KEY0按下小車正常工作(這部分功能只在STM32系統(tǒng)上實(shí)現(xiàn));串口模塊實(shí)現(xiàn)實(shí)時(shí)姿態(tài)數(shù)據(jù)的傳輸和控制指令的發(fā)送,顯示模塊實(shí)時(shí)顯示小車的姿態(tài)數(shù)據(jù)。 (1)主程序 程序控制周期為10ms,在這10ms內(nèi)完成姿態(tài)數(shù)據(jù)的測(cè)量以及顯示,主程序流程圖如圖3所示。 
圖17 主程序流程圖 (2)角度測(cè)量子程序 小車的偏移角度、角速度通過加速度計(jì)和陀螺儀測(cè)量。采用MPU6050芯片,角速度值用陀螺儀直接進(jìn)行測(cè)量,角度值采用加速度計(jì)和陀螺儀進(jìn)行數(shù)字互補(bǔ)濾波后讀取。程序框圖如圖18。 MPU6050與單片機(jī)的通信采用IIC通信協(xié)議。其器件地址和寄存器地址及配置如下所述。 器件地址:0xD0 電源管理寄存器地址:0x6C 典型值:0x00 陀螺儀配置寄存器地址:0x1B 典型值:0x18 陀螺儀采樣分頻寄存器地址:0x19 典型值:0x07 加速度計(jì)配置寄存器地址:0x1C 典型值:0x01 配置寄存器地址:0x1A 典型值:0x06 陀螺儀x軸數(shù)據(jù)地址(高位在前,低位在后):0x43,0x44 y軸地址:0x45,0x46 Z軸地址:0x47,0x48 加速度計(jì)x軸數(shù)據(jù)地址(高位在前,低位在后):0x3B,0x3C Y軸地址:0x3D,0x3E Z軸地址:0x3F,0x40   (3)速度測(cè)量子程序 小車的速度測(cè)量采用光電編碼器來測(cè)量,通過10ms內(nèi)脈沖的數(shù)量來反映小車的運(yùn)行速度。速度測(cè)量可選取定時(shí)器設(shè)置為編碼器模式,首先讀取定時(shí)器當(dāng)前計(jì)數(shù)值,延時(shí)10ms后再次讀取,通過兩次讀取的差值來計(jì)算小車的運(yùn)行速度。其具體程序流程圖如圖19所示。 (4)PID控制算法 由于機(jī)械器件的約束和積分作用,實(shí)際控制過程中會(huì)出現(xiàn)積分飽和,導(dǎo)致偏移角度超調(diào)量較大,極易使小車失控。故對(duì)小車速度環(huán)的控制算法進(jìn)行改進(jìn),采用遇限削弱積分法改進(jìn)后的算法流程圖如圖20所示。

(5)人機(jī)接口程序 人機(jī)接口軟件設(shè)計(jì)主要包括OLED顯示器,按鍵,串口模塊與上位機(jī)通信軟件的設(shè)計(jì)。按鍵控制小車的控制通斷,KEY1鍵按下后小車停止控制,電機(jī)停轉(zhuǎn);KEY0鍵按下后小車正常運(yùn)行。顯示輸出子程序在每次控制后將小車的姿態(tài)信息通過藍(lán)牙傳送給上位機(jī)。 與上位機(jī)通信的子程序根據(jù)上位機(jī)的數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸,采用USART2串口與藍(lán)牙HC-05連接,推薦的通信參數(shù)為波特率:9600,數(shù)據(jù)位:8,校驗(yàn)位:0,停止位:1。數(shù)據(jù)的格式如下所述。其每個(gè)數(shù)據(jù)為float型,先將每個(gè)float型數(shù)據(jù)轉(zhuǎn)換為ASCII碼,然后根據(jù)數(shù)據(jù)格傳送給上位機(jī),同理,接受的上位機(jī)的數(shù)據(jù)也為ASCII碼,需將其轉(zhuǎn)為float型。 上位機(jī)每次發(fā)送的數(shù)據(jù)都是四個(gè),因此兩者發(fā)送的數(shù)據(jù)格式一致,其格式如圖21所示。溫度控制實(shí)驗(yàn)平臺(tái)上位機(jī)只繪制溫度曲線,其接受的數(shù)據(jù)格式如圖22所示,兩輪平衡車上位機(jī)繪制偏移角度和行駛速度曲線,其接受的數(shù)據(jù)格式如圖23所示。源程序如usart.c文件所示。 
圖21 上位機(jī)傳送的數(shù)據(jù)格式 
圖22上位機(jī)接受的數(shù)據(jù)格式 
圖23 上位機(jī)接受的數(shù)據(jù)格式 OLED顯示器采用IIC通信,其源程序如oled.c文件所示。按鍵中斷采用外部中斷,設(shè)置為上拉輸入,按下后為低電平。其源程序如boad.cexti.c文件所示。 4. 上位機(jī)使用說明 上位機(jī)可使用USART轉(zhuǎn)串口或藍(lán)牙進(jìn)行數(shù)據(jù)傳輸。使用藍(lán)牙時(shí),應(yīng)先將藍(lán)牙與電腦完成配對(duì)后方可開啟上位機(jī),否則無法打開串口。 下位機(jī)給上位機(jī)傳輸數(shù)據(jù)時(shí),每次傳輸?shù)臄?shù)據(jù)時(shí)間間隔應(yīng)大于100ms。 建議打開串口前先設(shè)置好曲線的參數(shù),采樣周期為兩次數(shù)據(jù)傳輸?shù)臅r(shí)間間隔;曲線下限值為曲線的最小值,上限值為曲線的最大值。 上位機(jī)傳輸四個(gè)參數(shù)時(shí),參數(shù)不能為空,必須四個(gè)參數(shù)都有數(shù)據(jù)。
|