方曉毅,丁浩,王睿麟,裴彤
基于STM32的模塊化平衡車設計
方曉毅,丁浩,王睿麟,裴彤
(常州工學院電氣與光電工程學院,江蘇常州,213000)
介紹了一種基于模塊化設計的兩輪自平衡小車,分析了系統軟硬件模塊和調試過程。為了增強系統靈活性,設計了上位機和手機應用,對小車姿態數據進行實時顯示、對系統參數進行實時調節。實踐表明,模塊化設計的自平衡小車控制穩定,調試方便,擴展靈活。
平衡車;模塊化;STM32
兩輪自平衡車以單級倒立擺模型為基礎,控制方法具有很強的靈活性,是當前比較熱門的實驗研究平臺。兩輪自平衡車系統結構具有傳統的一階倒立擺的特性,其動力學系統具有多變量、非線性、強耦合等綜合特性,受力可以看成在左右平臺上移動的倒立著的單擺。平衡車屬于同軸平行布置的結構,兩個車輪軸連接在一根軸線上,依靠兩輪電機驅動,為自平衡車提供動力。單片機通過姿態傳感器測量車體傾角,調節兩輪電機的轉速和轉向從而使車體保持直立、轉向和運行。
兩輪自平衡小車模塊化硬件電路主要由STM32最小系統模塊、姿態傳感器模塊、直流電機驅動模塊、串口藍牙模塊、無線WIFI模塊、電源模塊等構成。為便于調試和擴展,所有模塊通過接插件在一塊主板上連接。
STM32最小系統模塊由STM32芯片、OLED顯示器、LDO穩壓器LM1117-3.3、USB轉串口芯片CH340、LED、KEY組成。程序下載、串口通訊可以由USB進行,預留SWD四線調試接口。姿態傳感器模塊采用內部集成3軸陀螺儀、3軸加速度計的傳感器MPU6050。電機驅動模塊采用雙路直流電機驅動芯片TB6612。串口轉藍牙模塊采用HC-06模塊。串口轉WIFI模塊采用HC-11模塊,控制器通過增量式編碼器采集電機速度信息,電源模塊采用LM2904-5V芯片將8V鋰電池轉成5V。軟件IIC實現,通過讀取其內部寄存器,讀出三軸加速度傳感器和三軸陀螺儀數據。平衡車只在一個軸上是不穩定的,所以只要測量其中一個方向上的加速度值,就可以計算出車模傾角。陀螺儀測量的是運動物體的角速度,將角速度積分也可以得到角度。但由于陀螺儀的積分有累積誤插,加速度計輸出疊加有波動噪聲,故需要采用相關算法進行角度的解算。姿態角度的解算有互補濾波、卡爾曼濾波、dmp讀取等好幾種方法,各有優缺點。
2.2 運動控制模塊
小車的運動控制,包括直立控制、速度控制和方向控制。都在中斷程序里面執行,三種控制中直立控制是關鍵,在控制其它量時,必須盡量減少對直立控制的干擾。
直立控制函數,也叫角度環,是平衡車里面最重要的控制閉環,使用PD控制,即每次根據角度偏差和角速度偏差分別進行比例P和微分D控制。在定時器中斷中每5ms執行一次。
速度控制函數,也叫速度環,在直立控制中,速度值設定為0,以輔助角度環進行平衡控制。速度環的控制用PI實現,即根據當前速度值和設定值0的偏差進行比例P控制,根據速度值的偏差累積做積分I控制。為減少速度控制對直立控制的影響,對速度采集進行低通濾波,并且在定時器中斷中每50ms執行一次。
方向控制函數,也叫轉向環,由于對轉向要求不高,采用以Z軸陀螺儀的數據作為轉向速度偏差的比例P控制實現。在定時器中斷中每50ms執行一次。
2.1 MPU6050姿態傳感器模塊
2.3 上位機通訊模塊
在平衡車的調試過程中,我們用labwindowsCVI開發了用于監測平衡車實時狀態的實時監測系統,將姿態角、速度、電壓值等傳感器參數傳遞到上位機,姿態角以波形曲線直觀顯
控制器通過IIC接口與MPU6050通訊,可以用硬件IIC或者示,并實現了利用上位機讀取和修改平衡車的PID參數,大大提高了調試效率。上位機和下位機通訊連接使用無線串口模塊連接,LabwindowsCVI利用RS-232函數庫對串口進行打開關閉、讀取發送等操作。
2.4 手機App模塊
在平衡車程序調試的過程中,很多時候需要脫離電腦運行,這時候通過OLED屏幕或者上位PC機進行參數的檢查和調試,都很不方便。如果我們能將手機作為平衡車參數的顯示和修改工具,無疑將極大地方便控制和調試工作。由于Android的APP編程比較麻煩,要搭建開發環境,要熟悉SDK開發包,要學JavaScript等,而我們這里只需要傳遞、修改幾個下位機參數,顯然是牛刀殺雞了。這里我們使用的是AppInvent。
2.5 OLED信息顯示模塊
OLED因為具備輕薄、省電、響應速度快于TFT、價格便宜等特性,應用越來越廣泛。控制器通過SPI接口和OLED顯示模塊相連,實現了電量、角度、PID參數等信息顯示。
2.6 電機測速和調速模塊
電機的測速使用的是STM32的定時器T2和T4的正交編碼模式,對電機的增量式編碼器進行數據采集。電機的調速通過定時器T1的PWM模式,利用PID計算得到的PWM數據對電機進行調速。
首先,利用上位機或者手機app進行各模塊的獨立調試,包括通訊協議處理、姿態傳感器的角度融合算法、電機PWM控制調節等。然后,進行小車的PID調試。在調試直立環的時候,為了屏蔽掉速度環和方向環的干擾,必須先將速度環和方向環的控制輸出關閉。
本文介紹了一種基于模塊化設計的兩輪自平衡小車,分析了系統的軟硬件模塊和調試過程。為了增強系統靈活性,利用虛擬儀器軟件LabwindowsCVI設計了上位機和Appinventor設計了手機應用對小車姿態數據進行實時顯示、對系統參數進行實時調節。實踐表明,模塊化設計的自平衡小車不僅控制穩定、調試方便,而且在此基礎上可以很容易增加其它傳感器接口。
[1]趙韶華,黃金明,劉鵬等.倒立擺理論在直立自平衡智能車系統中的應用[J].電子技術,2014.2.
[2]劉二林,姜香菊.基于PD算法的兩輪自平衡車直立控制[J]自動化與儀器儀表,2015.1.
Design of modular balancing vehicle based on STM32
Fang Xiaoyi , Ding Hao, Wang Ruilin, Pei Tong
(School of electrical and opto electronic engineering,Changzhou Institute of Technology,Changzhou Jiangsu,213000)
This paper introduces a kind of self balancing vehicle modular design based on the two, analyzes the software and hardware modules and debugging process. In order to enhance the flexibility of the system, the design of the host computer and mobile phone applications, real-time display of vehicle attitude data, the parameters of the system real-time control. Practice shows that the modular design of self balancing vehicle control and stability, convenient adjustment, flexible expansion.
balance ;car modular ;STM32
江蘇省大學生創新訓練指導項目S2016041