【内容】
とりあえず予備知識無しでM5StickVを使ってみます。
前回の記事ではシリアルコンソールにつないでの操作でしたので、今回やGUIツールを使った操作になります。
前回同様、基本的には公式の手順を踏襲しますが、やはり何箇所かハマりましたが、最終的には解決しています。
【M5StickV Quick Start - M5Stack】
なお、作業にはWindows 10 Pro (1809)を利用しています。
【uPyLoaderを使う】
「uPyLoader」はPCとM5StickV間でファイルのやり取りを行うツールです。
先日まで上記のQuick Startにも書いてあったはずですが、今見てみたら記載がありませんでしたが、せっかくなので使えるようにします。
uPyLoaderのダウンロード
下記のGithubより最新版を取得します。
2019年8月23日時点で「v0.1.4」が最新版になります。
【uPyLoader - Github】
本手順ではWindowsのバイナリファイルである「uPyLoader-win.exe」をダウンロードしました。
uPyLoaderの起動
ダウンロードした「「uPyLoader-win.exe」を適当なフォルダに保存した後、ダブルクリックで実行します。
正しく起動できれば以下の画面が表示されます。
M5StickVとの接続
画面右上にある「Connect」ボタンを押します。
そのままだと下記画面のように「Status」が「Error」となってしまいます。
このエラーをなかなか解決できなかったのですが、M5StickVの「boot.py」を読んでいたら、ボタンAが押されていたら処理を終了するような記述がありました。
ボタンAが何かわからなかったのですが、いろいろ試していたところ、LCD下(?)(下記画像の赤枠)のボタンを押して起動したときに、デモプログラムが実行されないことがわかりました。
そこで、このボタンを押した状態で「Connect」ボタンを押したところ、見事に接続に成功しました。
メッセージの指示に従い、「File」メニューから「Init transfer files」を実行します。
上記コマンドを実行すると、 __upload.py
と __download.py
が転送され、準備が完了します。
ファイルのダウンロード
M5StickV上のファイルをPCにダウンロードしてみます。
試しにRemote側にある「boot.py」を選択し、右下の「Transfer」ボタンを押します。
デフォルトではuPyLoaderと同じフォルダにダウンロードされます。
ファイルのアップロード
今度は逆にPCからM5StickVにファイルを転送します。
試しに先ほどダウンロードした「boot.py」を変更します。
「boot.py」を適当なエディタで開き、前回の記事を参考に起動音量を調整して保存します。
編集が完了したらuPyLoaderからM5StickVにアップロードしてみます。
「Local」側でアップロード対象となるファイルを選択し、中央下にある「Transfer」ボタンを押します。
ファイルの実行
転送が完了したら、ファイルを実行して更新内容が反映されているか確認してみます。
「Remote」側で実行したいファイルを選択し、「Execute」ボタンを押します。
ちゃんと変更内容が反映されていましたでしょうか?
なお、今回は「boot.py」を変更しているため、「Execute」ボタンを押す代わりに「Disconnect」ボタンを押すことでも動作確認を行うことが出来ます。
M5StickVとの切断
すべてのファイルの転送が完了したら「Disconnect」ボタンを押すことでM5StickVから切断できます。
このタイミングでM5StickVは再起動されます。
【MaixPy IDEを使う】
uPyLoaderを使ってファイルの編集及び転送を行えば、独自のプログラムを実行させることができることがわかりました。
uPyLoader以外にも、もう少し簡単に開発作業が行えるIDEツールが用意されていますので、これを使ってみます。
MaixPy IDEのインストール
Quick Startに最新バージョンのリンクがあるのでそちらからインストーラをダウンロードできます。
また、下記URLから任意のバージョンをダウンロードすることも可能です。
【MaixPy IDE インストーラ】
ダウンロードできたらインストーラを実行して、インストールします。
インストールオプションは特に変更する必要はありません。
MaixPy IDEの実行と接続
標準でインストールするとWindowsメニューに「MaixPy IDE」が追加されていると思いますので、こちらから実行します。
起動できたら接続設定を行います。
「ツール」メニューから「Select Board」を選び「M5StickV」を選択します。
設定できたら左下のボタンを押してM5StickVと接続します。
プログラムの実行
初期起動時には「helloworld_1.py」というサンプルプログラムが開かれていると思います。
開いていない場合は「ファイル」メニューから「例」>「01-Basics」>「helloworld.py」を選ぶとサンプルプログラムが開きます。
この状態で左下のボタンを押すと、M5StickVにサンプルプログラムが転送されプログラムが実行されます。
サンプルプログラムの内容は以下のとおりです。
- センサー(カメラ)をリセットして設定する
- センサーのスナップショットを撮る
- 取得したイメージをLCDに表示する
- fpsを出力する
M5StickVのLCDにカメラ画像が表示されていれば、サンプルプログラムは実行されています。
またIDEの右ペインにはカメラのフレームバッファやヒストグラムが表示されています。
print文などコンソールへの出力は、左下の「シリアルターミナル」タブを押すと表示されます。
残念なことにシリアルターミナルは表示のみで入力には使えないようです。
ちなみに上記画像のフレームバッファ映像はピンぼけしています。
本体カメラレンズの黒い部分を回すとピントを調整できました。
その他の操作
boot.pyの更新
「ツール」>「save open script to board(boot.py)」を実行すると、現在IDEで開いているスクリプトをM5StickVのboot.pyに書き込みます。
これによりM5StickV起動時に自動的にこのスクリプトが実行されるようになります。
なお、処理実行時に「コメントを取り除き、スペースをタブに変換するか?」と聞かれますが、どちらを選択しても特に問題はないようでした。
ファイルサイズを小さくしたい場合などに行うのでしょうか?
ファイルの転送
「ツール」>「transfer file to board」を実行するとファイルダイアログが開きます。
ここで選択したファイルはM5StickVに転送されるため、いちいちuPyLoaderを使う必要はありません。
M5StickVとの切断
すべての作業完了したら左下のボタンを押すことでM5StickVから切断できます。
このタイミングでM5StickVは再起動されます。
【最後に】
前回の記事と今回の記事で、M5StickVをとりあえず使えるようにはなりました。
今後どこまで使えるか、検証してみたいと思います。