מבין כל התחביבים הטכניים/טכנולוגיים שאדם יכול לבחור לעצמו, תכנות הוא אחד הזולים, אם לא הזול ביותר. מחשב הרי כבר יש בכל בית, סביבות פיתוח מורידים בחינם, ומדריכים ועזרה אונליין אפשר לקבל מיידית ובחופשיות דרך האינטרנט – שנמצאת גם כן בכל בית. אלקטרוניקה, לעומת זאת (וכאן נדבר ספציפית על ארדואינו), מחייבת את החובב להשיג רכיבים פיזיים וזה עולה כסף.
אז כמה, בעצם, זה עולה? איפה תחביב כזה עומד בהשוואה, נניח, לגיימינג או לטיסנאות? בפוסט זה אנסה לתת מספר הערכות גסות עבור מי ששוקל אם להיכנס לתחום (או מנסה לשכנע את ההורים לקנות לו…) – והקוראים שכבר עברו את התהליך מוזמנים לתרום מידע מנסיונם האישי.
לא, האקרים גרמניים לא השתלטו על הבלוג – פשוט חזרתי מחופשה קצרה באירופה. עם הטאבלט הבסיסי וחיבור האינטרנט הקלוש ברוב המקומות, לא יכולתי לעשות הרבה יותר מאשר לראות ולאשר תגובות חדשות לפוסטים – אבל אל תדאגו, זה לא שהיו חסרים דברים אחרים לראות ולעשות… 😉
בגלל התחייבויות אחרות בעולם האמיתי, הבלוג ייצא בקרוב לחופשה קצרה (באמת קצרה, לא לדאוג). אני אנצל את ההודעה הזו כדי לדבר קצת על העתיד – טוב, לא העתיד בהא הידיעה, אלא פשוט העתיד של הבלוג. ראשית, הנה דברים שנשארו פתוחים ושאני אשלים כשהבלוג יחזור לפעילות. אם יש משהו שהזכרתי בעבר ושכחתי, אל תהססו להזכיר לי:
עקב בקשת הקהל (וכאילו שחסרים לי פרויקטים אחרים להשלים), החלטתי לפתוח בפרויקט ארדואינו נוסף: Readuino, קורא הספרים האלקטרוני. המטרה היא לא ליצור מתחרה ל-Kindle של אמאזון אלא פשוט להדגים, באמצעות יישום בעל משמעות, טכניקות ועבודה עם כרטיסי SD.
קורא כרטיסים סטנדרטי למיקרו-קונטרולרים
בהתחשב במורכבות "מאחורי הקלעים" של העבודה עם מערכת קבצים, השילוב בין ארדואינו לקורא הכרטיסים הוא פשוט להפליא; אבל הפשטות הזו היא יחסית, ויש כמה דברים שצריך להבין ולהפנים לפני שאפשר להתחרע על נפח הזיכרון העצום שהכרטיסים הללו מעניקים. בפוסט זה נכסה, מאד בקצרה, את חומר הרקע החיוני, וניצור יישום ארדואינו ראשוני שמציג רשימה של הקבצים שנמצאים בתיקיה הראשית בכרטיס SD. מוכנים?
אם להאמין לשמועות, דגם חדש של ארדואינו – Arduino Leonardo – עומד להופיע בשוק בקרוב מאד. האם הוא טוב יותר מדגמי Duemilanove ו-Uno? כן. האם שווה לחכות לו? לא. איך זה יכול להיות?
אחרי שהצגתי בקצרה את דגם מחסום הזרוע, הגיע הזמן להסתכל מקרוב יותר ולהבין איך בדיוק הוא עובד. אמנם אינני יכול להציג הוראות הרכבה ותכנות מדויקות (כל הפרויקט התבסס על אלתורים ו"מציאות"), אך בהחלט יהיה כאן די מידע לכל מי שרוצה לבנות מתקן דומה.
מכיוון שאין טעם לדבר על התוכנה לפני שמבינים עם מה היא עובדת, פוסט זה יעסוק בחלקים והרכיבים בהם השתמשתי, ועל התוכנה נדבר בהזדמנות אחרת. אבל לפני הכל, הנה סרטון הדגמה של המחסום בפעולה:
דגם מחסום הזרוע שבתמונה הוא צעצוע שאני מכין לבני הבכור (עוד מעט בן חמש). הוא אוהב מאד מחסומים ושערים אוטומטיים למיניהם, וכששמעתי לראשונה על הארדואינו, זה היה הפרויקט הראשון שעלה בדעתי. כמובן שבאותו זמן היו חסרים לי ידע טכני וחומרים מתאימים, אך עם הזמן צברתי את כולם, והדגם קרוב להשלמתו.
דגם מחסום זרוע לילדים, מבוסס ארדואינו ועם שלט רחוק – לחצו להגדלה
למעשה, זוהי הגרסה השניה של המחסום. הגרסה הראשונה היתה מבוססת על אותם חומרים וחומרה, אך לא הגיבה בצורה מספיק מדויקת לטעמי, ועל כן חיווטתי הכל מחדש וכתבתי תוכנה חדשה מאפס. הדבר היחיד שחסר כעת הוא שלט רחוק נוח: המשדר כבר קיים ועובד, אך הוא זקוק לקופסה שתהיה מתאימה לידיים של ילד. אני אפרט על הפרויקט הזה ואציג סרטונים בעתיד. בינתיים, הנה הצצה קטנה למפרט הטכני והפונקציונלי שלו:
כולם יודעים של-ATmega328, המיקרו-בקר שבלב לוחות הארדואינו הנפוצים, יש 32 קילובייט של זכרון Flash לשמירת הקוד המקומפל. כולם יודעים גם שיש לו 2 קילובייט של זכרון RAM, וליתר דיוק SRAM, לאחסון זמני של משתנים ומידע אחר (עד שהארדואינו מנותק מזרם החשמל). אבל אם תסתכלו היטב במפרט של הג'וק הזה תראו שם גם קילובייט אחד של EEPROM. מה זה? מה זה נותן? ואיך מגיעים לשם? כל זאת ועוד, אחרי התמונה…
אז ראינו איך שולטים בשתי נוריות LED נפרדות באמצעות שני חוטים בלבד, והכללנו את השיטה למספר גדול יותר של נוריות (שיטה שמכונה, כך למדתי בדיעבד, Charlieplexing). כעת הגיע הזמן לעסוק בתכונה חשמלית מעניינת נוספת של נוריות ה-LED, שמאפשרת לנו להשתמש בהן בתור חיישני אור!
בפוסט זה אתייחס בעיקר לפן המעשי וה"מלוכלך" של השימוש. אפרופו, כל שימוש כזה יהיה בהכרח "מלוכלך": היעילות והאמינות של נוריות ה-LED בתור חיישני אור נמוכה, ואם הפרויקט שלכם רציני, עשו לעצמכם טובה והשיגו חיישן נורמלי.
זה עבד! בדיוק לפי התוכנית, ועם מספר נמוך להפתיע של תקלות ובאגים בתוכנה ובחומרה, הצלחתי לחבר את הארדואינו אל מקלדת ה-TI99/4A העתיק ולקרוא ממנה הקשות מקשים בזמן אמת (ובעזרת שלושה פינים בלבד, אם לא סופרים את הפלוס וה-Ground). לפני שניכנס לפרטים, הנה הדגמה חיה: