M5Stackを買ってみた
明日から2週間くらい東海村に出張です。
都会っ子(自称)だけど大丈夫だろうか・・・
スイッチサイエンスのGW直前セールで10%オフになっていた
M5Stack Grayを買いました。シンプルなM5 Stackに9軸のセンサーがついてるようです。
大吉。
開発言語
M5StackはArduino IDEを用いたArduino言語での開発と
組込み用のpython言語であるMicro python
を使った開発が行えます。
Arduino IDEがそのまま使えるのはいいなーって思っていたのですが
考えてみたらmicro pythonはまだ使ったことがなかったので、そっちで試してみることに。
ドライバのダウンロード
M5stackの公式HPからドライバをインストールします。
僕はmacユーザーなので、CP210X Driver
のmac版を選択してダウンロード。
無事に入ったらM5stackをPCに接続してターミナルで
ls /dev/tty.SLAB*
と打ち、M5stackが認識しているかを確認します。
認識してなかったらUSBの向きを逆にして再びチャレンジ。こいつ、Type-Cなのに向きがある・・・
tty.SLAB_USBtoUART
がいたら、ちゃんと認識できています。
ファームウェアの書き込み
Micropythonのファームウェアをインストールします。
ファームウェアはこちらのサイトからダウンロードできます。
とりあえず一番新しそうなm5cloud-20180516-v0.4.0.bin
ってやつをダウンロードしました。
psram
っていうのがついてるシリーズは、M5stack fireのようなメモリが増強されているやつ用だそうです。
続いてファームウェアを書き込むのに必要なモジュールをインストールしていきます。
pip3 install esptool
これを使ってM5stackへファームウェアを書き込みます。
インストールが無事におわったら、M5stackをPCと接続し
esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART erase_flash
と入力
これで今、M5Stackに書き込んであるファームウェアが消去されます。続いて
esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART write_flash --flash_mode dio -z 0x1000 ~Path/m5cloud-20180516-v0.4.0.bin
と入力。~Path/
の部分はこのbinファイルの入っているファイルパスを入力してください。
これでファームウェアの書き込みは完了。M5Stackが自動で再起動されます。
プログラムを書き込む
これでM5Stackをmicropythonで使う準備は完了です。
早速いろんなプログラムをM5Stackで動かしてみることにしましょう。
from m5stack import lcd lcd.clear() lcd.print("Hello World")
作ったプログラムはmain.py
という名前で保存し、adafruit-ampy
というモジュールを使って
M5Stackへと転送します。adafruit-ampy
が入っていない人はpip
から
pip3 install adafruit-ampy
をいれておきます。
M5Stackへのmain.py
の転送は、同じくmacのターミナル上で
ampy -p /dev/tty.SLAB_USBtoUART put main.py /flash/main.py
で転送できます。転送したらM5Stackを再起動させると、main.pyが自動起動します。
まずは世界へと挨拶。
lcd制御関係の関数は、公式のreadmeを参考にしました。
github.com
続いて、適当な円を画面上に表示してみます
from m5stack import lcd lcd.clear() lcd.setColor(0xFFFFFF) x=100 y=100 r=50 lcd.circle(x, y, r, 0xFFFFFF,0x00FF00)
x,yの位置が100,100のところに、半径50ピクセルの円を書きました。
続いて、画像の表示をしてみます。macのkeynoteで
640×480ptの適当な画像ファイルをつくり、img1.jpg
という名前で保存します。
作ったらmain.py
を次のように書き換え。
from m5stack import lcd image="img1.jpg" led.clear() lcd.image(lcd.CENTER,lcd.CENTER,image,1,lcd.JPG)
画像を表示したい時は、main.py
だけでなく表示したい画像もM5Stack側に転送しておきます。
jpgファイルとbmpファイルに対応しているようです。pngはだめだった。
##プログラムの転送 ampy -p /dev/tty.SLAB_USBtoUART put main.py /flash/main.py ##画像ファイルの転送 ampy -p /dev/tty.SLAB_USBtoUART put img1.jpg /flash/img1.py
M5Stackを再起動してみるとこんな感じに。
フルカラーで画像が表示されるのは気持ちいいですね。
とりあえず今日はココらへんまで。
出張がおわったら、もうちょい色々と遊んでみることにします。