M5Stack

【入門者向け】M5Stack Core2 の使い方 UIFlow MicroPythonでのプログラミング【Windows】

はじめに

人気のIoTモジュールM5Stack Core2を、Python(MicroPython)でプログラミングする方法を解説します。開発環境は公式の環境の「UIFlow」を使用します。

Blocklyの解説ではラベルのみだったので、今回は画面にスイッチを配置して「スイッチに応じてラベルの内容を変化させるプログラム」の作り方を解説します。

※ クリックすると各項目へジャンプできます

環境

この記事は以下の環境で作成しています。

環境          バージョンなど     
モジュール M5Stack Core2
PCのOSWindows10
UIFlowVer.1.9.0

M5Stack Core2 をはじめよう

M5Stack Core2には標準でUSBケーブル(TypeA-TypeC)が付属しているので、買ってすぐに始めることができます。アマゾンで買えるので購入も簡単です。

「ポイントやチャージを使いたい」「日用品・他の買い物と合わせて買いたい」という方は以下のリンクをご利用ください。

2022年4月現在、円安と半導体不足の影響からか、M5Stack Core2も在庫小・価格上昇・長納期化が進んでいるようです。今後の動向は読めないので、購入予定の方は早めの行動をおすすめします。

こちらの記事で開発時に使えるおすすめツールも紹介しています。

¥5,990 (2022/03/30 18:04時点 | Amazon調べ)

今ならAmazonで、通常会員0.5~2% Prime会員なら最大2.5%のポイントが貰える「現金チャージ」も使えます。

実行結果

後述するコードで、「スイッチに応じてラベルの内容を変化させるプログラム」を作ることができます。実行時の画像(M5Stack Core2の画面)は以下の通りです。

掲載プログラムの実行結果(スイッチONにした場合)
スイッチONのときの画面
掲載プログラムの実行結果(スイッチOFFにした場合)
スイッチOFFのときの画面

全体コード

全体コードは以下の通りです。

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での紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。