v4.4.0

v4.4.0 では tf.regression() API、OpenMV Cam H7 Pro での FLIR Lepton サポート、Arduino Nicla Vision での Cortex-M4 コプロセッササポート、そして MicroPython 1.19 が追加されました。いくつかのボード固有モジュールと WiFi/LCD の動作が変更されています。以下の破壊的変更をお読みください。

ハイライト

  • tf.regression() — 1D 入力/1D 出力の TensorFlow Lite 回帰モデルを実行します。

  • FLIR Lepton サーマルセンサーを OpenMV Cam H7 Pro でサポートしました。

  • Arduino Nicla Vision — Cortex-M4 コプロセッササポート、動作する MicroSpeech、LPUART1。

  • MicroPython を 1.19 に更新。ulab を 5.1.1 に更新しました。

  • 破壊的変更: Nicla Vision の lcd/tv モジュールが無効化され、RP2040 Connect の WiFi ドライバが変更されました。破壊的変更を参照してください。

新機能

  • tf.regression(model, input_array) — 1D 入力/出力の TensorFlow Lite 回帰モデル向けの新しい関数で、float 出力のリストを返します。

  • GC2145 の制御sensor.set_auto_exposure()sensor.set_auto_whitebal() が GC2145 で動作するようになりました(自動露出/ホワイトバランスを無効化できます。明示的な露出/ゲインの指定はまだ非対応です)。

  • Arduino Nicla Vision — Cortex-M4 (CM4) コプロセッササポートと LPUART1 ペリフェラルが有効化されました。

  • machine.PinUSB_VBUS ピンがユーザースクリプトに公開されるようになりました。

その他の変更と改善

  • MicroPython を 1.19 に更新。ulab を 5.1.1 に更新し、同梱の cyw43 WiFi ドライバを更新しました。

  • RP2 (Arduino Nano RP2040 Connect) および nRF (Arduino Nano 33 BLE Sense) ポートが、IDE/ホスト接続用の新しい TinyUSB ベースのデバッガに切り替わりました。

  • OV7670 の XCLK が 12 MHz から 24 MHz に引き上げられました(レジスタセットを更新)。

バグ修正

カメラとセンサー:

  • OpenMV Pure Thermal のブロブ温度統計が、カラー画像ではなく IR 画像を使用するようになり、ブロブごとの平均温度が正しくなりました。

  • draw_image() の ROI 処理と面積スケーリングを修正し、スケーリング出力がより正確になりました。

  • ソフトリセット後に IMU が再初期化されるようになり、IMU SPI バスが有効な場合でも動作を継続するようになりました。

システム:

  • FAST/AGAST 特徴検出、ブロブ検出、CLAHE、LCD/TV ドライバにわたる符号付き/符号なしの比較問題を修正しました。また STM32 のカメラ GPIO / SPI / DAC の終了処理、H7 LPUART のピンマッピング、STM32Cube.AI の nn モジュール登録を修正しました。

Arduino Nicla Vision:

  • MicroSpeech が動作するようになり(PDM バッファを倍増、例を追加)、低消費電力スタンバイモードを修正しました。

ハードウェアとボードのサポート

  • OpenMV Cam H7 Pro — FLIR Lepton サーマルセンサーサポート。

  • Arduino Nicla Vision — CM4 コプロセッサ、LPUART1、MicroSpeech、低消費電力スタンバイ。

破壊的 API 変更

v4.3.3 から v4.4.0 までのユーザーに見える API の破壊的変更です。範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。

各変更にはその影響度のタグが付いています:

  • minor — 限定的な API。特定のボード上のスクリプトにのみ影響します。

  • behavior — 同じ API ですが結果が異なります。チューニング済みのスクリプトを再確認してください。

変更はこの順序で影響度別にグループ化されています。コードを移植したいだけなら、末尾の 移行チェックリスト に進んでください。各コミットハッシュは GitHub 上の差分にリンクしています。

Nicla Vision モジュールと RP2040 WiFi (minor)

Arduino Nicla Vision では、CM4 コプロセッササポート用のメモリを確保するために lcdtv モジュールが無効化されました。Nicla Vision でこれらのモジュールを使用しているスクリプトは、それらを見つけられなくなります。Arduino Nano RP2040 Connect は、OpenMV 独自の WiFi/nina 実装から、API が異なるアップストリームの MicroPython NINA-W10 ドライバ/モジュールに切り替わりました。

コミット: f78d191e3, ddf01cb09

WiFi ソケットのタイムアウトと LCD の垂直反転 (behavior)

WINC1500 のソケットタイムアウトが ETIMEDOUT ではなくノンブロッキングエラー (EWOULDBLOCK) を返すようになり、タイムアウトしたソケットが予期せず閉じられることがなくなりました。ETIMEDOUT をキャッチしていたコードは更新が必要です。SPI LCD シールドの display は、トリプルバッファリングが有効でない状態で負の y_scale が要求されると ValueError("Vertical flip requires triple buffering!")を発生させるようになりました。

コミット: 1dc4bea88, 7e52cf751

移行チェックリスト

v4.4.0 へのクリーンな移植の典型的な作業は以下のとおりです:

  1. Nicla Vision では lcd/tv の使用をやめ、Nano RP2040 Connect では WiFi コードをアップストリームの NINA-W10 ドライバに移植してください(ボードモジュールの変更)。

  2. WINC1500 のソケットコードを、タイムアウト時に EWOULDBLOCK を想定するよう更新し、垂直反転した LCD 出力にはトリプルバッファリングを有効化してください(動作の変更)。