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