Servo Shield¶
Servo Shield (v3) acționează până la patru servomotoare hobby standard direct de la OpenMV Cam. Regulatorul său integrat acceptă o intrare de 6–36 V pe blocul de borne și livrează 5,6 V la până la 5 A — suficient pentru a alimenta atât camera, cât și servomotoarele de la o singură sursă.
Pentru fișa tehnică completă, fotografii și comandă, consultați pagina de produs Servo Shield.
Caracteristici principale¶
Acționează până la patru servomotoare hobby prin P7 / P8 / P9 / P10
Intrare de 6–36 V pe blocul de borne (tolerantă la tensiune inversă)
5,6 V la până la 5 A pe VIN — alimentează camera și servomotoarele
Intrare ADC de 0–5 V cu protecție la supratensiune până la ±36 V
I/O digital bidirecțional de 0–5 V cu translatare de nivel de la 3,3 V la 5 V
Pinout¶
Referință pini¶
Pin |
Funcție |
|---|---|
P6 |
Citire AIN cu translatare de nivel (0–3,3 V pe P6) |
P7 |
Servo 1 — GPIO bidirecțional 3,3 V ↔ 5 V |
P8 |
Servo 2 — GPIO bidirecțional 3,3 V ↔ 5 V |
P9 |
Servo 3 — GPIO bidirecțional 3,3 V ↔ 5 V |
P10 |
Servo 4 — GPIO bidirecțional 3,3 V ↔ 5 V |
PWR in |
Intrare largă de 6–36 V pe blocul de borne (tolerantă la tensiune inversă) |
AIN in |
Intrare analogică pe blocul de borne |
VIN out |
5,6 V reglat, până la 5 A combinat pentru servomotoare și cameră |
Magistrală 3,3 V |
Alimentează componentele electronice integrate ale shield-ului |
Magistrală GND |
Masă comună |
Notă
AIN este protejat la supratensiune până la ±36 V și este implicit o intrare de tensiune de 0–5 V, redusă la 0–3,3 V pe P6. Conectați șuntul de mod 4–20 mA de pe spatele shield-ului pentru a comuta AIN la o intrare în buclă de curent de 4–20 mA.
Notă
Fiecare dintre P6–P10 este conectat la cameră printr-o rezistență de 0 ohmi de pe spatele shield-ului. Înlăturați rezistența de pe orice pin doriți să îl recuperați pentru utilizare neînrudită.
Notă
Pe versiunea v2 a shield-ului, P6–P9 sunt translatoare de nivel unidirecționale 3,3 V → 5 V (doar ieșire). P10 este o linie digitală open-drain, ridicată la 3,3 V pe partea camerei și la 5 V pe partea pinului de servo. În mod implicit este o intrare — shield-ul translatează nivelul de 0–5 V de pe pinul de servo la 0–3,3 V pe P10. Modificați jumperul de lipire integrat pentru a transforma P10 într-o ieșire, translatând nivelul de 0–3,3 V de pe P10 la 0–5 V pe pinul de servo.
Utilizare¶
Acționați un servomotor hobby de pe oricare dintre P7–P10 cu un semnal PWM de 50 Hz. Intervalul lățimii impulsului variază între servomotoare, așa că reglați MIN_US și MAX_US ca să se potrivească cu ale dvs. — valorile tipice sunt în jur de 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)
Citiți intrarea de pe borna AIN (rezultatul cu translatare de nivel apare pe 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)