M5StackでModule13.2 4In8Out を使う

Using the Module13.2 4In8Out ・ 使用 Module13.2 4In8Out

M5StackのModule13.2 4In8Outをコントローラーに接続する最小構成。配線とBOMつき。

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

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Module13.2 4In8Outmodulembus, i2c, terminal_blockofficial page — $16.95

配線

作り方

M5Stack Core2とModule13.2 4In8OutをM-Busで接続し、8チャンネルのMOSFET出力と4チャンネルの接点入力をI2C制御するための最小構成の配線ガイドです。Module13.2はCore2の底面のM-Busポートに直接スタックして使用します。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Module13.2 4In8Out、Core2とパソコンをつなぐUSB-Cケーブル。
  2. Module13.2をCore2にスタックする — Core2の底面にあるM-Busコネクタに、Module13.2のオスコネクタを合わせて、しっかりと押し込みます。コネクタの向きは一方向なので、無理に逆向きに挿入しないでください。
  3. 電源を接続する — Module13.2の端子台に9-24V DC電源を接続します。プラスをVIN、マイナスをGNDに接続してください。Core2はModule13.2から5V/3Aの電源供給を受けます。
  4. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  5. 動作を確認する — コードを実行すると、Core2の画面にI2Cアドレスと入力状態が表示されます。出力チャンネル1が1秒ごとにON/OFFを繰り返します。LEDなどが接続されていれば点滅を確認できます。

サンプルコード(micropython)

# M5Stack Core2 + Module13.2 4In8Out (M-Bus stack)
# Wiring: Module13.2 stacked on Core2 via M-Bus (I2C)
# Module13.2 I2C address: 0x27 (default)
import time
from machine import Pin, I2C
from m5stack import lcd

# Initialize I2C on Core2's M-Bus (Port A pins: 21=SDA, 22=SCL)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)

# Module13.2 I2C address
ADDR = 0x27

# Register addresses (from datasheet)
REG_INPUT = 0x00      # read 4-bit input state
REG_OUTPUT = 0x01     # write 8-bit output state
REG_CONFIG = 0x03     # configure I/O direction (0=output, 1=input)

# Configure all 8 outputs as outputs (0x00 = all outputs)
i2c.writeto_mem(ADDR, REG_CONFIG, bytes([0x00]))

lcd.clear()
lcd.print('Module13.2 Demo', 10, 10)

while True:
    # Read input state (4 bits, lower nibble)
    input_state = i2c.readfrom_mem(ADDR, REG_INPUT, 1)[0] & 0x0F
    lcd.print('Inputs: %04b' % input_state, 10, 40)
    
    # Toggle output channel 1 (bit 0)
    i2c.writeto_mem(ADDR, REG_OUTPUT, bytes([0x01]))
    time.sleep(1)
    i2c.writeto_mem(ADDR, REG_OUTPUT, bytes([0x00]))
    time.sleep(1)

コツ・安全上の注意

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

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

エディタで開く →

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