5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5StickC PLUS 主にMicroPythonで遊ぶ

Last updated at Posted at 2022-03-26

ちっちゃくて,いろいろ遊べるデバイスです。私の遊び方をまとめることにします。

https://docs.m5stack.com/en/quick_start/m5stickc_plus/mpy
https://docs.m5stack.com/en/core/m5stickc_plus

ほぼこのページで説明されているのですが,補足の意味で書きます。

まずはとにかくファームを書き込む

  • M5Burnerを使います。上記URL参照。
  • PLUSじゃないサンプルファイルを書き込むと,いろいろ不都合を起こします。やってしまったら,Easyloader等でやり直しします。(これも上記URLからたどれる)
  • WiFiの設定も適宜行います。

とにかく REPL と ampy で操る

いきなりUSBケーブルを接続し,ampyコマンドを送っても反応がないので,かなり悩みました。

なかなかズバリ書かれた記事が見当たらなかったのですが,以下の手順を見つけました。macOS Big Sur 11.6.4 を使っています。

  • USBケーブルでmacに接続し,screen でM5StickC PLUSと通信します。(デバイス番号は適宜変更してください)
screen /dev/cu.usbserial-1DD2F6A6AB 115200

M5StickC PLUSから反応がない場合が多いです。Ctrl+C / Ctrl+D / Ctrl+B などを送ってみます。 見慣れたメッセージが出てくるはずです。

image.png

このまま REPL 上で操作も可能です。ああよかった。

その REPL の状態で,screenを脱出します。[Ctrl]+[a] つぎに [k] [y] を押します。ampyを受け付けるようになります。

$ ampy -p /dev/cu.usbserial-1DD2F6A6AB ls /flash
/flash/apps
/flash/blocks
/flash/boot.py
/flash/emojiImg
/flash/img
/flash/main.py
/flash/res
/flash/temp.py
/flash/test.py
/flash/update
$ ampy -p /dev/cu.usbserial-1DD2F6A6AB run blink.py 
0
1
2
3
4
$

使ったスクリプト

blink.py
from m5stack import *
from m5ui import *
from uiflow import *
import utime

def run():
    for i in range(5):
        print(i)
        M5Led.on()
        utime.sleep(0.5)
        M5Led.off()
        utime.sleep(0.5)

run()

それでも,どのようなきっかけなのかよくわかりませんが,ampyを受け付けなくなるときがあります。そんなときも,上記のようにREPLにアクセスして,いったんscreenを抜ければまたampyを受け付けるようになるはずです。

M5StickC PLUS の動作モードについて

これも最初わからなくて悩みました。。。末尾の記事を参考に,やっと自分なりに理解できるようになりました。うまく説明できるか不安ですが。。。

図はいろいろなURLから引用させてもらいました。

まず,どのモードになっていても,上に記載した方法で 強制的にREPLにアクセスすることができるようです。 ひと安心です。

電源を入れて,最初の画面が出たらすぐに[B]ボタンを何度か押すと,以下の3モードが切り替えできます。

image.png

左から Internet モード,USB モード,APP モードとなってます。

[B]ボタンを離してしばらくすると,そのモードで動作開始します。

また,電源ON直後に[A(M5)]を押し,続けて[B]を連打することで,以下3つの裏モードに入ります。

image.png

[B]で選んで[A(M5)]で確定します。

  • Code ではInternetモードになるようです。
  • Setup は設定メニューに入ります。
  • APPListでは,app/にある*.pyファイルを選んで実行できます。

最初は [A(M5)] や [B] を押すタイミングが良くわかりませんでしたが,慣れたらOKでした。
REPLからCtrl+Dで再起動すると少し楽です。

VScode + vscode-m5stack-mpy で遊ぶ

公式ガイドのとおりですが,少しだけ補足します。

M5StickC PLUS を接続すると,エクスプローラー - M5STACK DEVICE にデバイス内のファイル一覧が出てきます。これらの *.py ファイルに対して編集したり,Run in M5Stack したりすることになります。

image.png

Thonnyを使う(個人的おすすめ 加筆修正)

  • Ctrl+C連打等でREPLへのアクセスは可能です。デバイス内のファイルも開けます。ただ,>>> %Run -c $EDITOR_CONTENT がうまく動きません。importして実行します。(blink.pyは上記参照)
  • または exec("myfile.py")とすれば簡単です。
MicroPython ae8b2b72a-dirty on 2022-03-04; M5StickC-Plus with ESP32
Type "help()" for more information.
>>> os.listdir()
['apps', 'blink.py', 'blocks', 'boot.py', 'emojiImg', 'img', 'main.py', 'res', 'temp.py', 'test.py', 'update']
>>> import blink
0
1
2
3
4
>>> import blink
>>> blink.run()
0
1
2
3
4
>>> del blink
>>> import blink
>>> blink.run()
0
1
2
3
4
>>> 

しばらく使い込んでみました。以下のように使うといい感じでした。

  • M5StickC PLUS は APPモードにします。

  • Thonnyに接続します。REPLに戻らなかったら,Ctrl+C連打等実施します。

  • 表示 - ファイル を選んでおけば,デバイス内のファイルやり取りも簡単です。とにかくデバイス内にスクリプトを用意します。

  • main.pyを書いた場合,Ctrl+Dで再起動すれば実行できます。その他の場合は上記の通りimportexecfileで実行します。

  • UIFlowを併用すれば,スクリプトのプロトタイプに最適です。UIで画面やら大枠をササッと作って,スクリプトをThonnyにコピペして,細かいところをタイプして実行です。この場合はUIFlowとM5StickC PLUSを接続せずに使います。 UIFlowはリファレンスマニュアルとしても最適です。

ほか参考 URL

  • Arduinoは使ったことがないので...

https://docs.m5stack.com/en/core/m5stickc_plus
https://note.com/singtaro/n/n45bed25b37c5

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?