Using the Module 4EncoderMotor ・ 使用 Module 4EncoderMotor
M5StackのModule 4EncoderMotorをコントローラーに接続する最小構成。配線とBOMつき。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| Module 4EncoderMotor | module | mbus, grove_i2c, terminal_block | official page — $14.5 |
M5Stack Core2にModule 4EncoderMotorを積み重ねて、4つのエンコーダ付きDCモーターを制御できるようにする組み立てガイドです。I2C通信でモータードライバーを操作し、各モーターの回転数や位置をエンコーダフィードバックで読み取れます。ロボットや多軸制御に最適です。
# M5Stack Core2 + Module 4EncoderMotor
# Wiring: Module stacked via M-Bus (I2C address 0x24)
# This example reads encoder values from all 4 channels
import time
from machine import Pin, I2C
from m5stack import lcd
# I2C initialization (Core2 Port.A is default I2C)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
# Module 4EncoderMotor I2C address
MOTOR_ADDR = 0x24
# Register addresses (example, refer to datasheet)
ENC_REG_BASE = 0x10 # 4 consecutive 32-bit registers for encoders
def read_encoder(channel):
"""Read encoder value for channel 0-3"""
reg = ENC_REG_BASE + channel * 4
data = i2c.readfrom_mem(MOTOR_ADDR, reg, 4)
value = int.from_bytes(data, 'little', signed=True)
return value
lcd.clear()
lcd.print('4EncoderMotor Test', 10, 10)
while True:
encoders = [read_encoder(i) for i in range(4)]
lcd.clear()
lcd.print('Encoders:', 10, 30)
for i, val in enumerate(encoders):
lcd.print('M%d: %d' % (i+1, val), 10, 50 + i*20)
time.sleep(0.5)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。