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.
Ú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¶
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)