Servo Shield#
Das Servo Shield (v3) steuert bis zu vier standardmäßige Hobby-Servos direkt von der OpenMV Cam an. Sein integrierter Regler akzeptiert einen 6–36-V-Eingang an der Klemmleiste und liefert 5,6 V bei bis zu 5 A — genug, um sowohl die Kamera als auch die Servos aus einer einzigen Quelle zu versorgen.
Vollständiges Datenblatt, Fotos und Bestellinformationen finden Sie auf der Produktseite des Servo Shields.
Highlights#
Steuert bis zu vier Hobby-Servos über P7 / P8 / P9 / P10 an
6–36-V-Eingang an der Klemmleiste (verpolungstolerant)
5,6 V bei bis zu 5 A an VIN — versorgt Kamera und Servos
0–5-V-ADC-Eingang mit Überspannungsschutz bis zu ±36 V
Bidirektionale 0–5-V-Digital-I/O mit Pegelverschiebung von 3,3 V auf 5 V
Pinbelegung#
Pin-Referenz#
Pin | Funktion |
|---|---|
P6 | Pegelverschobene AIN-Rücklesung (0–3,3 V an P6) |
P7 | Servo 1 — bidirektionale 3,3 V ↔ 5 V GPIO |
P8 | Servo 2 — bidirektionale 3,3 V ↔ 5 V GPIO |
P9 | Servo 3 — bidirektionale 3,3 V ↔ 5 V GPIO |
P10 | Servo 4 — bidirektionale 3,3 V ↔ 5 V GPIO |
PWR in | 6–36-V-Weitbereichseingang an der Klemmleiste (verpolungstolerant) |
AIN in | Analogeingang an der Klemmleiste |
VIN out | 5,6 V geregelt, bis zu 5 A kombiniert für Servos und Kamera |
3.3V rail | Versorgt die integrierte Elektronik des Shields |
GND rail | Gemeinsame Masse |
Bemerkung
AIN ist bis zu ±36 V überspannungsgeschützt und ist standardmäßig ein 0–5-V-Spannungseingang, der auf 0–3,3 V an P6 herunterskaliert wird. Überbrücken Sie den 4–20-mA-Modus-Shunt auf der Rückseite des Shields, um AIN auf einen 4–20-mA-Stromschleifeneingang umzuschalten.
Bemerkung
Jeder der Pins P6–P10 ist über einen 0-Ohm-Widerstand auf der Rückseite des Shields mit der Kamera verbunden. Entfernen Sie den Widerstand an dem Pin, den Sie für andere Zwecke wiederverwenden möchten.
Bemerkung
In der v2-Version des Shields sind P6–P9 unidirektionale Pegelverschieber von 3,3 V → 5 V (nur Ausgang). P10 ist eine Open-Drain-Digitalleitung, die auf der Kameraseite auf 3,3 V und auf der Servo-Pin-Seite auf 5 V hochgezogen wird. Standardmäßig ist sie ein Eingang — das Shield verschiebt den Pegel von 0–5 V am Servo-Pin auf 0–3,3 V an P10 herunter. Ändern Sie die integrierte Lötbrücke, um P10 in einen Ausgang umzuwandeln, der den Pegel von 0–3,3 V an P10 auf 0–5 V am Servo-Pin hochverschiebt.
Verwendung#
Steuern Sie einen Hobby-Servo über einen beliebigen der Pins P7–P10 mit einem 50-Hz-PWM-Signal an. Der Impulsbreitenbereich variiert zwischen Servos, passen Sie also MIN_US und MAX_US an Ihre an — typische Werte liegen bei etwa 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)
Lesen Sie den AIN-Klemmleisteneingang aus (das pegelverschobene Ergebnis erscheint an 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)