Servo Shield#
De Servo Shield (v3) stuurt tot vier standaard hobbyservo’s rechtstreeks aan vanaf de OpenMV Cam. De regelaar aan boord accepteert een ingang van 6–36 V op het klemmenblok en levert 5,6 V bij maximaal 5 A — voldoende om zowel de camera als de servo’s vanuit één enkele voeding te voeden.
Voor de volledige datasheet, foto’s en bestelinformatie, zie de productpagina van de Servo Shield.
Hoogtepunten#
Stuur tot vier hobbyservo’s aan via P7 / P8 / P9 / P10
6–36 V ingang op het klemmenblok (tolerant voor omgekeerde spanning)
5,6 V bij maximaal 5 A op VIN — voedt de camera en de servo’s
0–5 V ADC-ingang met overspanningsbeveiliging tot ±36 V
Bidirectionele 0–5 V digitale I/O met niveauverschuiving van 3,3 V naar 5 V
Pinout#
Pinreferentie#
Pin | Functie |
|---|---|
P6 | Niveau-verschoven AIN-uitlezing (0–3,3 V op P6) |
P7 | Servo 1 — bidirectionele 3,3 V ↔ 5 V GPIO |
P8 | Servo 2 — bidirectionele 3,3 V ↔ 5 V GPIO |
P9 | Servo 3 — bidirectionele 3,3 V ↔ 5 V GPIO |
P10 | Servo 4 — bidirectionele 3,3 V ↔ 5 V GPIO |
PWR in | 6–36 V brede ingang op het klemmenblok (tolerant voor omgekeerde spanning) |
AIN in | Analoge ingang op het klemmenblok |
VIN out | 5,6 V gestabiliseerd, tot 5 A gecombineerd voor servo’s en camera |
3.3V-rail | Voedt de elektronica van de shield aan boord |
GND-rail | Gemeenschappelijke massa |
Notitie
AIN is overspanningsbeveiligd tot ±36 V en is standaard een spanningsingang van 0–5 V, neergeschaald naar 0–3,3 V op P6. Overbrug de 4–20 mA-modus-shunt aan de achterkant van de shield om AIN om te schakelen naar een 4–20 mA-stroomluse-ingang.
Notitie
Elk van P6–P10 is verbonden met de camera via een 0-ohm-weerstand aan de achterkant van de shield. Verwijder de weerstand op elke pin die je voor andere doeleinden wilt hergebruiken.
Notitie
Op de v2-versie van de shield zijn P6–P9 unidirectionele 3,3 V → 5 V niveauverschuivers (alleen uitgang). P10 is een open-drain digitale lijn, met een pull-up naar 3,3 V aan de camerazijde en 5 V aan de servopinzijde. Standaard is het een ingang — de shield verschuift het niveau van 0–5 V op de servopin omlaag naar 0–3,3 V op P10. Wijzig de soldeerjumper aan boord om P10 om te zetten naar een uitgang, waarbij het niveau van 0–3,3 V op P10 omhoog wordt verschoven naar 0–5 V op de servopin.
Gebruik#
Stuur een hobbyservo aan vanaf een van P7–P10 met een PWM-signaal van 50 Hz. Het pulsbreedtebereik varieert per servo, dus stem MIN_US en MAX_US af op de jouwe — typische waarden liggen rond 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)
Lees de AIN-klemmenblokingang uit (het niveau-verschoven resultaat verschijnt op 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)