M5Stackでカウントダウンタイマー

Countdown timer ・ 倒计时器

OLED表示とブザーアラーム付きのカウントダウンタイマー。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit OLEDOLED Displaygrove_i2cofficial page — $10.95
Unit BuzzerBuzzergrove_analogofficial page — $4.5

配線

作り方

M5Stack Core2とOLEDユニット、ブザーユニットで作るカウントダウンタイマーです。OLED画面に残り時間を表示し、時間が来たらブザーが鳴ります。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Unit OLED(U119)、Unit Buzzer(U132)、Groveケーブル2本(通常ユニットに付属)、Core2とパソコンをつなぐUSB-Cケーブル。
  2. OLEDユニットをPort.Aに接続する — Groveケーブルの一端をUnit OLEDに、もう一端をCore2の赤いPort.A(I2Cポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  3. ブザーユニットをPort.Bに接続する — もう1本のGroveケーブルの一端をUnit Buzzerに、もう一端をCore2の黒いPort.B(アナログ/IOポート)に差し込みます。
  4. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  5. カウントダウンを開始する — コードを実行すると、OLED画面に「Countdown: 10」と表示され、1秒ごとに数字が減っていきます。0になるとブザーが約1秒間鳴り、画面に「Time's up!」と表示されます。
  6. 動作を確認する — カウントダウンが正しく進み、ブザーが鳴ることを確認します。必要に応じてコード内のCOUNTDOWN_SECONDSの値を変更して、カウント時間を調整できます。

サンプルコード(micropython)

# M5Stack Core2 + Unit OLED (I2C) + Unit Buzzer (PWM)
# Wiring: OLED -> Core2 red Port.A (I2C), Buzzer -> Core2 black Port.B (analog/GPIO)
import time
from machine import Pin, SoftI2C, PWM
from m5stack import lcd
import ssd1306  # OLED driver (SH1107 compatible)

# I2C for OLED (Port.A: scl=22, sda=21)
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)

# Buzzer on Port.B (GPIO 36)
buzzer = PWM(Pin(36), freq=4000, duty=512)  # 4KHz, 50% duty

COUNTDOWN_SECONDS = 10  # change this to set countdown time

oled.fill(0)
oled.text('Countdown:', 0, 0)
oled.show()

for i in range(COUNTDOWN_SECONDS, -1, -1):
    oled.fill_rect(0, 16, 128, 16, 0)  # clear number area
    oled.text(str(i), 0, 16)
    oled.show()
    time.sleep(1)

# Time's up: beep and display message
oled.fill(0)
oled.text("Time's up!", 0, 0)
oled.show()
buzzer.duty(512)  # start buzzer
time.sleep(1)
buzzer.duty(0)    # stop buzzer

# Cleanup
oled.poweroff()
buzzer.deinit()

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。