אם ה-Arduino לא יבוא אל MATLAB MATLAB יבוא אל ה-Arduino
שימוש ב-App Designer ליצירת ממשק משתמש ששולט במיקרו-בקר Arduino לצורך הפעלה של רכב שלט רחוק – ראיון עם גיא ירוס
גיא ירוס עובד כמהנדס אפליקציה בתחום ההדפסה התלת-ממדית (3D Printing) בחברת סיסטמטיקס. "הגעתי לתחום הזה מעצם היותי "מייקר" (Maker) שאוהב לבנות דברים בעצמי, ובייחוד לשלב מכניקה, אלקטרוניקה ותוכנה", הוא מספר.
ההיכרות שלו עם המיקרו-בקר Arduino החלה לפני מספר שנים, בהיותו סטודנט להנדסה מכנית. "מצאה חן בעיני האפשרות לשלוט על מנגנונים מכניים ורכיבים אלקטרוניים די בקלות באמצעות תכנות בסיסי של מיקרו-בקר שהוא זול מאוד, זמין, ונפוץ, כך שיש הרבה מאוד אינפורמציה וספריות מוכנות באינטרנט. מאז הספקתי לבנות כמה פרויקטים משולבי-Arduino, כדוגמת מערכת התראת התהפכות לרכב שטח, גימבל אלקטרוני למצלמה, ומערכת טעינת חומר גלם למדפסת תלת ממד תעשייתית".
על מה אתה עובד בימים אלה?
"אני חובב רכבי שלט רחוק, בעיקר בקטגוריה שנקראת "זחלנים 4×4", שזה בעצם רכבי שלט רחוק שהם רכבי שטח עם הנעה כפולה, הכוללים מכלולים מכניים שדומים ככל הניתן לרכב שטח אמיתי, למעט זה שהכל מוקטן בדרך כלל פי 10".
"בפרויקט הנוכחי שלי המטרה היא לשלוט במערכות האלקטרוניות של הרכב שלט רחוק ("הזחלן"). לדוגמה, לשלוט בתאורה (פנסים קדמיים, פנסים אחוריים, פנסי איתות, לד-באר), כך שבהתאם לפקודה שמגיעה מהשלט הרחוק, הבקר יפעיל את מערכת התאורה המתאימה, בדומה למה שקורה ברכב אמיתי – תאורת חניה, תאורת דרך, אור גבוה, תאורת רוורס, איתות וכדומה. דוגמה אחרת, היא לשלוט על כננות (Winch) שמותקנות על הזחלן, כך שבעזרת פקודה שמגיעה מהשלט הרחוק תופעל הכננת המתאימה (אחורית או קדמית). למעשה מדובר כאן בשליטה על מנועים".
נחמד, אבל מה הקשר ל-MATLAB?
"כדי להשיג את המטרה שלי ניסיתי לתכנת את ה-Arduino בעזרת ה Arduino IDE, ומצאתי שזה די מתיש ולא זורם לכתוב את הכל בפקודות, ולכן רציתי לייצר ממשק משתמש בכדי שיהיה יותר נוח לשלוט על הבקר. מכיוון שעובדים יחד איתי באותה הקומה אנשי MATLAB, החלטתי לשאול אותם עד כמה זה מסובך להתממשק עם ה-MATLAB ל-Arduino ולייצר ממשק משתמש. הם סיפרו לי על התוסף החינמי המתאים למשימת ההתממשקות בין החומרה לתוכנה (קישור להורדה) ועל ה-App Designer שמגיע כחלק מה-MATLAB ומסייע ביצירה של ממשקי משתמש".
"החלטתי לנסות. הורדתי גרסת ניסיון חינמית של MATLAB, התקנתי את התוסף, וממש מהר הצלחתי לייצר ערוץ תקשורת בין ה-MATLAB ל-Arduino. השתמשתי ב-Help של התוכנה כדי ללמוד כיצד שולטים על פינים דיגיטליים, ושיחקתי קצת עם מיתוג של נורות לד, התחברות לסרוו, וזה עבד. וכל זאת למרות שהידע שלי ב-MATLAB מבוסס על מה שזכרתי מקורס שעשיתי בלימודים, לפני מספר שנים!"
"דבר נוסף שמאוד הקל על התהליך ומצא חן בעיני זה שה-MATLAB בעצם צורב את ה-Arduino לאחר הרצת הקוד, וכותב את הקוד המתאים בכדי לייצר את התקשורת בין המחשב לבין הבקר. ככה שזה חוסך את הצורך לכתוב קוד ל-Arduino בנפרד (נניח בעזרת ה Arduino IDE) ולכתוב קוד ל-MATLAB בנפרד. כלומר, כל העבודה מתבצעת אך ורק בסביבת פיתוח אחת – MATLAB".
עד כאן בטח כתבת פקודות, איך יצרת את ממשק המשתמש?
"החלטתי שאני רוצה לבנות GUI כי הרבה יותר נוח וזורם לעבוד עם לחצנים. אז צפיתי בכמה סרטונים קצרים על ה-App Designer, ודי מהר הבנתי כיצד להשתמש בכלי הזה כדי לעשות את מה שהיה לי בראש שאני רוצה לעשות. כלי ה-App Designer מאפשר לגרור בקלות פקדים לחלונית פאנל העבודה, ואפשר לייצר פונקציית Callback עבור כל פקד, ובכך לאפשר לפקד יכולת לבצע פעולות (Actions), ככה שזה מאוד נוח ואינטואיטיבי.התחלתי לעבוד עם הכלי, התרשמתי שהוא מאוד ידידותי למשתמש, והצלחתי לבנות מאוד מהר את מה שרציתי, כפי שמודגם בסרטון הקצר הבא".
יש תוכניות להמשך?
"בוודאי, זו היתה רק ההתחלה… בהמשך אני מתכוון להתחבר ל-Arduino באמצעות תקשורת Bluetooth, כך שיהיה ניתן לשלוט בבקר מרחוק, ללא צורך בכבל USB וחיבור ישיר למחשב. לאחר מכן אני רוצה להטמיע את בקר ה-Arduino על הזחלן עצמו, ולשלוט מרחוק ברכיבים שמותקנים בו ולקבל אינפורמציה מהחיישנים".