河北農(nóng)業(yè)大學(xué) 于浩 韓宇航 辛妍貝 李磊
1.1.1 單片機(jī)型號選擇
平衡車采用STM32F10C8T6單片機(jī),具有高達(dá)72MHz的工作頻率,處理速度快,可以滿足平衡車100Hz的調(diào)整頻率,具有成熟的開發(fā)技術(shù),使用廣泛,抗干擾能力強(qiáng),價格低廉,性價比較高。
1.1.2 電機(jī)型號選擇
平衡車采用12V掛載霍爾原理的編碼器電機(jī),具有大扭矩、小內(nèi)阻、響應(yīng)速度快、使用壽命長等特點。
1.1.3 驅(qū)動選擇
平衡車選擇使用TB6612FNG型號驅(qū)動,該驅(qū)動具有高達(dá)100KHz的反應(yīng)速度,可以滿足平衡車PWM波0~7200的驅(qū)動范圍,對車可以進(jìn)行微小調(diào)整,并且具有內(nèi)耗小、輸出功率大的特點。
1.1.4 顯示模塊選擇
使用OLED屏幕作為顯示模塊,功耗低,采用了SPIO的通訊方式,具有較快反應(yīng)速度,刷新頻率較高,實時顯示平衡車各個部分的運行狀況。
1.1.5 電源選擇
平衡車選用流行的可充電鋰電池進(jìn)行供電,輸出功率可達(dá)36W,2200mah的容量可保證平衡車的長時間工作,并且具有高達(dá)2000次的充電次數(shù),可隨時更換。
1.1.6 通訊模塊選擇
通訊模塊選擇HC-05藍(lán)牙模塊,可接收來自手機(jī)藍(lán)牙的控制或者由遙控器控制,具有配置簡單、抗干擾能力強(qiáng)、技術(shù)成熟、使用廣泛、低功耗等特點。
1.1.7 陀螺儀的選擇
作為穩(wěn)定器,陀螺儀在平衡車能夠兩輪直立行走中起著尤為重要的作用。陀螺儀模塊,通過IIC通訊將平衡車的三個維度上的角速度和角加速度,傳輸?shù)絾纹瑱C(jī),并通過內(nèi)部定時器200Hz的頻率進(jìn)而來改變IINT引腳的電平,觸發(fā)單片機(jī)使之中斷,進(jìn)而對平衡車進(jìn)行姿態(tài)調(diào)整。選擇量程大,測量精度高,采集頻率高,PCB的布局都會提高M(jìn)PU6050的測量準(zhǔn)度。
1.1.8 電路穩(wěn)壓設(shè)計
選擇LM2596T-5V和AMS1117-3.3V,LM2596-5V滿足平衡車低壓側(cè)傳感器通訊模塊的使用電壓,輸出電流波形平緩,不易因負(fù)極電流回流產(chǎn)生干擾,為AMS1117-3.3V提供了平滑的5V電流,AMS1117-3.3V負(fù)責(zé)給單片機(jī)、MPU6050、OLED供電,最高500mA的輸出能力,足以滿足三個部分的取電需要。附:PCB設(shè)計圖。
兩輪直立平衡車綜合運用了兩輪同軸、獨立驅(qū)動、懸架結(jié)構(gòu)和倒立擺模型等自平衡原理,通過STM32單片機(jī)對MUP6050傳輸?shù)男畔⑦M(jìn)行中斷的觸發(fā)及姿態(tài)調(diào)整。是一種處在微處理器控制下的智能平衡車。整車由地盤、轉(zhuǎn)向裝置、控制裝置、動力裝置組成。
3.1.1 卡爾曼濾波
卡爾曼率波可以解決傳感器測量精度不夠的問題,實現(xiàn)對平衡車俯仰角和橫滾角的高精度測量。我們建立觀測方程,依據(jù)加速度計等設(shè)備分析計算出的姿態(tài)角等數(shù)據(jù),另外,在建立狀態(tài)預(yù)測方程中采用陀螺儀所輸出的角速度作為數(shù)據(jù),與此同時,通過建立卡爾曼率波器進(jìn)行陀螺儀和加速度兩個傳感器的數(shù)據(jù)融合,根據(jù)數(shù)據(jù)特征對平衡車的姿態(tài)角進(jìn)行相應(yīng)的估算。通過卡爾曼率波對陀螺儀模塊反饋的數(shù)據(jù)進(jìn)行處理,大大確保了數(shù)據(jù)的準(zhǔn)確性,減小了數(shù)據(jù)的波動,消除了數(shù)據(jù)出現(xiàn)的尖峰和低谷。
3.1.2 PID算法
平衡車最基本的就是實現(xiàn)動態(tài)平衡,MPU6050設(shè)備內(nèi)置陀螺儀與加速度計,基于單片機(jī)的數(shù)字系統(tǒng)將PID算法采錄為平衡車最主要的算法,目前來看PID是技術(shù)最成熟、效果最好、使用范圍最廣泛的算法之一。在PID算法中,將返回值和給定值進(jìn)行比例、微分、積分等運算。平衡車中的直立環(huán)節(jié)和轉(zhuǎn)向環(huán)節(jié)以及速度環(huán)節(jié)等都是通過PID算綜合調(diào)控。能夠?qū)崿F(xiàn)PID閉環(huán)控制將成為小車進(jìn)行恒定平穩(wěn)的功能運轉(zhuǎn)的前提,一般情況下,都是在通過調(diào)試直立環(huán)節(jié)之后,對速度環(huán)節(jié)進(jìn)行調(diào)試,最終對轉(zhuǎn)向環(huán)節(jié)進(jìn)行調(diào)控。
程序包括幾個部分:OLED初始程序、單片機(jī)定時器編碼器模式初始程序、單片機(jī)定時器輸出PWM初始程序、藍(lán)牙模塊初始程序、MPU6050陀螺儀初始程序、電機(jī)驅(qū)動初始程序、單片機(jī)外部中斷初始程序等各個硬件部分的初始化進(jìn)程。
底層代碼使用ST公司推出的CubeMX進(jìn)行編寫,使用流行的Hal庫進(jìn)行編寫,代碼可移植性比基礎(chǔ)庫強(qiáng),可讀性較高,極大地節(jié)約了底層代碼的編寫時間,構(gòu)建底層代碼結(jié)束后,參照網(wǎng)上CSDN等諸多資料,開始根據(jù)自己的編譯環(huán)境進(jìn)行控制部分的編程。
平衡車機(jī)械構(gòu)造自上而下分為三部分,分別為平臺、控制層、電機(jī)驅(qū)動層。最上部分用于承重和OLED屏的放置,有效觀察平衡車各部分運轉(zhuǎn)情況,控制層主要由STM32單片機(jī)和MPU6050等組成的核心主控電路。用于姿態(tài)數(shù)據(jù)的采集和處理運算,以及系統(tǒng)的協(xié)調(diào)控制。電機(jī)層是平衡車動力來源,由供電電路和電機(jī)控制電路組成,與控制層保持通訊,確保車體平衡。
本文提出了一種平衡車設(shè)計構(gòu)造方案。以STM32單片機(jī)為控制核心,通過MPU6050對姿態(tài)數(shù)據(jù)的計算和以PID算法作為核心的系統(tǒng)軟件控制算法構(gòu)成了整體樣機(jī)。通過實驗檢測,能夠?qū)崿F(xiàn)轉(zhuǎn)向、直立等姿態(tài)。這種平衡車無論是硬件還是軟件都是可靠并有效的。實現(xiàn)了兩輪平衡車的動態(tài)平衡與運動控制。
附:PCB設(shè)計圖