99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡易mini版平衡小車具體制作過程

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2022-06-23 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32平衡小車大家應(yīng)該見到過很多了,作為學(xué)生或者DIY愛好者做一輛小型的mini平衡小車還是可以實(shí)現(xiàn)的。給大家?guī)聿┲骼夏咧谱鞯拿阅愕钠胶庾孕熊図?xiàng)目,相信我們能從中學(xué)到一些新東西。在本文將會(huì)介紹平衡自行車的具體制作過程,包括機(jī)械、電路和代碼。

本項(xiàng)目要說的簡易mini版平衡小車。

自行車平衡理論

模型分析

1 倒立擺

很顯然我們知道自行車在左右方向上不穩(wěn)定,這是一個(gè)很常見的物理模型——倒立擺。

b3fa0110-f291-11ec-ba43-dac502259ad0.png

顧名思義,倒立擺的意思就是倒著的擺,比如一個(gè)倒著的桿,

b40e828e-f291-11ec-ba43-dac502259ad0.png

倒立擺的特性:不穩(wěn)定,只要偏離平衡位置,就會(huì)有一個(gè)力(重力的分力)使系統(tǒng)更加偏離平衡位置,這樣偏差就會(huì)越來越大。

一般倒立的桿在前后左右方向都有可能倒下,在二維的平面上不穩(wěn)定;而自行車僅在左右方向上可能倒下,是一維的倒立擺,這要簡單一些。

2 自行車的平衡控制

自行車屬于倒立擺模型,倒立擺是不穩(wěn)定的,那么倒立擺應(yīng)該如何控制才能平衡呢?

我們把問題拆分一下:

怎樣的狀態(tài)才叫平衡?

我們能控制的是什么?

如何控制才能穩(wěn)定平衡?

2.1 怎樣的狀態(tài)才叫平衡

我們要對(duì)”平衡”進(jìn)行數(shù)學(xué)描述,所謂的平衡其實(shí)就是倒立擺的傾角穩(wěn)定在一個(gè)我們想要的值。

b40e828e-f291-11ec-ba43-dac502259ad0.png

通常我們想要平衡在θ = 0處。

2.2 我們能控制的是什么

對(duì)于倒立擺模型,通常我們能控制的是底端的力或速度或位置,不同的控制量對(duì)應(yīng)的控制方法不同。

對(duì)于自行車來說,它的控制方式不像通常的倒立擺那樣直接控制底部,而是間接地通過轉(zhuǎn)向來控制,當(dāng)自行車以一個(gè)固定的速度前進(jìn)時(shí),自行車把手以一定角度進(jìn)行轉(zhuǎn)向(設(shè)為α),自行車會(huì)做相應(yīng)半徑的圓周運(yùn)動(dòng),產(chǎn)生相應(yīng)大小的”離心力”。

在自行車這個(gè)費(fèi)慣性系里看來,只要對(duì)把手進(jìn)行一定角度的轉(zhuǎn)向(α),就會(huì)產(chǎn)生一個(gè)相應(yīng)大小的橫向力:

b43a8014-f291-11ec-ba43-dac502259ad0.png

這就是我們進(jìn)行平衡控制時(shí)的實(shí)際控制量——把手轉(zhuǎn)角α,只要控制它就能控制回復(fù)力。

2.3 如何控制才能平衡

上面我們已經(jīng)能夠通過轉(zhuǎn)向產(chǎn)生回復(fù)力,這個(gè)回復(fù)力可以把倒立擺”掰回”平衡位置,有往回掰的回復(fù)力就能穩(wěn)定平衡了嗎?

并不是這樣,我們?cè)賮砘仡櫼幌轮袑W(xué)物理:

過阻尼狀態(tài)的擺會(huì)以較慢的速度回到平衡位置;欠阻尼狀態(tài)的擺會(huì)很快回到平衡位置,但會(huì)在平衡位置來回?cái)[動(dòng);臨界阻尼狀態(tài)的擺會(huì)以最快的速度穩(wěn)定在平衡位置。

結(jié)合到實(shí)際的自行車平衡中就是:

如果恢復(fù)力不夠大,就無法矯正,或者矯正速度很慢,這會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定;如果回復(fù)力過大,就會(huì)導(dǎo)致矯正過度,這也會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定;我們最希望的狀態(tài)就是回復(fù)力剛剛好,剛好使倒立擺快速回到平衡位置,又不至于矯正過度。

這是一個(gè)復(fù)雜的數(shù)學(xué)計(jì)算過程,回復(fù)力大小會(huì)在系統(tǒng)運(yùn)行時(shí)不斷地計(jì)算(本平衡自行車是20ms計(jì)算一次),用到的是PID算法,會(huì)在后面詳細(xì)介紹。

3 自行車平衡需要解決的基本問題

獲取左右方向傾角θ

以合適的算法控制轉(zhuǎn)角α使系統(tǒng)穩(wěn)定平衡

這將會(huì)在下面詳細(xì)討論。

姿態(tài)檢測(cè)

1 檢測(cè)的是什么

檢測(cè)的是自行車左右傾斜的角度。

2 怎么檢測(cè)

用一個(gè)叫g(shù)y521的模塊,里面用的是mpu6050芯片,帶有陀螺儀和加速度傳感器。

gy521的具體使用會(huì)在第三篇-實(shí)踐篇介紹,這里我們知道通過這個(gè)模塊我們可以得到自行車各個(gè)方向的加速度和角速度。注意哦,我們不能直接得到傾斜角度,我們的到的是各個(gè)方向的加速度和角速度,需要進(jìn)行一些復(fù)雜的計(jì)算才能得到正確的傾斜角度。

常用的算法有互補(bǔ)平衡濾波、卡爾曼濾波。

PID算法

前面已經(jīng)分析了,我們通過控制把手轉(zhuǎn)角來控制回復(fù)力,我們需要實(shí)時(shí)計(jì)算一個(gè)合適的回復(fù)力使系統(tǒng)穩(wěn)定平衡。

b4451772-f291-11ec-ba43-dac502259ad0.png

有一個(gè)小球在光滑球面上,小球的位置是x,光滑球面頂端在L處,我們可以控制小球水平方向力F,現(xiàn)在要求讓小球穩(wěn)定平衡在x0處。

先看簡單情況x0=L,此時(shí)偏差為L-x,

我們給出一個(gè)比例項(xiàng)(P) F = kp*(L-x),這樣就會(huì)有一個(gè)回復(fù)力,當(dāng)偏差存在時(shí)就會(huì)有一個(gè)力把小球拉回L處。

這存在的問題是,小球接近L時(shí)是會(huì)有一定速度的,小球越來越接近L,此時(shí)的力仍然是在把小球往L處拉,這會(huì)導(dǎo)致小球到達(dá)L時(shí)(我們想要的位置)速度很大,小球無法立刻停下來,而是會(huì)沖過去。

這樣小球就會(huì)在L附近來回?cái)[動(dòng),這是不穩(wěn)定的狀態(tài),屬于欠阻尼狀態(tài)。

為了解決上述問題需要加一個(gè)微分項(xiàng)(D) F = kd*dx/dt = kd*v,所謂”微分”指的是位置x對(duì)時(shí)間的微分,說白了就是速度。

意思就是當(dāng)速度越大,就產(chǎn)生一個(gè)反向的力使速度減小,這樣就可以防止出現(xiàn)上面小球沖過去的。

可以認(rèn)為這一項(xiàng)具有”預(yù)測(cè)”功能,預(yù)測(cè)小球下一時(shí)刻的狀態(tài)從而提前做出反應(yīng),預(yù)測(cè)小球?qū)⒁竭_(dá)L處,提前減速。

也可以認(rèn)為這一項(xiàng)具有阻尼作用,相當(dāng)于系統(tǒng)中有一個(gè)和速度成比例的阻尼力。

這個(gè)”阻尼力”調(diào)得過小會(huì)導(dǎo)致欠阻尼狀態(tài),調(diào)得過大會(huì)導(dǎo)致過阻尼狀態(tài)。

積分項(xiàng)此時(shí)可以不用,積分項(xiàng)是當(dāng)平衡位置x0不等于L時(shí)使用的,

當(dāng)平衡位置不是L處,那么當(dāng)小球靜止在平衡位置x0時(shí),由于在坡道上會(huì)有一個(gè)恒定的橫向偏移力,此時(shí)比例調(diào)節(jié)作用為0(Δx=0),微分調(diào)節(jié)作用也是0(v=0),所以小球在該處無法平衡,會(huì)在更遠(yuǎn)離平衡位置處達(dá)到平衡,那么就會(huì)有一個(gè)長時(shí)間存在的偏差。

積分作用就是檢測(cè)偏差進(jìn)行累積,對(duì)于上面這個(gè)長時(shí)間存在的偏差進(jìn)行積分(累積疊加),使系統(tǒng)在長時(shí)間范圍可以穩(wěn)定在要求的平衡位置。

平衡自行車-實(shí)踐篇

在本文將會(huì)介紹平衡自行車的具體制作過程,包括機(jī)械、電路和代碼。

材料

機(jī)械

b45b85f2-f291-11ec-ba43-dac502259ad0.png

電路

b46e61f4-f291-11ec-ba43-dac502259ad0.png

動(dòng)力部分

傳動(dòng)方式

如圖,我用的是皮帶或者齒輪傳送的方式,因?yàn)楸容^好實(shí)現(xiàn)。

b478877e-f291-11ec-ba43-dac502259ad0.png

電機(jī)選擇

這個(gè)DIY是不考慮變速情況的,平衡的參數(shù)都是按照一個(gè)固定速度調(diào)的。

所以動(dòng)力部分的作用就是提供一個(gè)恒定的速度,并且這個(gè)速度盡可能穩(wěn)定,盡可能不受外部影響。

電機(jī)應(yīng)選擇扭力大一些、轉(zhuǎn)速穩(wěn)定的減速電機(jī)。

電機(jī)供電

電機(jī)是直接供電還是使用升壓模塊供電要根據(jù)電機(jī)特性,有些電機(jī)用升壓模塊可以提高功率,有些大電流電機(jī)用升壓模塊反而可能限制了電流。

我這里用升壓模塊升到12v給N20電機(jī)供電的。

另外,電機(jī)通過三極管受stm32控制,通過控制占空比也可以限制電機(jī)輸出的功率。

轉(zhuǎn)向部分

轉(zhuǎn)向部分用一個(gè)舵機(jī)帶動(dòng)把手轉(zhuǎn)動(dòng)即可。

電路

在GitHub工程里有詳細(xì)的引腳連接表

https://github.com/nicekwell/balance_bike

供電

用3.3v穩(wěn)壓芯片給整個(gè)控制系統(tǒng)供電,包括單片機(jī)、GY521模塊、藍(lán)牙模塊。

用5v穩(wěn)壓芯片給舵機(jī)供電。

用12v升壓模塊給電機(jī)供電。

下載

我是用串口給stm32下載程序的。

b4cc1326-f291-11ec-ba43-dac502259ad0.png

GY521

這個(gè)模塊通過i2c通信,只需要連接4根線。

3.3v

GND

PB0 GY521 I2C SCL

PB1 GY521 I2C SDA (用的是IO模擬i2c)

電機(jī)

點(diǎn)擊用12v升壓模塊供電,由于不需要反轉(zhuǎn),用三極管即可直接驅(qū)動(dòng),電路圖如下:

b4d76cbc-f291-11ec-ba43-dac502259ad0.png

加三極管的目的是為了可以通過調(diào)節(jié)PWM占空比來限制輸出功率,但我的實(shí)際情況是100%輸出時(shí)動(dòng)力才勉強(qiáng)足夠。相關(guān)推薦:STM32中PWM的配置與應(yīng)用詳解。所以如果你不需要限制電機(jī)輸出功率,或者通過其他方式限制輸出功率,也可以不要三極管,不通過單片機(jī)控制。

舵機(jī)

舵機(jī)是用5v供電的,而單片機(jī)是3.3v電平,對(duì)于PWM控制腳可以通過2個(gè)三極管實(shí)現(xiàn)同相的電平轉(zhuǎn)換:

b4e0cfd2-f291-11ec-ba43-dac502259ad0.png

藍(lán)牙模塊

下圖是我使用的藍(lán)牙串口模塊,可以實(shí)現(xiàn)串口透?jìng)?,只需?根線連接:vcc、gnd、txd、rxd。

b4f0e106-f291-11ec-ba43-dac502259ad0.png

藍(lán)牙模塊是用來調(diào)試和遙控的,沒有它也能跑。建議還是加上這個(gè)模塊,在調(diào)試PID擦數(shù)時(shí)會(huì)非常方便。相關(guān)文章:PID算法原理介紹。

代碼結(jié)構(gòu)

代碼提交在GitHub,點(diǎn)擊閱讀原文直達(dá)。

主要分為3個(gè)部分:

基礎(chǔ)的驅(qū)動(dòng)程序,實(shí)現(xiàn)電機(jī)、舵機(jī)、gy521數(shù)據(jù)讀??;

平衡控制系統(tǒng),核心是一個(gè)20ms定時(shí)器,每20ms進(jìn)行一次數(shù)據(jù)采集、計(jì)算和響應(yīng);

遙控和調(diào)試系統(tǒng),實(shí)現(xiàn)log輸出、接收遙控信息。

b507bd7c-f291-11ec-ba43-dac502259ad0.png

平衡控制

main函數(shù)會(huì)初始化一個(gè)定時(shí)器20ms中斷一次,調(diào)用 main/balance.c 里的 balance_tick 函數(shù),平衡算法在 main/balance.c 實(shí)現(xiàn)。

每20ms到來會(huì)執(zhí)行一次:

讀取傳感器加速度和角速度信息。

互補(bǔ)平衡濾波計(jì)算當(dāng)前姿態(tài)。

用PID算法計(jì)算出前輪轉(zhuǎn)角。

遙控和調(diào)試

兩部分:狀態(tài)輸出和指令接收。

狀態(tài)輸出

在main函數(shù)的while循環(huán)里,利用串口中斷構(gòu)建一個(gè)簡單的界面顯示狀態(tài)。

指令接收

串口接收到的數(shù)據(jù)會(huì)傳給main/control.c,該文件分析串口數(shù)據(jù),解釋成相應(yīng)的操作。主要是PID參數(shù)調(diào)節(jié)。

點(diǎn)擊閱讀原文,可以獲取平衡自行車完整的代碼

老倪

http://nicekwell.net/blog/20180123/ping-heng-zi-xing-che-shi-jian-pian.html

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3521

    瀏覽量

    50434
  • 平衡小車
    +關(guān)注

    關(guān)注

    1

    文章

    39

    瀏覽量

    12770

原文標(biāo)題:STM32平衡自行車項(xiàng)目,你也可以試試!文末附代碼

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    各位大神,請(qǐng)教機(jī)械式光開關(guān)的制作過程

    各位大神,請(qǐng)教機(jī)械式光開關(guān)的制作過程,想了解一下準(zhǔn)直器將輸入端固定,通過驅(qū)動(dòng)馬達(dá)將不同輸出端準(zhǔn)直器與輸入端耦合。如何才能對(duì)準(zhǔn)。
    發(fā)表于 04-21 13:14

    最全最詳盡的半導(dǎo)體制造技術(shù)資料,涵蓋晶圓工藝到后端封測(cè)

    ——薄膜制作(Layer)、圖形光刻(Pattern)、刻蝕和摻雜,再到測(cè)試封裝,一目了然。 全書共分20章,根據(jù)應(yīng)用于半導(dǎo)體制造的主要技術(shù)分類來安排章節(jié),包括與半導(dǎo)體制造相關(guān)的基礎(chǔ)技術(shù)信息;總體流程圖
    發(fā)表于 04-15 13:52

    半導(dǎo)體制過程中的三個(gè)主要階段

    前段工藝(Front-End)、中段工藝(Middle-End)和后段工藝(Back-End)是半導(dǎo)體制過程中的三個(gè)主要階段,它們?cè)谥圃?b class='flag-5'>過程中扮演著不同的角色。
    的頭像 發(fā)表于 03-28 09:47 ?2723次閱讀
    半導(dǎo)<b class='flag-5'>體制</b>造<b class='flag-5'>過程</b>中的三個(gè)主要階段

    【開源共享】平衡小車制作資料,pcb與原理圖,源碼,藍(lán)牙,app

    平衡小車的所有資料,pcb與原理圖加上源碼,兩塊stm32單片機(jī),一塊做姿態(tài)解算,一塊控制處理,加上無線遙控APP。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~)
    發(fā)表于 03-27 16:57

    松下MPS媒體制作平臺(tái)概述

    MPS媒體制作平臺(tái)是一款免費(fèi)的綜合性軟件平臺(tái),專為解決視頻制作中的繁雜問題而打造。它將松下攝像機(jī)的設(shè)置、管理和控制功能集于一體,能適應(yīng)線上講座、網(wǎng)絡(luò)研討會(huì)、學(xué)術(shù)會(huì)議、現(xiàn)場(chǎng)活動(dòng)等各類場(chǎng)景,有效提升視頻制作質(zhì)量,簡化工作流程。
    的頭像 發(fā)表于 02-05 11:18 ?568次閱讀

    SAR ADC的工作過程和關(guān)鍵指標(biāo)

    ADC以其低功耗、高精度、小尺寸以及適中的速度和分辨率,在中等至高分辨率應(yīng)用中占據(jù)主導(dǎo)地位。本文將詳細(xì)介紹SAR ADC的概念、工作過程、關(guān)鍵指標(biāo)以及其在不同領(lǐng)域的應(yīng)用。
    的頭像 發(fā)表于 02-02 13:57 ?1401次閱讀

    GUC65(A)礦用本安型位置傳感器制作過程

    礦用本安型位置傳感器的制作過程需要嚴(yán)格遵守相關(guān)的安全規(guī)范和標(biāo)準(zhǔn),確保傳感器的安全性和可靠性。同時(shí),在生產(chǎn)過程中還需要注意環(huán)境保護(hù)和節(jié)能減排等要求。具體制作過程可能會(huì)因產(chǎn)品規(guī)格、制造商
    的頭像 發(fā)表于 01-07 10:18 ?501次閱讀

    HDI板盲孔制作常見缺陷及解決

    HDI板是一種高密度互連印刷電路板,其特點(diǎn)是線路密度高、孔徑小、層間連接復(fù)雜。在HDI板的制作過程中,盲孔的制作是一個(gè)關(guān)鍵步驟,同時(shí)也是常見的缺陷發(fā)生環(huán)節(jié)。以下是根據(jù)搜索結(jié)果總結(jié)的HDI板盲孔制作的常見缺陷及其解決方法。
    的頭像 發(fā)表于 11-02 10:33 ?1121次閱讀

    半導(dǎo)體制過程解析

    在這篇文章中,我們將學(xué)習(xí)基本的半導(dǎo)體制過程。為了將晶圓轉(zhuǎn)化為半導(dǎo)體芯片,它需要經(jīng)歷一系列復(fù)雜的制造過程,包括氧化、光刻、刻蝕、沉積、離子注入、金屬布線、電氣檢測(cè)和封裝等。
    的頭像 發(fā)表于 10-16 14:52 ?1988次閱讀
    半導(dǎo)<b class='flag-5'>體制</b>造<b class='flag-5'>過程</b>解析

    極化整流器的作用和工作過程

    極化整流器作為電化學(xué)整流系統(tǒng)的重要組成部分,在電解槽的保護(hù)和穩(wěn)定運(yùn)行中發(fā)揮著關(guān)鍵作用。本文將詳細(xì)闡述極化整流器的定義、作用、工作過程以及其在電解槽中的應(yīng)用。
    的頭像 發(fā)表于 10-11 10:27 ?1886次閱讀

    可調(diào)電源電路穩(wěn)壓工作過程是什么

    可調(diào)電源電路是一種電子設(shè)備,它可以提供可調(diào)節(jié)的電壓和電流輸出,廣泛應(yīng)用于電子實(shí)驗(yàn)、設(shè)備測(cè)試和維修等領(lǐng)域。穩(wěn)壓工作過程是可調(diào)電源電路的核心功能之一,它確保輸出電壓在負(fù)載變化或輸入電壓波動(dòng)時(shí)保持穩(wěn)定
    的頭像 發(fā)表于 10-09 17:12 ?855次閱讀

    松下MPS媒體制作平臺(tái)的優(yōu)勢(shì)和功能

    松下MPS媒體制作平臺(tái)是一個(gè)多元化的服務(wù)平臺(tái),它將一體化攝像機(jī)的多種配套軟件整合到一個(gè)統(tǒng)一的環(huán)境中,提供了豐富的功能和直觀的操作界面,讓用戶的使用體驗(yàn)更便捷、更高效。
    的頭像 發(fā)表于 09-19 10:04 ?754次閱讀
    松下MPS媒<b class='flag-5'>體制作</b>平臺(tái)的優(yōu)勢(shì)和功能

    第五章-PWM控制電機(jī) 開源stm32循跡小車詳細(xì)制作過程(附加完全版代碼)

    萬字筆記、12多個(gè)小時(shí)視頻、20多章節(jié)代碼手把手教會(huì)你如何開發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。** V3.3.0-STM32智能小車 視頻: https
    的頭像 發(fā)表于 08-21 16:49 ?1235次閱讀
    第五章-PWM控制電機(jī) 開源stm32循跡<b class='flag-5'>小車</b>詳細(xì)<b class='flag-5'>制作過程</b>(附加完全版代碼)

    簡述DMA控制器的工作過程

    DMA(Direct Memory Access)控制器的工作過程是一個(gè)復(fù)雜但高效的硬件執(zhí)行過程,它實(shí)現(xiàn)了內(nèi)存與外設(shè)之間直接的數(shù)據(jù)傳輸,顯著減輕了CPU的負(fù)擔(dān),提高了數(shù)據(jù)處理的效率。
    的頭像 發(fā)表于 08-20 10:35 ?2467次閱讀

    松下MPS媒體制作平臺(tái)的設(shè)備查看功能

    松下MPS媒體制作平臺(tái)是一個(gè)多元化的服務(wù)平臺(tái),用戶可以在統(tǒng)一的界面上進(jìn)行不同需求的功能操作,無需再單獨(dú)一個(gè)個(gè)打開軟件,讓用戶的使用體驗(yàn)更便捷、更高效。
    的頭像 發(fā)表于 08-08 14:11 ?707次閱讀
    松下MPS媒<b class='flag-5'>體制作</b>平臺(tái)的設(shè)備查看功能