Servo Shield¶
ה-Servo Shield (v3) מניע עד ארבעה מנועי הגה (servo) סטנדרטיים של חובבים ישירות מתוך ה-OpenMV Cam. המייצב המובנה שלו מקבל כניסת 6–36 V על בלוק ההדקים ומספק 5.6 V בזרם של עד 5 A — די כדי להזין הן את המצלמה והן את מנועי ההגה מספק יחיד.
ל-datasheet המלא, תמונות והזמנה ראו את עמוד המוצר של Servo Shield.
עיקרי הדברים¶
הנעת עד ארבעה מנועי הגה דרך P7 / P8 / P9 / P10
כניסת 6–36 V על בלוק ההדקים (עמידה למתח הפוך)
5.6 V בזרם של עד 5 A על VIN — מזין את המצלמה ואת מנועי ההגה
כניסת ADC של 0–5 V עם הגנת מתח-יתר עד ±36 V
I/O דיגיטלי דו-כיווני של 0–5 V עם הסטת מתח מ-3.3 V ל-5 V
Pinout¶
טבלת פינים¶
פין |
תפקיד |
|---|---|
P6 |
קריאת AIN מוסטת-מתח (0–3.3 V על P6) |
P7 |
Servo 1 — GPIO דו-כיווני 3.3 V ↔ 5 V |
P8 |
Servo 2 — GPIO דו-כיווני 3.3 V ↔ 5 V |
P9 |
Servo 3 — GPIO דו-כיווני 3.3 V ↔ 5 V |
P10 |
Servo 4 — GPIO דו-כיווני 3.3 V ↔ 5 V |
PWR in |
כניסת רוחב 6–36 V על בלוק ההדקים (עמידה למתח הפוך) |
AIN in |
כניסה אנלוגית על בלוק ההדקים |
VIN out |
5.6 V מיוצב, עד 5 A משולב למנועי ההגה ולמצלמה |
מסילת 3.3V |
מזין את האלקטרוניקה המובנית של ה-shield |
מסילת GND |
הארקה משותפת |
הערה
AIN מוגן מפני מתח-יתר עד ±36 V וברירת המחדל שלו היא כניסת מתח של 0–5 V, מוקטנת ל-0–3.3 V על P6. גשרו את שאנט מצב 4–20 mA בצד האחורי של ה-shield כדי להחליף את AIN לכניסת לולאת-זרם 4–20 mA.
הערה
כל אחד מ-P6–P10 קשור אל המצלמה דרך נגד 0-ohm בצד האחורי של ה-shield. הסירו את הנגד על כל פין שברצונכם להחזיר לשימוש בלתי-קשור.
הערה
בגרסת v2 של ה-shield, P6–P9 הם מסיטי מתח חד-כיווניים 3.3 V → 5 V (יציאה בלבד). P10 הוא קו דיגיטלי open-drain, מושך אל 3.3 V בצד המצלמה ואל 5 V בצד פין ה-servo. כברירת מחדל הוא כניסה — ה-shield מסיט את 0–5 V על פין ה-servo אל 0–3.3 V על P10. שנו את גשר ההלחמה המובנה כדי להפוך את P10 ליציאה, תוך הסטת 0–3.3 V על P10 אל 0–5 V על פין ה-servo.
שימוש¶
הניעו מנוע הגה של חובבים מכל אחד מ-P7–P10 עם אות PWM בתדר 50 Hz. טווח רוחב-הדופק משתנה בין מנועי הגה, לכן כווננו את MIN_US ו-MAX_US כך שיתאימו לשלכם — ערכים אופייניים נעים סביב 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)
קראו את כניסת בלוק ההדקים AIN (התוצאה המוסטת מופיעה על 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)