אמבדד למתחילים, 2018: האם יש תחליף לארדואינו?

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

אוסף מיקרו-בקרים ממשפחת PIC של Microchip
אוסף מיקרו-בקרים ממשפחת PIC של Microchip. איפה מתחילים?

בתגובה שעלתה לאחרונה לאותו פוסט שאל המגיב "הדוד משה" האם יצא לי להשתמש מאז ב-STM8, האם הם יכולים להחליף את ה-PIC/AVR המוכרים בפרוייקטים ביתיים של מייקרים, והאם זה כדאי. התשובות הקצרות לזה הן "בקושי", "בדרך כלל כן" ו"לא", אבל כדאי להסתכל על הנושא בהקשר קצת יותר רחב.

מייקרים? תעזבו.

קודם כל, עלינו להפריד בין שני תחומים: מייקינג, ולמידה רצינית של אמבדד. בהכללה גסה, עולם המייקינג הפופולרי אף פעם לא העניק חשיבות רבה להתעמקות ברכיבים; הדגש היה תמיד על התוצרים, וכל קיצור דרך (ספרייה קיימת, לוח פיתוח מוכן או Hack) נחשב ליתרון. בשנים האחרונות נראה שהמגמה הזו התחזקה אף יותר, בגלל תעשיית המוצרים למייקרים והתפשטות ה-IoT. נכון שיש יוצאי דופן, ועדיין – לתחושתי – אם ב-2015 היה קשה לשכנע מייקר טיפוסי לעבור למיקרו-בקר שונה מה-ATmega328P או ה-ATtiny85, כיום ב-2018 קשה יותר לשכנע אותו להתעמק אפילו בשניים האלה.

ולגבי אותם המייקרים שהתגברו על שירת הסירנה ובחרו לעבוד ישירות עם ג'וקים ממשפחת AVR, למשל, גם להם בדרך כלל אין סיבה טובה לעבור למשהו כמו STM8. הם הרי כבר רגילים לכלי עבודה מסוימים, ולמיקרו-בקרים שהם מכירים יוצאות גרסאות חדשות עם יכולות משופרות. למידה של רכיב מסוג אחר היא השקעה לטווחים ולכיוונים שפשוט לא רלוונטיים לרוב המייקרים. למיטב ידיעתי, לפחות, אין למשפחת STM8 יכולת יוצאת-דופן מהותית (כגון ה-FRAM במיקרו-בקרים מסוימים של TI) שיכולה להטות את הכף לטובתם בפרויקט ביתי כלשהו.

לומדים לבד? תעזבו.

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

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

לגבי עקומת הלמידה ללומדים עצמאיים, ההיגיון אומר שכדאי להתחיל בג'וקים פשוטים יחסית, אבל לא הכי פרימיטיביים כי את אלה דווקא די קשה לתכנת. מבחינה זו, ה-STM8 שעל הלוחות הזולים (STM8S103F3P6) יכול להתאים, כמו גם ATtiny85, MSP430G2253 או PIC12F675. אבל כדי להגיע בכלל לעקומת הלמידה צריך למצוא חומרי לימוד, ועבור STM8 רוב החומרים שאפשר למצוא ברשת – ואין הרבה – הם מיושנים (למשל, מסתמכים על תוכנות שכבר אינן זמינות), בתשלום, לא מספיק מקיפים, או מאה ואחת בעיות אחרות. בנוסף, סביבות הפיתוח והקומפיילרים ל-STM8 מוגבלים או פחות נוחים לעומת רוב האופציות האחרות, ולמי שלא מתעסק עם התקנות וקונפיגורציה של תוכנות כאלה על בסיס קבוע מדובר בעוד "פס האטה" שצריך להתגבר עליו.

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

תתחילו כבר.

בין מלכודת הדבש של ארדואינו לבין שדה הקוצים הפדגוגי של STM8 יש טווח גדול של אפשרויות, ולדעתי רכיבי PIC הפשוטים (כגון ה-675' שהזכרתי) נמצאים במקום טוב באמצע. מצד שני, הזהות של הרכיב הראשון שלומדים לא באמת חשובה ואין דבר כזה "מיקרו-בקר מושלם" – לא מבחינת למידה ולא משום בחינה אחרת. מי שיחכה לפתרון שאין בו חסרונות יחכה לנצח. אם אתם באמת רוצים ללמוד, קחו משהו, מה שלא יהיה, ולכו עליו בלי לחשב חשבונות ובלי לעשות לעצמכם הנחות. את כל הדגמים האחרים תוכלו ללמוד אחרי זה והרבה יותר בקלות.

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

תודה רבה על התשובה המפורטת 🙂