マイクロサーボ
180°動くタイプと多回転タイプを購入しました。メーカのサイトには詳しい情報が載っていなかったので、メーカサイト以外のサイトも参考にしています。
本記事は、180°デジタルタイプの動作確認をしていきます。
購入したメーカは、Tower Proです。メーカの詳細については、最後に書いています。
SG90 180°デジタルタイプ
180°は絶対値で表現していて、仕様的に言うと-90°~90°です。
仕様
型式 : SG90
重量 : 9g
サイズ : 23×12.2x29mm
ストールトルク : 1.8kg/cm(4.8v)
動作速度 : 0.1sec/60degree(4.8v)
動作電圧 : 4.8v
周囲温度 : 0℃~55℃
デッドバンド幅 : 1us
コネクタ : JR (Fits JR and Futaba)
配線

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

関係する相手機器の仕様は変わらないはずなので、配線色ではなくピン配列で合わせて繋ぎました。
Raspberry Pi Pico W

Raspberry Pi Pico Wとサーボモータの配線接続は、上記の様に繋いで動作確認しました。
Raspberry Pi Pico WをパソコンのUSBに繋いで動作テストしていたら、「電力サージ」の警告ウィンドウがでました。それぞれの動作時間を3秒にすることで回避できました。今回は短時間の動作確認だったので、Raspberry Pi Pico Wからサーボに電源を繋ぎましたが、本格的に動かす場合は、サーボモータへの電源供給は別途供給する方が良さそうです。
PWM信号

周波数は50Hz固定で、duty比を変化させて動作させます。MicroPythonだと1周期のduty比を65535で設定します。
-90°の時、duty比は、0.5ms、1638
0°の時、duty比は、1.45ms、4751
90°の時、duty比は、2.4ms、7864
90°が2.5ms(8192)となっている資料もありました。
PWM制御
下の記事を参考にしてください。
動作確認
-90° >>> 0° >>> 90° を3秒毎に繰り返し動かします。
プログラム
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を削除して下さいduty比を2.5ms(8192)で動かしてみたところ、動作しました。目で見た限り、角度の違いは判りませんでした。
小さすぎたり大きすぎる値を入れると動作しなくなります。閾値を大きく超えた値を送信しても、全く動かないので信号を排除しているようです。
動画
細かい仕様がわからないので実際に動かしてみて調整していくことになりそうです。
メーカ
シンガポールに法人登録があるようです。サイトドメインが「.tw」となっているので、台湾も関係が深そうです。
DYI用ではなく、ラジコンなど既製品に用いるための商品のようなので、サイトには詳しい情報が載っていません。
中国企業による偽物の存在を警告していて、特に「eBay、Amazon、Alibaba」で購入する場合は、販売業者などをよく確認するように警告しています。




コメント