M5Stackでモーターラジコンカー

DC motor RC car ・ 直流电机小车

M5Stack Core2 と DC モータードライバーユニット (HBridge) を使ったシンプルなラジコンカー。

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

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit HBridge v1.1DC motor drivergrove_i2c, terminal_blockofficial page — $7.95

配線

作り方

M5Stack Core2とHBridgeユニットで作る、かんたんなラジコンカーです。HBridgeユニットがDCモーターを制御し、Core2がI2C通信で速度や回転方向を指示します。スマートフォンやジョイスティックで操作するベースとして使えます。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Unit HBridge v1.1、Groveケーブル(I2C用、白色コネクタ)、DCモーター(5~12V対応)、モーター用電源(6~12V、例:9V電池ボックス)、Core2とパソコンをつなぐUSB-Cケーブル。
  2. HBridgeユニットにモーターと電源を接続する — HBridgeユニットの端子台に、DCモーターの2本のリード線を接続します(極性は後で調整可能)。次に、モーター用外部電源(6~12V)のプラスを「VM」端子、マイナスを「GND」端子に接続します。極性を間違えないように注意してください。
  3. GroveケーブルでCore2とHBridgeをつなぐ — Groveケーブルの一端をHBridgeユニットのGroveポート(I2C)に、もう一端をCore2の赤いPort.A(I2Cポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  4. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  5. モーターの動作をテストする — コードを実行すると、モーターが3秒間正転、2秒停止、3秒間逆転、停止を繰り返します。モーターが回らない場合は、配線と外部電源を確認してください。回転方向が逆の場合は、モーターのリード線を端子台で入れ替えるか、コード内の方向設定を変更します。

サンプルコード(micropython)

# M5Stack Core2 + Unit HBridge v1.1 (DC motor RC car)
# Wiring: HBridge Grove I2C -> Core2 red Port.A (I2C)
# Motor power: external 6-12V to VM/GND on HBridge terminal block
import time
from machine import Pin, I2C

# I2C setup on Port.A (Core2 default I2C pins: sda=21, scl=22)
i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=100000)

# HBridge I2C address (default 0x20, check your unit)
HBRIDGE_ADDR = 0x20

# Register addresses (from Unit HBridge v1.1 datasheet)
REG_MODE = 0x00      # 0: standby, 1: forward, 2: reverse, 3: brake
REG_SPEED = 0x01     # 0-255 PWM duty

def motor_run(mode, speed):
    """Set motor mode and speed."""
    i2c.writeto_mem(HBRIDGE_ADDR, REG_MODE, bytes([mode]))
    i2c.writeto_mem(HBRIDGE_ADDR, REG_SPEED, bytes([speed]))

# Test sequence: forward, stop, reverse, stop
while True:
    motor_run(1, 200)   # forward at speed 200
    time.sleep(3)
    motor_run(3, 0)     # brake (stop)
    time.sleep(2)
    motor_run(2, 200)   # reverse at speed 200
    time.sleep(3)
    motor_run(3, 0)     # brake
    time.sleep(2)

コツ・安全上の注意

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

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

エディタで開く →

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