v3.9.4

v3.9.4 では buzzer モジュール、Himax の HM01B0 モーション検出 ioctl(低消費電力のモーション起床の例を含む)、MT9V034 の読み出しウィンドウ制御、Ethernet の低消費電力機能、OV7670 カメラドライバ、そして Arduino Nano 33 BLE Sense カメラが追加されました。さらに JPEG / LCD / TV の大幅な高速化を多数取り込んでいます。VSYNC 出力 API はコールバックに置き換えられ、MT9V034 のゲイン/露出の計算が修正されました — 以下の互換性を破壊する変更をお読みください。

ハイライト

  • Buzzer モジュール — OpenMV Pure Thermal 上の新しい buzzer モジュール(freq()duty()RESONANT_FREQ)。

  • HM01B0 モーション検出 — 新しい Himax モーション検出 ioctl と低消費電力のモーション起床の例。

  • MT9V034 読み出しウィンドウsensor.ioctl() を介したグローバルシャッターの読み出しウィンドウ制御。

  • 新しいカメラ / ボード — 基本的な OV7670 ドライバ、Arduino Nano 33 BLE Sense カメラ、Bormio ボード。

  • より高速なパイプライン — SIMD JPEG エンコーダの書き直し、デベイヤー処理の高速化、LCD/TV 転送の大幅な高速化。

  • 互換性破壊: sensor.set_vsync_output()sensor.set_vsync_callback() に置き換えられ、MT9V034 のゲイン/露出の計算が修正されました — 互換性を破壊する変更を参照してください。

新機能

  • Buzzerbuzzer.freq()buzzer.duty()、および buzzer.RESONANT_FREQ 定数を備えた buzzer モジュールを追加(OpenMV Pure Thermal)。

  • HM01B0 モーション検出IOCTL_HIMAX_MD_ENABLE / MD_WINDOW / MD_THRESHOLD / MD_CLEAR および IOCTL_HIMAX_OSC_ENABLE の ioctl を、Himax モーション検出の例と himax_wakeup_on_motion_detection.py の低消費電力起床の例とともに追加しました。

  • MT9V034 読み出しウィンドウsensor.ioctl() を介した MT9V034 の読み出しウィンドウ制御のために IOCTL_SET_READOUT_WINDOW / IOCTL_GET_READOUT_WINDOW を追加しました。

  • Ethernet 低消費電力 — Ethernet のパワーダウン / 低消費電力機能を追加しました。

  • Portenta — 外部発振器の有効化/無効化コールバック関数を追加しました。

その他の変更と改善

  • JPEG エンコーダを SIMD で書き直して Bayer→YCbCr エンコードを高速化し、スクリプト実行中もハードウェア JPEG コアの電源を維持し、デベイヤー処理を高速化し(VGA で約 19.5 ms)、JPEG 圧縮を MDMA にオフロードし、SIMD/効率的な DMA で TV/LCD 転送パスを高速化し、SPI LCD バスの使用量を大幅に削減しました。高速 USB 向けに USB3320 ULPI PHY ドライバを追加しました。

バグ修正

カメラとセンサー:

  • HM01B0 ドライバの初期化/ストリーミングを修正してその AE ターゲット / 最大ゲインを調整し、MT9V034 の AGC/AEC ゲインクランプを修正し、OV5640 オートフォーカスファームウェアの読み込み(バイト順)を修正しました。

ディスプレイ:

  • 64 KB を超える SPI LCD の DMA 転送、LCD 出力の極性、および LCD バスの安定性(AXI QOS)を修正しました。

システムと接続性:

  • CYW43 WiFi ドライバが使用する SDMMC インスタンスを修正し(ボード定義の SDMMC インスタンスを使用)、FLIR Lepton の DMA 効率を改善し(H7 で VOSPI を 20 MHz に引き上げ)、Portenta の低消費電力 / スタンバイ動作を修正し(PMIC SW1 電流制限、Ethernet および ULPI の低消費電力)、RTSP サーバが順序の乱れた CSeq および PLAY Range ヘッダを許容するようにし(FFPLAY)、リンカスタックの 8 バイト EABI アライメントを修正し、Portenta の mqtt_sub.py の例にあった壊れた import を修正しました。

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

  • OV7670 カメラセンサー — 基本的なドライバ。

  • Arduino Nano 33 BLE Sense — リセットピンと I2C バスの修正を含むカメラセンサードライバ(nrf ポート)。

  • HM01B0 — 320x320 解像度を追加。

  • Bormio — PLL クロック構成、フラッシュレイアウト、GPIO PORT K(Portenta でも有効化)。

  • USB3320 ULPI PHY — 高速 USB。

互換性を破壊する API 変更

v3.9.3 と v3.9.4 の間でユーザーに見える API の互換性破壊。範囲: modules/ 内の Python C モジュールおよび scripts/libraries/ 内の Python ライブラリ。

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

  • major — その機能を使用したほとんどのスクリプトに影響します。コードの移植が必要になります。

  • behavior — API は同じですが結果が異なります。調整済みのスクリプトを再確認してください。

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

VSYNC 出力がコールバックに置き換え (major)

sensor.set_vsync_output(pin) は削除され、sensor.set_vsync_callback(callback) に置き換えられました。VSYNC ラインはもはや Pin を直接駆動せず、代わりに VSYNC の状態とともに Python の呼び出し可能オブジェクトが呼ばれ、コールバックが自身で Pin をトグルします。sensor.set_vsync_output() を使用していたコードは移植が必要です(更新された vsync_gpio_output.py の例を参照)。

コミット: 5bbe25c20

MT9V034 のゲイン/露出の計算を修正 (behavior)

MT9V034 のクロック速度とゲイン/露出の計算が修正されたため、sensor.set_auto_gain() / sensor.set_auto_exposure() が以前とは異なる正確な値を生成するようになりました。MT9V034 グローバルシャッターカメラで古い不正確な計算を回避するためにゲイン/露出値をハードコードしていたスクリプトは、それらの回避策を削除して再調整する必要があります。

コミット: 4420536c4

移行チェックリスト

v3.9.4 へのクリーンな移植のための一般的な作業は次のとおりです:

  1. sensor.set_vsync_output(pin)sensor.set_vsync_callback(callback) に置き換え、コールバックの内部から Pin をトグルします(VSYNC の変更)。

  2. MT9V034 のゲイン/露出の回避策を修正された計算に対して再調整します(MT9V034 の変更)。

その他のすべてのスクリプトはそのまま動作します。