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 |
Anteckning
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.
Anteckning
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.
Anteckning
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)