אין שום דבר רע, אבל מה עושים אם מגיעים לקצה היכולת של כרטיסים אלה וצריכים קצת (או הרבה יותר) ממה שהם יכולים לספק?
דוגמאות?
- אין מספיק זכרון RAM או FLASH לתוכנית שאתם מפתחים?
- אין מספיק קווי DIO לחיבור רכיבים חיצוניים?
- צריכים יציאות אנלוגיות אמיתיות (DAC) ולא רק PWM?
- כח העיבוד של הבקר לא מספיק למשימה?
- התכונות הפנימיות של הבקר לא מספיקות? אין מספיק שעונים? ערוצי UART, I2C, SPI?
- רוצים לפתח בצורה קצת יותר מקצועית, לחלק את העבודה לקבצים נפרדים, לעבוד כמה אנשים על אותו הפרוייקט?
מה עושים?
עוברים לכרטיסי פיתוח משוכללים וחזקים יותר שמבוססים על בקרי/מעבדי ARM. יש לא מעט כאלה בשוק. גם צוות הארדואינו מבינים את הצורך ומוציאים כרטיסים חזקים כמו DUE, M0, Zero וכו'.
יש גם כרטיסים פופולריים ממשפחת Teensy במידות קטנות יחסית ועם יכולות משוכללות, אבל לוקחים את האנשים הרחק מצורת ה-Arduino המוכרת והמתאימה לתוספות רבות שקיימות בשוק. אם אתם לא חייבים את הצורה הפיזית של ה-UNO או שיכולים להסתדר עם חיבור של הרכיבים ע"י הלחמות, כרטיסים אלה יכולים להיות פתרון לא רע בכלל:
יש גם כרטיסים אחרים שמבוססים על רכיבים ממשפחת SAMD שנותנת הצצה על עולם ה-ARM לכרטיסי פיתוח:
אבל הדובדבן שבקצפת הם ללא ספק כרטיסי פיתוח ממשפחת NUCLEO של חברת STMicroelectronics. היצע המגוון של כרטיסים המבוססים על מעבדי ARM עם יכולות שונות, הדגמים החזקים פועלים בתדרים של 100-200MHz, כמויות לא מבוטלות של זכרון, יכולות פנימיות מרובות ומשוכללות. יש דגמים שמצטיינים במיוחד בחיסכון בצריכת הזרם ויכולים לפעול על סוללת כפתור במשך זמן ממושך. ומה שהכי מעניין זה שהם מגיעים בתצורה פיזית דומה לכרטיסי Arduino הפופולריים. לכרטיסים הגדולים שבסדרה יש מחברים שהיצרן מכנה בשם ST Morpho המספקים גישה לכל הקווים של המעבד, מה שמרחיב מאד את מספר הקווים לחיבור הרכיבים החיצוניים ואת היכולות של הכרטיסים.
סביבת פיתוח של הארדואינו הפכה להיות מאד פופולרים בתחום המייקרים למשימות פשוטות וכל הכרטיסים שפונים לתחום זה מותאמים לעבודה בסביבה זו. אבל הסביבה נחשבת לדי מוגבלת למי שצריך לעבוד על פרוייקטים משוכללים יותר, בהם התוכנה צריכה להתחלק לכמה קבצים, לאפשר עבודה של יותר מאדם אחד על אותו הקובץ וכו'.
כל הכרטיסים שהצגתי כאן יכולים להיות מתוכנתים בסביבות פיתוח אחרות, כאלה שמתבססים על מהדרים (compilers) חיצוניים כמו GCC למשל.
יש גם סביבות פיתוח מודרניות ומשוכללות, כמו IAR™, Keil® ואחרים. אבל יש סביבת עבודה נוספת ופופולרית לא פחות מסביבת Arduino למי שעובד עם מעבדי ARM והיא mBed. תמיכה במגוון רחב של כרטיסים, ספריות לרכיבים הנפוצים בשוק, ממשק נוח ומותאם לפרוייקטים מורכבים ודבר לא פחות חשוב - הקלות בה מתבצעת הצריבה של הכרטיסים.
הכרטיסים שתומכים בסביבה זו מציגים כונן זכרון כשהם מחוברים למחשב, לכונן זה מעתיקים את התוצר של סביבת הפיתוח וזהו, הכרטיס צרוב!
רוב כרטיסי ה-NUCLEO נתמכים בסביבת mBed, חלק מ-Teensy גם, כך שאני ממליץ מאד להתנסות בכרטיסים אלה בסביבת ה-mBed.
כמו שאתם רואים, תחום כרטיסי הפיתוח משתכלל ויש עולם שלם מעבר לכרטיסי ה-Arduino...