12. Хост-протокол

Кожна OpenMV cam постачається зі стеком протоколів, що надає камеру як набір іменованих каналів даних хост-програмі. Хост-програмою може бути скрипт Python на ноутбуці розробника, десктопний GUI, інша камера на іншому кінці UART або сервіс на робочій станції, що стежить за флотом камер. Камера не має значення – те саме формування кадрів, та сама механіка надійності, та сама абстракція каналу працює для всіх них.

Це відповідь на два питання, що постійно виникають, коли проєкт камери виходить за межі IDE:

  • «Як отримати живий перегляд того, що бачить камера, у власному GUI на ноутбуці?»

  • «Як дозволити оператору змінювати поріг або вибирати область інтересу під час виконання без перепрошивки?»

Модуль protocol на стороні камери та пакет openmv-python на стороні хоста відповідають на обидва питання, дозволяючи класу Python на камері надавати канал, з якого клас Python на хості може читати, записувати та реагувати на події – все через одне USB або послідовне з’єднання.

A host PC connects to a cam over USB; the cam exposes three channels -- a frame channel for image data, a config channel for control values, and the built-in stdout channel for prints -- and the host script reads or writes each.

Розділ навчає обидві сторони. Код на стороні камери показує, як реєструвати канали та подавати в них дані; код на стороні хоста показує, як підключатися, перераховувати канали, отримувати дані та надсилати команди назад. Справжні інструменти, що постачаються у директорії openmv-projects/tools/, використовують саме шаблони, показані тут.

Підсумок