M5StackでModule13.2 GoPlus2 を使う

Using the Module13.2 GoPlus2 ・ 使用 Module13.2 GoPlus2

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

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

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack CoreS3Controllergrove_i2c, grove_analog, grove_uart, mbus, usb_c, sdcardofficial page — $59.9
Module13.2 GoPlus2modulembus, grove_i2c, other:PORT-B (analog/digital I/O), other:DC motor output x2, other:Servo output x4, other:IR transmit/receiveofficial page — $15.5

配線

作り方

M5Stack CoreS3とModule13.2 GoPlus2を組み合わせて、モーターやサーボを制御できるようにする最小構成の組み立てガイドです。GoPlus2はCoreS3のM-Busに積み重ねるだけで接続でき、特別な配線は不要です。

  1. 部品を用意する — 用意するもの:M5Stack CoreS3本体、Module13.2 GoPlus2、CoreS3とパソコンをつなぐUSB-Cケーブル。GoPlus2には内蔵バッテリーが搭載されていますが、初回使用時はCoreS3から充電されます。
  2. GoPlus2をCoreS3に積み重ねる — CoreS3の底面にあるM-Busコネクタに、GoPlus2の上面のM-Busコネクタを合わせて、しっかりと押し込みます。向きは、GoPlus2のUSBポートがCoreS3のUSBポートと同じ側になるようにします。カチッと音がするまで押し込んでください。
  3. パソコンにつなぐ — USB-CケーブルでCoreS3をパソコンにつなぎます。CoreS3の電源が入り、画面が表示されることを確認します。GoPlus2の内蔵バッテリーも充電が始まります。
  4. MicroPythonコードを書き込む — UIFlow2またはThonnyを使って、CoreS3にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。このコードはGoPlus2のI2Cアドレス0x38にアクセスし、モーターとサーボの動作をテストします。
  5. 動作を確認する — コードを実行すると、CoreS3の画面に「GoPlus2 Found!」と表示され、モーターとサーボが順番に動きます。モーターは1秒間正転、1秒間逆転、サーボは0度と90度に動きます。全てが正常に動作すれば、組み立て完了です。

サンプルコード(micropython)

# M5Stack CoreS3 + Module13.2 GoPlus2 test
# Wiring: GoPlus2 stacked on CoreS3 via M-Bus (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd

# I2C initialization (CoreS3 Port.A is I2C bus)
i2c = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000)  # CoreS3 I2C pins

# GoPlus2 I2C address
GOPLUS_ADDR = 0x38

# Check if GoPlus2 is present
devices = i2c.scan()
if GOPLUS_ADDR in devices:
    lcd.clear()
    lcd.print('GoPlus2 Found!', 10, 20)
else:
    lcd.clear()
    lcd.print('GoPlus2 not found!', 10, 20)
    raise SystemExit

# Motor control registers (from GoPlus2 datasheet)
MOTOR1_CTRL = 0x00  # byte: 0=stop, 1=forward, 2=backward
MOTOR2_CTRL = 0x01
MOTOR1_SPEED = 0x02  # 0-255
MOTOR2_SPEED = 0x03

# Servo control registers (0-180 degrees)
SERVO1_ANGLE = 0x10
SERVO2_ANGLE = 0x11
SERVO3_ANGLE = 0x12
SERVO4_ANGLE = 0x13

# Test sequence
lcd.print('Testing motors...', 10, 50)
# Motor 1 forward at half speed
i2c.writeto_mem(GOPLUS_ADDR, MOTOR1_CTRL, bytes([1]))
i2c.writeto_mem(GOPLUS_ADDR, MOTOR1_SPEED, bytes([128]))
time.sleep(1)
# Motor 1 backward
i2c.writeto_mem(GOPLUS_ADDR, MOTOR1_CTRL, bytes([2]))
time.sleep(1)
# Stop motor 1
i2c.writeto_mem(GOPLUS_ADDR, MOTOR1_CTRL, bytes([0]))

lcd.print('Testing servos...', 10, 70)
# Servo 1 to 0 degrees
i2c.writeto_mem(GOPLUS_ADDR, SERVO1_ANGLE, bytes([0]))
time.sleep(1)
# Servo 1 to 90 degrees
i2c.writeto_mem(GOPLUS_ADDR, SERVO1_ANGLE, bytes([90]))
time.sleep(1)

lcd.print('Test complete!', 10, 90)

コツ・安全上の注意

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

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

エディタで開く →

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