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ă.

Servo Shield

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

Pinout Servo Shield

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)