קריאה של מתח חשמלי מפוטנציומטר באמצעות הפקודה analogRead היא אחד הפרויקטים הראשונים והבסיסיים ביותר למתחילים בארדואינו, אך מתחת למכסה המנוע של ההמרה מאנלוגי לדיגיטלי – בארדואינו ובמיקרו-בקרים באופן כללי – מסתתר מוקש קטן שאם לא תיזהרו, יעשה לכם צרות גדולות.
כידוע, שימוש במשתנים בעלי נקודה עשרונית (floating-point) אינו מומלץ במיקרו-בקרים טיפוסיים, מכיוון שכל פעולה שנעשית איתם גוזלת זמן רב בהרבה מפעולה מקבילה על מספרים שלמים (integer) . מה שקצת פחות ידוע הוא שיש לעבודה איתם גם מחיר כבד בדרישות הזיכרון. הנה דוגמה מעשית קטנה.
קוד ב-Atmel Studio (סתם בשביל להוסיף קצת צבע לפוסט – אל תנסו לקרוא את זה…)
בפוסט זה אסביר איך יצרתי, באמצעות ארדואינו, שידור תואם לפרוטוקול של PT2262, ואציג את הבדיקות שביצעתי עם המערכת הזו כדי לבחון אספקטים מסוימים בהתקפת OpenSesame החדשה של ההאקר סמי קמקר.
לפני חודש ומשהו דיברתי על צמד הג'וקים PT2262 ו-PT2272, שיכולים להוות בסיס אמין וזול למערכת תקשורת אלחוטית חד-סטרית מינימלית. בפוסט זה נדבר על האפשרות לחקות את אופן הפעולה שלהם באמצעות מיקרו-בקרים – ונפתח בשאלה המתבקשת: בשביל מה?
מנוף הצעצוע החשמלי של הילדים היה במצב לא טוב: הצידוד שלו הפסיק לעבוד, וחלק קטן-אבל-חשוב נשבר באחד ממקטעי הצריח (ככה, מסתבר, נקראת ה"רגל" של מנופי עגורן כאלה). בדיקה יסודית של הנזק העלתה פתרון מעשי אחד בלבד – טכניקת ריתוך הפלסטיק בסיבוב.
במקביל לסדרת הספרים Platform Studies, בה מציגים פלטפורמות מחשוב קלאסיות בהקשרים רחבים, סדרת Software Studies של MIT מתיימרת להציג את הקוד עצמו – מה שמתכנתים/ות יוצרים – בהקשרים היסטוריים, תרבותיים, כלכליים ועוד. הספר שאסקור כאן, מסדרה זו, הולך לקיצוניות גדולה עוד יותר ומתבונן בשורת קוד אחת ויחידה: תוכנת BASIC זעירה שמציירת מעין מבוך אינסופי על מסך הקומודור 64 . האם אפשר לומר על תוכנה שכזו מספיק דברים מעניינים בשביל למלא ספר שלם?
זהו סיפור של תעלומה ומסתורין, בו חקירה מקיפה ועקשנית מצליחה לחשוף כנגד כל הסיכויים את האמת מאחורי הבלתי-אפשרי לכאורה, ולהחזיר לחיים מקרה אבוד. או, במילים פשוטות יותר, איך תיקנתי לוח ארדואינו מקולקל.
בניגוד למה שנהוג לפעמים לחשוב (ומה שחשבתי בעצמי עד לא מזמן), ארדואינו הוא לא שער לעולם ה-Embedded אלא עולם בפני עצמו. מה מאפיין את העולם הזה, ואיזו מטרה בעצם הוא משרת?
לאחרונה קיבלתי לבדיקה שני קיטים (מתוך חמישה) שנקנו במזרח הרחוק. כל קיט כולל מיקרו-בקר ATmega328P-PU עם Bootloader צרוב מראש של ארדואינו Uno, תושבת, מתנד גביש 16MHz עם שני קבלים קרמיים מתאימים, וכן מייצב מתח 7805 סטנדרטי עם שני קבלים אלקטרוליטיים לייצוב הכניסה והיציאה. הקונה לא הצליח לגרום לכל אלה לעבוד כ"ארדואינו על מטריצה". אז איפה הבעיה?