Servo Shield¶
Servo Shield(v3)は、OpenMV Camから直接最大4個の標準ホビーサーボを駆動します。オンボードのレギュレータは端子台上で6~36 Vの入力を受け付け、5.6 Vを最大5 Aで供給します。これは単一の電源からカメラとサーボの両方に給電するのに十分です。
完全なデータシート、写真、注文については Servo Shield製品ページ を参照してください。
ハイライト¶
P7/P8/P9/P10経由で最大4個のホビーサーボを駆動
端子台上の6~36 V入力(逆電圧耐性あり)
VIN上で5.6 V、最大5 A — カメラとサーボへ給電
±36 Vまでの過電圧保護付き0~5 V ADC入力
3.3 V~5 Vレベルシフト付きの双方向0~5 VデジタルI/O
ピン配置¶
ピンリファレンス¶
ピン |
機能 |
|---|---|
P6 |
レベルシフトされたAINの読み戻し(P6上で0~3.3 V) |
P7 |
サーボ1 — 双方向3.3 V ↔ 5 V GPIO |
P8 |
サーボ2 — 双方向3.3 V ↔ 5 V GPIO |
P9 |
サーボ3 — 双方向3.3 V ↔ 5 V GPIO |
P10 |
サーボ4 — 双方向3.3 V ↔ 5 V GPIO |
PWR入力 |
端子台上の6~36 Vワイド入力(逆電圧耐性あり) |
AIN入力 |
端子台上のアナログ入力 |
VIN出力 |
5.6 Vレギュレート、サーボとカメラ合計で最大5 A |
3.3Vレール |
シールドのオンボード電子回路へ給電 |
GNDレール |
共通グランド |
注釈
AINは±36 Vまで過電圧保護されており、デフォルトでは0~5 Vの電圧入力で、P6上では0~3.3 Vにスケールダウンされます。シールド裏面の4~20 mAモードシャントをブリッジすると、AINを4~20 mAのカレントループ入力に切り替えられます。
注釈
P6~P10はそれぞれシールド裏面の0オーム抵抗を通じてカメラに接続されています。無関係な用途に再利用したいピンの抵抗を取り外してください。
注釈
v2バージョンのシールドでは、P6~P9は単方向の3.3 V → 5 Vレベルシフタ(出力のみ)です。P10はオープンドレインのデジタルラインで、カメラ側は3.3 V、サーボピン側は5 Vにプルアップされています。デフォルトでは入力で、シールドがサーボピン上の0~5 VをP10上の0~3.3 Vにレベルシフトします。オンボードのはんだジャンパを変更するとP10を出力に切り替えられ、P10上の0~3.3 Vをサーボピン上の0~5 Vにレベルシフトします。
使い方¶
P7~P10のいずれかから50 Hz PWM信号でホビーサーボを駆動します。パルス幅の範囲はサーボによって異なるため、お使いのサーボに合わせて MIN_US と MAX_US を調整してください。一般的な値はおよそ1000~2000 µsです:
from machine import Pin, PWM
import time
MIN_US = 1000 # full-left pulse width (microseconds)
MAX_US = 2000 # full-right pulse width
servo = PWM(Pin("P7"), freq=50)
def angle(deg):
pulse_us = MIN_US + (deg * (MAX_US - MIN_US)) // 180
servo.duty_ns(pulse_us * 1000)
while True:
angle(0)
time.sleep(1)
angle(90)
time.sleep(1)
angle(180)
time.sleep(1)
AIN端子台入力を読み取ります(レベルシフトされた結果がP6に現れます):
from machine import ADC
import time
ain = ADC("P6")
while True:
# 0–5 V on the AIN terminal scaled to 0–3.3 V on P6
v = ain.read_u16() * 3.3 / 65535
print("AIN:", v * (5.0 / 3.3), "V")
time.sleep_ms(100)