Servo Shield¶
Servo Shield (v3), OpenMV Cam’den doğrudan en fazla dört standart hobi servosunu sürer. Kart üzerindeki regülatörü terminal bloğunda 6–36 V giriş kabul eder ve 5 A’ya kadar 5.6 V verir — hem kameraya hem de servolara tek bir kaynaktan güç vermeye yeterlidir.
Tam veri sayfası, fotoğraflar ve sipariş bilgileri için Servo Shield ürün sayfasına bakın.
Öne çıkanlar¶
P7 / P8 / P9 / P10 üzerinden en fazla dört hobi servosunu sürün
Terminal bloğunda 6–36 V giriş (ters voltaj toleranslı)
VIN’de 5 A’ya kadar 5.6 V — kameraya ve servolara güç verir
±36 V’a kadar aşırı voltaj korumalı 0–5 V ADC girişi
3.3 V’tan 5 V’a seviye dönüştürmeli çift yönlü 0–5 V dijital I/O
Pin Çıkışı¶
Pin referansı¶
Pin |
İşlev |
|---|---|
P6 |
Seviye dönüştürülmüş AIN geri okuması (P6’da 0–3.3 V) |
P7 |
Servo 1 — çift yönlü 3.3 V ↔ 5 V GPIO |
P8 |
Servo 2 — çift yönlü 3.3 V ↔ 5 V GPIO |
P9 |
Servo 3 — çift yönlü 3.3 V ↔ 5 V GPIO |
P10 |
Servo 4 — çift yönlü 3.3 V ↔ 5 V GPIO |
PWR girişi |
Terminal bloğunda 6–36 V geniş giriş (ters voltaj toleranslı) |
AIN girişi |
Terminal bloğundaki analog giriş |
VIN çıkışı |
5.6 V regüle, servolar ve kamera için toplamda 5 A’ya kadar |
3.3V hattı |
Shield’in dahili elektroniğine güç verir |
GND hattı |
Ortak toprak |
Not
AIN, ±36 V’a kadar aşırı voltaj korumalıdır ve varsayılan olarak 0–5 V voltaj girişidir; P6’da 0–3.3 V’a ölçeklenir. AIN’i 4–20 mA akım döngüsü girişine çevirmek için shield’in arkasındaki 4–20 mA mod şöntünü köprüleyin.
Not
P6–P10’un her biri, shield’in arkasındaki 0 ohm’luk bir dirençle kameraya bağlıdır. İlgisiz kullanımlar için geri almak istediğiniz herhangi bir pindeki direnci çıkarın.
Not
Shield’in v2 sürümünde P6–P9 tek yönlü 3.3 V → 5 V seviye dönüştürücülerdir (yalnızca çıkış). P10, kamera tarafında 3.3 V’a ve servo pini tarafında 5 V’a yükseltilmiş açık drenajlı bir dijital hattır. Varsayılan olarak bir giriştir — shield, servo pinindeki 0–5 V’u P10’da 0–3.3 V’a düşürerek seviye dönüştürür. P10’u çıkışa çevirmek için kart üzerindeki lehim atlama telini değiştirin; bu, P10’daki 0–3.3 V’u servo pininde 0–5 V’a yükseltir.
Kullanım¶
P7–P10’un herhangi birinden 50 Hz PWM sinyaliyle bir hobi servosunu sürün. Darbe genişliği aralığı servolar arasında değişir; bu nedenle MIN_US ve MAX_US değerlerini kendi servonuza uyacak şekilde ayarlayın — tipik değerler yaklaşık 1000–2000 µs civarındadır:
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)
AIN terminal bloğu girişini okuyun (seviye dönüştürülmüş sonuç P6’da görünür):
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)