v1.6.0

v1.6.0 dreht sich um die OpenMV-Cam-Registrierung und einen reichhaltigeren Machine-Vision-Workflow: Die IDE erkennt nun beim Verbinden nicht registrierte Kameras, erhält einen in den Code-Editor integrierten Threshold-Editor, fügt einklappbare Bereiche hinzu und hebt die mitgelieferte Firmware von 2.3.0 auf 2.4.1 an (und ergänzt dabei die Linienerkennung). Sie basiert weiterhin auf Qt Creator 4.0.2 ohne Rebase. Es gibt einen für den Anwender sichtbaren Breaking Change: Das Verbinden einer nicht registrierten Kamera fragt nun bei jedem Verbinden nach einem Board-Schlüssel (siehe Breaking Changes).

Höhepunkte

  • Die OpenMV-Cam-Registrierung wird nun beim Verbinden erkannt: Die IDE fragt die Board-Architektur ab, prüft Board/ID gegen openmv.io und fordert den Anwender auf, die Kamera mit einem Board-Schlüssel zu registrieren.

  • Mitgelieferte Firmware 2.4.1 für OMV2- (M4) und OMV3- (M7) Kameras ergänzt in 2.4.0 die Linienerkennung (find_lines / find_line_segments über eine Hough-Transformation) und ein neues Ergebnisobjekt image.match_descriptor; Firmware 2.4.1 folgt mit einer Umbenennung der Binäroperations-API.

  • Threshold-Editor-Integration: Ein Rechtsklick auf ein ausgewähltes Graustufen- oder LAB-Schwellenwert-Tupel im Editor öffnet den Threshold-Editor vorgeladen mit diesen Werten und schreibt das angepasste Tupel beim Schließen in die Quelle zurück.

  • Einklappbare Bereiche: Die Framebuffer- und Serielles-Terminal-Bereiche erhielten Schubladen-Schaltflächen, die einen Bereich aus- und wieder einblenden und ihren Zustand aus den Einstellungen wiederherstellen.

  • Die Titelleiste des Live-Framebuffers zeigt nun die aktuelle Auflösung und den ausgewählten ROI an, und der deaktivierte Framebuffer zeigt an seiner Stelle ein Overlay.

Neue Funktionen

  • Die OpenMV-Cam-Registrierung wird beim Verbinden erkannt. Die IDE fragt die Board-Architektur ab und prüft Board/ID gegen openmv.io (openmv-swd-ids-check.php / openmv-swd-ids-register.php) und fordert den Anwender auf, die Kamera mit einem Board-Schlüssel zu registrieren. Ein Registrierungsdialog mit funktionierendem Kauf-Hyperlink, Fortschrittsanzeige und Fehlerbehandlung ist enthalten (c61052eb3, 9fa8a253e).

  • Threshold-Editor aus dem Editor: Ein Rechtsklick auf einen ausgewählten Graustufen-Schwellenwert (g_min, g_max) oder ein LAB-Sechser-Tupel bietet eine Aktion Edit … threshold with Threshold Editor, die den Editor vorgeladen mit diesen Werten öffnet und das Quell-Tupel beim Schließen aktualisiert (3d12e6ee7, 992d3bdf8).

  • Einklappbare Bereiche: Die Framebuffer- und Serielles-Terminal-Bereiche erhielten Schubladen-Schaltflächen oben/unten/links/rechts, die einen Bereich aus- und wieder einblenden und ihren Zustand aus den Einstellungen wiederherstellen (abaf628ff, 7461e3b55, b51faa8f5).

  • Live-Auflösung und ROI in der Titelleiste des Framebuffers, z. B. Frame Buffer - Res (w:.., h:..) - ROI (x:.., y:.., w:.., h:..) (992d3bdf8).

  • Die Einträge DataMatrix Generator und Barcode Generator wurden zum Menü Machine Vision Tools hinzugefügt; jeder öffnet eine Google-Websuche nach einem Online-Generator (bf284997b).

Weitere Änderungen und Verbesserungen

  • Wenn der Framebuffer deaktiviert ist, wird an seiner Stelle nun ein zentriertes Overlay Frame Buffer Disabled - click the disable button again to enable (top right) angezeigt (bf284997b).

  • Der Threshold-Editor speichert und stellt nun seinen Schieberegler-Zustand (combo/invert/min-max-Werte) zwischen Sitzungen wieder her, nicht mehr nur die Fenstergeometrie (bf284997b).

  • Das Python-Syntaxhighlighting überarbeitet, um OpenMV-Klassen-/Funktions-/Methoden-/Argumentnamen sowie Import-Schlüsselwörter im Editor und Terminal besser einzufärben (38c00e5a2, 7461e3b55).

  • Das Einfügen in das serielle Terminal sendet die Zwischenablage-Bytes nun zeichenweise und fügt eine Pause von 1 ms zwischen ausgehenden Serial-/UDP-/TCP-Paketen ein, damit die MicroPython-REPL nicht überlastet wird, und CR und LF werden bei Enter separat ausgegeben (c61052eb3).

  • Die Member-Autovervollständigung wird nun ausgelöst, wenn . nach einer schließenden Klammer wie ), ] oder } getippt wird, sodass Vervollständigungen nach Funktionsaufrufen und Subscripts erscheinen (9fa8a253e).

Fehlerbehebungen

  • Den OpenMV-Cam-SWD-ID-Registrierungsdialog korrigiert, sodass Abbrechen und Anfrageabschluss ihn zuverlässig schließen, anstatt sich auf einen Ergebniscode aus einem Pointer-Cast zu verlassen (6599856c4).

  • Den Firmware-Abgleich für registrierte Boards korrigiert, indem der Registrierungstoken [board:id] aus der Architektur-Zeichenkette entfernt wird, bevor er in der Firmware-Zuordnungstabelle nachgeschlagen wird (a1be146f1).

  • Eine Registrierungsregression behoben, bei der die Erfolgs-/Fehlerbehandlung wegen einer invertierten Abbruchprüfung und einer nicht maskierten Board-ID-Regex nie ausgeführt wurde und die Registrierungsprüfung für M4-basierte Kameras übersprungen wurde (9fa8a253e).

  • Die Verdrahtung der linken Navigationsseitenleiste des Upstream-Qt-Creator deaktiviert, um das Navigations-Widget im OpenMV-Layout zu korrigieren (bf284997b).

Plattform- und Tool-Unterstützung

  • Qt-Creator-Basis: 4.0.2.

  • Mitgelieferte OpenMV-Firmware: in zwei Schritten von 2.3.0 -> 2.4.1 für OMV2- (M4) und OMV3- (M7) Kameras angehoben. Der Schritt 2.3.0 -> 2.4.0 fügte die Linienerkennung (find_lines / find_line_segments über eine Hough-Transformation), ein neues Ergebnisobjekt image.match_descriptor / kptmatch, DataMatrix-Dekodierungsbeispiele (find_datamatrices.py / find_datamatrices_w_lens_zoom.py), die Beispiele find_lines.py / find_line_segments.py und eine Methode sensor.set_vsync_output() hinzu (f0cd4d75c). Der Schritt 2.4.0 -> 2.4.1 fügte die neuen logischen UND-/ODER-Bildoperationen b_and / b_or hinzu und benannte nand / nor / xor / xnor in b_nand / b_nor / b_xor / b_xnor um (die alten Namen bleiben als Aliase erhalten) (4fc16559e).

  • Windows-Treiber: Die Skripte für die Treiberinstallationsbefehle von DfuSe / FTDI / OpenMV / PybCDC überarbeitet und die zuvor fehlenden DfuSe- und FTDI/OpenMV/PybCDC-Treiber-Binärdateien, DLLs und VC-Redistributables, die für die Installation benötigt werden, mitgeliefert (b51faa8f5, c2633fc04, 4fc16559e).

Breaking Changes

Das Verbinden einer OpenMV Cam, die openmv.io als nicht registriert meldet, löst nun bis zu drei Eingabeaufforderungen aus, in denen der Anwender zur Eingabe eines Board-Schlüssels aufgefordert wird; dies wiederholt sich bei jedem Verbinden, bis die Kamera registriert ist. M4-basierte Boards sind von dieser Prüfung ausgenommen. Die Umbenennung der Binär-Bildoperationen in der 2.4.1-Firmware ist abwärtskompatibel, da die alten Methodennamen nand / nor / xor / xnor als Aliase verfügbar bleiben.