コンテンツにスキップ

M5: VSCode で UIFlow MicroPython による開発

M5Stack に UIFlow が動作するファームウェアを焼くことで、UIFlow のサイトでビジュアルプログラミングするほか、MicroPython によるプログラムを動作させることができます。

※UIFlow に含まれる MicroPython は M5Stack Micropython Base Lobo MicroPython - GitHub がベースになっているようなのですが、buttonA でなく btnA という名前になっているので注意。

Prerequisite

Prepare

  1. PC にシリアルドライバーをインストールして接続する

  2. M5Burner を使って M5Stack に UIFlow ファームウェアを焼く

    Burn

  3. UIFlow を USB モードに設定する (設定は本体上でおこなうこともできます。)

    Configurate

Howto

vscode-m5stack-mpy を参考。

  1. 「Add M5Stack」で、M5Stack のシリアルポートを選択して接続
  2. 「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 です。