v4.4.0

v4.4.0 fügt eine tf.regression()-API, FLIR-Lepton-Unterstützung auf der OpenMV Cam H7 Pro, Cortex-M4-Coprozessor-Unterstützung auf der Arduino Nicla Vision und MicroPython 1.19 hinzu. Einige boardspezifische Module sowie das WiFi-/LCD-Verhalten haben sich geändert — lesen Sie die nachstehenden Breaking Changes.

Highlights

  • tf.regression() — Ausführen von TensorFlow-Lite-Regressionsmodellen mit 1D-Eingabe/1D-Ausgabe.

  • Unterstützung des Wärmesensors FLIR Lepton auf der OpenMV Cam H7 Pro.

  • Arduino Nicla Vision — Cortex-M4-Coprozessor-Unterstützung, funktionierendes MicroSpeech, LPUART1.

  • MicroPython auf 1.19 aktualisiert; ulab auf 5.1.1 aktualisiert.

  • Breaking: Die lcd-/tv-Module der Nicla Vision wurden deaktiviert und der WiFi-Treiber des RP2040 Connect wurde geändert — siehe die Breaking Changes.

Neue Funktionen

  • tf.regression(model, input_array) — eine neue Funktion für TensorFlow-Lite-Regressionsmodelle mit 1D-Eingabe/-Ausgabe, die eine Liste von Float-Ausgaben zurückgibt.

  • GC2145-Steuerungensensor.set_auto_exposure() und sensor.set_auto_whitebal() sind auf dem GC2145 nun funktionsfähig (automatische Belichtung / automatischer Weißabgleich können deaktiviert werden; explizite Belichtung/Verstärkung wird noch nicht unterstützt).

  • Arduino Nicla Vision — Cortex-M4-Coprozessor-Unterstützung (CM4) und das LPUART1-Peripheriegerät wurden aktiviert.

  • machine.Pin — der USB_VBUS-Pin wird nun für Benutzerskripte verfügbar gemacht.

Weitere Änderungen und Verbesserungen

  • MicroPython auf 1.19 aktualisiert; ulab auf 5.1.1; der mitgelieferte cyw43-WiFi-Treiber wurde aktualisiert.

  • Die Ports RP2 (Arduino Nano RP2040 Connect) und nRF (Arduino Nano 33 BLE Sense) wechselten für die IDE-/Host-Verbindung zum neuen TinyUSB-basierten Debugger.

  • Der XCLK des OV7670 wurde von 12 MHz auf 24 MHz angehoben (aktualisierter Registersatz).

Fehlerbehebungen

Kamera und Sensoren:

  • Die Blob-Temperaturstatistik der OpenMV Pure Thermal verwendet nun das IR-Bild anstelle des Farbbilds, sodass die mittlere Temperatur pro Blob korrekt ist.

  • Behebung der ROI-Behandlung und Flächenskalierung in draw_image() für eine genauere skalierte Ausgabe.

  • Die IMU wird nach einem Soft-Reset neu initialisiert, sodass sie weiterhin funktioniert, wenn der IMU-SPI-Bus aktiviert ist.

System:

  • Behebung von Problemen mit signed/unsigned-Vergleichen bei der FAST/AGAST-Merkmalserkennung, der Blob-Erkennung, CLAHE und den LCD/TV-Treibern; Behebung der STM32-Kamera-GPIO-/SPI-/DAC-De-Initialisierung, des H7-LPUART-Pin-Mappings und der Registrierung des STM32Cube.AI-Moduls nn.

Arduino Nicla Vision:

  • MicroSpeech funktioniert nun (verdoppelter PDM-Puffer, Beispiel hinzugefügt) und der Standby-Modus mit niedrigem Stromverbrauch wurde korrigiert.

Hardware- und Board-Unterstützung

  • OpenMV Cam H7 Pro — Unterstützung des FLIR-Lepton-Wärmesensors.

  • Arduino Nicla Vision — CM4-Coprozessor, LPUART1, MicroSpeech, Standby mit niedrigem Stromverbrauch.

Breaking API-Änderungen

Für Benutzer sichtbare API-Brüche zwischen v4.3.3 und v4.4.0. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.

Jede Änderung ist mit ihrer Auswirkung gekennzeichnet:

  • minor — eng begrenzte API; betrifft nur Skripte auf einem bestimmten Board.

  • behavior — gleiche API, andere Ergebnisse; überprüfen Sie abgestimmte Skripte erneut.

Die Änderungen sind in dieser Reihenfolge nach Auswirkung gruppiert. Wenn Sie nur Ihren Code portieren möchten, springen Sie zur Migrations-Checkliste am Ende. Jeder Commit-Hash verlinkt auf seinen Diff auf GitHub.

Nicla-Vision-Module und RP2040-WiFi (minor)

Auf der Arduino Nicla Vision wurden die Module lcd und tv deaktiviert, um Speicher für die CM4-Coprozessor-Unterstützung freizugeben — Skripte, die diese Module auf der Nicla Vision verwenden, finden sie nicht mehr. Der Arduino Nano RP2040 Connect wechselte von der OpenMV-eigenen WiFi-/nina-Implementierung zum vorgelagerten MicroPython-NINA-W10-Treiber/-Modul, dessen API sich unterscheidet.

Commits: f78d191e3, ddf01cb09

WiFi-Socket-Timeout und vertikales LCD-Spiegeln (behavior)

Ein WINC1500-Socket-Timeout gibt nun einen nicht-blockierenden Fehler (EWOULDBLOCK) anstelle von ETIMEDOUT zurück, sodass abgelaufene Sockets nicht mehr unerwartet geschlossen werden — Code, der ETIMEDOUT abgefangen hat, muss aktualisiert werden. Das display des SPI-LCD-Shields löst nun ValueError aus („Vertical flip requires triple buffering!“), wenn eine negative y_scale ohne aktiviertes Triple-Buffering angefordert wird.

Commits: 1dc4bea88, 7e52cf751

Migrations-Checkliste

Für eine saubere Portierung auf v4.4.0 ist üblicherweise Folgendes zu tun:

  1. Verwenden Sie auf der Nicla Vision lcd/tv nicht mehr; portieren Sie auf dem Nano RP2040 Connect den WiFi-Code auf den vorgelagerten NINA-W10-Treiber (die Board-Modul-Änderungen).

  2. Aktualisieren Sie den WINC1500-Socket-Code, sodass er bei einem Timeout EWOULDBLOCK erwartet, und aktivieren Sie Triple-Buffering für vertikal gespiegelte LCD-Ausgabe (die Verhaltensänderungen).