14.5. Összegzés

Végigjártad egy kamera életciklusát a működő, asztali szkripttől a kiszállított termékig:

  • Egyedi firmware-buildek – a fejlesztői környezet, a firmware-kép forrásból való felépítése, annak egy kamerára flashelése, valamint a hibakeresési útvonal a VS Code Cortex-Debugtól a parancssori gdbrunner eszközig, amikor valami nincs rendben a firmware oldalán.

  • Az alkalmazás kiszállítása – az alkalmazáskód firmware-be sütése befagyasztott modulok révén, az eszközök ROMFS-képbe sütése, valamint a kikeresési sorrend, amely meghatározza, hogy a futtatókörnyezet egy fájl melyik példányát tölti be ténylegesen indításkor. Az ebből adódó felosztás: boot.py a REPL előtti környezet beállításához, main.py az alkalmazás belépési pontjaként, befagyasztott main.py a belépéshez és ROMFS minden máshoz.

  • Megerősítés gyártáshoz – egy ismert útvonalra író logging könyvtár, egy fő-ciklus iterációnként egyszer etetett machine.WDT, egy legfelső szintű try / except, amely az összeomlásokat naplózott eseményekké alakítja az újraindítások helyett, fájlrendszer-higiénia, amely gyorsan tartja a fájlműveleteket, ahogy az alkalmazás hónapok alatt a terepen rekordokat halmoz fel, és – ha a termék megköveteli – flash-kiolvasás-védelem.

  • Haladó anyag – TLS-tanúsítványok azokhoz a kamerákhoz, amelyeknek hálózati szolgáltatások felé kell hitelesíteniük magukat és titkosítaniuk a forgalmat.

Egy kiszállított kamerán mindez a helyén van: az alkalmazáskódja a firmware-képből fut, a watchdogja fő-ciklus iterációnként egyszer kap etetést, a naplója egy dátumozott könyvtárba kerül az SD-kártyán, és – ha a termék megköveteli – a flashe le van zárva a kiolvasás ellen.

14.5.1. Hogyan tovább

A gyártás a tananyag utolsó fejezete. Innentől a dokumentáció referenciaanyagokra oszlik:

  • A könyvtári referencia az „mi ennek a hívásnak a pontos neve” betűrendes nézete a kamera által elérhetővé tett minden modulhoz – machine, logging, os, csi, image, ml és a többi.

  • A kártyánkénti gyors referencia oldalak az OpenMV termékvonal minden kamerájának sajátosságait fedik le – lábkiosztások, felcsatolható buszok, kártyaazonosítók, perifériák elérhetősége, és azok az apró eltérések, amelyek számítanak, amikor az alkalmazásnak egy adott alkatrészre kell kerülnie.

  • Az érzékelő referencia oldalak és a bővítőkártya referencia oldalak az egyes képérzékelőket és kiegészítő bővítőkártyákat fedik le, amelyeket egy kamera hordozhat – az alkatrészenkénti specifikációkat, lábkiosztásokat és megjegyzéseket, amelyekre az alkalmazásnak szüksége van az érzékelők és bővítőkártyák kiválasztásakor egy buildhez.

  • A MicroPython nyelvi referencia magát a nyelvet fedi le – a CPythontól való szintaktikai eltéréseket, az implementációs sajátosságokat, amelyek számítanak, amikor egy szkript a kettő határán mozog, valamint a soron belüli assembler referenciát arra a ritka esetre, amikor a Python túl lassú.

A tananyag az út az „új kamera van a kezemben” állapottól a „kiszállítottam egy terméket” állapotig. Innentől a kamera egy nagyobb rendszer egyik darabja, amelyért az alkalmazás felel, és a munka már magának az alkalmazásnak a dolga.