13.1.4. הרצת סקריפטים

כפתור ההפעלה – החץ הירוק שמתחת לכפתור החיבור, או Ctrl+R – שולח את הסקריפט שבכרטיסיית העריכה הנוכחית אל המצלמה המחוברת ומריץ אותו. בזמן שסקריפט רץ, כפתור ההפעלה הופך לכפתור עצירה שעוצר אותו. שני הכפתורים האלה הם לב הלולאה של כל פיתוח על המצלמה: עריכה, הפעלה, צפייה, עצירה, ועריכה שוב.

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

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

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 מחבר אותו מחדש – הדרך המהירה להגיע אל מה שהסקריפט בדיוק כתב.

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