13.5. Công cụ MicroPython

Dự án MicroPython đi kèm một chuỗi công cụ phía máy chủ (host-side toolchain) cùng với ngôn ngữ lập trình. Hai trong số các công cụ này hữu ích cho mọi quy trình làm việc với OpenMV cam nằm ngoài IDE; cả hai đều có thể cài đặt từ PyPI bằng một lệnh duy nhất và đều hoạt động trên cùng bề mặt USB serial / filesystem mà cam đã cung cấp sẵn.

13.5.1. mpremote

mpremote là một giải pháp CLI thay thế cho OpenMV IDE. Một lệnh duy nhất bao quát những gì IDE thực hiện qua trình duyệt tệp, terminal và nút chạy script: kết nối với cam qua USB serial, điều khiển REPL, sao chép tệp vào và ra khỏi filesystem của cam, chạy một tập lệnh phía máy chủ trên cam mà không cần tải lên, và cài đặt các gói bên thứ ba bằng 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

Đây là công cụ phù hợp cho các bộ kiểm thử tự động, triển khai không giao diện (headless), các CI script nạp ảnh mới và chạy smoke test, cũng như mọi quy trình làm việc mà việc chạy GUI là không cần thiết. Tài liệu tham khảo mpremote ghi lại mọi lệnh và tùy chọn.

13.5.2. mpy-cross

mpy-cross là trình biên dịch chéo (cross-compiler) chuyển đổi một tệp nguồn .py thành container nhị phân .mpy sẵn sàng để import trên cam. Biên dịch trước giúp cam không phải phân tích cú pháp nguồn khi import, giảm kích thước lưu trữ trên đĩa, và là con đường duy nhất cho các hàm được trang trí @native@viper cần một bản build khớp với kiến trúc MCU của cam:

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

Đối với các mô-đun đóng băng (frozen modules) được tích hợp vào ảnh firmware và các phân vùng ROMFS đi kèm với nó, cùng một công cụ sẽ chạy tự động như một phần của quá trình build firmware -- hệ thống build gọi mpy-cross cho mọi tệp .py trong scripts/ trên đường tạo ra tệp .bin. Lời gọi trực tiếp là thứ mà một ứng dụng cần đến khi muốn phân phối một tệp .mpy tách biệt với firmware, hoặc điều khiển trình biên dịch từ một build script.

Phần mpy-cross trong tài liệu tham khảo tệp .mpy bao gồm các cờ dòng lệnh, các mức tối ưu hóa, ma trận -march, và các điểm đầu vào mô-đun Python.