13.5. כלי MicroPython

פרויקט MicroPython מספק שרשרת כלים בצד המארח לצד השפה עצמה. שניים מהכלים הללו שימושיים לכל זרימת עבודה של OpenMV cam המתבצעת מחוץ ל-IDE; שניהם מותקנים מ-PyPI בפקודה אחת ושניהם פועלים מול אותו ממשק USB serial / מערכת קבצים שהמצלמה כבר חושפת.

13.5.1. mpremote

mpremote הוא חלופת CLI ל-OpenMV IDE. פקודה אחת מכסה את מה שה-IDE עושה דרך דפדפן הקבצים, הטרמינל וכפתור הרצת הסקריפט שלו: התחברות למצלמה דרך USB serial, הפעלת ה-REPL, העתקת קבצים אל מערכת הקבצים של המצלמה ומתוכה, הרצת סקריפט מצד המארח מול המצלמה מבלי להעלות אותו, והתקנת חבילות צד-שלישי באמצעות mip

$ pip install --user mpremote
$ mpremote                          # interactive REPL
$ mpremote cp main.py :             # upload to cam
$ mpremote run local_script.py      # run host script on cam
$ mpremote ls                       # list cam filesystem
$ mpremote mip install aioble       # install package on cam

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

13.5.2. mpy-cross

mpy-cross הוא המהדר הצולב (cross-compiler) שהופך קובץ מקור .py לקונטיינר בינארי .mpy מוכן לייבוא במצלמה. הידור מראש חוסך מהמצלמה את ניתוח המקור בזמן הייבוא, מקטין את הנפח בדיסק, והוא הדרך היחידה עבור פונקציות מעוטרות ב-@native וב-@viper הזקוקות לבנייה התואמת לארכיטקטורת ה-MCU של המצלמה:

$ pip install --user mpy-cross
$ mpy-cross foo.py
$ mpremote cp foo.mpy :

עבור מודולים מוקפאים המשובצים בתמונת הקושחה ועבור מחיצות ROMFS המשולחות לצדה, אותו כלי פועל אוטומטית כחלק מבניית הקושחה – מערכת הבנייה מפעילה את mpy-cross על כל קובץ .py תחת scripts/ בדרכה לייצור ה-.bin. הפעלה ישירה היא מה שאפליקציה נעזרת בו כשהיא מעוניינת לשלוח .mpy בנפרד מהקושחה, או להפעיל את המהדר מתוך סקריפט בנייה.

חלק mpy-cross של מסמך העזר לקבצי .mpy מכסה את דגלי שורת הפקודה, רמות האופטימיזציה, מטריצת -march, ונקודות הכניסה של מודול ה-Python.