はじめに
人気のIoTモジュールM5Stack Core2を、Python(MicroPython)でプログラミングする方法を解説します。開発環境は公式の環境の「UIFlow」を使用します。
Blocklyの解説ではラベルのみだったので、今回は画面にスイッチを配置して「スイッチに応じてラベルの内容を変化させるプログラム」の作り方を解説します。
※ クリックすると各項目へジャンプできます
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど |
モジュール | M5Stack Core2 |
PCのOS | Windows10 |
UIFlow | Ver.1.9.0 |
M5Stack Core2 をはじめよう
M5Stack Core2には標準でUSBケーブル(TypeA-TypeC)が付属しているので、買ってすぐに始めることができます。アマゾンで買えるので購入も簡単です。
「ポイントやチャージを使いたい」「日用品・他の買い物と合わせて買いたい」という方は以下のリンクをご利用ください。
2022年4月現在、円安と半導体不足の影響からか、M5Stack Core2も在庫小・価格上昇・長納期化が進んでいるようです。今後の動向は読めないので、購入予定の方は早めの行動をおすすめします。
こちらの記事で開発時に使えるおすすめツールも紹介しています。
今ならAmazonで、通常会員0.5~2% Prime会員なら最大2.5%のポイントが貰える「現金チャージ」も使えます。
実行結果
後述するコードで、「スイッチに応じてラベルの内容を変化させるプログラム」を作ることができます。実行時の画像(M5Stack Core2の画面)は以下の通りです。
全体コード
全体コードは以下の通りです。
from m5stack import *
from m5stack_ui import *
from uiflow import *
screen = M5Screen()
screen.clean_screen()
screen.set_screen_bg_color(0xFFFFFF)
# ラベル・スイッチの設定です。
label0 = M5Label('Text', x=68, y=59, color=0x000, font=FONT_MONT_28, parent=None)
switch0 = M5Switch(x=30, y=10, w=70, h=30, bg_c=0xCCCCCC, color=0x0288FB, parent=None)
# 100回ループします
for i in range(1):
# スイッチ操作を3秒待ちます
wait(3)
# スイッチがONの場合のラベルを設定します
if switch0.get_state() == True:
label0.set_text("Switch is ON")
# スイッチがOFFの場合のラベルを設定します
else:
label0.set_text("Switch is OFF")
# ループが終了したことをラベルに表示します
label0.set_text("Program is done. ")
コードのポイント
秒指定で停止させる
スイッチ操作を待つための、プログラムに停止処理を入れています。
wait関数は、秒指指定で処理を停止します。スイッチはwait中も操作することが可能です。
wait_ms関数を使えばミリ秒単位で停止させることもできます。
# スイッチ操作を3秒待ちます
wait(3)
スイッチ状態の取得とラベル(テキスト)の変更
get_state関数により、スイッチの状態をBool値で取得しています。取得した状態に合わせて、ラベルの表示内容を変更しています。
- スイッチON :True
- スイッチOFF:False
# スイッチがONの場合のラベルを設定します
if switch0.get_state() == True:
label0.set_text("Switch is ON")
# スイッチがOFFの場合のラベルを設定します
else:
label0.set_text("Switch is OFF")
まとめ
M5Stack Core2を、Python(MicroPython)でプログラミングする方法を解説しました。この記事の内容がお役に立てればうれしいです。
その他の記事
M5Stack Core2で使える開発環境についてもまとめています。興味のある方は以下もご覧ください。
もう少し安いやつないの?
WifiやBluetoothの機能はありませんが、H/W制御の特化の「RaspberryPi Pico」なら1000円程度で始めることができます。「激安でH/Wを動かしたい」という方にはRaspberryPi Picoがおすすめです。

応援・要望お待ちしてます
ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。
ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。