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

附:PCB設計圖