はじめに
人気のIoTモジュールM5Stack Core2を、Python(MicroPython)でプログラミングする方法を解説します。開発環境は公式の環境の「UIFlow」を使用します。
Blocklyの解説ではラベルのみだったので、今回は画面にスイッチを配置して「スイッチに応じてラベルの内容を変化させるプログラム」の作り方を解説します。
※ クリックすると各項目へジャンプできます
環境
この記事は以下の環境で作成しています。
環境 | バージョン |
モジュール | M5Stack Core2 |
開発用PCのOS | Windows10 |
UIFlow | Ver.1.9.0 |
M5Stack Core2 をはじめよう
M5Stack Core2は、USBケーブル(TypeA-TypeC)も付属なので、すぐに始めることができます。セットアップ方法については、こちらの記事をご覧ください。
こちらの記事で「おすすめ工具」も紹介しています。
実行結果
後述するコードで、「スイッチに応じてラベルの内容を変化させるプログラム」を作ることができます。実行時の画像(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で使える開発環境についてもまとめています。興味のある方は以下もご覧ください。
M5Stackを詳しく知るには
M5Stackをより詳しく知りたい方は、こちらの書籍がおおすすめです。書籍の中で使われているのは、M5Stack Basic + Arduino言語ですが、M5Stackの概要・構成などをより詳しく学べます。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。