Raspberry Pi Pico Wを使ってマイクロサーボを動かしてみる その2/SG90-HV

プロモーションが含まれています。

スポンサーリンク
サムネイル Pico W
スポンサーリンク

マイクロサーボ

180°動くタイプと多回転タイプを購入しました。メーカのサイトには詳しい情報が載っていなかったので、メーカサイト以外のサイトも参考にしています。

本記事は、360°(多回転)回転タイプの動作確認をしていきます。

購入したメーカは、Tower Proです。メーカの詳細については、最後に書いています。

スポンサーリンク

SG90 360°回転タイプ

仕様

型式      : SG90-HV
重量      : 9g
動作角度    : 360 degree
サイズ     : 23×12.5x22mm
ストールトルク : 1.3kg/cm(4.8v), 1.5kg/cm(6V)
動作速度    : 110RPM(4.8V);130RPM(6V)
動作電圧    : 4.8v-6V
周囲温度    : 0℃~55℃
制御システム  :デジタル
方向      : CCW
コネクタ    : JR (Fits JR and Futaba)

供給電圧によって、トルクと回転数が変わるので注意が必要です。「方向: CCW」とありますが、正転方向(CW)にも逆転方向(CCW)にも動作するので、何を意図して記載しているのかは不明です。

配線

サーボモータ

コネクタ

実際に購入した商品は、カタログに載っていた配線色と異なっていました。写真だと赤に見えますが、肉眼では橙色に見えます。店舗購入したものなので偽物の可能性は低いと考えています。

サーボコネクタ

180°動作タイプのサーボモータと同じです。

Raspberry Pi Pico W

相互配線

Raspberry Pi Pico Wとサーボモータの配線接続は、上記の様に繋いで動作確認しました。

今回は短時間かつ無負荷状態での動作確認だったので、Raspberry Pi Pico Wからサーボに電源を繋いで動かしました。本格的に動かす場合は、サーボモータへの電源供給を別供給する方が良さそうです。

PWM信号

動作信号イメージ

周波数は50Hz固定で、duty比を変化させて動作させます。MicroPythonだと1周期のduty比を65535で設定します。取り合えず、180°タイプのサーボモータを動作させたプログラムで動かして、傾向をつかんで細かい数字を入れていってグラフにしてみました。

信号を変化させることで、回転数が変化します。角度が変わる(指定できる)わけではありません。

信号イメージ

同じ値を入力しても、微妙に動作したり停止したりする不安定域(グラフのグレーの部分)があるようで、はっきりとした境界を見つけることができませんでした。よって数値は、目安になります。(電源供給の問題かもしれません。)

0rpmとの境界
グラフのグレーになっている部分(duty比が1000、4800~5200、8900の付近)は、0rpmとの境界域になっていて、動作が安定しないことがあります。確実に停止させたい場合は、ギリギリの値ではなくある程度余裕を持った値を投げる必要があります。

設備がないので詳細確認ができませんが、電源供給の仕様に依存している可能性も捨てきれません。

PWM制御

下の記事を参考にしてください。

スポンサーリンク

動作確認

まずは、SG90(180°動作タイプ)と同じプログラムで動かしてみて、次に、回転速度の変化を見ながら、正転、停止、逆転 の条件を探していきます。前項のグラブが、動作させてみた結果になります。

プログラム

SG90と同じプログラム

SG90(180°動作タイプ)と同じプログラムです。

from machine import Pin, PWM
from time import sleep

servo = PWM(Pin(0))
servo.freq(50)

while True:
    servo.duty_u16(1638)  # 約-90° -> 速い正転
    sleep_sec(3)
    
    servo.duty_u16(4751)  # 約0° -> 遅い正転
    sleep_sec(3)

    servo.duty_u16(7864)  # 約90° -> 速い逆転
    sleep_sec(3)

#-90°(0°)  -> 1638
#  0°(90°) -> 4751
# 90°(180°)-> 7864
# sleep_secの_secを削除して下さい

停止することなく、速い正転 >>> 遅い正転 >>> 速い逆転 を繰り返しました。

正転、停止、逆転

速い正転 >>> 停止 >>> 速い逆転 >>> 停止 を繰り返します。

from machine import Pin, PWM
from time import sleep

servo = PWM(Pin(0))
servo.freq(50)

while True:
    
    servo.duty_u16(1638)
    sleep_sec(3)
    
    servo.duty_u16(5000)
    sleep_sec(3)

    servo.duty_u16(7864)
    sleep_sec(3)
    
    servo.duty_u16(5120)
    sleep_sec(3)

# sleep_secの_secを削除して下さい

動画を見て頂くとわかりますが、最後の停止指令(duty比= 5120)が、停止していたり低速動作していたりします。PCに繋いで確認したときと動画を撮った時の電源環境が異なるのでその影響を受けているかもしれません。

動画

スポンサーリンク

メーカ

Tower Pro

シンガポールに法人登録があるようです。サイトドメインが「.tw」となっているので、台湾も関係が深そうです。

DYI用ではなく、ラジコンなど既製品に用いるための商品のようなので、サイトには詳しい情報が載っていません。

中国企業による偽物の存在を警告していて、特に「eBay、Amazon、Alibaba」で購入する場合は、販売業者などをよく確認するように警告しています。

コメント

タイトルとURLをコピーしました