8493415269 עשה זאת בעצמך: רובוט ידידותי מבוסס ארדואינו | גיקטיים

סוכן חכם
אישי ודיסקרטי

לוח משרות ההיי-טק
והטכנולוגיה של ישראל.

רוצים לדעת על משרות חדשות שמתאימות לכם?
תנו לנו לעבוד בשבילכם.
במקום לחפש משרות, קבלו אותן למייל ראשונים.

תודה רבה,
מעכשיו הסוכן האישי שלנו עובד בשבילך. בהצלחה:)
ההרשמה בוצעה בהצלחה
*הרשמה מאשרת לנו את תנאי השימוש
אני מאשר קבלת חומר פרסומי מגיקטיים וידוע לי כי באפשרותי לבקש הסרה מרשימת התפוצה בכל עת

עשה זאת בעצמך: רובוט ידידותי מבוסס ארדואינו

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

robot

מאת אבי אוסיפוב

הרעיון ואופן הפעולה

מדובר במודל של רובוט חביב מבוסס ארדואינו ובשילוב תכנת בלנדר. יצרתי את הרובוט עצמו אבל הייתי צריך למצוא דרך לקשר בין השניים. דבר נוסף שהיה לי חשוב הוא האפשרות לתגובה מיידית של הרובוט (Realtime) מול תכנת בלנדר ולא במצב Game Mode או כאשר אני מפעיל אנימציה, כך שאם אני משנה את הרובוט בבלנדר הרובוט האמיתי יגיב מייד. הדבר שימושי ביותר אם רוצים להנפיש דמות ועלינו לקבל תגובה בזמן אמת.

הרובוט

הרובוט מורכב מקופסת תכשיטים מעץ, כזו שמוצאים בכל חנות לתחביב ויצירה, לוחות עץ בלזה מהם הרכבתי את השלד, או הריג בשפת התלתיסטים ו-6 מנועי סרוו שמניעים את הרובוט.

מנועי סרוו

מנועי הסרוו מאפשרים תזוזה מדוייקת (0-180 מעלות) של ראש המנוע, קביעת מיקום ראש המנוע מתבצעת על ידי מתן פקודה. הזמנתי 4 מנועים "קטנים" (מנועי מיקרו-סרוו) ו-4 מנועים "כבדים יותר" באיביי. המנועים הכבדים אחראים לתנועת הראש (סיבוב, הרמה\הורדה, הטייה לצדדים) והמנועים הקטנים (והחלשים) יותר אחראים לגבות, פתיחת הפה ובעתיד לתנועות עיניים.

כרגע המנועים מניעים ישירות את הרובוט (ונושאים את כל המשקל…) הדבר נוח בשלב זה אבל יצטרך לעבור שינוי בעתיד על ידי בניית מסגרת שתישא במשקל הרובוט ותקל על פעולת המנועים.

ארדאוניו

זה החלק המרגש באמת. למי שלא מכיר – מדובר במיקרו-בקר עם סביבה תומכת הכוללת חיבור USB לתכנות דרך המחשב, אפשרות לכתוב קוד בשפת C/C++, יציאות וכניסות לקבלת ושליחת מידע אנלוגי ודיגיטלי, קהילה פעילה של מפתחים וכמו שכבר ניחשתם – אפשר להשתמש בארדואינו כדי להפעיל את מנועי הסרוו של הרובוט.

ישנם מספר סוגי לוחות לארדואינו, אני משתמש בלוח Arduino Uno הפופולרי, שניתן לרכוש באיביי.

לוח בקרה למנועים – Arduino Sensor Shield

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

חשוב לציין שהלוח מאפשר חיבור ספק כוח חיצוני המאפשר להזין את הסרווים שלא דרך לוח הארדואינו, בכדי שה Sensor Shield ידע לעבוד עם ספק הכוח החיצוני יש לשלוף את הג'אמפר ליד החיבור. כמובן שאתם צריכים ספק חיצוני של 5V ו-2A כדי להזין את הסרווים.

תוספות מומלצת, LCD

אנחנו צריכים דרך לבדוק את הקוד שלנו ולאתר באגים, ואולי לקבל גם חיווי מה קורה בזמן הפעולה של הרובוט, הדרך הפשוטה לעשות זאת היא להציג פלט על מסך ה-LCD. ישנם מסכים עם חיבור I2C (חיבור 4 קווים בלבד) באיביי ובלוח ה-Sensor Shield יש חיבור מובנה למסך ה-LCD.

בלנדר

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

1. להבין שמשהו השתנה

2. לבדוק מה השתנה ואז לשלוח את הפקודה המתאימה לארדואינו.

בכדי לגרום לבלנדר לעשות את כל הדברים הללו עלינו לכתוב סקריפט בשפת פייטון.

זיהוי שינויים

הדרך לזהות שמשהו השתנה (אחת הדרכים כמובן) היא להתלבש על האירוע scene_update_post ולהריץ פונקצייה המגיבה לשינוי לפי המבנה הבא:

bpy.app.handlers.scene_update_post.append(scene_update)

בתוך הפונקציה המגיבה לשינוי (scene_update) עליי לוודא שאכן התרחש שינוי ואז לשדר את הפקודות הנכונות לארדואינו.

שידור פקודות לארדואינו

כפי שהזכרתי קודם, ארדואינו יכולה לקבל ושלוח נתונים דרך החיבור הטורי\סריאלי, לכן על בלנדר לשדר את הפקודות דרך חיבור זה. יש לפייטון ספרייה בשם pyserial המאפשרת תקשורת מסוג זה, ניסיתי לייבא את הספרייה הנ"ל תוך בלנדר אך ללא הצלחה ועקפתי את הבעיה על ידי התקנת פייטון במחשב וייבוא הספרייה משם.

התקשורת עצמה בין בלנדר לארדואינו עובדת לפי הפורמט הבא:

xYYY – כאשר x זה המנוע שיש להפעיל (a,b,c,d,e,f) ו-YYY זו הזוית (0-180), פקודה לדוגמה: a120.

קוד מקור

מדובר בקוד שטרם הספקתי לסדר או לפשט אבל יעזור לכם להבין את הרעיון ואופן הפעולה של המערכת.

הסקריפט לבלנדר
הקוד לארדואינו

כתב אורח

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

הגב

4 Comments on "עשה זאת בעצמך: רובוט ידידותי מבוסס ארדואינו"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 
Sort by:   newest | oldest | most voted
עודד
Guest

ואווו מצויין , אהבתי…נשמע כיף ממש
לכתוב קוד ולקבל רובוט חי בבית!

אור
Guest

מה עם הסבר קצר מה זה בלנדר למי שלא מכיר?

אריה
Guest

נחמד אבל רובוט מכוער… אני הייתי דווקא הולך על בניית פרצוף אנושי… כלומר מלא מנועים לשרירי הפנים והפה ולשים מעל הכל מסכת גומי מגניבה… ואז להנפיש הכל עם בלנדר…

אנונימי
Guest

ענק!!!!

wpDiscuz

תגיות לכתבה: