背景
M5Stackとは、LCDやボタンなどが付いていて、ESP32というBluetoothやWiFi通信できるマイコンを利用している、プログラムを書き込める装置です。M5Stackで動く台車としては、バランスカーやLidarを積んでいる台車が公式から売られているのですが、もっと簡素な作りの台車が欲しかったので作ってみました。
I2C Motors For M5Stack 台車仕様
商品紹介として組立方法と使い方を共有します。
使ったもの
- M5Stack
- I2C Motors For M5Stack 台車仕様
- ドライバー
組み立てに使いました。 - プログラムを書き込むPC
内容物
足回りの部品
0.1uf250vのコンデンサとワイヤを実装済みの6V200RPM ギアードモーター 2個
タイヤ 2個
モーター固定具 2個
M2ネジ 4本
M2ナット 4個
キャスター 1個
M3ネジ 2本
M3ナット 2個
利用しているギアードモーターは秋月電子で売られている1:50のモーターとほぼ同じ性能なので、ギア比を変えたい場合はこの形の他のモーターを利用できます。
シャーシ関係の部品
プレート 1枚(保護用の紙を剥がしてご利用ください。)
M2 5mm支柱 8本
M2 15mm支柱 4本
M2ナット 8本
M2ネジ 8本
プレートの設計情報はこちらです。
https://github.com/asukiaaa/I2cMotorsForM5Stack/tree/master/plate
FreeCADで作成し、dxfファイルを出力してelecrowのアクリル板切断サービスを利用して作成しました。
基板関係の部品
I2cMotorsForM5Stack 1枚
I2cMotorsForM5Stack top_pcb1枚
フレーム 1個
6cm 30p 0.5mmピッチ FFC 1本
基板の設計情報はこちらです。
main: 設計データ、回路図(PDF)
KiCadで作成しました。
組み立て
基板はこちらです。TB6612FNGをatmega328pかatmega328pbで制御します。
M5Stackと接続する側です。
このstackを複数台接続しても使えるように、デバイスアドレスをパッドで変えられるようにしています。
標準は0b01010010 = 0x52 = 82 です。
標準は0b01010010 = 0x52 = 82 です。
基板は0.5mmピッチ30ピンのFFCで接続します。
topとbottom間の電力供給FFCではなくワイヤーで行いたい場合は、基板に出ている端子をワイヤーなどで接続詞てください。
モーターとキャスターと支柱をアクリル板に取り付けたシャーシです。
タイヤ側を15mmの支柱、キャスター側を5mmの支柱にしています。
(この構成だと5mmの支柱4本が余ります。両方低くしたい時や、キャスター側を更に高くしたい時などにご利用ください。)
裏側はこうなっています。
シャーシに基板とM5Stackの下用のフレームを取り付けます。
取り付けました。
シャーシ裏側のモーターの電力線を端子台に接続します。
M5Stackを載せれば準備OKです。
プログラムでの呼び出し方
ライブラリを通してI2C通信を行い、モーターの速度を制御できます。ライブラリの準備
ArduinoIDEの場合はライブラリマネージャからI2cMotors_asukiaaaをインストールしてください。PlatformIOの場合は、platformio.iniのlib_depsにI2cMotors_asukiaaaを追加してください。
platformio.ini
lib_deps = I2cMotors_asukiaaa
呼び出し
アドレスを渡して初期化し、setupでbeginし、writeSpeedなどでモーターの出力を変えられます。#include <I2cMotors_asukiaaa.h> #define MOTORS_ADDRESS 0b01010010 I2cMotors_asukiaaa motors(MOTORS_ADDRESS); void setup() { Serial.begin(115200); motors.begin(); } void loop() { motors.writeSpeed(0xff, 0xff); // max speed forwarding
delay(1000); motors.writeSpeed(0, 0); // stop
delay(1000); motors.writeSpeed(-0xff, -0xff); // max speed backing delay(1000); motors.writeSpeed(0, 0); // stop
delay(1000); }
他の機能は、readmeやヘッダファイルやサンプルプログラムを見てみてください。
動作の様子
サンプルプログラムを書き込んで動かした様子はこちらです。出力50%で左を前後 -> 出力50%で右を前後 -> 出力100%で前後 を行います。
まとめ
M5Stack用の台車を作って、動かせました。ロボットの足回りにできそうです。
更新履歴
2020.07.14スイッチサイエンスの商品リンク I2C Motors For M5Stack 台車仕様 を背景と使ったものに追加しました。
2023.10.21
前進更新プログラムにdelayが入っていなかったのと止まる動作が無かったので、delayと止まるを追加しました。
0 件のコメント :
コメントを投稿