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