當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]基于stm32的兩輪自平衡小車(chē)2(原理篇)

系統(tǒng)框圖

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


平衡車(chē)

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

運(yùn)動(dòng)分析

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

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

小車(chē)的平衡控制是通過(guò)負(fù)反饋來(lái)實(shí)現(xiàn)的。

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


平衡車(chē)

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

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

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

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

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

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


平衡車(chē)


平衡車(chē)

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

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


平衡車(chē)

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

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

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


平衡車(chē)

PID算法

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

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

PID控制算法的C語(yǔ)言實(shí)現(xiàn).(絕對(duì)的好東西) hm5o

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

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

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

定時(shí)器PWM輸出

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

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

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

定時(shí)器編碼器模式

編碼器模式是通用定時(shí)器和高級(jí)定時(shí)器的功能之一:


平衡車(chē)

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


平衡車(chē)

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

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

兩個(gè)輸入TI1和TI2被用來(lái)作為增量編碼器的接口。參看下表:


平衡車(chē)

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

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


平衡車(chē)

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

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

六軸傳感器獲取角度

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


平衡車(chē)

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


平衡車(chē)

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

因?yàn)橥勇輧x買(mǎi)的是某點(diǎn)原子的,這里分享他們提供的詳細(xì)資料:

ATK-MPU6050六軸傳感器模塊用戶(hù)手冊(cè)_V1.0 w7wy

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

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

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

關(guān)鍵字: 阿維塔 塞力斯 華為

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

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

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

關(guān)鍵字: 騰訊 編碼器 CPU

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

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉