M5Stack に UIFlow が動作するファームウェアを焼くことで、UIFlow のサイトでビジュアルプログラミングするほか、MicroPython によるプログラムを動作させることができます。
- MicroPython
- UIFlow-Code - GitHub (UIFlow ファームウェアに含まれる MicroPython でハードウェアを制御するライブラリ)
※UIFlow に含まれる MicroPython は M5Stack Micropython Base Lobo MicroPython - GitHub がベースになっているようなのですが、buttonA
でなく btnA
という名前になっているので注意。
Prerequisite
- M5Stack デバイス
- シリアルドライバー (公式のダウンロードページ)
- M5Burner (M5Stack デバイスに UIFlow ファームウェアを焼くプログラム)
- Visual Studio Code + vscode-m5stack-mpy
Prepare
-
PC にシリアルドライバーをインストールして接続する
-
M5Burner を使って M5Stack に UIFlow ファームウェアを焼く
-
UIFlow を USB モードに設定する (設定は本体上でおこなうこともできます。)
Howto
vscode-m5stack-mpy を参考。
- 「Add M5Stack」で、M5Stack のシリアルポートを選択して接続
- 「M5STACK DEVICE」に M5Paper 内のファイル一覧が表示されるので、適当な場所にプログラムファイルを保存して「Run in M5Stack」
Sample
Hello world
M5Stack の場合
from m5stack import lcd
lcd.clear()
lcd.setColor(lcd.WHITE)
lcd.setCursor(0, 0)
lcd.print("Hello, M5Stack")
M5Paper の場合 (E Ink ディスプレイのためか、若干方法が異なるようです?)
from m5stack import lcd
lcd.fillScreen(15)
lcd.font(lcd.FONT_DejaVu24)
lcd.setTextColor(0, 15)
lcd.text(30, 450, "Hello, M5Paper")
lcd.show()
M5Stack Core のハードウェアボタン(A/B/C)からの入力
buttonA
でなく btnA
という名前になっているので注意。
from m5stack import btnA
def on_wasPressed():
lcd.print("Pressed")
btnA.wasPressed(on_wasPressed)
温湿度センサー(SHT30)から値を取得する
ENV II Unit (SHT30+BMP280) を接続します。M5Paper には SHT30 が内蔵されていますが、外気温の計測用途ではないと思います。
from machine import I2C, Pin
from sht30 import SHT30
def get_temp_hum():
i2c = I2C(freq=100000, scl=Pin(22), sda=Pin(21))
sht30_sensor = SHT30(i2c)
return sht30_sensor.measure()
温度の単位は℃です。
気圧センサー(BMP280)から値を取得する
from machine import I2C, Pin
from bmp280 import BMP280
def get_pressure():
i2c = I2C(freq=100000, scl=Pin(22), sda=Pin(21))
bmp280_sensor = BMP280(i2c)
return bmp280_sensor.values[1]
値の単位は hPa です。