M5StackでModule13.2 GRBL を使う

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

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

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

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack CoreS3Controllergrove_i2c, grove_analog, grove_uart, mbus, usb_c, sdcardofficial page — $59.9
Module13.2 GRBLmodulei2c, mbus, gpio, terminal_blockofficial page — $29.9

配線

作り方

M5Stack CoreS3とModule13.2 GRBLをM-Busで接続し、3軸ステッピングモーターを制御できるようにします。Module13.2 GRBLはATmega328PとDRV8825ドライバーを搭載し、CNCや3Dプリンターのような工作機械の制御に適しています。CoreS3からGRBLファームウェアを書き込み、シリアル通信でモーターを動かします。

  1. 部品を用意する — 用意するもの:M5Stack CoreS3本体、Module13.2 GRBL、USB-Cケーブル(CoreS3とパソコン接続用)、ステッピングモーター(3個まで、別途用意)、モーター用電源(9-24V DC、別途用意)。
  2. CoreS3とModule13.2 GRBLをM-Busで接続する — Module13.2 GRBLをCoreS3の底面にあるM-Busコネクタに重ねて差し込みます。M-Busは位置合わせが簡単で、一方向にしか入らないので、無理に押し込まずにしっかりと差し込んでください。
  3. モーターと電源を接続する — Module13.2 GRBLの端子台にステッピングモーターを接続します。各軸(X, Y, Z)に対応するA+、A-、B+、B-の端子があります。モーターの配線はドライバーとモーターの仕様に合わせてください。また、GRBLモジュールに9-24V DC電源を接続します(端子台のVINとGND)。CoreS3はUSB-Cまたは内蔵バッテリーで動作します。
  4. パソコンにつないでGRBLファームウェアを書き込む — USB-CケーブルでCoreS3をパソコンにつなぎます。Arduino IDEまたはUIFlow2を使用して、CoreS3にGRBLファームウェアを書き込みます。GRBLはシリアル通信(UART)で制御します。CoreS3のPort.C(青)はUART用ですが、M-Bus経由でGRBLモジュールと通信するため、CoreS3のデフォルトのシリアルポート(USB-C経由のSerial)を使用します。
  5. MicroPythonコードを書き込んで動作確認する — 下のMicroPythonコードをCoreS3に書き込みます。このコードはGRBLモジュールにGコードを送信し、モーターを動かします。最初にGRBLの設定($Hでホーミングなど)を行い、その後Gコードで位置決めします。

サンプルコード(micropython)

# M5Stack CoreS3 + Module13.2 GRBL (via M-Bus)
# Wiring: CoreS3 M-Bus -> Module13.2 GRBL
# GRBL communicates over serial (UART) via M-Bus
import time
from machine import UART, Pin

# Initialize UART on default pins (TX=1, RX=2 for CoreS3)
uart = UART(1, baudrate=115200, tx=Pin(1), rx=Pin(2))

def send_gcode(cmd):
    uart.write(cmd + '\n')
    time.sleep(0.1)
    # Read response (optional)
    if uart.any():
        print(uart.read())

# Wake up GRBL (send a few newlines)
for _ in range(3):
    uart.write('\n')
    time.sleep(0.1)

# Home all axes
send_gcode('$H')
time.sleep(2)

# Move X axis 10mm at 100mm/min
send_gcode('G91')  # relative positioning
send_gcode('G1 X10 F100')
time.sleep(1)

# Move back
send_gcode('G1 X-10 F100')
time.sleep(1)

print('Done')

コツ・安全上の注意

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

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

エディタで開く →

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