שְׁאֵלָה:
כיצד לשלוט על מנוע סרוו 88004 עם פטל פטל?
user4343
2014-12-29 15:36:56 UTC
view on stackexchange narkive permalink

אני יכול לשלוט במנוע סרוו פשוט כגון SG90 באמצעות אפנון רוחב הדופק. אולם כשמדובר בשליטה על מנוע סרוו לגו 88004 זה פשוט סיוט.

באמצעות PWM כל מה שהצלחתי היה להביא אותו למצב הרגיל שלו. נראה שאורך הדופק בכלל לא משחק תפקיד - ניסיתי כמה וכמה ...

הבדל נוסף בין SG90 ל- 88004 הוא שלראשון יש רק שלושה חוטים (PWR, GND ושליטה) ואילו בסרוו לגו יש 4 (PWR, C1, C2 ו- GND).

  • איזה מאותם חוטים (C1 ו- C2) צריך לשמש עם ה- PWM?
  • כמה זמן צריכים להיות הפולסים כדי להזיז את המנוע דרך 15 מצביו?
  • האם יש דרך אחרת לשלוט על 88004 ישירות מה- Raspberry Pi כמו I2C?
EDITED

זה עובד!

  # ייבוא ​​הספרייה הנחוצה יבוא RPi.GPIO כ- GPIO מיבוא זמן שינה # הפניה ע"י GPIOs IDsGPIO.setmode (GPIO.BCM) # הקצאת ה- GPIO לחוטי הפקודה של לגו C1 = 21C2 = 26moveFactor = 14.285714286 # הגדרת GPIOsGPIO.setup (C1, GPIO.OUT) GPIO.setup (C2, GPIO.OUT) # הגדרת PWMs - (GPIO ID, תדירות) pwm1 = GPIO.PWM (C1 , 1200) pwm2 = GPIO.PWM (C2, 1200) def set מיקום (מיקום): pwm1.stop () pwm2.stop () i = עגול (מיקום * m oveFactor, 2) אם מיקום > = 0: הדפס 'מיקום:' + str (מיקום) + 'במחזור חובה של' + str (i) pwm1. התחל (i) אחר: הדפס 'מיקום:' + str (מיקום ) + 'במחזור חובה של' + str (i * -1) pwm2.start (i * -1) # בדיקת הפקודות עם LEDtry: setPosition (-7) # 180 מעלות שינה (2) setPosition (7) # 0 תואר שינה (1) למעט: passpwm1.stop () # חזרה למצב הרגיל (90 מעלות) pwm2.stop () GPIO.cleanup ()  
האם היית צריך להעלות את רמות המתח ל -5 וולט או 9 וולט, או שהצלחת לשלוט בו דרך 3v3 ישירות מהפי?
אחד תשובה:
Philo
2014-12-29 20:06:28 UTC
view on stackexchange narkive permalink

לגו "מנוע סרוו" אין הרבה מה לעשות עם מנוע סרוו RC. כדי להניע אותו, עליך:

  • להניע אותו ב -9 וולט (עובד כנראה ב -5 וולט, אך עם פחות מומנט) דרך מסופי PWR / GND
  • לזוז באחד כיוון, שלח אות PWM (1200 הרץ, מחזור חובה של 0 עד 100%) ב- C1 ושמור על C2 ברמת GND. כאשר מחזור העבודה משתנה, מנוע סרוו ינוע לאורך 7 מצבים בצד אחד. צפו ב סרטון זה.
  • כדי לנוע בכיוון השני ולהגיע לשבע העמדות האחרות, שלחו PWM ל- C2 ושמרו על C1 בגובה הקרקע.
תודה רבה פילון. רק שאלה נוספת ממי שיש לו ידע מוגבל מאוד בפיזיקה. למה בדיוק אתה מתכוון ב"מעגל חובה של 0 עד 100% "? האם היית כל כך חביב וכתוב אלגוריתם פשוט מאוד? תודה!
אחוז מחזור העבודה הוא היחס בין זמן מופעל לאורך תקופת מחזור. לְמָשָׁל. כאן, מחזור חובה של 30% ב 1200 הרץ פירושו 250 µs מופעל / 583 µs כבוי.
היי פילון. תודה על השידור החוזר שלך. פשוט יצרתי קוד בפיטון על סמך ההסבר שלך (ראה השאלה הערוכה) אבל לצערי זה עדיין לא עובד. האם היית עוזר לי על ידי סקירה וביצוע ההתאמות הנדרשות? אני אודה מאוד על כך.
הבעיה היא שאני לא מתמצא בפייתון ... יכול להיות שגם בעיית ממשק פיזי?


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...