13.5. MicroPython alati

Projekt MicroPython uz sam jezik isporučuje i lanac alata za rad na računalu domaćinu. Dva od tih alata korisna su za svaki tijek rada s OpenMV kamerom koji se odvija izvan IDE-a; oba se instaliraju s PyPI-ja jednom naredbom i oba rade s istim USB serijskim / datotečnim sučeljem koje kamera već izlaže.

13.5.1. mpremote

mpremote je CLI alternativa za OpenMV IDE. Jedna naredba pokriva ono što IDE radi kroz svoj preglednik datoteka, terminal i gumb za pokretanje skripte: povezivanje s kamerom putem USB serijske veze, upravljanje REPL-om, kopiranje datoteka u i iz datotečnog sustava kamere, pokretanje skripte s računala domaćina na kameri bez njezina prenošenja te instaliranje paketa trećih strana pomoću 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

Ovo je pravi alat za automatizirane testne sustave, postavljanja bez zaslona, CI skripte koje upisuju svježu sliku i pokreću dimni test (smoke test) te svaki tijek rada u kojem je pokretanje grafičkog sučelja pretjerano. mpremote referenca dokumentira svaku naredbu i opciju.

13.5.2. mpy-cross

mpy-cross je unakrsni prevoditelj (cross-compiler) koji izvornu datoteku .py pretvara u binarni spremnik .mpy spreman za uvoz na kameru. Prevođenje unaprijed štedi kameru od raščlanjivanja izvornog koda prilikom uvoza, daje manji otisak na disku i jedini je put za funkcije označene dekoratorima @native i @viper kojima je potrebna izgradnja usklađena s MCU arhitekturom kamere:

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

Za zamrznute module ugrađene u sliku ugrađenog programa (firmware) i za ROMFS particije isporučene uz nju, isti se alat pokreće automatski kao dio izgradnje ugrađenog programa (firmware) – sustav za izgradnju poziva mpy-cross nad svakom .py datotekom unutar scripts/ na putu prema stvaranju .bin datoteke. Izravnom se pozivu pribjegava kada aplikacija želi isporučiti .mpy odvojeno od ugrađenog programa (firmware) ili upravljati prevoditeljem iz skripte za izgradnju.

Odjeljak mpy-cross u referenci za .mpy datoteke pokriva zastavice naredbenog retka, razine optimizacije, -march matricu i ulazne točke Python modula.