當前位置:首頁 > 技術學院 > 技術前線
[導讀]基于stm32的兩輪自平衡小車2(原理篇)

系統(tǒng)框圖

按照我自己的理解,平衡小車的系統(tǒng)框圖大概是這樣子的一個思路:


平衡車

獲取小車的速度和角度這兩組數(shù)據(jù)就是實現(xiàn)小車自平衡的前提,這些數(shù)值在stm32的中斷控制中結(jié)合PID算法使用,輸出運算后的數(shù)值賦值給PWM寄存器控制電機,從而實現(xiàn)小車的自平衡;而遙控數(shù)據(jù)則是小車轉(zhuǎn)向控制才需要用的,因此可以先不關注遙控部分,在小車能夠站起來后再去關注。

運動分析

平衡小車的運動控制可以分為平衡控制、速度控制和方向控制,即直立環(huán)、速度環(huán)和轉(zhuǎn)向環(huán),其中平衡控制是最關鍵的部分。平衡小車作為一個控制對象,可以簡化地把它看做兩個電機的轉(zhuǎn)動速度和轉(zhuǎn)動方向控制,小車的直立控制和方向控制是直接通過控制小車兩個驅(qū)動電機完成的,小車的速度則是通過調(diào)節(jié)小車到的角度來完成的,不同的傾角會引起小車的加減速。(這里需要關注這兩個關鍵詞:速度和角度,這兩個數(shù)據(jù)是通過檢測裝置(傳感器)獲取的,后面部分會詳細講述)。

平衡控制(直立環(huán))

小車的平衡控制是通過負反饋來實現(xiàn)的。

反饋又稱回饋,是控制論的基本概念,指將系統(tǒng)的輸出返回到輸入端并以某種方式改變輸入,進而影響系統(tǒng)功能的過程;而使輸出起到與輸入相反的作用,使系統(tǒng)輸出與系統(tǒng)目標的誤差減小,系統(tǒng)趨于穩(wěn)定的反饋稱為負反饋。(百度)


平衡車

平衡小車的兩個輪子著地,車體只會在輪子滾動的方向上發(fā)生傾斜,因此可以通過控制輪子轉(zhuǎn)動,抵消在一個維度上傾斜的趨勢便可以保持車體平衡,即如果車體向前傾斜就向前加速運動,向后傾斜就向后加速運動。

保持小車穩(wěn)定平衡的條件是:能夠精確測量小車傾角θ的大小和角速度θ ’ 的大小以及可以控制車輪的加速度。(直立行車參考設計方案第二版)

直立控制主要是保證小車在運行過程中保持在一個理想的角度,這個理想的角度一般由小車的機械零點決定。這個點在實際中大多指的是一個范圍。(如果在單純調(diào)試直立環(huán)的時候調(diào)了很多組參數(shù)小車的平衡效果還是不好,不妨嘗試一下在直立控制的程序中加上或者減去一個小一些的數(shù)值)

單純直立環(huán)作用,在調(diào)好參數(shù)的情況下小車也是可以保持一定范圍和時間的平衡的,但是對外界干擾特別敏感,不穩(wěn)定,輕輕一推小車就失衡了,因此僅僅使用平衡控制是不足以實現(xiàn)我們想要的平衡效果的,要實現(xiàn)穩(wěn)定效果,還需要加上速度環(huán)。

速度控制(速度環(huán))

小車的速度控制是通過正反饋來實現(xiàn)的。使輸出起到與輸入相同的作用,使系統(tǒng)輸出與系統(tǒng)目標的誤差增大,系統(tǒng)趨于不穩(wěn)定的反饋稱為正反饋;即小車要向前傾斜,就往前更快地加速,以達到再次平衡。


平衡車


平衡車

由于存在安裝誤差,傳感器實際測量的角度與車模角度有偏差,因此車模實際不是保持與地面垂直,而是存在一個傾角,在重力的作用下,車模就會朝傾斜的方向加速前進。平衡小車的速度是通過調(diào)節(jié)小車傾角來完成的,平衡小車不同的傾角會引起車模的加減速,從而達到對于速度的控制。(直立行車參考設計方案第二版)

要調(diào)節(jié)小車的傾角,首先需要獲取小車電機的轉(zhuǎn)動速度,一般都是通過編碼器來獲取。某寶上大多數(shù)平衡小車的車模都是帶有編碼器的,引出AB兩相,因為stm32的定時器有編碼器模式,因此特定的GPIO口可以直接連接電機上的編碼器接口,從而讀取脈沖,獲得速度值。


平衡車

直立環(huán)與速度環(huán)共同作用,就可以實現(xiàn)小車的平衡了,參數(shù)調(diào)好了即使用力推小車,小車也會迅速回到平衡位置。

轉(zhuǎn)向控制(轉(zhuǎn)向環(huán))

實現(xiàn)平衡小車的轉(zhuǎn)向控制的前提是平衡控制和速度控制已經(jīng)能夠?qū)崿F(xiàn)較好地平衡效果,要是還沒調(diào)好這兩個環(huán),就先不要調(diào)轉(zhuǎn)向環(huán)。轉(zhuǎn)向控制比較簡單,就是給予兩個電機差速,例如上位機需要控制小車左轉(zhuǎn),那么在最終賦值給電機的時候讓左輪比右輪慢就行了(即左輪最終賦值減去轉(zhuǎn)向輸入值,右輪最終賦值加上轉(zhuǎn)向輸入值,兩值大小相同,符號相反)。


平衡車

PID算法

這里分享三篇有關PID算法的文檔,從原理到C語言實現(xiàn)再到調(diào)參,總有一篇能解決你的疑惑,平衡小車運用的PID算法就只是幾個式子,如果是興趣愛好去做的話不用太深入去理解具體的推導過程,有條件的話還是鉆研一番比較利于后面的學習。

<<<<<<<<<<<<<<<<<<<<---------------------------------------->>>>>>>>>>>>>>>>>>>>>>>>

PID控制算法的C語言實現(xiàn).(絕對的好東西) hm5o

PID算法原理、調(diào)試經(jīng)驗和代碼 z2r8

PID調(diào)節(jié)控制做電機速度控制 rw60

<<<<<<<<<<<<<<<<<<<<---------------------------------------->>>>>>>>>>>>>>>>>>>>>>>>

定時器PWM輸出

脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation” 的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術。

因為我們在驅(qū)動電機的時候是希望它按照一定的速度行駛的,如果直接賦值高低電平來控制,則達不到我們要的控制效果。利用定時器輸出PWM波則可以實現(xiàn)上述要求。STM32 的定時器除了除了基本定時器TIM6和TIM7外,其他的定時器都可以用來產(chǎn)生 PWM 輸出。其中高級定時器 TIM1 和 TIM8 可以同時產(chǎn)生多達 7 路的 PWM 輸出。而通用定時器也能同時產(chǎn)生多達 4路的 PWM 輸出。

定時器輸出PWM的配置無非是相關GPIO口初始化、使能時鐘、使能定時器、設置自動裝載值和預分頻系數(shù)、設置PWM輸出通道和方向這些,相信開發(fā)手冊寫得很詳細了。要是懶得翻開發(fā)手冊,這里再貼一個大佬的一篇博客:【STM32】通用定時器的PWM輸出(實例:PWM輸出)。高級定時器(以TIM1為例)的配置和通用定時器的配置基本一樣,但是還需要使能剎車和死區(qū)寄存器(TIM1_BDTR)的MOE位,以使能整個 OCx(即 PWM)輸出。設置函數(shù)為:TIM_CtrlPWMOutputs(TIM1,ENABLE);// MOE 主輸出使能

定時器編碼器模式

編碼器模式是通用定時器和高級定時器的功能之一:


平衡車

這里要著重提醒的是:stm32定時器只有TIMx_CH1和TIMx_CH2支持編碼器模式:


平衡車

選擇編碼器接口模式的方法是:如果計數(shù)器只在TI2的邊沿計數(shù),則置TIMx_SMCR寄存器中的SMS=001;如果只在TI1邊沿計數(shù),則置SMS=010;如果計數(shù)器同時在TI1和TI2邊沿計數(shù),則置SMS=011。

通過設置TIMx_CCER寄存器中的CC1P和CC2P位,可以選擇TI1和TI2極性;如果需要,還可以對輸入濾波器編程。

兩個輸入TI1和TI2被用來作為增量編碼器的接口。參看下表:


平衡車

假定計數(shù)器已經(jīng)啟動(TIMx_CR1寄存器中的CEN=’1’),計數(shù)器由每次在TI1FP1或TI2FP2上的有效跳變驅(qū)動。 TI1FP1和TI2FP2是TI1和TI2在通過輸入濾波器和極性控制后的信號;如果沒有濾波和變相,則TI1FP1=TI1,TI2FP2=TI2。根據(jù)兩個輸入信號的跳變順序,產(chǎn)生了計數(shù)脈沖和方向信號。依據(jù)兩個輸入信號的跳變順序,計數(shù)器向上或向下計數(shù),同時硬件對TIMx_CR1寄存器的DIR位進行相應的設置。不管計數(shù)器是依靠TI1計數(shù)、依靠TI2計數(shù)或者同時依靠TI1和TI2計數(shù)。在任一輸入端(TI1或者TI2)的跳變都會重新計算DIR位。

編碼器接口模式基本上相當于使用了一個帶有方向選擇的外部時鐘。這意味著計數(shù)器只在0到TIMx_ARR寄存器的自動裝載值之間連續(xù)計數(shù)(根據(jù)方向,或是0到ARR計數(shù),或是ARR到0計數(shù))。所以在開始計數(shù)之前必須配置TIMx_ARR;同樣,捕獲器、比較器、預分頻器、觸發(fā)輸出特性等仍工作如常。在這個模式下,計數(shù)器依照增量編碼器的速度和方向被自動的修改,因此計數(shù)器的內(nèi)容始終指示著編碼器的位置。計數(shù)方向與相連的傳感器旋轉(zhuǎn)的方向?qū)?


平衡車

當定時器配置成編碼器接口模式時,提供傳感器當前位置的信息。使用第二個配置在捕獲模式的定時器,可以測量兩個編碼器事件的間隔,獲得動態(tài)的信息(速度,加速度,減速度)。指示機械零點的編碼器輸出可被用做此目的。根據(jù)兩個事件間的間隔,可以按照固定的時間讀出計數(shù)器。如果可能的話,你可以把計數(shù)器的值鎖存到第三個輸入捕獲寄存器(捕獲信號必須是周期的并且可以由另一個定時器產(chǎn)生);也可以通過一個由實時時鐘產(chǎn)生的DMA請求來讀取它的值。

以上內(nèi)容參考stm32中文手冊,更詳細說明可以參考這篇博客:【STM32平衡小車】STM32定時器配置為編碼器模式

六軸傳感器獲取角度

平衡小車制作的核心部分是傾角和加速的的獲取,想要使小車站立和運動,這兩種參數(shù)的獲取是非常關鍵的,前者是控制小車直立的關鍵參數(shù),后者是速度環(huán)和轉(zhuǎn)向環(huán)的關鍵參數(shù)。平衡小車使用MPU6050六軸傳感器模塊來獲取角度和加速度值,MPU6050六軸傳感器模塊的本質(zhì)是三軸陀螺儀傾角輸出+三軸加速度計速度輸出,并帶有溫度傳感器。


平衡車

該模塊的通信方式是IIC通信,芯片內(nèi)置16字節(jié)AD轉(zhuǎn)換器,能輸出16位數(shù)據(jù)。得到輸出的四元數(shù)后,可利用自帶的數(shù)字運動處理器(DMP)硬件加速引擎,通過主IIC接口,向應用端輸出姿態(tài)解算后的數(shù)據(jù),通過DMP,就可以使用InvenSense公司提供的運動處理資料庫,非常方便地實現(xiàn)姿態(tài)解算,降低了運動處理運算對操作系統(tǒng)的負荷,同時大大降低了開發(fā)難度。其內(nèi)部框圖如下:


平衡車

SCL 和 SDA 是連接 STM32F103C8T6芯片的 IIC 接口, MCU通過這個 IIC 接口來控制 MPU6050。VLOGIC 是 IO 口電壓,該引腳最低可以到 1.8V,一般直接接 VDD 即可。 AD0 是從 IIC 接口(接 MCU)的地址控制引腳,該引腳控制IIC 地址的最低位。如果接 GND,則 MPU6050 的 IIC 地址是: 0X68,如果接 VDD,則是0X69。

因為陀螺儀買的是某點原子的,這里分享他們提供的詳細資料:

ATK-MPU6050六軸傳感器模塊用戶手冊_V1.0 w7wy

ATK-MPU6050六軸傳感器模塊使用說明(Mini V3)_AN1507hhob

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉