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

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

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

如何用電機(jī)制作全向輪的機(jī)器人底盤(pán)

科技綠洲 ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式 ? 作者:?jiǎn)纹瑱C(jī)與嵌入式 ? 2023-06-22 10:23 ? 次閱讀

項(xiàng)目需求

在制作一個(gè)使用全向輪的機(jī)器人底盤(pán),對(duì)于全向輪,電機(jī)的精度是影響效果的重要因素。所以使用了步進(jìn)電機(jī),使用步進(jìn)電機(jī)的優(yōu)點(diǎn)是可以不使用編碼器,開(kāi)環(huán)控制即可達(dá)到高精度的效果。

調(diào)整占空比或者調(diào)整周期

眾所周知,PWM有兩個(gè)重要參數(shù),周期與占空比。
步進(jìn)電機(jī)的運(yùn)動(dòng)方式是,每收到一個(gè)脈沖,就旋轉(zhuǎn)指定的角度。因此影響電機(jī)速度的唯一參數(shù)就是PWM的頻率。以下附圖兩張來(lái)說(shuō)明調(diào)整占空比與調(diào)整周期的區(qū)別。

周期固定,調(diào)整占空比

圖片

上圖中有4個(gè)PWM,它們的周期是一樣的,不同之處是擁有從80%至20%的占空比。可以看出,無(wú)論占空比為多少,在1s內(nèi),它們產(chǎn)生的高電平的數(shù)量是一樣的,即無(wú)論占空比為多少,PWM的頻率都一致。因此也就無(wú)法調(diào)整步進(jìn)電機(jī)的速度。因?yàn)椴竭M(jìn)電機(jī)的速度僅與PWM的頻率有關(guān)。

占空比固定,調(diào)整周期

圖片

上圖中有4個(gè)PWM,它們的占空比都固定為50%,卻擁有不同的周期??梢钥闯?,即使占空比固定,只要?jiǎng)討B(tài)調(diào)整周期,PWM就能在相同時(shí)間內(nèi)產(chǎn)生數(shù)量不同的脈沖。因此,固定占空比,動(dòng)態(tài)調(diào)整PWM周期,即可達(dá)到控制步進(jìn)電機(jī)速度的效果。

基于STM32的實(shí)現(xiàn)

STM32F1中,定時(shí)器具有PWM模式,可以用來(lái)產(chǎn)生PWM。但是,STM32PWM模式,只要確定了時(shí)基單元(即確定了PWM周期),改變輸出比較寄存器,僅可改變PWM的占空比。
若需要改變PWM周期,需不停地改變定時(shí)器的時(shí)基單元。但時(shí)基單元與硬件相關(guān),不適合頻繁變更。因此,步進(jìn)電機(jī)的調(diào)速,不適合使用STM32下定時(shí)器的PWM模式來(lái)控制。
在多方查找資料后,確定了一種利用輸出比較精確控制PWM周期的方式。

利用輸出比較產(chǎn)生頻率可變的PWM

利用輸出比較產(chǎn)生頻率可變的PWM,原理簡(jiǎn)單介紹如下:
首先配置定時(shí)器時(shí)基單元,確定脈沖最小長(zhǎng)度單位CK。
然后開(kāi)啟定時(shí)器的輸出比較,設(shè)置模式為翻轉(zhuǎn)模式,并開(kāi)啟輸出比較中斷。
將定時(shí)器內(nèi)計(jì)數(shù)器CNT當(dāng)前值,加上脈沖長(zhǎng)度X(單位為CK),寫(xiě)入輸出比較寄存器。X個(gè)CK后,將會(huì)觸發(fā)輸出比較中斷。同時(shí)電平翻轉(zhuǎn)
在中斷中再次將當(dāng)前計(jì)數(shù)器CNT的值,加上脈沖長(zhǎng)度X,寫(xiě)入輸出比較寄存器。X個(gè)CK后,將會(huì)觸發(fā)輸出比較中斷同時(shí)電平翻轉(zhuǎn)。
在中斷中再次將當(dāng)前計(jì)數(shù)器CNT的值,加上脈沖長(zhǎng)度X,寫(xiě)入輸出比較寄存器
如此往復(fù)……
以此即可得到一個(gè)占空比為50%,周期為2X個(gè)CK的PWM。

確定最小單位CK,配置時(shí)基單元

首先確定一個(gè)最小的間隔CK,規(guī)定PWM的高電平長(zhǎng)度和低電平長(zhǎng)度的單位都是CK。
即高電平的長(zhǎng)度一定是CK的整數(shù)倍。低電平亦然。
然后配置定時(shí)器的時(shí)基單元,通過(guò)CK的長(zhǎng)度確定預(yù)分頻系數(shù)。
已知STM32F103的主頻為72MHZ,則時(shí)基單元中預(yù)分頻系數(shù)為
PSC = 72M / (1/CK)
例如,rtz所確定的CK長(zhǎng)度為10us(0.00001s),即可得出方程。

圖片

預(yù)分頻系數(shù)確定為720后,由高速晶振產(chǎn)生的72MHZ的時(shí)鐘信號(hào)被720分頻,得到100000HZ的時(shí)鐘信號(hào)。即時(shí)鐘信號(hào)每秒變動(dòng)100000次。每次10us。同時(shí)可將重裝載值設(shè)定為0XFFFF(16位定時(shí)器的最大值)。因?yàn)楸敬问褂玫妮敵霰容^模式不使用更新中斷,該值可隨意設(shè)置。

TIM_TimeBaseStructure.TIM_Period = 0XFFFF;
TIM_TimeBaseStructure.TIM_Prescaler =720;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

開(kāi)啟輸出比較通道,設(shè)置輸出比較模式為翻轉(zhuǎn)模式,并配置NVIC,開(kāi)啟輸出比較中斷,配置輸出比較通道:

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
TIM_OCInitStructure.TIM_Pulse = 500;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC1Init(TIM2, &TIM_OCInitStructure);
開(kāi)啟輸出比較中斷,配置NVIC優(yōu)先級(jí):
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

編寫(xiě)中斷服務(wù)函數(shù)

在輸出比較中斷中,唯一要做的事情就是把當(dāng)前CNT的值取出,加上脈沖長(zhǎng)度X,寫(xiě)入輸出比較寄存器。
當(dāng)計(jì)數(shù)器達(dá)到0XFFFF(之前設(shè)定的重裝載值)后,再加一會(huì)自動(dòng)變?yōu)?span id="b7vrd3p"    class="hljs-number">0.
例如,當(dāng)前CNT值為0XFFFF,脈沖長(zhǎng)度為5,很明顯,輸出比較寄存器應(yīng)設(shè)置為0X0004才可觸發(fā)下一次中斷,而不是0X10004,這樣會(huì)造成溢出。
因此將CNT的值與脈沖長(zhǎng)度相加后,需要取0XFFFF的余數(shù)后,再寫(xiě)入輸出比較寄存器。
int t_m=5;//低電平和高電平的長(zhǎng)度
void TIM2_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) {
    TIM_SetCompare1(TIM2,(TIM2- >CNT+t_m)%0XFFFF);
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
  }
}
動(dòng)態(tài)調(diào)整中斷服務(wù)函數(shù)中的變量t_m,即可達(dá)到修改PWM頻率的效果。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28418

    瀏覽量

    207103
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5186

    瀏覽量

    213957
  • 電機(jī)
    +關(guān)注

    關(guān)注

    142

    文章

    9021

    瀏覽量

    145502
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器人制作寶典

    51單片機(jī)制作機(jī)器人
    發(fā)表于 06-09 02:08

    智能電子創(chuàng)新制作-機(jī)器人制作入門(mén)

    多涉及諸如電子學(xué)理論或軟件編程等基礎(chǔ)細(xì)節(jié),書(shū)中提及的理論并不十分高深難懂,也沒(méi)有復(fù)雜的數(shù)學(xué)公式,而是重點(diǎn)介紹構(gòu)成機(jī)器人的機(jī)械、電路、電源、傳感器、直流電機(jī)、步進(jìn)電機(jī)、舵機(jī)以及常用電子元
    發(fā)表于 08-14 23:18

    履帶機(jī)器人 金屬底盤(pán)

    ` 本帖最后由 威凱-智控 于 2012-8-14 23:28 編輯 今天給大家分享一個(gè)全金屬的履帶機(jī)器人底盤(pán)準(zhǔn)備最履帶機(jī)器人的朋友們,可以一起交流一下機(jī)器人瘋狂愛(ài)好者 讓思維沸騰
    發(fā)表于 08-14 23:25

    鷗鵬四全向自主移動(dòng)足球機(jī)器人

    全向自主移動(dòng)機(jī)器人是鷗鵬科技2007年8月份推出的極具競(jìng)爭(zhēng)優(yōu)勢(shì)的機(jī)器人核心產(chǎn)品之一,其機(jī)械、電氣及軟件設(shè)計(jì)標(biāo)準(zhǔn)完全遵循Robocup中型組比賽規(guī)則,因此,用戶可直接使用并參加年度R
    發(fā)表于 03-24 11:05

    自律型機(jī)器人制作入門(mén).基于Arduino

    了一層硬件接口的Dreamer,使得硬件模塊的連接更加方便、簡(jiǎn)單?!蹲月尚?b class='flag-5'>機(jī)器人制作入門(mén):基于Arduino》是關(guān)于Drearner控制板的第一本書(shū),內(nèi)容循序漸進(jìn),圖文并茂。從最基礎(chǔ)的控制電機(jī)和舵機(jī)
    發(fā)表于 06-23 11:18

    Labview My RIO 移動(dòng)機(jī)器人

    初次使用 NI MyRIO控制器開(kāi)發(fā)四全向移動(dòng)機(jī)器人,由四個(gè)全向和直流電機(jī)與增量式編碼器和N
    發(fā)表于 08-21 12:20

    機(jī)器人底盤(pán)傳感器位置坐標(biāo)及底盤(pán)配置工具的使用

    SLAMWARE模塊通過(guò)control bus和機(jī)器人底盤(pán)連接,機(jī)器人底盤(pán)需要將底盤(pán)的正確配置信息上傳至SLAMWARE模塊,否則會(huì)導(dǎo)致定位
    發(fā)表于 01-24 14:42

    怎樣去制作一種球上自平衡機(jī)器人

    ,該機(jī)器人根據(jù)陀螺儀的位姿數(shù)據(jù),通過(guò)三全向驅(qū)動(dòng)底部球體調(diào)整自己在球上的位置,保持動(dòng)態(tài)平衡的同時(shí)實(shí)現(xiàn)全向移動(dòng)。二、硬件清單材料價(jià)格數(shù)量淘寶鏈接 56mm
    發(fā)表于 08-17 08:44

    全向機(jī)器人有哪些特性?

    )?速度空間范圍不同:如圖 4.1所示,在之前的文章《兩差速驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)模型及應(yīng)用分析》中對(duì)兩差速驅(qū)動(dòng)機(jī)器人的速度空間做了分析,其只有2個(gè)自由度,不能沿著
    發(fā)表于 08-30 09:15

    麥克納姆全向移動(dòng)的原理是什么

    什么是麥克納姆在競(jìng)賽機(jī)器人和特殊工種機(jī)器人中,全向移動(dòng)經(jīng)常是一個(gè)必需的功能。「全向移動(dòng)」意味著可以在平面內(nèi)做出任意方向平移同時(shí)自轉(zhuǎn)的動(dòng)作。
    發(fā)表于 08-30 08:50

    移動(dòng)機(jī)器人底盤(pán)主要包含哪些設(shè)備

    。也有底盤(pán)不用底盤(pán)控制器,電腦直接控制電機(jī)驅(qū)動(dòng)器,構(gòu)成最簡(jiǎn)單的機(jī)器人底盤(pán)。一、差動(dòng)底盤(pán)差動(dòng)
    發(fā)表于 09-07 06:15

    如何搭建實(shí)體機(jī)器人ros底盤(pán)

    目錄介紹一、底盤(pán)主控板二、嵌入式開(kāi)發(fā)板1. 與上位機(jī)pc的關(guān)系2. 與STM32主控板的關(guān)系介紹自下而上的分析實(shí)體機(jī)器人(差分機(jī)器人)搭建中的關(guān)鍵過(guò)程。一、
    發(fā)表于 01-20 07:36

    基于RT-Thread+RA6M4的麥結(jié)構(gòu)的底盤(pán)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)案例

    ,使其驅(qū)動(dòng)4個(gè)麥電機(jī)。其地盤(pán)可實(shí)現(xiàn)全向移動(dòng),即平面的縱向,橫向移動(dòng)和原地的旋轉(zhuǎn)移動(dòng)。應(yīng)用背景在目前移動(dòng)機(jī)器人開(kāi)發(fā)中,除了仿生結(jié)構(gòu)的機(jī)器人
    發(fā)表于 08-17 14:50

    用諾基亞手機(jī)振動(dòng)電機(jī)制作機(jī)器人

    電子發(fā)燒友網(wǎng)站提供《用諾基亞手機(jī)振動(dòng)電機(jī)制作機(jī)器人.zip》資料免費(fèi)下載
    發(fā)表于 02-08 16:16 ?0次下載
    用諾基亞手機(jī)振動(dòng)<b class='flag-5'>電機(jī)制作</b><b class='flag-5'>機(jī)器人</b>

    何用電子元件和ESP32-CAM制作AI機(jī)器人

    電子發(fā)燒友網(wǎng)站提供《如何用電子元件和ESP32-CAM制作AI機(jī)器人.zip》資料免費(fèi)下載
    發(fā)表于 07-04 14:29 ?3次下載
    如<b class='flag-5'>何用電</b>子元件和ESP32-CAM<b class='flag-5'>制作</b>AI<b class='flag-5'>機(jī)器人</b>