13.5. เครื่องมือ MicroPython

โปรเจกต์ MicroPython มาพร้อมกับ toolchain ฝั่งโฮสต์ควบคู่กับตัวภาษาเอง สองในเครื่องมือเหล่านั้นมีประโยชน์สำหรับเวิร์กโฟลว์ OpenMV cam ใดก็ตามที่ทำงานนอก IDE ทั้งคู่ติดตั้งจาก PyPI ด้วยคำสั่งเดียวและทั้งคู่ทำงานกับพื้นผิว USB serial / filesystem ที่ cam เปิดเผยอยู่แล้ว

13.5.1. mpremote

mpremote คือทางเลือก CLI แทน OpenMV IDE คำสั่งเดียวครอบคลุมสิ่งที่ IDE ทำผ่านเบราว์เซอร์ไฟล์ เทอร์มินัล และปุ่มรันสคริปต์ ได้แก่ เชื่อมต่อกับ cam ผ่าน USB serial ควบคุม REPL คัดลอกไฟล์เข้าและออกจากระบบไฟล์ของ cam รันสคริปต์ฝั่งโฮสต์กับ cam โดยไม่ต้องอัปโหลด และติดตั้งแพ็กเกจจากบุคคลที่สามด้วย 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

นี่คือเครื่องมือที่เหมาะสมสำหรับชุดทดสอบอัตโนมัติ การปรับใช้แบบ headless สคริปต์ CI ที่แฟลชภาพใหม่และรันการทดสอบเบื้องต้น รวมถึงเวิร์กโฟลว์ใดก็ตามที่การเรียกใช้ GUI นั้นมากเกินความจำเป็น เอกสารอ้างอิง mpremote จัดทำเอกสารทุกคำสั่งและตัวเลือก

13.5.2. mpy-cross

mpy-cross คือ cross-compiler ที่แปลงไฟล์ต้นฉบับ .py ให้เป็นคอนเทนเนอร์ไบนารี .mpy ที่พร้อมสำหรับการ import บน cam การคอมไพล์ล่วงหน้าช่วยประหยัด cam จากการแยกวิเคราะห์ต้นฉบับขณะ import ให้พื้นที่บนดิสก์เล็กลง และเป็นเส้นทางเดียวสำหรับฟังก์ชันที่ตกแต่งด้วย @native และ @viper ที่ต้องการการ build ที่ตรงกับสถาปัตยกรรม MCU ของ cam:

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

สำหรับโมดูลที่ฝังอยู่ใน firmware image และพาร์ติชัน ROMFS ที่จัดส่งมาพร้อมกัน เครื่องมือเดียวกันจะทำงานโดยอัตโนมัติเป็นส่วนหนึ่งของการ build เฟิร์มแวร์ -- ระบบ build จะเรียกใช้ mpy-cross กับทุกไฟล์ .py ภายใต้ scripts/ ระหว่างทางไปยังการสร้าง .bin การเรียกใช้โดยตรงคือสิ่งที่แอปพลิเคชันใช้เมื่อต้องการจัดส่งไฟล์ .mpy แยกต่างหากจาก firmware หรือขับเคลื่อน compiler จาก build script

ส่วน mpy-cross ในเอกสารอ้างอิงไฟล์ .mpy ครอบคลุมแฟล็ก command-line ระดับการปรับให้เหมาะสม เมทริกซ์ -march และจุดเข้าโมดูล Python