Servo Shield¶
Servo Shield (v3) menggerakkan hingga empat servo hobi standar langsung dari OpenMV Cam. Regulator on-board-nya menerima input 6–36 V pada terminal block dan menghasilkan 5,6 V hingga 5 A — cukup untuk memberi daya pada kamera maupun servo dari satu sumber daya tunggal.
Untuk datasheet lengkap, foto, dan pemesanan, lihat halaman produk Servo Shield.
Sorotan¶
Gerakkan hingga empat servo hobi melalui P7 / P8 / P9 / P10
Input 6–36 V pada terminal block (tahan pembalikan polaritas)
5,6 V hingga 5 A pada VIN — memberi daya pada kamera dan servo
Input ADC 0–5 V dengan proteksi tegangan lebih hingga ±36 V
I/O digital dua arah 0–5 V dengan level shifting 3,3 V ke 5 V
Pinout¶
Referensi pin¶
Pin |
Fungsi |
|---|---|
P6 |
Pembacaan kembali AIN bergeser level (0–3,3 V pada P6) |
P7 |
Servo 1 — GPIO dua arah 3,3 V ↔ 5 V |
P8 |
Servo 2 — GPIO dua arah 3,3 V ↔ 5 V |
P9 |
Servo 3 — GPIO dua arah 3,3 V ↔ 5 V |
P10 |
Servo 4 — GPIO dua arah 3,3 V ↔ 5 V |
PWR in |
Input lebar 6–36 V pada terminal block (tahan pembalikan polaritas) |
AIN in |
Input analog pada terminal block |
VIN out |
5,6 V terregulasi, hingga 5 A gabungan untuk servo dan kamera |
Rel 3,3V |
Memberi daya pada elektronik on-board shield |
Rel GND |
Ground bersama |
Catatan
AIN dilindungi terhadap tegangan lebih hingga ±36 V dan secara default sebagai input tegangan 0–5 V, diturunkan ke 0–3,3 V pada P6. Jembatkan shunt mode 4–20 mA di bagian belakang shield untuk mengalihkan AIN ke input loop arus 4–20 mA.
Catatan
Setiap pin P6–P10 terhubung ke kamera melalui resistor 0-ohm di bagian belakang shield. Lepaskan resistor pada pin mana pun yang ingin Anda gunakan untuk keperluan lain.
Catatan
Pada versi v2 shield, P6–P9 adalah level shifter searah 3,3 V → 5 V (hanya output). P10 adalah jalur digital open-drain, ditarik ke 3,3 V di sisi kamera dan 5 V di sisi pin servo. Secara default berfungsi sebagai input — shield menggeser level 0–5 V pada pin servo turun ke 0–3,3 V pada P10. Ubah jumper solder on-board untuk membalik P10 menjadi output, menggeser level 0–3,3 V pada P10 naik ke 0–5 V pada pin servo.
Penggunaan¶
Gerakkan servo hobi dari salah satu pin P7–P10 dengan sinyal PWM 50 Hz. Rentang lebar pulsa bervariasi antara servo, jadi sesuaikan MIN_US dan MAX_US agar cocok dengan servo Anda — nilai umum sekitar 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)
Baca input terminal block AIN (hasil yang telah digeser levelnya muncul pada 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)