?

基于STM32的兩輪自平衡遙控小車設計

2016-12-17 08:35張建強楊標劉毅徐建
科技視界 2016年26期

張建強 楊標 劉毅 徐建

【摘 要】兩輪自平衡小車作為一種新型的交通工具,其駕駛的方式新穎,深受年輕一族喜愛,且由于是采用的電力驅動,屬于清潔能源,對于緩解日益嚴重的大氣污染、能源危機和交通擁堵問題,是一種比較好的解決方式,同時由于兩輪自平衡小車的結構不穩定性,給控制的算法提出了很大的挑戰,同時由于這個原因平衡車也成為了一種檢驗控制算法的良好平臺。本平衡車使用STM32單片機作為控制核心,通過電機編碼器與陀螺儀實時獲得小車速度與姿態數據,運用PID控制算法使得小車能夠保持平衡。

【關鍵詞】兩輪平衡;STM32單片機;PID

【Abstract】The two wheeled vehicle is a new type of vehicle,driving the novel,by young people love,and because it is the driving power,a kind of clean energy,to alleviate the increasingly serious air pollution,energy crisis and the problem of traffic congestion,is a relatively good solution at the same time,due to the structure of self balancing the car two rounds of instability,is a great challenge to the control algorithm,and for this reason the balance of the car has become a good platform to test the control algorithm.Using STM32 microcontroller as control core,real-time access to vehicle speed and attitude data through the motor encoder and gyroscope using the PID control algorithm makes the car to maintain balance.

【Key words】Two wheel balancing;STM32 single chip microcomputer;PID

0 引言

隨著我國工業化的不斷的推進,國民生產力不斷提升,同時自動化控制技術也在不斷發展,由于生活節奏也不斷的加快,人們急需一種能夠在小區,家中,室內場館行駛的小型代步工具。同時又由于化石燃料大量消耗導致是有緊缺的今天,人們也開始使用較為清潔的電能。因此在這種情況下,兩輪自平衡小車由于它時尚、小巧的外形,新穎的駕駛方式,全新的騎行體驗,受到青年的歡迎。兩輪平衡車具有較大的市場前景,因此研究兩輪自平衡小車也就有了它的必要性。

1 系統總體設計

本系統包括了電機驅動電路、電機編碼器模塊、供電模塊、陀螺儀模塊、單片機處理控制模塊等復雜模塊。系統總體框圖如下圖1所示。

小車整體使用STM32F103ZET6作為控制核心,使用MPU6050六軸陀螺儀作為姿態獲取傳感器,由于控制使用的是閉環算法,所以使用高精度磁編碼器作為小車兩輪速度采取傳感器,該編碼器具有較強的抗干擾能力。電機驅動選擇是使用東芝半導體生產的直流電機驅動TN6612FNG,相對于傳統的L298N電機驅動,TB6612FNG具有外圍電路簡單,且支持的PWM調速頻率更高,同時也有利于減小系統的尺寸。

2 系統硬件設計

兩輪平衡車采用MPU-6050來獲取小車實時姿態信息,將信息上傳給單片機,由單片機處理數據,通過超聲波模塊可以讓小車與障礙物一直保持在一定的距離,以實現超聲波跟隨功能。通過藍牙接受遙控小車的運動。

2.1 最小系統的設計

本兩輪平衡車采用控制最小系統控制芯片是使用的STM32F103ZET6單片機,芯片的所有引腳全部引出,有利于其他功能的擴展,下載程序采用了UART與SW調試接口,便于程序的調試。并且在制作的過程中預留了藍牙模塊接口與超聲波接口,既方便安裝固定,也增加系統的重心的穩定性,最小系統負責將電機編碼器和MPU-6050所傳來的數據進行處理,并根據得到的結果控制電機做出相應的動作。

2.2 供電模塊的設計

系統使用12V鋰電池供電,工作時的電流能夠滿足直流減速電機電流需求,由于單片機等其他的器件采用5V供電而且功耗較小,所以使用LM2596可調降壓模塊將12V電壓轉化為5V,供單片機、MPU-6050、藍牙模塊等傳感器使用。以保證系統的正常運行。

3 系統軟件設計

3.1 軟件設計流程

軟件設計主要包含:電機編碼器與陀螺儀信號的采集與處理,調節PWM輸出改變電機狀態,使得小車達到平衡、行走、轉彎等功能。軟件主要是傾角PID與速度PID。軟件設計流程如圖2所示。

首先是各個傳感器的初始化,初始化完成后,通過IIC通信協議從MPU-6050讀取姿態數據,以10ms為一個周期讀取MPU-6050角速度寄存器中的值,同時對讀到的數據進行互補濾波,然后進一步進行姿態結算,從而得到小車實時的姿態信息。對于電機編碼器得到的脈沖使用STM32的輸入捕獲模式,捕獲周期為60ms,從而得到電機速度。通過PI,PD算法結合,對電機轉速進行脈寬調制,從而達到讓小車原地平衡、行走平衡的目的。并且當小車傾斜的角度大于30度時,由于角度太大小車難以平衡,這時會讓電機停止轉動。

3.2 互補濾波算法

互補濾波就是通過不同的濾波器(高通或低通),然后相加得到整個頻帶的信號。對于陀螺儀互補濾波就是在短時間內采用陀螺儀得到的角度認為最準確,利用定時對加速度獲得的角度進行取平均值來校正陀螺儀的得到的角度。簡言之,短時間內角度使用陀螺儀;長時間用加速度計比較準確,隨著時間的增多加大加速得到的數據的比重,這就是對于陀螺儀的互補濾波了。

3.3 PID控制算法

在本小車中控制PID控制算法分為角度環(PD)和速度環(PI)。

程序設計中,控制PWM輸出的角度環的方程為:

OUT_PWM1=Angle_P×Angle_Q+Angle_D×Angle_S

式中的OUT_PWM1為PD控制計算得到的控制PWM,Angle_Q為反饋得到的角度值,Angle_S為反饋角速度。Angle_P與Angle_D分別為比例系數與微分系數。

程序設計中,控制PWM輸出的速度環的方程為:

OUT_PWM2=Speed_P×Speed_S+Speed_I×Speed_E

式中的OUT_PWM2為PI控制計算得到的控制PWM,Speed_S為電機速度,Speed_E為反饋速度誤差的累積值。Speed_P與Speed_I分別為比例系數與積分系數。

最后通過PI與PD計算得到的便是電機需要的PWM值,其方程為:

OUT_PWM=OUT_PWM1+OU_PWM2

3.4 PID參數調整

在讓I,D輸出為0的情況下,去調節P,選擇適當的P值讓車體基本保持平衡,保證沒有較大的晃動或。然后調整D,適當的D值,合適的D值能夠增加小車的穩定性,D可以很小,如果D值較大會導致小車劇烈的抖動導致電機驅動燒毀。I參數的調節相當于是對P值很小誤差下的一個補償,若I值過大,補償過多會導致小車前后大幅度晃動,導致小車無法維持平衡。

4 結語

系統使用STM32F103ZET6單片機作為控制芯片,使用MPU-6050為姿態獲取傳感器(IIC通信協議),通過電機編碼器獲得小車速度(STM32輸入捕獲模式),通過單片機使用PID算法得到PWM值從而達到控制電機轉速的目的,使得小車達到平衡,并且使用藍牙模塊使得單片機能夠與手機通信,使用手機可以控制小車運動。在姿態獲取濾波方面沒有采用卡爾曼濾波而是采用較為簡單的互補濾波。由于使用了PID算法,擁有速度反饋,能夠使小車在一定的干擾下能夠保持平衡。

【參考文獻】

[1]季鵬飛.基于STM32的兩輪自平衡小車控制系統設計[J].電子科技,2014,27(11):96-105

[2]徐升.全數字直流脈寬調速系統及其模糊控制算法[J].華中科技大學,2006.

[3]林忠海.基于單片機的兩輪自動平衡小車設計[J].科技創新與生產力,2013(2):90-92.

[4]陳波.基于神經網絡PID控制的兩輪自平衡小車研究[D].西南交通大學,2014.

[5]李滿.基于積分分離PID控制的自平衡車設計[J].武漢交通職業學院學報,2016,18(2):82-86.

[6]梁光勝,杜夢楠.基于互補濾波的兩輪自平衡車姿態控制[J].測控技術,2015,34(5):72-74.

[7]薛倫生,舒濤,戴新生.基于單片機控制的小車平衡系統設計[J].電子測量技術,2009,32(5):85-87

[責任編輯:田吉捷]

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合