v4.5.0¶
v4.5.0 はメジャーリリースです。従来の lcd モジュールは、SPI / パラレル / DSI / TV の各バックエンドを分離した統合 display モジュールに置き換えられ、Arduino Giga ボードが追加され、ディスプレイ・タッチ・センサー制御に関する多数の機能が登場しました。いくつかの破壊的変更があります。以下をお読みください。
ハイライト¶
新しい
displayモジュール —lcdを、統合されたSPIDisplay/RGBDisplay/DSIDisplay/TVDisplayバックエンドに置き換えます。Arduino Giga ボードのサポート。
新しいディスプレイ/タッチハードウェア — STM32 H7 上の DSI ディスプレイ、TFP410 DVI/HDMI、HDMI/DVI CEC、ST7701 RGB パネル、GT911 / FT5X06 静電容量式タッチ。
新しいセンサー制御 — 黒レベル補正、ナイトモード、
sensor.disable_delays()。トランスポーズ(約5倍)とモルフォロジー(約2.5倍)が大幅に高速化されました。破壊的変更:
lcd→display、lcd_touch→ft5x06、LED ピン名の変更 — 破壊的変更を参照してください。
新機能¶
ディスプレイバックエンド —
DisplayData(DDC/EDID の読み出し)、TFP410DVI/HDMI シリアライザ、STM32 H7 での MIPI-DSI ディスプレイサポート、HDMI/DVI のcecドライバ、およびST7701RGB パネル初期化ヘルパーを備えた Python のdisplayライブラリ。タッチ — 新しい
GT9115点静電容量式タッチドライバ(read_points()/read_id()/reset())。machineの拡張 —machine.LEDヘルパークラスを備えたフリーズ可能なmachineライブラリと、新しいmachine.LED.value([v])メソッド。センサー制御 —
sensor.set_auto_blc(enable, regs=None)/sensor.get_blc_regs()(黒レベル補正)、IOCTL_SET_NIGHT_MODE/IOCTL_GET_NIGHT_MODE(OV7725/OV5640)、OV7670 の hmirror/vflip、そしてカメラの安定化待ち時間をスキップして再設定を高速化するsensor.disable_delays()。i.MX RT —
sensor.set_xclk_frequency()が任意の周波数を受け付けるようになり(最も近い有効な CSI 分周比にスナップします)、RT1060 で SPI のlcd/tv/firモジュールが有効化されました。
その他の変更と改善¶
画像処理が大幅に高速化 — 画像のトランスポーズが約5倍、
image.morph()が約2.5倍高速になりました。カメラバスのプローブが複数のデバイスアドレスをスキャンして検証するようになり、バス上に複数のデバイスを持つボードに対応しました。
バグ修正¶
カメラとセンサー:
多数のセンサー(HM01B0、HM0360、MT9M114、MT9V0xx、OV2640、OV5640、OV7690、OV7725、OV9650、PAJ6100)でのゲイン計算の精度、MT9V0xx の露出/カラムビニング、OV5640 の露出、OV7670 の VGA ウィンドウ処理を修正しました。
STM32 が、不正な画像を返す代わりに破損したトランスポーズフレームを破棄するようになりました。
画像処理:
画像 / FIR / ToF / LCD / TV 処理に影響する整数オーバーフロー、Cortex-M4 上での不正な
vcvtm/vcvtp浮動小数点命令(fast_floorf/fast_ceilf)、image.to_*()変換におけるインプレーススケーリングのバグ、および DMA2D の描画キャッシュ破損を修正しました。
ディスプレイとシステム:
DSI ディスプレイのタイミングとポートレートモード、Nicla Vision / Portenta H7 での
micro_speechのlisten()、STM32 のユーザースイッチ(pyb.Switch)、I2C4 バスのサポートを修正しました。
ハードウェアとボードのサポート¶
Arduino Giga — 新規ボード。名前付きの Arduino ピンマッピングと完全なサンプルセットを備えています。
OpenMV RT1060 — SPI LCD、TV、FIR サーマルモジュールが有効化されました。
Arduino Nano 33 BLE Sense — LED ピン。
破壊的 API 変更¶
v4.4.3 から v4.5.0 にかけての、ユーザーに見える API の破壊的変更です。対象範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。
各変更には影響度のタグが付けられています:
major — それを使用していたほとんどのスクリプトで修正が必要です。
minor — 限定的な API。それを使用していたスクリプトにのみ影響します。
behavior — API は同じですが結果が異なります。チューニング済みのスクリプトを再確認してください。
変更はこの順序で影響度ごとにグループ化されています。コードを移植したいだけの場合は、末尾の 移行チェックリスト に進んでください。各コミットハッシュは GitHub 上の差分にリンクしています。
lcd モジュールが display に置き換え (major)¶
従来の lcd モジュールは削除され、共通の API を持つ SPIDisplay(SPI LCD シールド)、RGBDisplay / パラレル、DSIDisplay(MIPI-DSI)、TVDisplay の各バックエンドに分割された統合 display モジュールに置き換えられました。スクリプトは import lcd から display モジュールへ切り替え、適切なバックエンドオブジェクトを構築する必要があります。
タッチモジュール、LED ピン、同梱ドライバ (minor)¶
汎用の lcd_touch モジュールは、専用の FT5X06 静電容量式タッチドライバモジュールに置き換えられました。LED ピン名は、すべてのボード間で一貫させるためにリネームされました(古い LED ピン名を参照しているスクリプトは更新が必要です)。同梱されていた hts221 / lps22h / lsm6dsox / lsm9ds1 IMU/センサードライバは、API がわずかに異なる upstream の micropython-lib 版に置き換えられました(同梱のサンプルもそれに合わせて更新されています)。
未サポートのセンサー制御が警告を出すように (behavior)¶
sensor.set_auto_gain()、set_auto_exposure()、set_auto_whitebal()、set_auto_blc() は、アクティブなセンサーがその制御をサポートしていない場合に RuntimeError を発生させる代わりに警告を表示するようになり、同一のスクリプトを機能の異なるセンサー間で実行できるようになりました。例外をキャッチすることに依存していたコードは更新が必要です。
コミット: dbf4996f2
移行チェックリスト¶
v4.5.0 へきれいに移植するための典型的な作業は次のとおりです:
import lcdの使用を、新しいdisplayモジュールと適切なバックエンドに置き換えます(display モジュールの変更)。lcd_touchをFT5X06に切り替え、古い LED ピン名を更新し、upstream の IMU ドライバ API を再確認します(タッチ/ピン/ドライバの変更)。未サポートのセンサー制御を囲む
try/except RuntimeErrorを機能チェックに置き換えます(センサー制御の変更)。