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 のゲイン/露出の計算が修正されました — 互換性を破壊する変更を参照してください。
新機能¶
Buzzer —
buzzer.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 へのクリーンな移植のための一般的な作業は次のとおりです:
sensor.set_vsync_output(pin)をsensor.set_vsync_callback(callback)に置き換え、コールバックの内部からPinをトグルします(VSYNC の変更)。MT9V034 のゲイン/露出の回避策を修正された計算に対して再調整します(MT9V034 の変更)。
その他のすべてのスクリプトはそのまま動作します。