דברים חדשים: Zigduino

תקשורת אלחוטית לטווח בינוני-קצר בין יחידות ארדואינו היא "גביע קדוש" קטן עבור מתחילים רבים. יש כל כך הרבה שימושים ללוחות ארדואינו שמדברים בינם לבין עצמם בלי צורך בחוט – אך המימוש של זה בפועל מתגלה בדרך כלל כעסק לא פשוט, או יקר, או שניהם גם יחד. לוח הפיתוח Zigduino מבית Logos Electromechanical LLC הוא פתרון שנוטה לצד היקר של המשוואה, אך יכולות התקשורת שהוא מציע מגוונות ואיכותיות, וברמה הבסיסית הן גם כל כך פשוטות, שמספיקה התנסות קצרה כדי להתאהב בלוח הזה.

Zigduino CloseUp
לוח Zigduino (לחצו להגדלה)

לפני הכל, חשוב להבהיר: זיגדואינו אינו ארדואינו ואפילו לא חיקוי שלו. זהו לוח פרטי של חברה פרטית, משהו שעשוי להתפתח ועשוי באותה מידה להיעלם מהשטח. הוא עובד במתח של 3.3V וגם מבוסס על מיקרו-בקר שלא תמצאו בשום ארדואינו רגיל (Atmega128RFA1 בעל 128K זכרון FLASH לתכנות ו-16K זכרון RAM). עם זאת, סידור חיבורי הפינים בו תואם לזה של לוחות ארדואינו, הוא מסוגל לקלוט מתחים של 5V כקלט בלי להיפגע (ואפילו הרבה יותר מזה, בזכות הגנה מובנית), ומה שהכי חשוב – עם קצת העברה וסידור ידניים של קבצים, אפשר לתכנת אותו כמעט בדיוק כמו את הארדואינו, עם אותה שפה ופקודות, בעזרת אותה סביבת פיתוח!

Zigduino From Above
לוח Zigduino, מבט עליון

כדי להתחיל לעבוד עם זיגדואינו ולבצע בעזרתו תקשורת אלחוטית בסיסית, צריך להשלים מספר שלבים. קודם כל, להשיג שני לוחות. נכון לרגע הכתיבה, נראה שהאפשרות היחידה לרכוש זיגדואינו "מהמדף" היא דרך seedstudio.com. יחידה אחת עולה שם $65, וייתכן שצריך להלחים בה מעט רכיבים.

השלב הבא הוא להוסיף ולהחליף מספר ספריות בתיקיית הארדואינו במחשב. התיקיות להוספה הן אלה שאומרות לסביבת הפיתוח איך לפרש פקודות כלליות בהתאם למיקרו-בקר הספציפי. ניקח את הדוגמה הכי טריוויאלית: סביבת הפיתוח מתריעה כאשר תוכנה גדולה מכדי להיכנס לזיכרון של מיקרו-בקר. איך היא יודעת כמה מקום יש עליו? בעזרת ההגדרות שבקבצים כאלה. כל מי שעבד עם מיקרו-בקרים מסוג ATTiny למיניהם, עם לוח Teensy וכדומה דרך סביבת הפיתוח של ארדואינו כבר הוסיף למעשה תיקיות כאלה.

הספריות שצריך להחליף, לעומת זאת, הן אלה של המהדר (קומפיילר). כברירת מחדל, נכון לזמן הכתיבה, סביבת הפיתוח של ארדואינו מגיעה עם מהדר WinAVR – שהוא, למעשה, בעצמו מעטפת למהדר GCC – בגרסה ישנה יחסית שאינה מסוגלת לעבוד עם המיקרו-בקר של הזיגדואינו. בין קובצי ההורדה של הזיגדואינו יש גרסה שלמה חדשה יותר, ועד כמה שראיתי אין בעיית תאימות בינה לבין לוחות ארדואינו רגילים.

לסיום, עבור מי שמעוניין בפתרון התקשורת הפשוט ביותר, צריך להוסיף לסביבת הפיתוח את הספריה ZigduinoRadio ולכלול אותה בקוד. מכיוון שפוסט זה הוא רק הצגה של לוח ולא מדריך מפורט, לא אכנס לכל הפרטים של ההתעסקות עם התיקיות והספריות. רק אציין שהספריה ZigduinoRadio כוללת, בין שאר התכונות החזקות יותר, גם פונקציונליות כמעט זהה לזו של ספריית Serial המוכרת של הארדואינו: הפונקציות begin, read, write ו- available. הזיגדואינו מטפל בכל הצד הטכני בעזרת מודול ה-802.15.4 והאנטנה המובנים, ולנו נשאר רק לכתוב ולקרוא מצד לצד!

Couple of Zigduinos
שני לוחות Zigduino

הספריה ZigduinoRadio אינה מציעה שליטה בקצב העברת המידע. הפונקציה begin שלה אינה מקבלת כפרמטר מהירות שידור אלא מספר של ערוץ רדיו לשימוש. בדיקה לא רשמית שערכתי הראתה קצב של כ-1.5K בייטים לשנייה, כלומר כ-12,300 ביטים לשניה נטו (אחרי שנפטרים מכל הביטים לביקורת, בדיקת שגיאות וכו' שעוברים בלי שנרגיש בהם). השידור עובר דרך קירות ובין חדרים בדירה בלי בעיה, ואפילו קצת יותר מזה.

להרשמה
הודע לי על
3 Comments
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

שכחת להזכיר שכמובן מדובר בתקשורת zigbee. אני מאמין שקניית משדר/מקלט בנפרד מבקר תחסוך בעלויות 🙂

המחיר הופך את זה ללא כדאי לחלוטין…