14.5. Підсумок

Ви пройшли весь життєвий цикл камери від робочого скрипта на робочому столі до готового продукту:

  • Збірки власної мікропрограми – середовище розробки, збірка образу мікропрограми з вихідного коду, прошивка камери та шлях налагодження від VS Code Cortex-Debug до gdbrunner у командному рядку, коли щось йде не так на боці мікропрограми.

  • Відправка застосунку – вбудовування коду застосунку у мікропрограму через заморожені модулі, вбудовування ресурсів у образ ROMFS та порядок пошуку, що визначає, яку копію файлу середовище виконання фактично завантажує під час запуску. Розподіл, що виникає: boot.py для налаштування середовища до REPL, main.py як точка входу застосунку, заморожений main.py для точки входу і ROMFS для всього іншого.

  • Підготовка до виробництва – бібліотека logging, що записує у відомий шлях, machine.WDT, що отримує сигнал раз на кожну ітерацію основного циклу, конструкція try / except на верхньому рівні, яка перетворює збої на зареєстровані події замість перезавантажень, гігієна файлової системи, що забезпечує швидкість файлових операцій у міру накопичення записів застосунком протягом місяців роботи в полі, та – коли того вимагає продукт – захист від зчитування флеш-пам’яті.

  • Поглиблені матеріали – TLS-сертифікати для камер, яким потрібно проходити автентифікацію та шифрувати трафік з мережевими сервісами.

У готовій камері все це налаштовано: її код застосунку виконується з образу мікропрограми, сторожовий таймер отримує сигнал раз на кожну ітерацію основного циклу, журнал зберігається в датованому каталозі на SD-карті, а – коли того вимагає продукт – її флеш-пам’ять заблокована від зчитування.

14.5.1. Що далі

Виробництво – це остання глава посібника. Звідси документація розгалужується на довідкові матеріали:

  • Довідник бібліотек library reference – це алфавітний огляд «яка точна назва цього виклику» для кожного модуля, що надає камера: machine, logging, os, csi, image, ml та інші.

  • Сторінки per-board quickref pages охоплюють специфіку кожної камери у лінійці продуктів OpenMV – розпіновку, шини, що монтуються, ідентифікатори плат, доступність периферійних пристроїв та незначні відмінності, що мають значення, коли застосунок повинен працювати на конкретному компоненті.

  • Сторінки sensor reference pages та shield reference pages охоплюють окремі датчики зображення та розширювальні плати, що може нести камера – специфікації кожного компонента, розпіновку та примітки, необхідні застосунку при виборі датчиків і плат для збірки.

  • Довідник мови MicroPython MicroPython language reference охоплює саму мову – синтаксичні відмінності від CPython, особливості реалізації, що мають значення, коли скрипт охоплює обидві, та довідник вбудованого асемблера для рідкісних випадків, коли Python виявляється занадто повільним.

Посібник – це шлях від «у мене є нова камера» до «я відправив продукт». Звідси камера є лише одним компонентом більшої системи, за яку відповідає застосунок, і робота – це робота самого застосунку.