מדריך למתקדמים: לנפנף בדגל מהסמארטפון
אם הסמארטפון ממילא איתכם כל הזמן, למה שלא תשלטו בעזרתו בגאדג'טים שבניתם לבד? מדריך לאמיצים שאוהבים להרכיב דברים
שימו לב, לצורך ההרכבה תצטרכו לוח אדרואינו וידע בסיסי בהפעלתו ובתכנות שלו, דגל מודפס וקיסם או שיפוד, מנוע סרבו ורכיב בלוטות'.
שלב ראשון: לנפנף בדגל
בשלב "מלאכת היד" של הפרויקט הדפסתי דגל ישראל כפול (עם מסגרת דקיקה לגזירה מדויקת) וקיפלתי את הנייר סביב חתיכה מסמל ישראלי אחר – שיפוד במבוק של מנגל.
באמצעות אקדח דבק חם, שהוא כידוע ידידו הטוב של המייקר, יצרתי בליטות על ה"תורן" שימנעו מהעסק לברוח, והדבקתי את הדגלים המודפסים זה לזה בנייר דבק כך שדגל הנייר הסופי יוכל להסתובב בחופשיות על המוט. את המוט עצמו הדבקתי לראש פלסטי של מנוע סרבו קטן, ואת הסרבו לחתיכת עץ יציבה.
הסרבו, כזכור למי שקרא את הכתבה על מחסום הצעצוע, הינו מנוע איטי ובעל טווח תנועה מוגבל, אך חזק יחסית ומאפשר לנו לשלוט בזווית הציר. מאחורי הקלעים, השליטה הזו מתבצעת באמצעות שליחה קצובה של פולסים חשמליים באורכים משתנים (סדר גודל של אלפית עד שתי אלפיות השניה). לנו זה פחות חשוב, כי לפרויקט זה נשתמש בספריית קוד מוכנה מראש של לוח ארדואינו, שמטפלת בדברים האלה ונקראת – כמה מפתיע – Servo.
מנוע סרבו, ואפילו קטן כזה, צורך יותר זרם ממה שלוח הארדואינו יכול לספק בנוחות, ולכן חיברתי את חוטי המינוס והפלוס שלו ישירות למקור החשמל של המערכת כולה (מטען USB). החוט השלישי שלו, שמיועד להעברת פולסי השליטה, חובר ישירות לפין מספר 2 בלוח הארדואינו (אפשר גם פין אחר, כמובן). הנה קוד ראשוני שמבצע נפנוף רציף בדגל, מצד לצד, שאותו יש לכתוב לתוכנה של הארדורינו:
הקוד הזה פחות או יותר מדבר בעד עצמו. הפונקציה delay שבסוף מקבלת ערך שמייצג אלפיות שניה, כך שהתורן בעצם מוסט ארבע פעמים בשניה. התנועה היא בת תשעים מעלות כל פעם, בין זווית 0 של ציר הסרבו לזווית 90. בעיקרון, זוויות אלה מקבילות לצירי האורך והרוחב של מארז הסרבו הכחול, כך שהדגל היה אמור לנוע ממצב אופקי לאנכי, אך אפשר להלביש את ראש הפלסטיק על הציר בכל זווית שמתחשק ולהסיט בכך את טווח התנועה למשהו כמו מינוס 45 מעלות עד 45 מעלות. טריק קטן נוסף הוא התרגיל החשבוני לפני ההשהיה, שהופך את הזווית הבאה בתור מאפס לתשעים ובחזרה.
שלב שני: חיבור מודול הבלוטות'
כשאנחנו חושבים על בלוטות', האסוציאציה היא בדרך כלל של אוזניה לסלולרי, או יכולת תקשורת שמובנית לתוך מכשירים מתקדמים. אך בפועל, זהו פרוטוקול שאפשר לממש בכל מיני צורות, כולל רכיבים עצמאיים לגמרי כמו זה שבתמונה למטה. זהו למעשה רכיב תקשורת טורית על גבי בלוטות' ("Bluetooth Serial Module"), שעולה בערך שמונה דולרים באיביי. הוא מתחבר מצד אחד, פיזית, לתקשורת הטורית של הארדואינו, ומצד שני באלחוט לבלוטות' של המחשב, הטאבלט או הסמארטפון.
לרכיב הזה ארבעה פינים בסך הכל: שניים לאספקת חשמל, אחד למידע יוצא (TX) ואחד למידע נכנס (RX). מכיוון שבפרויקט הנוכחי המידע זורם בכיוון אחד בלבד – מהסמארטפון לרכיב הבלוטות' ומשם לארדואינו – נחבר בחוט את ה-TX של הרכיב הזה ל-RX של הארדואינו עצמו (פין מס' 0). עם זאת, חשוב לבצע את החיבור בפועל רק אחרי שהעלינו לארדואינו את קוד התוכנה, אחרת הדבר יפגע בתקשורת עם המחשב שמעלה את הקוד.
שלב שלישי: איי לאב יו, טרמינל
ההתחברות מהסמארטפון לרכיב הבלוטות' פשוטה להפליא: מוצאים ומורידים אחת מאפליקציות טרמינל הבלוטות' החינמיות (למשל BlueTerm הבסיסית), מפעילים ומתחברים לרכיב, שסיסמת ברירת המחדל שלו היא 1234. אפליקציות טרמינל מאפשרות לכם, באמצעות המקלדת הווירטואלית, לשלוח תווי טקסט , והן גם מציגות את המידע החוזר אם יש כזה. במילים אחרות, אם נתחבר לרכיב הבלוטות' מאפליקציית הטרמינל ונכתוב בה "a", הארדואינו יקבל a דרך החיבור הטורי שלו. כל זה נכון, אגב, רק למכשירי אנדרואיד. למוצרי אפל לא פרוצים יש, לפי השמועה, משהו נגד תקשורת טורית חופשית בבלוטות'.
שלב רביעי: רק ב-Israel
אפשר היה לעצור בשלב זה ולהורות לארדואינו לנפנף בדגל בכל פעם שהוא מקבל תו כלשהו. אך כדי לעשות את העסק יותר מעניין ופטריוטי, כתבתי קוד שמחייב את המשתמש להקליד "סיסמה" שלמה – המילה Israel. הדבר מבוצע בעזרת מחרוזת התווים "israel" ששמורה בארדואינו, ומשתנה אינדקס.
בכל פעם שתו חדש מגיע דרך הבלוטות', הארדואינו משווה אותו לתו שבמיקום האינדקס במחרוזת. אם התו שונה (למשל, אם המשתמש כותב isrw), האינדקס חוזר להתחלה. לעומת זאת, אם התו זהה, הארדואינו מקדם את האינדקס באחד ובודק אם הגיע לתו בעל הקוד 0, שנמצא כברירת מחדל בסוף כל מחרוזת בשפת C. אם התו המיוחד הזה נמצא, סימן שכל אלה שהגיעו לפניו היו בסדר הנכון – ואז מופעל קטע התוכנה שמנופף בדגל והאינדקס מאופס.
הקוד המלא נמצא כאן, בבלוג "הבייט הלבן ג'וניור" באתר makers.
ומה הלאה?
דגל בשליטת בלוטות' הוא גימיק חביב, ואם יש לכם ילדים קטנים בבית, תוכלו לראות איך בזכותו הם ילמדו תוך שניות לאיית Israel או כל מילה אחרת שתבחרו. אך לטכנולוגיות והשיטות שהוצגו כאן יש פוטנציאל רחב הרבה יותר. ראשית, השילוב של מודול בלוטות' ושל סמארטפון עם אפליקציית טרמינל יכול ליצור ממשק טקסטואלי נוח מאד למערכות מבוססות מיקרו-בקרים (במקום לחצנים ומסכים זעירים למיניהם). שנית, אפשר לממש באמצעים כאלה מגוון מערכות שדורשות סיסמה או קוד אישי מטווח קרוב – למשל מנעול חשמלי ושאר יישומי "בית חכם".מודול הבלוטות' שהוצג כאן מיועד לשמש כ-Slave בלבד, כלומר הוא אינו יכול ליזום קשר עם מודולים אחרים, ולכן לא ניתן להשתמש בשניים כאלה לתקשורת עצמאית בין שתי מערכות מבוססות ארדואינו. עם זאת, מתכנתי אפליקציות יכולים לעשות איתו קסמים כאמצעי תקשורת זול ופשוט בין האפליקציה שלהם לבין פיתוחי חומרה למיניהם.