מה צריך לקחת בחשבון כשבוחרים חומרה לפרויקט IoT?

החלטתם לבנות לבד מוצר? מעולה. הנה כמה נקודות שחשוב לדעת לפני שתרכשו חומרה

צילום: עמית עזר

מאת עמית עזר

מפתחים מוצר חדש לתעשייה או אפילו לבית? במאמר הבא אנסה לרכז עבורכם את התהיות העיקריות ואת הנושאים המרכזיים שצריך לשקול כאשר בוחרים את כרטיס המחשוב למוצר שלכם.

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

אז מה הם השיקולים שאנחנו צריכים להכיר כאשר בוחרים את חומרת כרטיס המחשוב למוצר שלנו ?

השיקולים הבאים שאציג, יכולים לפצל אותנו, מנהלי ומפתחי המוצר, לבחירה בין שתי מערכות הפעלה שונות בבסיסן – מערכות הפעלה מבוססות Linux כמו Debian, ומערכות הפעלה מסוג Real Time OS כמו FreeRTOS.

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

מה זה SOM, SOC ו-SBC ואיך מחליטים מה מתאים למוצר שלנו?

SYSTEM ON CHIP או בקיצור SOC, הוא צ’יפ אשר מכיל בתוכו את רוב תפקידיו של המחשב שיש לנו בבית: מעבד, זיכרון, כרטיס רשת ואפילו לוח אם, הכל בצ’יפ אחד; SYSTEM ON MODULE או בקיצור SOM, הוא כרטיס אלקטרוני המכיל SOC ונראה בגודל של כרטיס אשראי ואף קטן יותר, אשר מכיל את היציאות הרלוונטיות במטרה להתחבר לתושבת בשם Carrier Board, אליה נוכל להתחבר עם קונקטורים ופרוטוקולים מוכרים, כגון: USB, HDMI, ETHERNET. ה-SOM לרוב מותאם לפי דרישה, ומאפשר לנו לקבל חומרה עם מאפיינים שונים ויכולות נוספות שיאפשרו לנו לבצע פעולות כמו דחיפה ובקרה של מנועים; SINGLE BOARD COMPUTER או בקיצור SBC, הוא כרטיס מחשב שלם, דמוי לוח אם קטן, המכיל SOC וכל מה שנדרש להרצת התוכנה של המוצר שלנו. כרטיסים מסוג זה מוכרים בעיקר בזכות קהילת ה-prototyping שלה, אשר נהנית ממוצרים מוכנים לפיתוח תוכנה כמו Raspberry Pi. בדיוק כמו חיבור מחשב נייח למסך, מקלדת, עכבר וחשמל, גם פה, זה כל מה שתצטרכו בשביל להתחיל לעבוד.

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

דדליין ותקציב פיתוח

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

האם למוצר יש דרישות חומרה ספציפיות ?

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

בשביל לחסוך עלויות, ניתן להשתמש ב-SBC או SOM, ולצרף אליהם חומרה ייעודית שמריצה מערכת הפעלה מסוג RTOS, לדוגמא: ESP32. כל שישאר הוא ליישם ביניהם תקשורת במטרה להעביר משימות תוכנה ותוצאות ממדידת חיישנים שונים, ובכך לחסוך משמעותית בעלויות פיתוח כרטיס מחשוב מותאם.

זיווד המוצר

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

מתכננים ייצור המוני?

בייצור המוני – עשרות עד מאות אלפי יחידות, הבחירה הטבעית תהיה פיתוח ממדרגת ה-SOC, במטרה להפחית עלויות ולייצר כרטיס מחשוב מותאם למוצר, לדוגמא Apple Watch. 

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

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

זיכרון

יש שני סוגי זיכרונות אחסון בהם נפוץ להשתמש היום בכרטיסי מחשוב Embedded:

כרטיס SD: יתרונות: גמישות – נגמר לכם זיכרון ואתם צריכים עוד מקום להרצת התוכנה על כרטיס המחשוב ? פשוט תחליפו את כרטיס ה-SD בכרטיס עם נפח גדול יותר; ייצור – אין צורך “לצרוב” על כל כרטיס מחשוב את מערכת הפעלה והתוכנה שלכם, אפשר לצרוב או לשכפל אך ורק את כרטיס ה-SD הנוכחי ולהכניסו לחומרה. חסרונות: עלויות – במקרים רבים כרטיס SD יהיה יקר יותר מאשר שימוש בזיכרון eMMC; אורך חיים –  לרוב, כרטיס SD הוא בעל אורך חיים קצר יותר מאשר eMMC. בנוסף, כרטיס SD הוא בעל רגישות רבה יותר לשינוי מתחים ועלול להפסיק לעבוד אפילו לאחר הפסקת חשמל אחת לא צפויה; במקרים מסוימים הכרטיס יכול לקפוץ מהתושבת ולהשאיר את הלקוח עם מוצר בלי תוכנה. בעל המוצר יצטרך לשלם עלויות נוספות לבניית זיווד מתאים לחסימת כרטיס הזיכרון מבריחה החוצה.

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

צ’יפ

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

איך נדע לבחור כרטיס מחשוב עם ה-SOC שהכי מתאים לנו?

  1. Prototyping – נקנה מספר כרטיסי מחשוב מוכנים עם יכולות עיבוד שונות, מסוג – SBC, כמו Raspberry Pi zero w, Beaglebone black  ועוד. נריץ את התוכנה שלנו או פונקציונליות שמדמה את מה שהמוצר שלנו אמור לבצע, וננטר את התנהגות המעבד בעזרת הרצת הפקודה TOP ב-COMMAND LINE של מערכת ההפעלה. תהליך זה ילמד אתכם על המשאבים שהתוכנה שלכם צורכת ויעזור לכם להעריך איזו חומרה תתאים לצרכים שלכם, בהשוואה לזו שכבר ניסיתם.
  2. תעשו גוגל עם השם של ה-SOC שאתם מעוניינים להשתמש בו בשילוב עם חבילות התוכנה העיקריות במוצר שלכם. בכל זאת, מדובר בלינוקס ובחומרה מותאמת, ולכן קיימים לא מעט מקרים בהם תגלו שהחיבור ביניהם מוביל לבאגים שעדיין לא נפתרו.
  3. זיכרון RAM – שום דבר לא אמור להדאיג אתכם פה, רק תזכרו – לכל כרטיס מחשוב יש מערכת הפעלה מבוססת לינוקס מותאמת ובעלת צריכת זיכרון RAM שונה. לכן כדאי לוודא מראש את צריכת זיכרון ה-RAM של התוכנה שלכם בשילוב מערכת ההפעלה.
  4. צריכת סוללה – אם המוצר שלכם תוכנן לפעול על בסיס סוללה נטענת, כדאי לבחור ב-SOC חלש עם מספר ליבות קטן. במקרים רבים ליבה אחת תספיק להפעלת התוכנה של המוצר שלכם ללא שום בעיות.

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

מערכת ההפעלה 

נכון, הפעם לא מדובר על חומרה, אך כן מדובר במרכיב קריטי בבחירת כרטיס מחשוב לפרויקט שלכם. בשונה מהמחשב הביתי שלנו, עבור כל כרטיס מחשוב Embedded, נדרש להתאים ולבצע קסטומיזציה למערכת ההפעלה בשביל שתרוץ כראוי על החומרה שרכשתם. במקרים בהם תבחרו ב-SBC, לרוב, תקבלו מערכת הפעלה מוכנה ומותאמת שתדרוש אך ורק כמה שינויים קוסמטיים שלרוב תוכלו לבצע לבד. אך במקרים בהם תבחרו להשתמש ב-SOM, לרוב, תקבלו רק את ה-SOURCE CODE של מערכת ההפעלה, ותידרשו לבנות את מערכת ההפעלה עם הדרייברים המתאימים של ה-Carrier Board שהרכבתם. לבוחרים במדרגת ה-SOC, התהליך יהיה מורכב יותר וככל הנראה תאלצו לקנות שירות להתאמת מערכת הפעלה לכרטיס המחשוב שיצרתם מחברות המתמחות בכך.

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

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

ואחרי שבחרתם, אל תתמהמהו והזמינו לכם SBC שדומה או אפילו זהה לדרישות אותן הגדרתם.

במידה ותרצו להתחיל ממדרגה מורכבת יותר, יצרניות כרטיסי מחשוב מסוג SOM מוכרות גם Carrier Board בשביל לאפשר לכם לעבוד בנוחות בשלב ה-prototyping ולהגיע להבנות הרצויות בבחירת ה-SOM\SOC בו תרצו להשתמש.

 

הכתב הוא מנכ”ל UpSwift.io

Avatar

כתב אורח

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

הגב

2 תגובות על "מה צריך לקחת בחשבון כשבוחרים חומרה לפרויקט IoT?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
אורי
Guest

Yay!
סופסוף כתבה על embedded, תביאו עוד :))))

עוסק בתחום משיק
Guest
עוסק בתחום משיק

כתבה מעולה. ציפיתי לממבו ג’מבו שיווקי והופתעתי לטובה

wpDiscuz

תגיות לכתבה: