##OpenMVって何
最近OpenMVというマシンビジョンユニットが販売されています。
https://openmv.io/
プロセッサーにCortex-m7を搭載したマイコンボードのような物で、ボードにはイメージセンサーとレンズが乗っている他、MicroSDスロットもあり、スナップショットや動画の保存ができたり、その他のデータ保存が可能なようです(そのうち試してみます)。
またGPIOも何本か出ていて接続することができます。
メーカーからはシールドも販売されているようです。
https://openmv.io/collections/shields
プログラムは専用のIDEが用意されており、micro Pythonでプログラムを作成します。
https://openmv.io/pages/download
IDEにはコードエディタ、シリアルモニタ、カメラ画像、そしてヒストグラムが表示されます。
IDEとセットでサンプルプログラムがいくつかあり
- Lチカ
- とりあえずカメラ画像をIDEに表示させるプログラム
- カメラ画像に図形なんかを描画するプログラム
- 画像にフィルターかけるプログラム
- 動画やスナップショットを保存するプログラム
- 数字を認識するプログラム
- 色を認識するプログラム
- 特徴点を抽出してマークするプログラム
- 顔を検出するプログラム
- アイトラッキング
- 平面や円を検出するプログラム
- シールドを使ったプログラム
この他様々なサンプルプログラムがあります。
今回はとりあえず接続して動かすところまで触ってみました。
なお今回はMacOSX10.13とOpenMV IDE 1.7.1の環境で動かしています。
##とりあえずOpenMVを動かす
###OpenMVを接続する
まず以下のリンクからOpenMV IDEをダウンロードして展開します。
https://openmv.io/pages/download
IDEの展開が終わったら起動してみましょう。下のように「helloworld」のサンプルプログラムが開かれているIDE画面が出てきます。
OpenMVとPCを接続し、ドライバのインストールが終わればIDE側から接続する準備が整います。
OpenMVとの接続と接続状態の確認はIDE左下のボタンで行います。
上のアイコンのボタンがOpenMVとの接続、下のアイコンのボタンがコード実行です。
正直わかりにくいですが、上のように接続されているように見えるアイコンのときは切断されていて、クリックすると接続されるという意味のようです。
##コードを実行する
###実行前にまずファームアップデートを
初回起動時に「skip_frames(time = 2000)」なんて命令無いよ、なんてIDEから怒られ実行ができませんでした。
これはOpenMV側のファームウェアバージョンが古いのが原因のようで、動かない場合はIDE下中央「Firmware Version」のところに「バージョン古いからバージョンアップしてね」みたいな文言が出ている場合があります。(バージョンアップしちゃったので画像ありません)
この時は、このIDE下のバージョン表示をクリックすることでファームウェアのバージョン確認とバージョンアップ(あるいは復元)を行うことができます。
購入後まず始めに行う
###コードを実行する
OpenMVと接続した状態で、IDE左下の緑の三角のボタンをクリックするか【⌘+R】で、IDEのコードエディタに入力されているプログラムが実行されます。
実行実行されている間は、アイコンは下のようになります。
問題なく実行されると、IDE右上にカメラの映像が表示されるのと一緒に、IDE下の「SerialTerminal」をクリックするとfpsの値が連続で送られて来ているのが確認できます。
この他にも色々と機能がありますが、次は顔検出を使って顔を追いかけるロボットを作ってみようかと思います。