13.5. أدوات MicroPython

يأتي مشروع MicroPython مع سلسلة أدوات تعمل على جهاز المضيف إلى جانب اللغة نفسها. اثنتان من هذه الأدوات مفيدتان لأي سير عمل مع كاميرا OpenMV يجري خارج الـ IDE؛ وكلتاهما تُثبَّتان من PyPI بأمر واحد وتعملان مع الواجهة نفسها الخاصة بالاتصال التسلسلي عبر USB / نظام الملفات التي تكشفها الكاميرا بالفعل.

13.5.1. mpremote

mpremote هو بديل سطر الأوامر لـ OpenMV IDE. يغطي أمر واحد ما يقوم به الـ IDE من خلال متصفح الملفات والطرفية وزر تشغيل البرنامج النصي: الاتصال بالكاميرا عبر التسلسلي على USB، وقيادة الـ 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 هو المُترجِم المتقاطع الذي يحوّل ملف مصدر .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.