13.1.4. הרצת סקריפטים#
כפתור ההפעלה – החץ הירוק שמתחת לכפתור החיבור, או Ctrl+R – שולח את הסקריפט שבכרטיסיית העריכה הנוכחית אל המצלמה המחוברת ומריץ אותו. בזמן שסקריפט רץ, כפתור ההפעלה הופך לכפתור עצירה שעוצר אותו. שני הכפתורים האלה הם לב הלולאה של כל פיתוח על המצלמה: עריכה, הפעלה, צפייה, עצירה, ועריכה שוב.
שני פרטים של אותה לולאה חשובים. ראשית, הסקריפט נשלח ל-RAM של המצלמה ומבוצע שם – הפעלת סקריפט אינה כותבת דבר לאחסון המצלמה, והסקריפט נעלם לאחר איפוס. שנית, מה שרץ הוא כרטיסיית העורך הנוכחית, בדיוק כפי שהיא מוצגת, שמורה או לא. אין שלב העלאה נפרד ואין עותק ישן על המצלמה שיכול לאבד סנכרון עם העורך שלך. החירות היחידה שה-IDE לוקח לעצמו היא הסרת ההערות מהעותק שהוא שולח: מקור הסקריפט יושב ב-RAM של המצלמה בזמן שהוא מהודר, והדוגמאות עתירות ההערות קטנות יותר בלעדיהן. שורות לעולם אינן מוסרות, רק מרוקנות, כך שמספרי השורות ב-traceback עדיין תואמים לעורך שלך.
בזמן שסקריפט רץ, פלט ה-print() שלו זורם אל הטרמינל הטורי וכל פריים שהוא לוכד מופיע במציג חוצץ הפריימים (frame buffer), וכל מה שהוא מפרסם כערוץ מופיע בתצוגת Channels. כשסקריפט מעלה חריגה שלא טופלה, ה-traceback מודפס לטרמינל הטורי, ה-IDE מקפיץ את העורך לשורה הבעייתית ומסמן אותה באדום עם השגיאה לצדה – ליישום מרובה-קבצים הוא פותח תחילה את הקובץ הנקוב מכונן המצלמה. הסימון נמחק כשאתה עורך את הקובץ, מריץ שוב או מתנתק. כשסקריפט נעצר, על ידי Stop או בקריסה, תצוגת Channels שומרת על המסך את הערכים האחרונים שפרסם עד שהסקריפט הבא מתחיל.
13.1.4.1. הפיכת סקריפט לקבוע#
כדי לגרום למצלמה להריץ סקריפט ללא ה-IDE – בעת הדלקה, באופן עצמאי, בשטח – אחסן את הסקריפט על המצלמה בשם main.py. Tools → Save open script to OpenMV Cam (as main.py) כותב את כרטיסיית העריכה הנוכחית אל כונן המצלמה תחת שם זה, ומציע בדרך להסיר הערות ולכווץ רווחים – מה שמקטין את הקובץ אך שולח עותק שאינו קריא – ו-Tools → Reset OpenMV Cam מפעיל מחדש את המצלמה כך שהיא נטענת אל הסקריפט המאוחסן. יחד הם מהווים את שלב הפריסה: מאותו רגע המצלמה מריצה את הסקריפט שלך בכל פעם שיש לה חשמל, עם IDE או בלעדיו.
בזמן שמצלמה שאופסה מריצה את ה-main.py המאוחסן שלה, ה-IDE עדיין יכול להתחבר אליה – כאשר Stop Script on Connect/Disconnect מופעל (ברירת המחדל), החיבור עוצר את הסקריפט המאוחסן ומחזיר את השליטה לעורך.
ראה גם
הקפאת סקריפטים אל תוך הקושחה למשמעות של main.py ברצף האתחול של המצלמה, ולהוצאת יישום מוגמר מאחסון הניתן לעריכה לחלוטין.
13.1.4.2. כונן המצלמה#
מערכת הקבצים של זיכרון הפלאש (flash) של המצלמה (וכרטיס SD, כאשר מוכנס אחד) מתחברת על המארח ככונן הבזק USB. Tools → Open OpenMV Cam Drive folder פותח אותו במנהל הקבצים שלך. כאן אתה מעתיק מודולי ספרייה, קובצי מודל, ונכסים שהסקריפט מייבא או טוען, וכאן אתה מאחזר את התמונות והיומנים שהוא שמר. נתיב הכונן מופיע גם בשורת הסטטוס.
קבצים שסקריפט יוצר אינם מופיעים על המארח מיד: המארח שומר במטמון את מערכת הקבצים מהרגע שבו הכונן מתחבר, ולכן תמונת בזק (snapshot) שנשמרת על ידי הסקריפט הרץ נשארת בלתי נראית עד שהכונן מתחבר מחדש. Tools → Reset OpenMV Cam מחבר אותו מחדש – הדרך המהירה להגיע אל מה שהסקריפט בדיוק כתב.
אזהרה אחת: המצלמה והמארח חולקים את מערכת הקבצים הזו, וכתיבה בו-זמנית משני הצדדים עלולה להשחית אותה. העתק קבצים כאשר אף סקריפט אינו כותב לאחסון, והוצא בצורה נקייה לפני שליפת הכרטיס.