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)