MacOS MojaveでM5StickVを使うメモ
ファームウェア更新
ファームウェアのダウンロード
公式QuickStartに従って M5StickV_Firmware_v5.1.2.kfpkg
をダウンロード
ファームウェアのflash
QuickStartからダウンロードできるKflash_GUIはMojave(10.14.6)では起動しなかったので、CLIのkflash.pyで書き込んだ
$ pip3 install kflash
$ kflash -B goE -p /dev/cu.usbserial-<FOOBAR> -b 1500000 ~/Downloads/M5StickV_Firmware_v5.1.2.kfpkg
pやBは自動検出してくれるようなので指定しなくても動くかも
<追記> githubの方のkflash_gui
は起動できた
$ git clone --recursive https://github.com/sipeed/kflash_gui.git
$ cd kflash_gui
$ pip3 install -r requirements.txt
$ python3 kflash_gui.py
シリアル接続
- M5StickVをMacに接続
- cuやscreenでシリアル接続 ex.
$ sudo cu -l /dev/cu.usbserial-FOOBAR -s 115200
- M5StickVのMaixpyにつながる
-
[MAIXPY]: find ov7740
のメッセージでコンソール出力が止まる (boot.pyが動き出す?) - ここでctrl+cするとboot.pyが止まってpythonのインタプリタで色々できる
- Quickstartに従ってhello world表示したりとか
カレントディレクトリは /flash
でファイルが4つあった
>>> import os
>>> os.getcwd()
'/flash'
>>> os.listdir()
['ding.wav', 'startup.jpg', 'freq.conf', 'boot.py']
- startup.jpg: 起動時に表示されるVっていう画像
- ding.wav: 起動時に鳴るベルの音
- boot.py: デフォルトで入ってる顔認識のコード?
- freq.conf: よくわからない
このコンソール上でもテキストエディタでコードを編集できる。けど辛そう、、
挙動
- 自分でboot.pyファイルを書いて既存のものと置き換えればいいらしい
- 機械学習のモデルもsdカードやflashに書き込んでおけば読み込めるらしい
- MicroSDにboot.py入れて起動するとそっちを動かしてくれるらしい
ファイルの書き込み
uPyLoaderでMac-M5StickV間でファイルをやりとりできる
- Githubから0.1.3のreleaseバイナリをダウンロードして起動
- Connectionのプルダウンから対応するポートを選択
- M5StickVのディスプレイ横のボタンを押しながらuPyLoaderの
connect
をクリック - M5StickVが再起動、うまいくとuPyLoaderのステータスがconnectedになる
- uPyLoaderのツールバー File > NavigateでMac側のディレクトリを移動
- デバイスとMac相互にファイルをやりとりできる
Macのbluetoothが有効になってるとGUIが立ち上がらないことがあった。謎
デフォルトで入ってるboot.pyを取り出して見てみると参考になる
起動音が大きめなので書き込みのテストがてら player.volume(100)
を10にして上書きしてみたらちゃんと静かになった。素敵
boot.py以外のpythonファイルの実行
公式Quickstartによると以下の2つの方法で自動起動時にboot.py以外のファイルも実行できる
- boot.pyからimportで呼ぶ or
- execでファイルごと実行する
with open("hello.py") as f:
exec(f.read())
学習モデルのロード
デバイスから持ってきたデフォルトのboot.pyを読むと
task = kpu.load(0x300000) # Load Model File from Flash
...
kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
となってて、yoloのモデルファイルをFlashから読み込んでるみたい
このアドレスはどうやって知るんだろう?
SDに入れてる場合は kpu.load("/sd/xxx.kmodel")
とパス指定でいけるらしい
https://maixpy.sipeed.com/en/libs/Maix/kpu.html
Todo
- MicroSD
- 相性問題があるらしい
- 自前のkmodelはsdカードに入れて動かしてる人が多い模様
- API勉強する
- 自前のkmodel作って入れてみる
- V-Training試す
References
参考になりそうなサイトがたくさん
https://github.com/elloza/awesome-k210
TipsとQ&Aが参考になる
http://community.m5stack.com/topic/1226/m5stickv-link-info-dump