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コマンドです(d953df62f、98686ac46)。初回起動時の LED ガイド は、オンボード LED の状態を説明する新しい
OpenMV Cam LED Colorsダイアログで、恒久的に非表示にできます(c2d00422f)。
新機能¶
V3 ブートローダー は、ファームウェアのロード時に QSPI フラッシュのレイアウトを照会し、オンボードデータフラッシュの完全消去時にのみ外部 QSPI フラッシュを消去します。
connectClickedは V3 ボードで常にbootloaderQSPIFLayoutを実行しますが、bootloaderQSPIFEraseはforceFlashFSEraseが設定されている場合にのみ実行します(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コマンドです(d953df62f、98686ac46)。TensorFlow モデルのコピー により、モデルコピーダイアログで
.networkニューラルネットワークファイルに加えて.tfliteモデルもカメラにコピーできるようになりました。ダイアログのフィルターにもLabel Files (*.txt)とAll Filesの項目が追加されました(ad1aa98f0、0ffa82958、c0dbdd9e5)。デバッグプロトコルのバージョン切り替え は、信頼性のため、ファームウェア 3.5.3 以降と通信する際に
GetAttribute、SetAttribute、FBEnable、JPEGEnableのシリアルコマンドを分割します(83b9ca18f)。新しい同梱サンプル として、TensorFlow Lite の mobilenet と人物検出のスライディングウィンドウスクリプト、STM32Cube.AI(
nn_stm32cubeai.py)の MNIST サンプル、新しい32-modbusフォルダ(modbus_rtu_slave.py、modbus_apriltag.py)、WiFi シールド関連の追加(http_client_ssl、static_ip、mqtt_pub/mqtt_sub)、Arduino UART/SPI スレーブ、CAN が追加されました(e26b90d79、42ba8f5c4)。
その他の変更と改善¶
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 チュートリアル、生成されたページと画像)を更新しました(e69d71f7c、90b5c6eb5、97b0f645a)。
バグ修正¶
ヒストグラム統計(平均、四分位数、中央値、標準偏差)の数値オーバーフローを、アキュムレータを
intから 64 ビットに拡張することで修正し、大きな画像で誤った統計が出るのを防ぎました(55d7cfe70)。Linux での切断/取り出しを作り直しました。信頼性に欠ける
syncfs/closedirのフラッシュを削除し、ドライブは進捗ダイアログなしで通常のumountコマンドでアンマウントされるようになりました(b86d5c62c、c0dbdd9e5、30d4a7d2d)。ボードの USB ドライブは、ファームウェアが十分新しい場合、または
.openmv_diskマーカーファイルが存在する場合にのみ関連付けられるようになり、IDE が誤ったリムーバブルドライブを掴むのを防ぎます(e464eaed4)。再接続ロジックを修正し、接続中にブートローダー/消去操作をトリガーすると、まずクリーンに切断してから再試行するようになり、作業中状態でスタックするのを回避します(d953df62f)。
スクリプトをカメラに送信する際に使用するコメント/空白の除去処理を、文字列を認識するステートマシンとして書き直しました。これにより文字列内の
#文字がコメントと誤認されなくなり、末尾の空白とドキュメント文字列も処理されます(24dff1b2f)。いくつかの接続/ターミナルダイアログメッセージの翻訳文字列の処理を修正し、埋め込まれたシェルコマンド(
sudo adduser、pydfuインストール手順)が翻訳対象テキストの一部ではなくなり、正しく表示されるようにしました(b5705a57e)。
プラットフォームとツールのサポート¶
Qt Creator ベース: 4.0.2。
OpenMV Cam H7 Plus のボード/ファームウェアを
OPENMV4RからOPENMV4P(OMV4P_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 ファームウェアはこれを提供するため、古いカメラは接続するために新しいファームウェアにフラッシュする必要があります。