魏 雅
基于單片機的兩輪自平衡小車的設計?
魏 雅
(陜西工業(yè)職業(yè)技術學院 咸陽 712000)
系統(tǒng)采用陀螺儀MPU6050構成小車姿態(tài)檢測裝置,使用卡爾曼濾波完成陀螺儀數(shù)據(jù)與加速度計數(shù)據(jù)的融合,選用STM32F103單片機為控制核心,完成了傳感器信號的處理,實現(xiàn)了車身的控制。整個系統(tǒng)的各個模塊能夠正常、協(xié)調工作,小車可以在無人干預條件下實現(xiàn)自主平衡。同時在引入適量干擾情況下小車能夠自主調整并迅速恢復穩(wěn)定狀態(tài)。
兩輪自平衡;陀螺儀;姿態(tài)檢測;卡爾曼濾波;數(shù)據(jù)融合
AbstractThe system uses gyroscope MPU6050 car attitude detection device,uses the kalman filter to complete the data fu?sion of gyroscope and accelerometer data,uses STM32F103 microcontroller as control core,completes the processing of the sensor signal,realizes the control of the body.Each module of the whole system can work normally and coordinate,and the car can realize independent balance under the condition of no intervention.At the same time,in the case of the introduction of appropriate interfer?ence,the car can be adjusted independently and quickly restored to a stable state.
Key Wordstwo wheel self balancing,gyroscope,attitude detection,kalman filter,data fusion
Class NumberTP3-02
近年來,隨著電子技術的發(fā)展與進步,移動機器人的應用范圍越來越廣泛,但是怎樣讓移動機器人在凹凸不平的地面上行走,或者在較狹窄的地方行走等,逐漸成為研究者關心的問題。系統(tǒng)設計的兩輪自平衡機小車[1],采用了兩輪共軸、各自獨立驅動的工作方式,車身的重心位于車輪軸的上方,通過輪子的前后移動來保持車身的平衡,并且還能夠在直立平衡的情況下行駛。由于特殊的結構,其適應地形變化能力強,運動靈活,可以在復雜的環(huán)境里工作。
系統(tǒng)硬件設計總框圖如圖1所示。在硬件電路設計時,對電路的所有環(huán)節(jié)都進行了電磁兼容性設計,做好各部分的接地、屏蔽、濾波等工作,將高速數(shù)字電路與模擬電路分開,從而大大提高本系統(tǒng)工作的可靠性和高效性。
圖1 硬件設計總框圖
系統(tǒng)采用 STM32F103 增強型系列單片機[2~3]為控制核心,采用的是5V供電,由它構成的最小系統(tǒng)[4~5]主要包括單片機供電、復位電路、時鐘電路。由于單片機內部集成了多個模塊,因此使用方便。
設計中時鐘電路采用的外部晶振為16MHz,電容C11和C12為外部時鐘的起振電容。在單片機進入睡眠模式時,時鐘振蕩電路輸入端被內部200Ω的下拉電阻拉低,振蕩電路停振,從而達到省電的目的。圖2為單片機最小系統(tǒng)時鐘電路原理圖。
圖2 時鐘電路原理圖
圖3 復位電路
設計中采用了由電阻電容構成的簡易復位電路,如圖3所示。加電后,由于電容的充電,RESET保持低電平,單片機復位;一段時間后,電容電量充滿,RESET端輸出高電平,此時單片機運行。手動復位時,按下手動復位按鈕,RESET端保持低電平,單片機復位;釋放手動復位按鈕后,RESET端輸出高電平,單片機工作。
電源模塊[6]由若干相互獨立的穩(wěn)壓電路模塊組成,這樣做可以減少各模塊之間的相互干擾。整個系統(tǒng)需要三種電源:1)7.2V電源,為驅動電機供電;2)5V電源,為單片機及相關外設供電;3)3.3V電源,為陀螺儀及加速度計供電。
整個系統(tǒng)電源來源為7.2V鎳氫電池,5V電源由LM2940提供,3.3V電源采用AMS1117。電機供電直接采用電池供電,如圖4所示為電源模塊電路。
圖4 電源模塊電路圖
系統(tǒng)采用MPU6050陀螺儀,其輸出為0.67mv/deg/sec。ATD模塊最高采集精度為12bit,AD基準電壓為3.3V,計算得出最小分辨電壓為0.8mv,因此不能直接對陀螺儀輸出信號進行采集,需要設計放大電路。系統(tǒng)采用LM358(圖5 U1B)設計負反饋放大電路,放大倍數(shù)為+1,即放大10倍。同時,由于陀螺儀輸出會隨溫度而變化,影響系統(tǒng)傾角檢測精度,為抑制陀螺儀溫漂,需要在放大電路中設計零點偏置電壓調整電路。系統(tǒng)中利用LM358(圖5 U1A)構成電壓跟隨器,輸出電壓通過電位器調節(jié),使零點偏置電壓保持在陀螺儀工作電壓的一半(1.65V),這樣可以有效抑制陀螺儀的溫漂,放大電路如圖5。
圖5 放大電路
本系統(tǒng)中,根據(jù)功能要求,采用TB6612電機驅動電路。由于電機啟動瞬間電流很大,會將整個系統(tǒng)電壓拉低,造成其他設備如單片機的工作不正常,因此要在電池電源輸入側加上較大濾波電容。
如圖6所示,PWM1和PWM2分別為兩個半橋的控制端口。當PWM1為高電平,PWM2為低電平時,MOTOR1口即輸出高電壓,MOTOR2輸出低電壓,此時電機正轉;當PWM1為低電平而PWM2為高電平時,MOTOR1口即輸出低電壓,MOTOR2輸出高電壓,此時電機反轉。通過改變PMW 1和PWM2端口的驅動波形占空比改變輸出端電壓,從而實現(xiàn)電機調速的目的。
兩輪自平衡小車的原理[7~9]是利用地面對車輪的摩擦力抵消車受到的重力,在系統(tǒng)的控制環(huán)節(jié)中有兩路閉環(huán)控制,即傾角閉環(huán)控制以及速度閉環(huán)控制。為實現(xiàn)速度的閉環(huán)控制,必須加入速度檢測裝置實現(xiàn)速度閉環(huán)控制中的反饋環(huán)節(jié)。系統(tǒng)測速模塊采用旋轉霍爾編碼器。由于編碼器采用集電極開路輸出,輸出波形為矩形波,因此編碼器外圍電路較為簡單。需要在信號輸出端接入一個上拉電阻,即可將信號提供給單片機采集數(shù)據(jù)。如圖7所示,PULSE引腳為編碼器A相,接單片機的脈沖計數(shù)口,通過單片機的PACNT模塊對輸入脈沖進行計數(shù)從而獲取電機轉速。DIR為編碼器B相輸出,接單片機I/O口,通過A、B相位差進行軟件鑒相,從而判斷電機轉動方向。
圖6 TB6612電機驅動電路
圖7 編碼器接口電路
軟件設計[10~11]是兩輪自平衡小車設計中的關鍵。根據(jù)系統(tǒng)要求,軟件需要完成單片機初始化、姿態(tài)信息采集、卡爾曼濾波、速度檢測、直流電機PID控制算法等。系統(tǒng)軟件流程如圖8所示。由于篇幅問題,在此重點介紹姿態(tài)信息采集軟件設計。姿態(tài)信息采集包括陀螺儀與加速度計輸出值轉換及卡爾曼濾波器軟件實現(xiàn)兩部分。
圖8 系統(tǒng)總體軟件流程圖
本系統(tǒng)采用的慣性傳感器為模擬量輸出式,利用單片機自帶ATD模塊進行模數(shù)轉換,從而檢測出傳感器輸出電壓。此外還需要對陀螺儀及加速度計的輸出進行轉換運算,使最終送入卡爾曼濾波器的為陀螺儀檢測的角速度以及加速度計檢測的角度。
陀螺儀輸出電壓與檢測角速度轉換公式如下
式中:G為陀螺儀檢測的角速度;Vout為陀螺儀輸出電壓;Voffest為陀螺儀靜止時的輸出電壓;Vsen為陀螺儀靈敏度;K為放大電路放大系數(shù)。加速度計輸出電壓與檢測的角度轉換公式如下
式中:A為加速度計檢測的重力加速度;Vout為加速度計輸出電壓;Voffest為加速度計在平衡位置的輸出電壓;Vsen為加速度計靈敏度。再利用反三角函數(shù)求出與重力方向的傾角。
根據(jù)式(1)將陀螺儀的輸出電壓轉換為角速度;根據(jù)式(2)求出加速度計的輸出角度acc(此時得出的角度為弧度),為了將加速度計的輸出角度與陀螺儀的積分角度單位統(tǒng)一,需要對加速度計的輸出角度進行單位換算,通過式(3)進行換算得出角度。
由卡爾曼濾波[12]原理可知,卡爾曼濾波器是一種高效率的遞歸濾波器(自回歸濾波器)。其主要原理是利用前一狀態(tài)的估計值和當前狀態(tài)的觀測值更新對狀態(tài)變量的估計,從而得到當前狀態(tài)的估計值??柭鼮V波器的工作流程如圖9所示。
圖9 卡爾曼濾波器預估-更新流程圖
通過卡爾曼增益計算出最優(yōu)估計值及預測值偏差,得到最優(yōu)角度值及角速度值。
通過相應硬件與軟件的設計,最終實現(xiàn)了兩輪自平衡小車的平衡控制及運動控制。小車可以在無人干預條件下實現(xiàn)自主平衡。同時在引入適量干擾情況下小車能夠自主調整并迅速恢復穩(wěn)定狀態(tài)。
[1]季鵬飛,朱燕,程傳統(tǒng),等.基于STM32的兩輪自平衡小車控制系統(tǒng)設計[J].電子科技,2014,27(11):96-99.
JI Pengfei,ZHU Yan,CHENG Jing,et al.Design of con?trol system for two wheeled self balancing vehicle based on[J].Electronic Science and technology,2014,27(11):96-99.
[2]郝蕓,楊奇,佟皓萌.基于STM32的四軸飛行器設計[J].電子測試,2015(18):6-8.
HAO Yun,YANG Qi,TONG Haomeng.four axis aircraft design based on STM32[J].Electronic Test,2015(18):6-8.
[3]常國權,戴國強.基于STM32的四軸飛行器飛控系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2015,15(2):29-32.
CHANG Guoquan,DAI Guoqiang.STM32 four axis air?craft flight control system design of[J].microcontroller and embedded systems based on STM32,2015,15(2):29-32.
[4]王素青,熊維堂.基于STM32的兩輪自平衡小車系統(tǒng)設計[J].實驗室研究與探索,2016,35(5):146-150.
WANG Suqing,XIONG Weitang.Two STM32 based on self research and exploration,the design of[J].car system laboratory balance,2016,35(5):146-150.
[5]張志強.基于STM32的雙輪平衡車[J].電子設計工程,2011,19(13):103-106.
ZHANG Zhiqiang.STM32.The two wheeled balancing car[J].Electronic design project,based on the,2011,19(13):103-106.
[6]王振運.基于RT-Thread和STM32的雙輪自平衡機器人的設計與實現(xiàn)[D].太原:中北大學,2016.
WANG Zhenyun.A RT-Thread and STM32 based on the design and implementation of the self balancing robot[D].Taiyuan:North Central University,2016.
[7]梁華,李曉虹,楊光祥.兩輪自平衡機器人動力學模型分析及PID控制方法研究[J].重慶師范大學學報(自然科學版),2016(1):163-167.
LIANG Hua,LI Xiaohong,YANG Guangxiang.Study on dynamic model of two wheeled self balancing robot and PID control method[J].Journal of Chongqing Normal Uni?versity(Natural Science Edition),2016(1):163-167.
[8]馮智勇,曾瀚,張力,等.基于陀螺儀及加速度計信號融合的姿態(tài)角度測量[J].西南師范大學學報自然科學版,2011,36(4):137-141.
FENG Zhiyong,ZENG Han,ZHANG Li,et al.The gyro?scope and accelerometer based on attitude angle measure?ment signal fusion[J].Natural Science Journal of South?western Normal University,2011,36(4):137-141.
[9]阮曉鋼,任紅格.兩輪自平衡機器人動力學建模及其平衡控制[J].計算機應用研究,2009,26(1):99-101.
RUAN Xiaogang,REN Hongge.Dynamic modeling and balance control of two wheeled self balancing robot[J].Computer Application Research,2009,26(1):99-101.
[10]華瑾,高嵩,秦剛,等.兩輪自平衡機器人動力學建模與運動控制[J].西安工業(yè)大學學報,2014(10):851-855.
HUA Jin,GAO Song,QIN Gang,et al.The two wheeled self balancing robot dynamics modeling and motion con?trol[J].Journal of Xi’an Technological University,2014(10):851-855.
[11]張洪偉.基于STM32的平衡車設計[J].科技創(chuàng)新與應用,2016(2):78-79.
ZHANGHongwei.Design of balance car based on STM32[J].Science and Technology Innovation and Applica?tion,2016(2):78-79.
[12]王學斌,徐建宏,張章.卡爾曼濾波器參數(shù)分析與應用方法研究[J].計算機應用與軟件,2012,29(6):212-215.
WANG Xubin,WU Jianhong,ZHANG Zhang.On Analy?sis and Application Approach for kalman Filtar Parame?ters[J].Computer Application and Software,2012,29(6):212-215.
Design of Two W heeled Self Balancing Car Based on MCU
WEI Ya
(Shanxi Polytechnic Institute,Xianyang 712000)
TP3-02
10.3969/j.issn.1672-9722.2017.09.038
2017年3月9日,
2017年4月22日
國家自然科學基金項目“基于空間打壓矢量的異步電動機軟啟動控制理論與方法研究”(編號:51577110)資助。
魏雅,女,碩士,副教授,研究方向:電子信息和計算機。