v4.1.0

v4.1.0 では、Arduino Nano RP2040 Connect / Raspberry Pi Pico の完全サポート(WiFi、Bluetooth、カメラキャプチャ、ブートローダーへのジャンプ)、直接的な JPEG 画像デコード、フリーズされた urequests HTTP クライアント、OV7670 センサーサポート、標準化されたセンサーエラー報告が追加されました。WiFi API とセンサー例外が変更されています。以下の互換性のない変更をご確認ください。

ハイライト

  • RP2 ボード — Arduino Nano RP2040 Connect / Pico に WiFi(NINA-W10)、Bluetooth(NimBLE)、カメラ/DCMI キャプチャ、ブートローダーへのジャンプが追加されました。

  • JPEG デコード — 画像操作が圧縮された JPEG 画像を直接受け付けるようになりました。

  • urequests HTTP クライアントがファームウェアにフリーズされました。

  • OV7670 カメラセンサーのサポート。

  • 互換性のない変更: NINA/RP2 WiFi API が再設計され、いくつかのセンサーエラーが RuntimeError を送出するようになりました。互換性のない変更をご覧ください。

新機能

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — NINA-W10 network ドライバ経由の WiFi、Bluetooth/NimBLE、カメラキャプチャ(DCMI PIO プログラム)、ブートローダーへのジャンプコマンド。

  • JPEG 画像デコードfind_apriltags()lcd.display()tv.display() および関連する画像操作が、圧縮された JPEG 画像を直接受け付けるようになりました(バイナリ/グレースケール/RGB565 にデコード)。

  • urequests — HTTP クライアント(GET/POST/PUT/...)が OpenMV 4 / 4 Plus / Portenta / Nicla でフリーズされ、http_post.py のサンプルが付属します。

  • ble_advertising ヘルパーライブラリが Nano RP2040 Connect でフリーズされました。

  • ホスト/デバッグ — ブートローダーへリセットするための pyopenmv.reset_to_bl() と新しい USBDBG_SYS_RESET_TO_BL(0x0E)コマンド、Arduino Nano 33 BLE Sense でのブートローダーへのジャンプ。

  • OV7670 — 新しい OV7670 カメラセンサーのサポート。OpenMV 4 で選択可能です。

その他の変更と改善

  • RP2 UDP ソケットは、バインドされていない状態で使用された場合に一時ポートへ自動的にバインドされるようになりました。バンドルされている MicroPython サブモジュールが更新されました。

バグ修正

ネットワーク:

  • NINA WiFi ソケットの accept/close/send/recv/bind の処理および操作タイムアウト、IDE 出力を破損させる可能性のあった RP2 デバッグテキストバッファの競合を修正しました。

カメラとシステム:

  • HM01B0 のリセット、OpenMV H7 でセンサースキャン失敗後にカメラ I2C バスがスタックする問題、USB 切断時の H7 ULPI 低電力モードへの移行、H7 ADC ピン生成、Portenta のカメラピン配置 / シールド SPI-CS を修正しました。

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

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi、Bluetooth、カメラ、より大きなフラッシュファイルシステム、MSC ブートローダー。

  • OV7670 カメラセンサー(OpenMV 4)。

  • Arduino Portenta H7 — ブレークアウト I2C4、追加の PWM/クロックピン、OV7725 / MT9V034 センサー。

互換性のない API 変更

v4.0.2 から v4.1.0 の間のユーザーに見える API の互換性のない変更です。範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。

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

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

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

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

NINA / RP2 WiFi API の再設計 (minor)

NINA / RP2 WLAN ドライバが、アップストリームの MicroPython / CYW43 network インターフェースに合わせて再設計されました: WLAN(interface) コンストラクタ(STA/AP モード)、新しい active([bool]) メソッド、connect のエイリアスである config / start_apconnect()ssid 引数が essid に改名、新しい channel キーワード、そして nina.fw_version() が生のバイト列ではなく (major, minor, patch) タプルを返すようになりました。NINA ファームウェアのバージョン不一致は OSError ではなく致命的でない警告になりました。

Commits: eb2f98277, e14470f68, 0c40f4832

センサーエラーが RuntimeError を送出するように (behavior)

センサーエラー報告が統一されたエラーコードテーブルを中心に標準化されました: カメラの障害(キャプチャタイムアウト、不正な framesize/pixformat/window/framerate、フレームバッファエラー、JPEG オーバーフロー、未検出センサーなど)が一貫した説明的なメッセージを送出するようになり、以前は ValueError を送出していたいくつかの状態が RuntimeError を送出するようになりました(sensor.reset() を含む)。これらのケースで ValueError を捕捉していたコードは、代わりに RuntimeError を捕捉する必要があります。

Commits: 0491a6a88, c8bf0af6f, 2fb226562

移行チェックリスト

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

  1. NINA/RP2 WiFi コードを標準の network.WLAN インターフェース(WLAN(interface)active()essid=)に移植し、nina.fw_version() からタプルが返ることを想定してください(WiFi API の変更)。

  2. カメラ / sensor.reset() のエラー処理周辺の except ValueErrorexcept RuntimeError に変更してください(センサーエラーの変更)。