v3.6.0

v3.6.0 bringt vollständige Unterstützung für die OV5640 5 MP-Kamera mit neuen hochauflösenden Framesizes (HD / FHD / QHD / QXGA / WQXGA), aktualisiert den Kern auf MicroPython 1.12, optimiert den Software-JPEG-Encoder sowie die AprilTag- / Linienerkennung stark, fügt UVC (USB-Video) auf der OpenMV Cam H7 Plus hinzu und unterstützt QSPI-Flash bis zu 32 MB. Das MicroPython-Verhalten und get_histogram() haben sich geändert — lesen Sie die Breaking Changes unten.

Highlights

  • OV5640 5 MP — vollständiger Kameratreiber mit neuen HD- / FHD- / QHD- / QXGA- / WQXGA- / WQXGA2-Framesizes.

  • MicroPython 1.12 — der mitgelieferte Kern wurde aktualisiert.

  • Schnellere Pipeline — stark optimierte Software-JPEG-Kodierung, AprilTag-Erkennung, LSD-Linienerkennung, histeq() und QR-Code-Dekodierung.

  • UVC auf der H7 Plus — die OpenMV Cam H7 Plus kann als USB-Videogerät fungieren.

  • Breaking: Das MicroPython-Verhalten, die Normalisierung von image.get_histogram() und die JPEG-/Graustufen-Ausgabe der OpenMV 3 haben sich geändert — siehe die Breaking Changes.

Neue Funktionen

  • OV5640 — vollständige Unterstützung für die OV5640 5 MP-Kamera hinzugefügt (externe Taktkonfiguration in der Sensor-Initialisierung) sowie die neuen Framesize-Konstanten sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — freigegeben, sodass er aus MicroPython nutzbar ist.

  • Ein DAC-Timed-Write-Beispiel (dac_write_timed.py) hinzugefügt und dac_control.py in dac_write.py umbenannt.

Weitere Änderungen und Verbesserungen

  • Das mitgelieferte MicroPython auf 1.12 aktualisiert; den Software-JPEG-Encoder stark optimiert (VGA-Pfad, Graustufen-/Binärpfade, Ganzzahl- statt Gleitkomma-Mathematik, optimierte MCU-Erfassung), LSD-find_line_segments(), AprilTag-Erkennung, Image.histeq() sowie QR-Code- / RGB-zu-Graustufen-Konvertierung; QSPI-Flash-Unterstützung für Chips bis zu 32 MB hinzugefügt; das veraltete CMSIS-CNN-cnn.py-Beispiel entfernt.

Fehlerbehebungen

Kamera und Bildverarbeitung:

  • JPEG-Kodierungskorruption bei HQQQVGA, die Komprimierung von binären (1-Bit-) Bildern → JPEG, eine find_line_segments()-Regression (die NOTDEF-Prüfung für nicht ausgerichtete Werte wieder aktiviert) sowie kleinere OV2640-Treiberprobleme behoben.

System und Boot:

  • Selbsttest- / Dateisystemkorruption behoben (selftest.py läuft jetzt, bevor USB MSC aktiviert wird, und USB MSC wird bei einem fatalen Fehler aktiviert, damit der Host das Fehlerprotokoll lesen kann), das pyb.DAC-write_timed(), die H7-machine.I2C-Timings, die F7-Overdrive-Reaktivierung nach dem Stop-Modus und das rtc.wakeup()-Intervall von stop_mode.py.

Hardware- und Board-Unterstützung

  • OV5640 — vollständiger 5 MP-Kameratreiber mit hochauflösenden Framesizes.

  • OpenMV Cam H7 Plus — UVC- (USB-Video-) Unterstützung; das Board-Target OPENMV4R wurde in OPENMV4P umbenannt.

  • QSPI-Flash — Chips bis zu 32 MB werden jetzt unterstützt.

API-Änderungen mit Breaking-Charakter

Für den Benutzer sichtbare API-Brüche zwischen v3.5.2 und v3.6.0. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.

Alle drei Breaking Changes sind Verhaltensänderungen (gleiche API, andere Ergebnisse) — überprüfen Sie betroffene Skripte erneut. Jeder Commit-Hash verlinkt auf seinen Diff auf GitHub.

MicroPython auf 1.12 aktualisiert (Verhalten)

Der mitgelieferte MicroPython-Kern wurde auf 1.12 aktualisiert. Standardbibliotheks- und Sprachverhalten folgen dem Upstream-MicroPython 1.12; überprüfen Sie Skripte erneut, die von versionsspezifischem micropython- / Standardmodul-Verhalten abhängen.

Commits: eafd431ea

image.get_histogram()-Schwellenwert-Normalisierung geändert (Verhalten)

image.get_histogram() (und get_statistics()) mit Farb-Schwellenwerten normalisiert jetzt nach der Anzahl der schwellenwertgefilterten Pixel statt nach dem gesamten ROI und verwendet Abrunden statt Runden für die Bin-Indizierung. Histogramm-/Statistikwerte für schwellenwertgefilterte Aufrufe unterscheiden sich von früheren Releases — passen Sie Code, der mit absoluten Histogrammwerten verglich, neu an.

Commits: 7cf0f8089

OpenMV 3 JPEG-/Graustufen-Ausgabe geändert (Verhalten)

Um Flash zu sparen, wurde die YUV-Lookup-Tabelle der OpenMV 3 (M7) deaktiviert, sodass JPEG- und Graustufen-Ausgabe-Pixelwerte auf der OpenMV 3 geringfügig anders berechnet werden. Die Ausgabe ist weiterhin gültig, unterscheidet sich aber marginal von früheren Releases; überprüfen Sie pixelgenaue Vergleiche auf der OpenMV 3 erneut.

Commits: 0e4b46e41

Migrations-Checkliste

Validieren Sie Skripte, die von versionsspezifischem MicroPython-Verhalten abhängen, erneut gegen 1.12 (der MicroPython-Sprung), passen Sie Code, der bei Verwendung von Farb-Schwellenwerten mit absoluten get_histogram()- / get_statistics()-Werten verglich, neu an (die Histogramm-Änderung) und überprüfen Sie pixelgenaue Vergleiche auf der OpenMV 3 erneut (die OpenMV-3-Ausgabeänderung). Alle anderen Skripte laufen unverändert weiter.