こちら、Maker Faire Kyoto 2020 onlineに出展する作品です。
スマホアプリLINEでロボットにメッセージを送るとLINE TRACEをしながらおやつを運んでくれるロボLineBugCを作りました。 色々と無料のWebサービスを連携させたのは初の経験でなかなか面白かったです。 長くなりそうなので記事を分けます。
目次
動画\
動作の様子等は動画にまとめましたのでお時間ありましたら見ていただけたら幸いです。
動画の内容は同じです。
こちらのブログでは回路やプログラム等を中心に動画で紹介しづらいところを説明させていただきます。
YouTube
ニコニコ動画
BugCに関して
メカはM5StickC向けの今回BugC Hatというものを使いました。
こちらは車輪でなく、4つのモータ軸を直接地面に当てて回転させながら動くのが特徴です。
また、意外とブログ等に情報も少なく、どの番号がどの足なのか手探りなところから始まりました。
左前、右前、左後ろ、右後ろの順で引数が対応しています。
すべて時計回りが正の値でした。
UiFlow*1のブロックだと画像の様な値で直進するはずです。
はずでしたがBugCはなかなか動作が安定しません(まっすぐ進まない)。
私のマシンは右後ろの軸の接地が悪いのか値を絞ると右後ろを中心に回転が始まりました。
また、3Dプリンタでモータ軸の先端にキャップをつけたり工夫もしてみたのですが
モータのトルク不足で回転が止まったりなかなか一筋縄では解決しないという印象を受けました。
ちなみに上のプログラムはmicro pythonだとこんな感じで
参考:M5Stack Docs - The reference docs for M5Stack products.
from m5stack import * from m5ui import * from uiflow import * import hat setScreenColor(0x111111) hat_bugc0 = hat.get(hat.BUGC) hat_bugc0.SetAllPulse(30, -30, 30, -30) hat_bugc0.SetRGB(0, 0xff0000)
Arduinoだとこんな感じです。
参考:M5StickC/examples/Hat/BUGC at master · m5stack/M5StickC · GitHub
#include "M5StickC.h" #include "bugC.h" void setup() { M5.begin(); Wire.begin(0, 26, 400000); } void loop() { M5.update(); BugCSetAllSpeed(30, -30, 30, -30); BugCSetColor(0x000000, 0x100000); BugCSetColor(0x100000, 0x100000); delay(10); }
ライントレース基板
ネットの先人の知恵を参考に回路はそのままを配置を考えました*2
フォトリフレクタ(反射タイプ)LBR−127HLD: 半導体 秋月電子通商-電子部品・ネット通販 50円*2個
片面丸型ユニバーサル基板 32mm: パーツ一般 秋月電子通商-電子部品・ネット通販 30円*1枚
半固定ボリューム 10kΩ [103]: パーツ一般 秋月電子通商-電子部品・ネット通販 50円*2個
後ははんだ、抵抗1kΩ、47kΩ、すずメッキ線、とGroveの配線ですね。
こちら下から見た図です。
青と黄色が信号線、黒がGND、赤がVccです。
裏面です。
表面です。
基板の固定
基板の固定は3Dプリンタで作ったパーツと輪ゴムで行いました。 3Dプリントのデータはこちらで公開しました。
line_trace_circuit_board_holder_for_BugC(M5stickC) by passcompass - Thingiverse
M3のネジでリングとベースを固定した後に ベースの穴に輪ゴムを通して固定しています。
まとめ
今回の記事ではBugCの仕様とラインセンサ基板の製作に関して書きました。 次の記事では動かすプログラムとWebサービスの連携に関して書きたいと思います。 読んで下さり、ありがとうございました。
*1:Web上でブロックプログラミングやmicro pythonが書ける公式のサービスです。おすすめです。
*2:大変参考になりました。ありがとうございます。フォトリフレクタの使い方 | うしこlog