v2.4.0

v2.4.0 は Qt Creator 4.0.2 をベースに構築され、新しい V3 ブートローダー(ファームウェアのロード時の QSPI フラッシュレイアウト照会と、オンボードデータフラッシュの完全消去時の消去)、ステータスバーでのセンサーとボードのリアルタイム表示、そして同梱ファームウェアに対応する新しい 32 ビット USB デバッグプロトコルを中心としています。また、初回起動時の LED ガイドと、TensorFlow、Modbus、WiFi の多数の新しいサンプルが追加されています。デバッグプロトコルが変更されたため、接続するにはカメラで新しい同梱ファームウェアを実行する必要があります。

ハイライト

  • V3 ブートローダー対応 は、ファームウェアのロード時にボードの外部 QSPI フラッシュのレイアウトを照会し、オンボードデータフラッシュの完全消去時にそれを消去します(d953df62f)。

  • センサーとボードの表示 は、接続時に接続されたカメラのセンサーモジュールを照会し、新しいボード種別ラベルとともにステータスバーに表示します(OV2640、OV5640、OV7690、OV7725、OV9650、MT9V034、LEPTON)(0ffa82958)。

  • TensorFlow モデルのコピー により、.network ニューラルネットワークファイルだけでなく .tflite モデルもカメラにコピーできるようになりました(ad1aa98f0)。

  • Erase Onboard Data Flash は、確認プロンプトの後にファームウェアを再フラッシュせずカメラのオンボードファイルシステムフラッシュのみを消去する、新しい Tools コマンドです(d953df62f98686ac46)。

  • 初回起動時の LED ガイド は、オンボード LED の状態を説明する新しい OpenMV Cam LED Colors ダイアログで、恒久的に非表示にできます(c2d00422f)。

新機能

  • V3 ブートローダー は、ファームウェアのロード時に QSPI フラッシュのレイアウトを照会し、オンボードデータフラッシュの完全消去時にのみ外部 QSPI フラッシュを消去します。connectClicked は V3 ボードで常に bootloaderQSPIFLayout を実行しますが、bootloaderQSPIFEraseforceFlashFSErase が設定されている場合にのみ実行します(QSPI の write/memtest コマンドは IO レイヤーに実装されていますが、ローダーからは使用されません)(d953df62f)。

  • センサーとボードのステータス は、接続時にカメラのセンサーモジュールを照会し、新しい sensors.txt の id-to-name マップを使用して、新しいボード種別ラベルとともにステータスバーに表示します(OV2640、OV5640、OV7690、OV7725、OV9650、MT9V034、LEPTON)(0ffa82958)。

  • 初回起動時の LED ガイド は、初回起動時に helloworld_1.py が開いているドキュメントである場合、短い遅延の後にポップアップする新しい OpenMV Cam LED Colors ダイアログを追加し、オンボード LED の状態を説明します(緑の点滅 = ブートローダー動作中、青 = main.py 実行中、白 = ハードウェア障害のパニック)。「Don't show this message again.」チェックボックスは、DONT_SHOW_LED_STATES_AGAIN 設定を通じて非表示の選択を保持します(c2d00422f)。

  • Open OpenMV Cam Drive folder は、カメラのマウントされたドライブをシステムのファイルブラウザで開く新しい Tools メニュー項目です(a49f54305)。

  • Erase Onboard Data Flash は、確認プロンプトの後にファームウェアを再フラッシュせずオンボードファイルシステムフラッシュのみを消去する、新しい Tools コマンドです(d953df62f98686ac46)。

  • TensorFlow モデルのコピー により、モデルコピーダイアログで .network ニューラルネットワークファイルに加えて .tflite モデルもカメラにコピーできるようになりました。ダイアログのフィルターにも Label Files (*.txt)All Files の項目が追加されました(ad1aa98f00ffa82958c0dbdd9e5)。

  • デバッグプロトコルのバージョン切り替え は、信頼性のため、ファームウェア 3.5.3 以降と通信する際に GetAttributeSetAttributeFBEnableJPEGEnable のシリアルコマンドを分割します(83b9ca18f)。

  • 新しい同梱サンプル として、TensorFlow Lite の mobilenet と人物検出のスライディングウィンドウスクリプト、STM32Cube.AI(nn_stm32cubeai.py)の MNIST サンプル、新しい 32-modbus フォルダ(modbus_rtu_slave.pymodbus_apriltag.py)、WiFi シールド関連の追加(http_client_sslstatic_ipmqtt_pub/mqtt_sub)、Arduino UART/SPI スレーブ、CAN が追加されました(e26b90d7942ba8f5c4)。

その他の変更と改善

  • USB デバッグプロトコルを新しいファームウェアに合わせて更新しました。属性の読み取りは新しい 32 ビットの ATTR_READ_2(0xCA)コマンドを使用し、属性、値、フレームバッファ有効化のペイロードは 16 ビットワードではなく 32 ビットの long として送信されます(55d7cfe70)。

  • Save open script to OpenMV Cam を、main.py を書き込むことを明確にするため Save open script to OpenMV Cam (as main.py) に名称変更しました(a49f54305)。

  • Run Bootloader を、その目的を明確にするため Run Bootloader (Load Firmware) に名称変更しました(ad1aa98f0)。

  • サンプルメニューは数値のフォルダ/ファイル接頭辞でソートされるようになり、表示名から先頭の NN- 桁が取り除かれます(ad1aa98f0)。

  • 出力およびシリアルターミナルは、ハードコードされた幅 8 ではなく、テキストエディタ設定の構成可能なシリアルターミナルのタブ幅を使用して、タブをスペースとして描画するようになりました(98686ac46)。

  • Linux のドライブ検出は、カメラドライブを関連付ける際に fuseblk でマウントされたファイルシステム(例えば exFAT/NTFS ボリューム)も受け入れるようになりました(c0dbdd9e5)。

  • IDE のヘルプに表示される同梱の MicroPython HTML ドキュメントセット(ライブラリリファレンス、esp8266/esp32 チュートリアル、生成されたページと画像)を更新しました(e69d71f7c90b5c6eb597b0f645a)。

バグ修正

  • ヒストグラム統計(平均、四分位数、中央値、標準偏差)の数値オーバーフローを、アキュムレータを int から 64 ビットに拡張することで修正し、大きな画像で誤った統計が出るのを防ぎました(55d7cfe70)。

  • Linux での切断/取り出しを作り直しました。信頼性に欠ける syncfs/closedir のフラッシュを削除し、ドライブは進捗ダイアログなしで通常の umount コマンドでアンマウントされるようになりました(b86d5c62cc0dbdd9e530d4a7d2d)。

  • ボードの USB ドライブは、ファームウェアが十分新しい場合、または .openmv_disk マーカーファイルが存在する場合にのみ関連付けられるようになり、IDE が誤ったリムーバブルドライブを掴むのを防ぎます(e464eaed4)。

  • 再接続ロジックを修正し、接続中にブートローダー/消去操作をトリガーすると、まずクリーンに切断してから再試行するようになり、作業中状態でスタックするのを回避します(d953df62f)。

  • スクリプトをカメラに送信する際に使用するコメント/空白の除去処理を、文字列を認識するステートマシンとして書き直しました。これにより文字列内の # 文字がコメントと誤認されなくなり、末尾の空白とドキュメント文字列も処理されます(24dff1b2f)。

  • いくつかの接続/ターミナルダイアログメッセージの翻訳文字列の処理を修正し、埋め込まれたシェルコマンド(sudo adduserpydfu インストール手順)が翻訳対象テキストの一部ではなくなり、正しく表示されるようにしました(b5705a57e)。

プラットフォームとツールのサポート

  • Qt Creator ベース: 4.0.2。

  • OpenMV Cam H7 Plus のボード/ファームウェアを OPENMV4R から OPENMV4POMV4P_H7_32768_SDRAM)に名称変更し、新しい名前でそのファームウェアを同梱しました(c0dbdd9e5)。

  • H7 Plus ボードの表示名を、スペースではなくアンダースコアを使用するように修正しました(OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM))(75764132c)。

  • 同梱ファームウェアはリリース全体を通じて更新され、OPENMV2/3/4/4P 向けにバージョン 3.5.2 で終了しました(最終バンプは 15c07498c、それ以前の累積バンプは 42ba8f5c4 で 3.4.2、a99c2e3e1 で 3.4.3、e26b90d79 で 3.5.0、97b0f645a で 3.5.1 です)。

  • 同梱ファームウェアのバージョン: OPENMV2(Cam M4)1.4.11、OPENMV3(Cam M7)1.4.11、OPENMV4(Cam H7)1.2.15、OPENMV4P(Cam H7 Plus)1.2.15。

  • OpenMV IDE のバージョンを 2.2.1 から 2.4.0 に引き上げました。

互換性に影響する変更

USB デバッグの属性読み取りプロトコルが、古い 16 ビットの ATTR_READ(0x8A)コマンドから新しい 32 ビットの ATTR_READ_2(0xCA)コマンドに切り替えられ、属性、値、有効化のペイロードは 32 ビットの long として送信されるようになりました。また IDE は接続時にカメラのセンサー ID を照会します。これには新しいプロトコルを実装するファームウェアが必要です。同梱の 1.2.15 / 1.4.11 ファームウェアはこれを提供するため、古いカメラは接続するために新しいファームウェアにフラッシュする必要があります。