אחרי שהדגמנו את הפעולה התקינה של בקר המנועים, הגיע הזמן לתת לרובוט הניסיוני קצת אישיות ולהכין אותו לקראת פעולות מורכבות יותר. הדבר בוצע בשתי דרכים שיוצגו בפוסט זה: 1) הכנת מערכת תאורה, ו-2) מעבר ללוח קומפקטי עם ארדואינו Pro Mini. כרגיל, נפתח בהדגמה של הרובוט המשופצר בשטח:
1. מערכת התאורה
מכיוון שהרובוט אינו מצויד במצלמות (בינתיים… 🙂 ), מדובר בתוספת קוסמטית בלבד. ראשית, לקחתי את הלדים הדרושים – שניים לבנים לאורות קדמיים, שניים אדומים לאחוריים ושישה כתומים לפנסי האיתות – והתאמתי לרובם תושבות. החלקים האלה נקראים LED Bezel או LED Holder. שימו לב שהם צריכים להיות בקוטר מתאים לקוטר הלד. כמו כן, יש כאלה ממתכת, ויש מפלסטיק (כמו בתמונה) שנסדקים מאד בקלות אם לא נזהרים.
כעת, בעבודה מייגעת למדי, הדבקתי צמדים בהתאם לסידור הפנסים הרצוי והלחמתי חוטים לכל המערכת כדי ליצור ארבע קבוצות: קדמית, אחורית, ימין ושמאל. בתוך כל קבוצה כזו כל הלדים מחוברים במקביל, והאדמה משותפת לכולם. הנה התוצאה:
בעזרת פסי הדבקה דו-צדדיים, דבק חם ואפילו קצת חוט דיג, הצמדתי את כל העסק לצד התחתון של הרובוט, תוך הקפדה על כך ששום חוט ורכיב לא יבלוט החוצה או יסתבך בטעות בגלגלים. החשמל לכל קבוצה מגיע מהארדואינו, דרך נגד להגבלת הזרם. הערכים המדויקים של הנגדים לא ממש משנים, כי הלדים נראים טוב גם כשהם לא בתפוקה מקסימלית.
2. פרו מיני
עד כה, הרובוט נשלט על ידי לוח תואם ארדואינו Duemilanove שעליו מורכב מגן עם מטריצה קטנה. זה היה סידור מגושם וכבד, ובעייתי גם מבחינת מספר הפינים הפנוי: בקר המנועים תופס שבעה פינים, מערכת התאורה עוד ארבעה, ומה יקרה כשאצטרך להוסיף לסיפור חיישנים ואלמנטים אחרים?
הפתרון שבחרתי הוא לשלב שני לוחות Pro Mini: אחד יטפל במנועים ובתאורה, ואולי בעוד דבר קטן או שניים, ואילו השני יפקד על הראשון ויטפל בפונקציות נוספות, "גבוהות" יותר, כגון תקשורת נתונים אלחוטית, תכנון נסיעה וכו'. תיאורטית, אפשר להשתמש גם במיקרו-בקרים בחיבור ישיר, אך כאן העדפתי את הלוחות המוכנים, בעיקר כדי לחסוך זמן עבודה. בתמונה הבאה מוצג הרובוט עם הלוח הראשון. למרבה המזל, סידור הפינים של ה-Pro Mini מאפשר הצמדה צד-לצד אל בקר המנועים, כך שלא היה צורך בחיווטים מיוחדים כדי להפעיל אותו.
אגב, אני משתמש בלוחות תואמי Pro Mini זולים מסין; באתר 4Project שמלווה את הפרויקט הזה אפשר להשיג לוח Arduino Pro Mini מקורי.
ליד בקר המנועים ממוקם DIP Switch, שנמצא שם כדי שאוכל לבודד בעת הצורך את הפינים RX/TX של הארדואינו. למה? כי הרעיון הוא שהתקשורת בין שני הלוחות תתבצע דרך הפינים האלה, בחיבור טורי (ה-Serial של הארדואינו), ואז אני אצטרך את האופציה לנתק את קו התקשורת בין הלוחות לצורך תכנות של כל אחד מהם בנפרד דרך סביבת הפיתוח. הנה הצד התחתון, נכון להיום, של ה-Stripboard עליו מותקן כל העסק:
מה הלאה
אם הסתכלתם בתשומת לב בסרטון, בוודאי ראיתם שהפניה ימינה שונה מאד מהפניה שמאלה, וזאת אף על פי שהפקודות שניתנו למנועים הן סימטריות לחלוטין. זו בעיה שהבחנתי בה כבר מהרגע הראשון: התמסורת של הגלגל השמאלי פשוט פחות "חלקה", במידה ניכרת, מזו של הימני, אפילו ששתיהן מגורזות כראוי. זו כנראה אחת הסיבות לכך שהפלטפורמה היתה זולה במיוחד… המשמעות היא שבשלב מסוים לא תהיה לי ברירה אלא לתכנת מנגנון בקרה כלשהו, שיקזז את ההבדלים המכניים. האם זה יהיה הדבר הבא שאעשה, או שאתקין קודם את לוח השליטה? נחכה ונראה…
אהבתי! ניסיתי לעבוד עם הפרו מיני וסביבת הפיתוח של הארדואינו נתנה לי שגיאה מעצבנת. אחרי חיפושים רבים וממושכים באינטרנט, לא מצאתי כלום. החלטתי להלחים את היציאות הסיריאליות לפינים נורמליים, ובטעות הוצאתי קבל קטן שהיה מולחם על הפרו מיני… הזמנתי כבר תואם ארדואינו נאנו…
ניסית לשאול ב-[עדכון: האתר לא קיים יותר]? יש מצב שהיינו יכולים לאתר את מקור הבעיה בלי להרוס שום דבר…