v1.1.0¶
v1.1.0 は基盤となるアーキテクチャのリリースです。初期のカスタムペリフェラルモジュールを廃止して標準の MicroPython 組み込み を採用し、イメージング API を image モジュールに、フレームレートクロックを time に移動し、組み込み Haar カスケード、get_pixel() / set_pixel()、OpenMV 2 ボードサポート、USB-CDC デバッグを追加します。互換性を大きく壊す、API を定義するリリースです — 下記の互換性に影響する変更をお読みください。
ハイライト¶
MicroPython 組み込み — カスタムの
gpio/led/spi/socket/wlan/uart/file/selectモジュールは削除され、MicroPython のpyb/machineが採用されました。imageモジュール —Image()/HaarCascade()/ ディスクリプタはimageモジュールに移動しました。time.clock— フレームレートクロックはtimeモジュールに移動しました。組み込み Haar カスケード —
HaarCascade("frontalface")/HaarCascade("eye")(ファイル不要)。OpenMV 2 ボードサポートと USB-CDC デバッグ。
互換性に影響: モジュール構造が再定義されました — 互換性に影響する変更を参照してください。
新機能¶
Image —
Image.get_pixel(x, y)/set_pixel()とimg[i]の添字によるピクセルアクセスを追加。組み込みのフラッシュ Haar カスケード(HaarCascade("frontalface")/HaarCascade("eye"))とカスケードのステージ数を制限するstages=キーワードを追加。draw_string()がグレースケール画像でも動作。Sensor —
sensor.set_colorbar()、sensor.set_saturation()、QQVGA2フレームサイズを追加。mlx—mlx.RAINBOW/mlx.GRAYSCALE出力を持つmlx.read(type)。デバッグ — USB CDC 経由のデバッグ、ファームウェアの
fw_version()クエリ、ボードごとのファームウェア(OpenMV 1 / OpenMV 2)、セルフテスト/カラーバースクリプトを実装。致命的/パースエラーはフラッシュにログ記録されます。
その他の変更と改善¶
メモリ不足時に
OSErrorではなくMemoryErrorを送出するようになりました。スクリプトは例外を再送出して実行されるため、クラッシュせずにエラーが表示されます。シリアルボーレートが設定可能(デフォルト 921600)。フラッシュファイルシステムが拡大。キャプチャ安定性のためにセンサーのピクセルクロックを 54 MHz に下げました。sensor.reset()はセンサーのソフトリセットのみに依存します。
バグ修正¶
テンプレートマッチング、最初の物体を繰り返す
find_features()、SCCB/I2C のアトミックなレジスタアクセス、SD カードのチップ検出、ソフト I2C のピンマッピング、fast_cbrtf/ LAB カラー精度、OpenMV 1 / 2 での積分画像/メディアンフィルタのメモリ使用量を修正しました。
ハードウェアとボードサポート¶
OpenMV 2(STM32F427)ボードサポート(および OpenMV 3 のハードウェア設計)。OpenMV 2 ではセンサークロックとして MCO を使用。
互換性に影響する API 変更¶
v1.0.3-beta から v1.1.0 にかけて、ユーザーから見える API の破壊的変更があります。範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。
各変更には影響度のタグが付いています:
major — その機能を使用していたほとんどのスクリプトに影響します。コードの移植が必要です。
behavior — API は同じですが結果が異なります。チューニングしたスクリプトを再確認してください。
変更はこの順序で影響度ごとにグループ化されています。コードを移植したいだけなら、末尾の 移行チェックリスト に進んでください。各コミットハッシュは GitHub 上の差分にリンクしています。
カスタムペリフェラルモジュールの削除 (major)¶
初期のカスタム clock / file / gpio / led / select / socket / spi / wlan / uart モジュールは削除され、MicroPython 組み込みの pyb / machine ペリフェラルが採用されました。スクリプトを標準の MicroPython 相当(例: pyb.Pin / pyb.LED / pyb.SPI / pyb.UART)に移植してください。
コミット: 6d2fafa94
イメージング API を image モジュールに移動 (major)¶
Image()、HaarCascade()、ディスクリプタの保存/読み込み関数は、もはや素のビルトインではなくなり、新しい image モジュールに置かれます。スクリプトは import image を行い、image.Image / image.HaarCascade() を使用する必要があります。
コミット: 54288c535
フレームレートクロックを time に移動 (major)¶
スタンドアロンの clock モジュールは削除され、フレームレートクロックは time に置かれるようになりました。import time と clock = time.clock() を使用してください — 返されるオブジェクトは引き続き .tick() / .fps() / .avg() / .reset() を提供します。
コミット: a8928ca3b
/flash と /sd を sys.path に追加しなくなりました (behavior)¶
ボリュームラベル/ルートディレクトリが修正され、/flash と /sd は sys.path に自動追加されなくなりました。これらの場所から素の名前でヘルパーモジュールをインポートしていたスクリプトは、明示的にパスを追加する(あるいはモジュールを見つかる場所に配置する)必要があります。
コミット: 09e77b5da
移行チェックリスト¶
v1.1.0 へのクリーンな移植では、一般的に次の作業が必要です:
カスタムの
gpio/led/spi/uart/socket/wlan/file/selectモジュールを MicroPython のpyb/machineに置き換える(カスタムモジュールの削除)。import imageを行い、Image()/HaarCascade()にimage.を付ける(image モジュールへの移動)。import timeとclock = time.clock()を使用する(clock の移動)。素の名前でヘルパーモジュールをインポートしていた場合は、
/flash//sdをsys.pathに明示的に追加する(sys.path の変更)。
その他のすべてのスクリプトはそのまま動作します。