Servo Shield

Servo Shield (v3) ovládá až čtyři standardní modelářská serva přímo z OpenMV Cam. Jeho palubní regulátor přijímá vstup 6–36 V na svorkovnici a dodává 5,6 V při proudu až 5 A — dost na to, aby z jediného zdroje napájel jak kameru, tak serva.

Servo Shield

Úplný datasheet, fotografie a možnosti objednání najdete na stránce produktu Servo Shield.

Hlavní vlastnosti

  • Ovládání až čtyř modelářských serv přes P7 / P8 / P9 / P10

  • Vstup 6–36 V na svorkovnici (odolný proti přepólování)

  • 5,6 V při proudu až 5 A na VIN — napájí kameru a serva

  • ADC vstup 0–5 V s ochranou proti přepětí až do ±36 V

  • Obousměrné digitální I/O 0–5 V s úrovňovým převodem 3,3 V na 5 V

Pinout

Pinout Servo Shieldu

Přehled pinů

Pin

Funkce

P6

Úrovňově převedené čtení AIN (0–3,3 V na P6)

P7

Servo 1 — obousměrné GPIO 3,3 V ↔ 5 V

P8

Servo 2 — obousměrné GPIO 3,3 V ↔ 5 V

P9

Servo 3 — obousměrné GPIO 3,3 V ↔ 5 V

P10

Servo 4 — obousměrné GPIO 3,3 V ↔ 5 V

PWR in

Široký vstup 6–36 V na svorkovnici (odolný proti přepólování)

AIN in

Analogový vstup na svorkovnici

VIN out

5,6 V regulovaných, až 5 A celkem pro serva a kameru

Napájecí větev 3,3 V

Napájí palubní elektroniku shieldu

Větev GND

Společná zem

Poznámka

AIN je chráněn proti přepětí až do ±36 V a ve výchozím nastavení je napěťovým vstupem 0–5 V, převedeným dolů na 0–3,3 V na P6. Propojením můstku režimu 4–20 mA na zadní straně shieldu přepnete AIN na proudový vstup 4–20 mA.

Poznámka

Každý z pinů P6–P10 je propojen s kamerou přes rezistor 0 ohmů na zadní straně shieldu. Odstraňte rezistor na libovolném pinu, který chcete získat zpět pro nesouvisející použití.

Poznámka

Ve verzi v2 shieldu jsou P6–P9 jednosměrné úrovňové převodníky 3,3 V → 5 V (pouze výstup). P10 je digitální linka s otevřeným kolektorem, přitažená na 3,3 V na straně kamery a 5 V na straně servo pinu. Ve výchozím nastavení je vstupem — shield úrovňově převádí 0–5 V na servo pinu dolů na 0–3,3 V na P10. Změnou palubní pájecí propojky přepnete P10 na výstup, který úrovňově převádí 0–3,3 V na P10 nahoru na 0–5 V na servo pinu.

Použití

Ovládejte modelářské servo z kteréhokoli z P7–P10 signálem PWM 50 Hz. Rozsah šířky pulzu se mezi servy liší, proto vyladěte MIN_US a MAX_US tak, aby odpovídaly vašim — typické hodnoty jsou kolem 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)

Čtení vstupu AIN ze svorkovnice (úrovňově převedený výsledek se objeví na 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)