背景と課題:2025年度教材はLEGO用なのでLEGOを使う必要がある。事務所にしかLEGOがなく試作がなかなかできない
取り組み:LEGOよりも安くて手軽に使えそうなmaqueenでモデル開発を行う
詳細:
数年前、Maqueen を衝動買いしたけど全くプログラミングしていなかった。プログラムはMicroPythonで行いたいのだが、モータ制御をどうやって行うのか全く不明。ちょっと調べるとI2Cでモータドライバを制御できるらしい。だが、I2Cから叩けるコマンドが不明である。
■追記
MicroPython用ドライバを公開してくれている人がいてそのコードを読むとモータ制御用のI2Cコマンドが定義されている。そもそもこの情報はどこから入手されたのだろうか。。
■追記
モータを動かすにはmicro:bitのバスのi2cのSCL/SDAを使う(P19,P20)。I2Cでモータを制御する例は以下
micromaqueen-python/maqueen.py at master · krzysztof-sawicki/micromaqueen-python · GitHub
より引用
def set_motor(self, motor, value): """ Controls motor motor: 0 - left motor, 1 - right motor value: -255 to +255, the sign means direction """ data = bytearray(3) if motor == 0: # left motor data[0] = 0 else: data[0] = 2 # right motor is 2 if value < 0: # ccw direction data[1] = 1 value = -1*value data[2] = value microbit.i2c.write(0x10, data, False) # 0x10 is i2c address of motor driver
■参考資料
12月 | 2021 | macsbug
micro: Maqueen micro:bit Educational Programming Robot Platform WIKI
micropython-MaqueenPlusV2/maqueenplusv2.py at main · jdonwells/micropython-MaqueenPlusV2 · GitHub
maqueen/maqueen.py at main · kholm777/maqueen · GitHub
Micro:Maqueen × Python – 生源寺研究室
micro: Maqueen の解析 – omonuinen
micromaqueen-python/maqueen.py at master · krzysztof-sawicki/micromaqueen-python · GitHub
MaqueenのI2Cアドレス等
Adresse registres I2C