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

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

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

如何在樹莓派Pico上編程使用舵機呢?

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-11-30 09:04 ? 次閱讀

舵機是一種位置伺服的驅(qū)動器,主要是由外殼、電路板、無核心馬達(dá)、齒輪與位置檢測器所構(gòu)成。其工作原理是由接收機或者單片機發(fā)出信號給舵機,其內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為 20ms,寬度為 1.5ms 的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。經(jīng)由電路板上的 IC 判斷轉(zhuǎn)動方向,再驅(qū)動無核心馬達(dá)開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經(jīng)到達(dá)定位。適用于哪些需要角度不斷變化并可以保持的控制系統(tǒng)。當(dāng)電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為 0,電機停止轉(zhuǎn)動。

一般舵機旋轉(zhuǎn)的角度范圍是 0 度到 180 度。舵機轉(zhuǎn)動的角度與脈寬在 0.5ms~2.5ms 的區(qū)間內(nèi)呈線性關(guān)系。舵機有 90°、180°、270°、360° 最大轉(zhuǎn)角。

控制原理

通過向舵機的信號信號線發(fā)送 PWM 信號來控制舵機的輸出量;一般來說,PWM 的周期以及占空比,我們是可控的,所以 PWM 脈沖的占空比直接決定了輸出軸的位置。

當(dāng)我們向舵機發(fā)送脈沖寬度為 1.5 毫秒的信號時,舵機的輸出軸將移至中間位置(90度);脈沖寬度為 1ms 時,舵機的輸出軸將移至最小的位置(0度);脈沖寬度為 2ms 時,舵機的輸出軸將移至最小的位置(180度)。

注意:不同類型和品牌伺服電機之間最大位置和最小位置的角度可能會不同。許多伺服器僅旋轉(zhuǎn)約 170 度(或者只有 90 度),但寬度為 1.5ms 的伺服脈沖通常會將伺服設(shè)置為中間位置(通常是指定全范圍的一半)。

以 180 度角度伺服為例,對應(yīng)的控制關(guān)系是這樣的:

0.5ms – 0 度;
1.0ms – 45 度;
1.5ms – 90 度;
2.0ms – 135 度;
2.5ms – 180 度;

既然是要控制輸出 PWM 的周期和占空比,需要明確定時器的周期、PWM 輸出占空比計算公式:

定義幾個相關(guān)量,系統(tǒng)運行時鐘(sys_clk)、定時器時鐘預(yù)分頻值(psc)、計數(shù)重裝載值(arr)、比較計數(shù)值(ccr)。

定時器頻率計算公式:f = sys_clk / [( arr + 1 ) * ( psc + 1 )];

占空比計算公式:duty = ccr/arr * 100%;

定時器設(shè)置與角度值換算

本示例使用的舵機為周期 20ms、轉(zhuǎn)角 180° 的模擬舵機。本示例編程推導(dǎo)思路如下:

1、任意角脈寬計算公式 :angle = 0.5ms + 角度值 *(2ms/180°)[角度值=[0,180]]
2、占空比計算公式 :duty = ccr/arr * 100%
3、定時器頻率計算公式:f = sys_clk / [( arr + 1 ) * ( psc + 1 )]

1. 設(shè)置 arr
公式 1 推導(dǎo):從 0 位置轉(zhuǎn)到 180 位置,脈寬的最大增量 = (2.5ms – 0.5ms) = 2ms;此處將 arr 設(shè)置為 (2000-1)。

2. 設(shè)置 psc
公式 3 推導(dǎo):psc = sys_clk/[ f * (arr + 1) ] – 1;本示例中 f=50hz,sys_clk=72Mhz,arr=(2000-1),即:psc = 72Mhz/(50hz * 2000) – 1; psc = 720。

3. 角度與 ccr 值換算:ccr = 500 + 角度值 *(2000/180°)

硬件接線

舵機具有三個接線:
棕色:GND,接 Pico 的 GND。
紅色:+4.5 ~ +6V 電源輸入,接 Pico 的 VSYS。
橙色:指令脈沖信號,接 Pico 的 GP28。

例程

以市面上常見的 9g 舵機為例,下面的代碼將舵機的角度在 -90、0、90 三個角度中間切換,并循環(huán) 3 次。

from machine import Pin,PWM
import time
  
pwm = PWM(Pin(28))
pwm.freq(50)
 
for _ in range(3):
    pwm.duty_u16(1600)
    time.sleep(1)
 
    pwm.duty_u16(4815)
    time.sleep(1)
 
    pwm.duty_u16(7953)
    time.sleep(1)
 
    pwm.duty_u16(4815)
    time.sleep(1)

使用電位器控制舵機角度

這個例子讀取電位器的輸入,并轉(zhuǎn)為舵機的角度。使舵機的角度從 -90 度到 90 度之間變化。

電位器接線

電位器模塊的 VCC 接樹莓派 Pico 的 3V3 引腳。
電位器模塊的 GND 接樹莓派 Pico 的 GND 引腳。
電位器模塊的 OUT 引腳接樹莓派 Pico 的 GP27 引腳。

代碼如下:

from machine import Pin,PWM
import time
  
pwm = PWM(Pin(28))
  
pwm.freq(50)
  
control = machine.ADC(27)
  
while True:
    adc = control.read_u16()
    duty = int(adc * (7953-1600)/0xffff) + 1600
    pwm.duty_u16(duty)
    time.sleep(0.1)

運行之后,轉(zhuǎn)動電位器,可以看到舵機的角度隨之變化。







審核編輯:劉清

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

    關(guān)注

    53

    文章

    8262

    瀏覽量

    146675
  • 檢測器
    +關(guān)注

    關(guān)注

    1

    文章

    868

    瀏覽量

    47733
  • 電位器
    +關(guān)注

    關(guān)注

    14

    文章

    1012

    瀏覽量

    66896
  • 舵機
    +關(guān)注

    關(guān)注

    17

    文章

    278

    瀏覽量

    41102
  • 樹莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105750

原文標(biāo)題:在樹莓派 Pico 上編程使用舵機

文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    何在樹莓Pico用PWM實現(xiàn)LED呼吸燈?

    樹莓 Pico 的模擬-數(shù)字轉(zhuǎn)換器只能以一種方式工作,它將模擬信號轉(zhuǎn)換為微控制器可以理解的數(shù)字信號。
    發(fā)表于 10-07 17:46 ?1431次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>上</b>用PWM實現(xiàn)LED呼吸燈<b class='flag-5'>呢</b>?

    樹莓Pico RP2040怎樣使用MicroPython?

    RP2040 是一款由樹莓公司設(shè)計的 32 位雙核 ARM Cortex-M0+ 微控制器芯片,于 2021 年 1 月發(fā)布,作為樹莓 Pico
    的頭像 發(fā)表于 11-08 14:29 ?3452次閱讀
    在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b> RP2040<b class='flag-5'>上</b>怎樣使用MicroPython<b class='flag-5'>呢</b>?

    樹莓pico入門學(xué)習(xí)筆記(一)相關(guān)資料推薦

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pic
    發(fā)表于 07-01 09:28

    樹莓pico如何入門?

    樹莓pico如何入門?
    發(fā)表于 10-13 08:11

    怎么實現(xiàn)樹莓Pico電機運動控制MicroPython+pioasm編程?

    怎么實現(xiàn)樹莓Pico電機運動控制MicroPython+pioasm編程?
    發(fā)表于 10-27 06:37

    樹莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 11-03 08:44

    樹莓Pico的相關(guān)資料推薦

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 02-07 07:37

    樹莓驅(qū)動舵機介紹_樹莓驅(qū)動舵機代碼

    本文主要詳細(xì)介紹了樹莓驅(qū)動舵機以及它的驅(qū)動代碼,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 05-30 14:47 ?1.4w次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>驅(qū)動<b class='flag-5'>舵機</b>介紹_<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>驅(qū)動<b class='flag-5'>舵機</b>代碼

    遠(yuǎn)程控制樹莓3b的pi pico

    樹莓pi pico樹莓4相比差別很大,但是pi pico有一些特點是
    的頭像 發(fā)表于 03-05 17:23 ?4006次閱讀

    樹莓Pico:僅4美元的MCU

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹莓pico入門學(xué)習(xí)筆記(一)

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pic
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門學(xué)習(xí)筆記(一)

    距離檢測報警使用樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測報警使用樹莓Pico.zip》資料免費下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測報警使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹莓pico的可編程游戲手柄設(shè)計

    方案介紹組件12x12x7.3mm 瞬時觸覺按鈕按鈕樹莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹莓
    發(fā)表于 12-26 15:10 ?0次下載

    樹莓PICO pio使用

    樹莓 Pico 小小的板子總是能讓我們發(fā)現(xiàn)一些驚喜。其所使用的RP2040芯片還具備8個可編程I/O(PIO)狀態(tài)機,用于自定義外圍設(shè)
    的頭像 發(fā)表于 10-18 15:17 ?1771次閱讀

    何在樹莓Pico使用紅外線接收模塊?

    樹莓 Pico 使用紅外線接收模塊(HX1838 型),我們采用開源的 pico_ir 庫。
    的頭像 發(fā)表于 11-30 09:08 ?2293次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>上</b>使用紅外線接收模塊?