14.5. סיכום

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

  • בנייות קושחה מותאמות אישית – סביבת הפיתוח, בניית קובץ הקושחה מקוד המקור, צריבתו על מצלמה, ונתיב הניפוי מ-VS Code Cortex-Debug ל-gdbrunner בשורת הפקודה כאשר משהו משתבש בצד הקושחה.

  • שליחת היישום – צריבת קוד היישום לתוך הקושחה באמצעות מודולים מוקפאים, צריבת נכסים לתוך קובץ ROMFS, וסדר החיפוש שקובע איזה עותק של קובץ מנגנון הריצה טוען בפועל באתחול. החלוקה שנובעת מכך: boot.py להגדרת סביבה לפני ה-REPL, main.py כנקודת הכניסה של היישום, main.py מוקפא לכניסה ו-ROMFS לכל השאר.

  • הקשחה לייצור – ספריית logging שנכתבת לנתיב ידוע, machine.WDT שמוזן פעם אחת לכל איטרציה של הלולאה הראשית, try / except ברמה העליונה שהופך קריסות לאירועים מתועדים במקום איתחולים, היגיינת מערכת קבצים ששומרת על פעולות קבצים מהירות ככל שהיישום צובר רשומות במשך חודשים בשטח, ו– כאשר המוצר דורש זאת – הגנת קריאה של זיכרון הפלאש (flash).

  • חומר מתקדם – תעודות TLS למצלמות שצריכות לאמת מול שירותי רשת ולהצפין מולם תעבורה.

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

14.5.1. לאן להמשיך מכאן

ייצור הוא הפרק האחרון של המדריך. מכאן התיעוד מתפצל לחומר עזר:

  • חומר עזר הספרייה הוא התצוגה האלפביתית של ”מה השם המדויק של הקריאה הזו“ של כל מודול שהמצלמה חושפת – machine, logging, os, csi, image, ml, והשאר.

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

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

  • חומר העזר של שפת MicroPython מכסה את השפה עצמה – הבדלי תחביר מ-CPython, הפרטים הספציפיים למימוש שחשובים כאשר סקריפט מתפרס על פני השניים, וחומר העזר של האסמבלר המוטמע למקרה הנדיר שבו Python איטית מדי.

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