M5StickC PLUS 主にMicroPythonで遊ぶ
ちっちゃくて,いろいろ遊べるデバイスです。私の遊び方をまとめることにします。
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 で操る
Easyloader
等でやり直しします。(これも上記URLからたどれる)いきなり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 などを送ってみます。 見慣れたメッセージが出てくるはずです。
このまま 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
$
使ったスクリプト
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モードが切り替えできます。
左から Internet モード,USB モード,APP モードとなってます。
[B]ボタンを離してしばらくすると,そのモードで動作開始します。
- Internetモードでは,https://flow.m5stack.com/ で遊びます。
- USBモードでは,UIFlow-Desktop-IDEや,VScode + vscode-m5stack-mpy が使えます。
- APPモードは,main.py が走ります。
また,電源ON直後に[A(M5)]を押し,続けて[B]を連打することで,以下3つの裏モードに入ります。
[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
したりすることになります。
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
>>>
>>> %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で再起動すれば実行できます。その他の場合は上記の通りimport
やexecfile
で実行します。 -
UIFlowを併用すれば,スクリプトのプロトタイプに最適です。UIで画面やら大枠をササッと作って,スクリプトをThonnyにコピペして,細かいところをタイプして実行です。この場合はUIFlowとM5StickC PLUSを接続せずに使います。 UIFlowはリファレンスマニュアルとしても最適です。
ほか参考 URL
- Arduinoは使ったことがないので...
https://docs.m5stack.com/en/core/m5stickc_plus
https://note.com/singtaro/n/n45bed25b37c5
Author And Source
この問題について(M5StickC PLUS 主にMicroPythonで遊ぶ), 我々は、より多くの情報をここで見つけました https://qiita.com/numeru55/items/5cf7f8e72b3cbe4c92b2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .