12. Host-Protokoll

Jede OpenMV Cam wird mit einem Protokollstapel ausgeliefert, der die Kamera einem Host-Programm als Satz benannter Datenkanäle bereitstellt. Das Host-Programm kann ein Python-Skript auf dem Laptop des Entwicklers sein, eine Desktop-GUI, eine weitere Kamera am anderen Ende eines UART oder ein Dienst auf einer Workstation, der eine Flotte von Kameras überwacht. Der Kamera ist es egal, welches – dasselbe Framing, dieselbe Zuverlässigkeitsmechanik, dieselbe Kanalabstraktion funktioniert für alle.

Dies ist die Antwort auf zwei Fragen, die ständig auftauchen, sobald ein Kameraprojekt die IDE verlässt:

  • „Wie bekomme ich eine Live-Ansicht dessen, was die Kamera sieht, in eine eigene GUI auf meinem Laptop?“

  • „Wie lasse ich einen Bediener zur Laufzeit einen Schwellenwert ändern oder einen Interessensbereich auswählen, ohne neu zu flashen?“

Das Modul protocol auf der Kameraseite und das Paket openmv-python auf der Hostseite beantworten beide Fragen, indem sie eine Python-Klasse auf der Kamera einen Kanal bereitstellen lassen, von dem eine Python-Klasse auf dem Host lesen, in den sie schreiben und auf dessen Ereignisse sie reagieren kann – alles über eine einzige USB- oder serielle Verbindung.

Ein Host-PC verbindet sich über USB mit einer Kamera; die Kamera stellt drei Kanäle bereit -- einen Frame-Kanal für Bilddaten, einen Konfigurationskanal für Steuerwerte und den eingebauten stdout-Kanal für Ausgaben -- und das Host-Skript liest aus jedem oder schreibt in jeden.

Das Kapitel vermittelt beide Seiten. Der kameraseitige Code zeigt, wie man Kanäle registriert und speist; der hostseitige Code zeigt, wie man sich verbindet, die Kanäle auflistet, Daten abruft und Befehle zurückschickt. Echte Werkzeuge, die im Verzeichnis openmv-projects/tools/ ausgeliefert werden, nutzen genau die hier gezeigten Muster.

Zusammenfassung