v1.7.0

v1.7.0 では cpufreq モジュール(CPU周波数/オーバークロック制御)、MicroPython の os モジュール、MLX サーマルセンサーのリフレッシュ/解像度制御、そして初期段階の OpenMV Cam M7(STM32F7)ボードの立ち上げが導入されました。fir.init() のシグネチャ、過大フレームの扱い、デフォルトの JPEG 品質が変更されています。以下の破壊的変更をお読みください。

ハイライト

  • cpufreq モジュール — CPU周波数の取得/設定を行い、オーバークロックの例も付属します。

  • os モジュール — MicroPython の os モジュールが利用可能になりました。

  • MLX サーマルfir.init() がリフレッシュレートと ADC 解像度を受け付けます。

  • OpenMV Cam M7 — 初期段階の STM32F7 ボード立ち上げ。

  • 破壊的変更: fir.init() がキーワード引数専用になり、過大フレームは自動でクロップされ、デフォルトの JPEG 品質が下がりました。破壊的変更を参照してください。

新機能

  • cpufreqcpufreq.get_frequency()cpufreq.set_frequency()CPUFREQ_120MHZ144168192216MHZ 定数を備えた cpufreq モジュールを追加し、overclocking.py の例も加えました。

  • os — MicroPython の os モジュールを有効化しました。

  • MLX / FIRfir.init() がリフレッシュレートと ADC 解像度を受け付けるようになり、MLX サーマルセンサー向けに対応する refreshresolution 制御を追加しました。

その他の変更と改善

  • OV7725 の AGC/AEC 領域を調整して(モーションブラーを軽減)、OV7725 用の DSP ソリッドカラーバーを有効化し、IDE のフレームバッファストリーミングを修正しました(古い/重複フレームを排除)。

バグ修正

  • sensor.snapshot() における DCMI/DMA 転送サイズのオーバーフローを修正し、JPEG 圧縮のバッファオーバーフロー処理を整理し、自動露出/ゲインを改善するため OV7725 の AEC/AGC 動作領域を改良し、OV7725 用のカラーバー/セルフテストスクリプトを修正しました。

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

  • OpenMV Cam M7(STM32F7 / OPENMV7) — 初期段階のボードおよびブートローダーのサポート。

  • OpenMV 2 — センサークロックを MCO 出力で駆動するようにしました。

破壊的な API 変更

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

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

  • minor — 限定的な API。それを使っていたスクリプトにのみ影響します。

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

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

fir.init() がキーワード引数専用になりました (minor)

fir.init() は位置引数の代わりにキーワード引数(type=refresh=resolution=refresh のデフォルトは 64 Hz、最大 512 Hz)を取るように作り直されました。位置引数の fir.init(...) 呼び出しをキーワード形式に更新してください。

コミット: 958c5b7f7

過大フレームは QVGA へ自動クロップ (behavior)

sensor.snapshot() は、生フレームがボードの最大生フレームサイズを超えても例外を送出しなくなりました。過大な生フレームは代わりに QVGA へウィンドウ化/クロップされます(JPEG モードの生データのみは依然として拒否されます)。以前のエラーに依存していた場合は、サポートされているフレームサイズを選択してください。

コミット: b655a5488, abace9e4f

OpenMV 2 の最大フレームサイズを QVGA に引き下げ (behavior)

OpenMV 2 では、積分画像/生/ブロブの最大フレームサイズが VGA から QVGA に引き下げられました。OpenMV 2 でグレースケール/RGB565/ブロブ/積分画像の操作に VGA を要求すると QVGA にクロップされます。そのボードで VGA 処理に依存していたスクリプトは再設計してください。

コミット: 7499062bd

デフォルトの JPEG 品質を低下 (behavior)

より信頼性の高いストリーミングのため、デフォルトの JPEG 品質が低下しました(デフォルト 50 → 35、IDE のサブサンプルしきい値も低下)。キャプチャ/ストリーミングされる JPEG はデフォルトで見た目の品質が低くなります。以前の品質が必要な場合は、image.compress() に明示的な quality を渡してください。

コミット: d9c8b1535

移行チェックリスト

v1.7.0 へきれいに移植するための一般的な作業は次のとおりです:

  1. 位置引数の fir.init(...) 呼び出しをキーワード形式に変換します(fir.init の変更)。

  2. 古い過大フレームのエラーに依存せず、サポートされているフレームサイズを使用し(過大フレームの変更)、OpenMV 2 での VGA 処理を再設計してください(OpenMV 2 のフレームサイズの変更)。

  3. 以前の JPEG 品質が必要な場合は、image.compress() に明示的な quality を渡してください(JPEG 品質の変更)。

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