דברים חדשים: Synapse SNAP

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

pyXY board
לוח pyXY של SparkFun עם מודול SM700 (לחצו להגדלה)

אם נחשוב על ארדואינו כעל "מערכת אקולוגית" שמבוססת על סביבת פיתוח במחשב ולוח חומרה, אז SNAP היא מערכת אקולוגית שמבוססת על סביבת עבודה למחשב (שנקראת Portal), שני מודולי חומרה או יותר – ורשת אלחוטית שהמודולים האלה מתחזקים בינם לבין עצמם. כלומר, כל כאב הראש של יצירת רשת אלחוטית פשוט נעלם – המודולים דואגים להתחבר זה לזה, לתווך בינם לבין עצמם (Mesh), למנוע שגיאות בהעברת מידע וכו' וכו' – עד כדי כך שאפשר לצרוב תוכנה במודול מרוחק דרך הרשת!

Portal screenshot
צילום מסך של סביבת הפיתוח Portal

בכוונה כתבתי מודולים ולא לוחות. שלא כמו הארדואינו, למוצרי SNAP אין חיבור פשוט ל-USB או לסוללה, וגם הגישה לפינים שלהם לא נוחה במיוחד. הם דומים יותר לג'וק סתם מאשר לארדואינו. בשביל לעבוד איתם יותר בקלות יש לוחות Prototyping של אותה חברה או של חברות אחרות, שהמודולים מתיישבים עליהם. לדוגמה, לוח pyXY של SparkFun, שמגיע עם מודול SNAP מדגם SM700. הלוח הזה הוא בעל חתימה זהה לזו של ארדואינו רגיל, כך שאפשר להשתמש בו בתור Shield לארדואינו או להרכיב עליו Shields אחרים שמיועדים במקור לארדואינו. חשוב רק לשים לב שכל החלקים האלה עובדים ב-3.3V ולא ב-5V כמו הארדואינו הסטנדרטי.

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

שפת SNAPpy אמנם מוחלשת, אך המודולים יכולים לעבוד עם המחשב עצמו בתור "מודול-על", שמסוגל להריץ כל תוכנה שכתובת בפייתון רגילה. במילים אחרות, עבור מי שמכיר את השפה ורוצה לבנות רשת מקומית של חיישנים ובקרה (כגון מערכת אבטחה אלקטרונית או "בית חכם"), רכיבי SNAP הם פתרון מדהים. גם המעבדים שמסתתרים בתוך המודולים חזקים יותר מאלה של הארדואינו הממוצע (המפרט הספציפי תלוי במודול).

ועכשיו לחדשות הרעות: לכל הנוחות הזאת יש מחיר, תרתי משמע. קודם כל, תוכנת Portal אמנם חינמית, אבל לוח pyXY יחיד עולה 70 דולר, וה-SNAP Bridge שמקשר בין המחשב לבין המודולים העצמאיים עולה בסביבות $30 (וזה לפני שדיברנו על מתאם USB בשבילו). בקיצור, היישום הכי בסיסי שאפשר מתחיל בתג מחיר של מאה ומשהו דולרים, ואם בטעות מודול נשרף, לא תמצאו ג'וק חלופי באיביי בחמישה דולרים.

SNAPBridge with USB adapter
מודול RF266PC1 שמשמש כ-SNAP Bridge בין המחשב למודולים האחרים, יושב על לוח מתאם ל-USB (לחצו להגדלה)

שנית, לאנשים שהם לגמרי חסרי נסיון יהיה קשה מאד להיכנס לעניינים. נושאי הרשת האוטומטית והניהול שלה מאפילים על הפונקציונליות הבסיסית של מיקרו-בקר, ומי שרוצה בסך הכל להבהב בנורית LED לראשונה בחייו יעבוד כאן הרבה יותר קשה מאשר עם ארדואינו.

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

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

בדקתי קצת ואת האמת שיש קוד PWM בתוכנה שהוא מובנה כבר.
אבל הבעיה שלי היא איך אני משתמש בו כדי לשלוט בעוצמת האור ?
לא יודע אם אתה מכיר אבל יש את הפעולה poke() שהיא כותבת למקום בזכרון, והם גם משתמשים בפעולה הזאת בקוד שלהם אבל בכל זאת לא כל כך הבנתי איך הם עושים בזה שימוש..

מכיוון שהקוד הוא דיי ענק אני אשלח לך אותו באימייל

אני ראיתי שיש ל – Synapse ארבעה פינים של PWM . השאלה שלי היא כיצד ניתן לקרוא את ערך המתח , כמו שבארדואינו יש את הפעולה analogRead()
האם גם פה יש פעולה דומה?

אני כבר חרשתי על המדריך הזה חחח
בארדואינו יש את הפעולה digitalWrite() שבה אנחנו יכול להשתמש בערכים הניתנים כדי לשלוט בבהירות הנורה.
לא מצאתי כזאת פעולה דומה גם ב Synapse ..
יש לך איזשהו רעיון?

סבבה הבנתי , תודה רבה על העזרה!

לדעתך אפשר להעביר תמונות דרך המודולים?

בהחלט מערכת נהדרת לעבודה!!
שאלה קטנה לי אליך : איך היית מתאר את הSynapse Modules ,כלומר מה זה – מערכת ליצירת קשר אלחוטי?

השאלה היא אם כתיבת התוכנית להעברת תמונות היא פשוטה?
אפשר להשתמש בפעולות הבנויות שהממשק PORTAL מציע או שיש צורך גם להשתמש בפקודות של פייתון?