בפוסט הקודם סיפרתי על בעיה שהתגלתה בהעברת מידע דרך החיבור הטורי (Serial port) בין הארדואינו למחשב. פיזית, המידע עבר דרך כבל USB רגיל, אך זה היה שלב ניסויי בלבד – כי הלקוח שעבורו נבנית המערכת זקוק להעברת מידע אלחוטית. בפוסט זה אסביר איך בוצע המעבר לאלחוט, ואתן מבוא קצרצר לנושא של איתור שגיאות בתקשורת.
ארכיון הקטגוריה: כללי
לתפוס רוצח (נתונים) סדרתי
מי שעוקב אחרי הבלוג יודע שאני לא מחבב ספריות קוד מוכנות. יש לכך שתי סיבות. ראשית, כשמשתמשים בקוד מוכן של מישהו אחר, הנטיה היא פשוט ליישם אותו, וכך מתפספסת כל הלמידה של האופן בו הדברים נעשים באמת. שנית, אין שום אחריות שקוד של מישהו אחר יעבוד בצורה יעילה, או בכל התנאים האפשריים, או בהתאמה מיטבית ליישום הספציפי שלנו – או בכלל!
כמובן, לעתים קרובות אין ברירה אלא להשתמש בקוד מוכן, מפני שהוא מבצע משימה מסובכת מכדי שנכתוב אותה לבד, או שפשוט אין לנו זמן לכך. כשבחרתי בספריות של TurboPower Async Professional למימוש תקשורת טורית בין יישומים שאני כותב בדלפי לבין הארדואינו, אלה היו השיקולים שהנחו אותי. זהו גם קוד מוכר וותיק, כך שהיו לי כל הסיבות לסמוך עליו… עד שעשיתי זאת בפועל.
אתם עומדים לשמוע הרבה על דלפי
והסיבה שאתם עומדים לשמוע הרבה על דלפי היא ספר שהגיע אליי היום בדואר: Delphi XE2 Foundations, ספר חדש לגמרי (יצא לאור ביוני 2012) שמכסה את השפה של סביבת הפיתוח המדהימה הזו במלואה.
דברים חדשים: Zigduino
תקשורת אלחוטית לטווח בינוני-קצר בין יחידות ארדואינו היא "גביע קדוש" קטן עבור מתחילים רבים. יש כל כך הרבה שימושים ללוחות ארדואינו שמדברים בינם לבין עצמם בלי צורך בחוט – אך המימוש של זה בפועל מתגלה בדרך כלל כעסק לא פשוט, או יקר, או שניהם גם יחד. לוח הפיתוח Zigduino מבית Logos Electromechanical LLC הוא פתרון שנוטה לצד היקר של המשוואה, אך יכולות התקשורת שהוא מציע מגוונות ואיכותיות, וברמה הבסיסית הן גם כל כך פשוטות, שמספיקה התנסות קצרה כדי להתאהב בלוח הזה.
מד מרחק אולטרה-סוני עם תצוגת LED
הפרויקט הקטנטן שיוצג כאן הוא תוצר לוואי של תוכנית גרנדיוזית יותר, שמצריכה בין השאר מדידה של מרחק בין חיישן לבין כדור טניס שמתגלגל מולו. אלתרתי את המערכת ואת התוכנה שלה בזריזות, רק כדי לבדוק אם חיישן אולטרה-סוני מסוגל בכלל להתמודד עם כדורי טניס. הסתבר שהוא לא (וזה הגיוני, כי צורת הכדור מפזרת גלי קול לכל עבר במקום להחזירם ישירות, והשערות הרכות שמכסות כדורי טניס מפריעות גם כן להחזרה). אף על פי כן, זו היתה הזדמנות להתנסות בעבודה עם רכיב MAX7219 לניהול תצוגות LED מסוג Seven Segment, ואולי המידע יסייע לחלק מהקוראים בפרויקטים שלהם.
אז קודם כל, הנה המערכת בפעולה:
מפסקי DIP, נגדי SIP
שני סוגי הרכיבים שיוצגו כאן לא באמת קשורים זה לזה, אך אף אחד מהם לא מצדיק פוסט משל עצמו והם מסתדרים יפה ביחד בשביל ההדגמה. אז אם טרם יצא לכם להיתקל בהם, זו ההזדמנות: DIP Switch – מפסקים דו-מצביים קומפקטיים במיוחד במארז נוח להלחמה, ו-Resistor Network בתצורת SIP (או SIL, הכל יוסבר בהמשך) – שורת נגדים בעלי ערכים שווים, במארז מוקטן ועם רגל אחת משותפת. מה הם עושים ובשביל מה צריך אותם?
אילו רכיבים לקנות (ואיפה)?
מכיוון שהשאלה שבכותרת חוזרת, בניסוח כזה או אחר, כמעט מדי יום בפורומים השונים, מצאתי לנכון לכתוב על כך פוסט מיוחד. אם התחלתם לעבוד עם ארדואינו ותוהים אילו רכיבים אלקטרוניים צריכים להיות במגירה שלכם (וכמה מהם), זה הפוסט בשבילכם. אם כבר יש לכם ניסיון בתחום, אשמח להערות, תוספות או סתם הסכמה – לפי הצורך – בתגובות.
המקרה המוזר של הקבל באמצע החוט, חלק ב'
סיימנו את הפוסט הקודם עם בעיה: יציאת ה-DTR של רכיב ה-USB-to-TTL, שאמורה לאתחל את לוח הארדואינו לצורך טעינה של תוכנית חדשה, לא ממלאת את תפקידה. למה זה קורה, ומה אפשר לעשות בנידון?
המקרה המוזר של הקבל באמצע החוט, חלק א'
בפוסט הקודם הזכרתי, במילה או שתיים, ש"הצלחתי" לשרוף רכיב תקשורת USB של אחד מלוחות הארדואינו Duemilanove שלי. זו היתה תקרית מבאסת למדי, ועם זאת אינפורמטיבית: בזכותה למדתי כמה דברים שבהחלט ישמשו אותי בעתיד. בפוסט זה אסביר, קודם כל, איך קרתה התקלה – ולאחר מכן נדבר קצת על רכיבי USB-to-TTL חיצוניים, על בעיית (אי ה)איפוס של הארדואינו בעת השימוש בהם, ומה לכל הרוחות יש לקבל לחפש באמצע חוט חשמל.
מי דופק את האיטלקים?
לפני כמה ימים הגיע בדואר רכש חדש: שני לוחות דמויי ארדואינו Duemilanove, מבית BuyInCoins. שניהם יפים, עובדים, מתנהגים מכל בחינה ממש כמו ארדואינו רגיל – ועולים טיפה פחות מ-12 דולר ליחידה, זאת אומרת פחות מחצי מארדואינו מקורי, וזה עוד לפני שדיברנו על דמי המשלוח של המקוריים. אז מה הבעיה?