LoginSignup
6
4

More than 3 years have passed since last update.

M5StickV on Mac

Last updated at Posted at 2020-01-22

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

シリアル接続

  1. M5StickVをMacに接続
  2. cuやscreenでシリアル接続 ex. $ sudo cu -l /dev/cu.usbserial-FOOBAR -s 115200
  3. M5StickVのMaixpyにつながる
  4. [MAIXPY]: find ov7740 のメッセージでコンソール出力が止まる (boot.pyが動き出す?)
  5. ここでctrl+cするとboot.pyが止まってpythonのインタプリタで色々できる
  6. 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間でファイルをやりとりできる

  1. Githubから0.1.3のreleaseバイナリをダウンロードして起動
  2. Connectionのプルダウンから対応するポートを選択
  3. M5StickVのディスプレイ横のボタンを押しながらuPyLoaderの connect をクリック
  4. M5StickVが再起動、うまいくとuPyLoaderのステータスがconnectedになる
  5. uPyLoaderのツールバー File > NavigateでMac側のディレクトリを移動
  6. デバイスと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

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4