Servo Shield#
Servo Shield (v3) driver upp till fyra vanliga hobbyservon direkt från OpenMV Cam. Dess inbyggda regulator tar emot en ingång på 6–36 V på kopplingsplinten och levererar 5,6 V vid upp till 5 A — tillräckligt för att driva både kameran och servona från en enda strömkälla.
För fullständigt datablad, foton och beställning, se produktsidan för Servo Shield.
Höjdpunkter#
Driv upp till fyra hobbyservon via P7 / P8 / P9 / P10
6–36 V-ingång på kopplingsplinten (tål omvänd spänning)
5,6 V vid upp till 5 A på VIN — driver kameran och servona
0–5 V ADC-ingång med överspänningsskydd upp till ±36 V
Dubbelriktad 0–5 V digital I/O med nivåväxling från 3,3 V till 5 V
Stiftschema#
Stiftreferens#
Stift | Funktion |
|---|---|
P6 | Nivåväxlad AIN-avläsning (0–3,3 V på P6) |
P7 | Servo 1 — dubbelriktad 3,3 V ↔ 5 V GPIO |
P8 | Servo 2 — dubbelriktad 3,3 V ↔ 5 V GPIO |
P9 | Servo 3 — dubbelriktad 3,3 V ↔ 5 V GPIO |
P10 | Servo 4 — dubbelriktad 3,3 V ↔ 5 V GPIO |
PWR in | 6–36 V brett ingångsintervall på kopplingsplinten (tål omvänd spänning) |
AIN in | Analog ingång på kopplingsplinten |
VIN ut | 5,6 V reglerat, upp till 5 A sammanlagt för servon och kamera |
3,3 V-skena | Driver shieldets inbyggda elektronik |
GND-skena | Gemensam jord |
Observera
AIN är överspänningsskyddat upp till ±36 V och har som standard en spänningsingång på 0–5 V, nedskalad till 0–3,3 V på P6. Brygga shunten för 4–20 mA-läget på baksidan av shieldet för att växla AIN till en strömslingsingång på 4–20 mA.
Observera
Vart och ett av P6–P10 är kopplat till kameran via ett 0-ohms motstånd på baksidan av shieldet. Ta bort motståndet på det stift du vill återanvända för annat bruk.
Observera
På v2-versionen av shieldet är P6–P9 enkelriktade nivåväxlare 3,3 V → 5 V (endast utgång). P10 är en digital linje med öppen drain, uppdragen till 3,3 V på kamerasidan och 5 V på servostiftssidan. Som standard är den en ingång — shieldet nivåväxlar 0–5 V på servostiftet ned till 0–3,3 V på P10. Ändra den inbyggda lödbygeln för att vända P10 till en utgång, med nivåväxling av 0–3,3 V på P10 upp till 0–5 V på servostiftet.
Användning#
Driv ett hobbyservo från något av P7–P10 med en 50 Hz PWM-signal. Pulsbreddsintervallet varierar mellan servon, så justera MIN_US och MAX_US för att matcha dina — typiska värden ligger runt 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)
Läs AIN-plintingången (det nivåväxlade resultatet visas på 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)