14.5. Shrnutí

Prošli jste životním cyklem kamery od funkčního skriptu na pracovním stole až po dodaný produkt:

  • Vlastní buildy firmwaru – vývojové prostředí, sestavení firmwarového obrazu ze zdrojového kódu, jeho nahrání do kamery a ladicí cesta od VS Code Cortex-Debug k příkazové řádce gdbrunner, když je něco v nepořádku na straně firmwaru.

  • Dodání aplikace – zapečení aplikačního kódu do firmwaru pomocí frozen modulů, zapečení zdrojů do obrazu ROMFS a pořadí vyhledávání, které určuje, kterou kopii souboru runtime při startu skutečně načte. Výsledné rozdělení: boot.py pro nastavení prostředí před REPL, main.py jako vstupní bod aplikace, frozen main.py pro vstup a ROMFS pro vše ostatní.

  • Zpevnění pro produkci – knihovna logging zapisující na známou cestu, machine.WDT napájený jednou za každou iteraci hlavní smyčky, try / except na nejvyšší úrovni, který mění pády na zalogované události namísto resetů, hygiena souborového systému udržující operace se soubory rychlé, jak aplikace v terénu po měsíce hromadí záznamy, a – když to produkt vyžaduje – ochrana proti čtení flash paměti.

  • Pokročilý materiál – TLS certifikáty pro kamery, které se musí autentizovat vůči síťovým službám a šifrovat s nimi provoz.

Dodaná kamera má toto vše na svém místě: její aplikační kód běží z firmwarového obrazu, její watchdog je napájen jednou za každou iteraci hlavní smyčky, její log přistává v datovaném adresáři na SD kartě a – když to produkt vyžaduje – její flash paměť byla uzamčena proti čtení.

14.5.1. Kam dál

Produkce je poslední kapitolou tutoriálu. Odtud se dokumentace dělí na referenční materiál:

  • Referenční příručka knihoven je abecední pohled „jaký je přesný název tohoto volání“ na každý modul, který kamera nabízí – machine, logging, os, csi, image, ml a další.

  • Stránky rychlého přehledu pro jednotlivé desky pokrývají specifika každé kamery v produktové řadě OpenMV – rozložení pinů, připojitelné sběrnice, ID desek, dostupnost periferií a drobné rozdíly, na kterých záleží, když aplikace musí běžet na konkrétní součástce.

  • Referenční stránky senzorů a referenční stránky shieldů pokrývají jednotlivé obrazové senzory a přídavné shieldy, které kamera může nést – specifikace jednotlivých součástek, rozložení pinů a poznámky, které aplikace potřebuje při výběru senzorů a shieldů pro daný build.

  • Jazyková referenční příručka MicroPython pokrývá samotný jazyk – rozdíly v syntaxi oproti CPython, specifika implementace, na kterých záleží, když se skript pohybuje mezi oběma, a referenci inline assembleru pro vzácné případy, kdy je Python příliš pomalý.

Tutoriál je cesta od „mám novou kameru v ruce“ k „dodal jsem produkt“. Odtud je kamera jednou součástí většího systému, za který je zodpovědná aplikace, a samotná práce je věcí aplikace.