12. Protocole hôte

Chaque caméra OpenMV est livrée avec une pile de protocole qui expose la caméra sous forme d’un ensemble de canaux de données nommés à un programme hôte. Le programme hôte peut être un script Python sur l’ordinateur portable du développeur, une interface graphique de bureau, une autre caméra à l’autre bout d’une liaison UART, ou un service tournant sur un poste de travail surveillant une flotte de caméras. La caméra ne s’en soucie pas – le même tramage, la même mécanique de fiabilité, la même abstraction de canal fonctionnent pour tous.

C’est la réponse à deux questions qui reviennent constamment dès qu’un projet de caméra quitte l’IDE :

  • « Comment afficher en direct ce que voit la caméra dans une interface graphique personnalisée sur mon ordinateur portable ? »

  • « Comment laisser un opérateur modifier un seuil ou choisir une région d’intérêt à l’exécution, sans reflasher ? »

Le module protocol côté caméra et le paquet openmv-python côté hôte répondent à ces deux questions, en permettant à une classe Python sur la caméra d’exposer un canal qu’une classe Python sur l’hôte peut lire, écrire et auquel elle peut réagir aux événements, le tout via une seule connexion USB ou série.

Un PC hôte se connecte à une caméra via USB ; la caméra expose trois canaux -- un canal de trame pour les données d'image, un canal de configuration pour les valeurs de contrôle, et le canal stdout intégré pour les impressions -- et le script hôte lit ou écrit sur chacun.

Ce chapitre enseigne les deux côtés. Le code côté caméra montre comment enregistrer des canaux et les alimenter ; le code côté hôte montre comment se connecter, lister les canaux, récupérer des données et renvoyer des commandes. Les véritables outils livrés dans le répertoire openmv-projects/tools/ utilisent exactement les schémas présentés ici.