שלום אלכס,
תודה על הקמת אתר כל כך מושקע, אני מקווה לבלות פה הרבה.
יש לי Ardiuno Uno והייתי רוצה לתת לו רגליים (כמובן גלגלים). קראתי על מנועים וחיבור למנועים ויצאתי מבולבל.
1. האם אני צריך מנועים רגילים עם תיבת הילוכים או Step Motors ? אני מניח שרובוט נוסע יכול להסתפק במנועים רגילים עם תיבת הילוכים, אבל אני לא בטוח.
2. האם יש תיבת הילוכים שניתנת לשינוי הילוכים דרך בקרת מחשב ? לא בפירוק והרכבת גלגלי השיניים ?
3. מה אני צריך כדי לחבר מנוע/ים ל Arduino שלי ? האם הבקרה על המנויים תהייה התחלה / הפסקה ? אם אני מפסיק את המנוע, האם אני אוכל לקבוע מיקום של הרובוט או שייקח זמן (ומרחק) עד שהמנוע יפסיק להסתובב והרובוט ימשיך להתגלגל...
בקיצור - אודה לך על הסבר פשוט לנושא "איך להוסיף ל Arduino רגליים"...
תודה,
אהוד
לתת ל Arduino רגליים
-
- מנהל האתר
- הודעות: 763
- הצטרף: ה' ינואר 28, 2010 8:27 pm
Re: לתת ל Arduino רגליים
שלום אהוד,
תודה על הברכות ותודה לך שאתה שואל את השאלות בפורום כדי שכולם יוכלו ללמוד משהו מהדיון ולא באימייל כמו שעושים לרוב.
אנסה לענות עד כמה שאוכל.
קודם כל, רגליים ל-Arduino הם לא רק גלגלים
אני כבר די הרבה זמן מגלגל בראש איך אני בונה רובוט עם 6 רגליים בצורת עכביש. מקווה שיהיה לי מתי שהוא זמן לממש את הרעיון (כן בטח...).
1.
מנועי צעד שונים בפעולתם מהמנועים הרגילים. מנוע רגיל (עם מברשות - brushed, אני לא מתייחס כאן למנועים ללא מברשות - brushless) מסתובב כל עוד מספקים לו מתח בשני החוטים המחוברים אליו, הבקרה עליו תהיה לספק מתח שונה כדי לשלוט על המהירות ולשנות כיוון זרימת הזרם כדי לסובב את המנוע לצד השני.
מנוע צעד דורש בקרה קצת יותר משוכללת ובדרך כלל יש לו יותר מ-2 חוטים, כאשר כל זוג חוטים מחובר לסליל אחר במנוע כדי שאפשר יהיה להזיז את הציר בזווית מסויימת או צעד אחד (מכאן השם שלהם). צריך בקר שיכול לתת מתח כל פעם בזוג חוטים שונה כדי לסובב את המנוע - כך שולטים על המהירות והכיוון של המנוע.
http:/s/en.wikipedia.org/wiki/Stepper_motor
במנוע צעד אתה זה שקובע כמה סיבובים (או חלקי סיבוב) המנוע יסתובב, כאשר במנוע רגיל אתה לא יודע את זה ובדרך כלל בונים מנגנון הנקרא מקודד (encoder) שסופר את כמות הסיבובים שעושה המנוע. כמובן שכמות הסיבובים מייצגים גם את המרחק שהגלגל עובר (מכפילים בהיקף הגלגל).
בפרקטיקה, אם אתה צריך מנוע חזק, מדוייק ולא ממש מהיר, כנראה שתבחר במנוע צעד, אבל קח בחשבון שהם גדולים וכבדים.
רובוט פשוט יכול להסתפק במנוע רגיל עם תיבת הילוכים, תלוי בגודל, כח ומהירות הדרושים.
2.
אני לא מכיר כאלה. אתה עדיין יכול לשלוט על המהירות גם עם תיבה אחת, פשוט מספקים מתח שונה למנוע. במנועים חשמליים כנראה אין היגיון להשתמש בתיבת הילוכים כדי לשנות מהירות תוך כדי נסיעה, עובדה שבמכוניות חשמליות אמיתיות אין תיבת הילוכים משתנה.
3.
הזכרתי שינוי מתח כדי לשלוט על המהירות... Arduino לא יכול לעשות את זה ישירות, הוא צריך בקר מנוע (או בשם אחר דוחף זרם - motor driver) - רכיב שיכול לספק מספיק זרם. יש בקרים שונים למנועי צעד ולמנועי DC רגילים. כמו שהסברתי בסעיף 1 הם עובדים שונה.
השוני בין דוחפי זרם למנועי DC הוא במתח וזרם המקסימלי שהם יכולים לספק למנועים.
בקרים למנועי צעד יש כאן (כרגע רק 1, אבל בקרוב יהיו יותר):
https://www.4project.co.il/section/step ... or-drivers
בקרים למנועי DC:
https://www.4project.co.il/section/dc-motor-drivers
הדרך הפשוטה ביותר עם Arduino תהיה כנראה לחבר אליו מגן Ardumoto התומך בשני מנועים:
https://www.4project.co.il/product/233
אתה יכול לבחור כל דוחף זרם אחר שמסוגל לספק זרם תקיעה של המנוע שזה הזרם הגבוה ביותר שהמנוע יכול לצרוך. אם דוחף זרם יכול לספק נגיד 1A במקסימום והמנוע צורך 2A כשהוא נתקע, כנראה שהדוחף ישרף.
כד לשלוט על מנועי DC בדרך כלל משתמשים במעגל H-Bridge:
https://en.wikipedia.org/wiki/H_bridge
זה מאפשר לשלוט על כיוון הזרם שיעבור דרך המנוע, כלומר כיוון הסיבוב.
כדי לשלוט על מהירות הסיבוב בדרך כלל משתמשים באות PWM, כך שהמגברים נפתחים ונסגרים בקצב מהיר, רוחב הפולס קובע כמה זמן המגבר יהיה פתוח. למשל פולס של 50% ב-"1" לוגי ו-50% ב-"0" לוגי שווה ערך לאספקת חצי ממתח המסופק ע"י המגברים. מנוע הוא רכיב איטי, כך שלא ממש אכפת לו שאספקת המתח לא ישרה.
https://en.wikipedia.org/wiki/Pulse-width_modulation
בקרי מנוע משוכללים יותר יכולים לאפשר לך לא רק שליטה על כיוון ומהירות אלא גם להפעיל בלימה של המנוע או לאפשר לו סיבוב חופשי.
אני לא יודע מה גודל ומשקל של הרובוט שאתה רוצה לבנות, ברובוטים קטנים אפשר להניח שהמנוע יעצר מייד כשאתה מפסיק לספק לו זרם.
לגבי מדידת מרחק שהרובוט עובר כבר כתבתי, צריך מקודד. יש את הערכה הזו שיכולה לעניין אותך:
https://www.4project.co.il/product/513
מקווה שעניתי לכל השאלות שלך.
אם יש עוד, בוא נמשיך בדיון כאן.
בברכה,
אלכס
תודה על הברכות ותודה לך שאתה שואל את השאלות בפורום כדי שכולם יוכלו ללמוד משהו מהדיון ולא באימייל כמו שעושים לרוב.
אנסה לענות עד כמה שאוכל.
קודם כל, רגליים ל-Arduino הם לא רק גלגלים
אני כבר די הרבה זמן מגלגל בראש איך אני בונה רובוט עם 6 רגליים בצורת עכביש. מקווה שיהיה לי מתי שהוא זמן לממש את הרעיון (כן בטח...).
1.
מנועי צעד שונים בפעולתם מהמנועים הרגילים. מנוע רגיל (עם מברשות - brushed, אני לא מתייחס כאן למנועים ללא מברשות - brushless) מסתובב כל עוד מספקים לו מתח בשני החוטים המחוברים אליו, הבקרה עליו תהיה לספק מתח שונה כדי לשלוט על המהירות ולשנות כיוון זרימת הזרם כדי לסובב את המנוע לצד השני.
מנוע צעד דורש בקרה קצת יותר משוכללת ובדרך כלל יש לו יותר מ-2 חוטים, כאשר כל זוג חוטים מחובר לסליל אחר במנוע כדי שאפשר יהיה להזיז את הציר בזווית מסויימת או צעד אחד (מכאן השם שלהם). צריך בקר שיכול לתת מתח כל פעם בזוג חוטים שונה כדי לסובב את המנוע - כך שולטים על המהירות והכיוון של המנוע.
http:/s/en.wikipedia.org/wiki/Stepper_motor
במנוע צעד אתה זה שקובע כמה סיבובים (או חלקי סיבוב) המנוע יסתובב, כאשר במנוע רגיל אתה לא יודע את זה ובדרך כלל בונים מנגנון הנקרא מקודד (encoder) שסופר את כמות הסיבובים שעושה המנוע. כמובן שכמות הסיבובים מייצגים גם את המרחק שהגלגל עובר (מכפילים בהיקף הגלגל).
בפרקטיקה, אם אתה צריך מנוע חזק, מדוייק ולא ממש מהיר, כנראה שתבחר במנוע צעד, אבל קח בחשבון שהם גדולים וכבדים.
רובוט פשוט יכול להסתפק במנוע רגיל עם תיבת הילוכים, תלוי בגודל, כח ומהירות הדרושים.
2.
אני לא מכיר כאלה. אתה עדיין יכול לשלוט על המהירות גם עם תיבה אחת, פשוט מספקים מתח שונה למנוע. במנועים חשמליים כנראה אין היגיון להשתמש בתיבת הילוכים כדי לשנות מהירות תוך כדי נסיעה, עובדה שבמכוניות חשמליות אמיתיות אין תיבת הילוכים משתנה.
3.
הזכרתי שינוי מתח כדי לשלוט על המהירות... Arduino לא יכול לעשות את זה ישירות, הוא צריך בקר מנוע (או בשם אחר דוחף זרם - motor driver) - רכיב שיכול לספק מספיק זרם. יש בקרים שונים למנועי צעד ולמנועי DC רגילים. כמו שהסברתי בסעיף 1 הם עובדים שונה.
השוני בין דוחפי זרם למנועי DC הוא במתח וזרם המקסימלי שהם יכולים לספק למנועים.
בקרים למנועי צעד יש כאן (כרגע רק 1, אבל בקרוב יהיו יותר):
https://www.4project.co.il/section/step ... or-drivers
בקרים למנועי DC:
https://www.4project.co.il/section/dc-motor-drivers
הדרך הפשוטה ביותר עם Arduino תהיה כנראה לחבר אליו מגן Ardumoto התומך בשני מנועים:
https://www.4project.co.il/product/233
אתה יכול לבחור כל דוחף זרם אחר שמסוגל לספק זרם תקיעה של המנוע שזה הזרם הגבוה ביותר שהמנוע יכול לצרוך. אם דוחף זרם יכול לספק נגיד 1A במקסימום והמנוע צורך 2A כשהוא נתקע, כנראה שהדוחף ישרף.
כד לשלוט על מנועי DC בדרך כלל משתמשים במעגל H-Bridge:
https://en.wikipedia.org/wiki/H_bridge
זה מאפשר לשלוט על כיוון הזרם שיעבור דרך המנוע, כלומר כיוון הסיבוב.
כדי לשלוט על מהירות הסיבוב בדרך כלל משתמשים באות PWM, כך שהמגברים נפתחים ונסגרים בקצב מהיר, רוחב הפולס קובע כמה זמן המגבר יהיה פתוח. למשל פולס של 50% ב-"1" לוגי ו-50% ב-"0" לוגי שווה ערך לאספקת חצי ממתח המסופק ע"י המגברים. מנוע הוא רכיב איטי, כך שלא ממש אכפת לו שאספקת המתח לא ישרה.
https://en.wikipedia.org/wiki/Pulse-width_modulation
בקרי מנוע משוכללים יותר יכולים לאפשר לך לא רק שליטה על כיוון ומהירות אלא גם להפעיל בלימה של המנוע או לאפשר לו סיבוב חופשי.
אני לא יודע מה גודל ומשקל של הרובוט שאתה רוצה לבנות, ברובוטים קטנים אפשר להניח שהמנוע יעצר מייד כשאתה מפסיק לספק לו זרם.
לגבי מדידת מרחק שהרובוט עובר כבר כתבתי, צריך מקודד. יש את הערכה הזו שיכולה לעניין אותך:
https://www.4project.co.il/product/513
מקווה שעניתי לכל השאלות שלך.
אם יש עוד, בוא נמשיך בדיון כאן.
בברכה,
אלכס
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
כל הרכיבים לפרוייקט שלכם