Guide

🚗 移動ロボット

TTモータとどこでもキャスターSを使い、コントローラー・画像処理による移動ロボット機能を実装します。

ロードマップ#

本ページは、以下ロードマップ「移動ロボット」のガイドページです。

また、本ページは「smabo-esp32」のガイドを実施している前提で話を進めます。

概要#

本ページでは「移動ロボット」機能の実装について解説します。


具体的には、以下の内容を実施します。

  • 移動ロボットのコントローラー制御

  • 移動ロボットの画像処理による制御

必要パーツ#

本機能の実装に必要なパーツを以下に記載します。

部品名 商品URL 備考
ESP32-DevKitC link 互換品でも可
スマートフォン - -
ブレッドボード(SAD101)
link 一般的なブレッドボードは5穴がです、こちらは6穴になっています。
6穴でないとESP32のサイズ的に横幅が足りないので注意してください
ジャンプワイヤー link -
電池ボックス(単3×4本、電池スナップ対応) link 電池スナップ対応の方が、取り回しが良いのでお勧めです。
電池スナップ(電池ボックス用) link コネクタピン付きの方が、ブレッドボードに差しやすくて、抜けにくいのでお勧めです。
充電式単三電池 × 4 link -
電池充電器 link -
トイDCモータ用タイヤ link 互換品でも可。
TTモータ link コネクタピン付きの方が、ブレッドボードに差しやすくて、抜けにくいのでお勧めです。

互換品は多数ありますが、一般的なTTモーターの寸法と大きく異なる場合は、上手く取り付けることができないので注意してください。
どこでもキャスターS link -
TB6612FNG搭載 デュアルモータードライバ link -
ミニブレッドボード link 裏面が粘着テープになっているもの

パーツの印刷#

今回、新たに追加されるパーツを3Dプリンタで印刷します。

3Dプリンタは機種によって「印刷する際に使用するソフト」が異なるため、ここでは具体的な設定手順ではなく、ポイントのみを記載します。


以下のパーツを図の向きに設定して、印刷してください。

印刷の際の注意点

  • パーツのつけ外しの際に、根本から折れにくくするため、凸部は横向きにして印刷
  • サポート材は必ずONにした状態で印刷
  • smabo-repos/smabo-hardware/stl/mobile_robot/dc_motor_caster.stl
    alt text

  • smabo-repos/smabo-hardware/stl/mobile_robot/tt_motor/tt_motor_bottom.stl
    alt text

  • smabo-repos/smabo-hardware/stl/mobile_robot/tt_motor/tt_motor_stopper1.stl × 2
    • 左右にモータをつけるので2つ印刷します。
      alt text

  • smabo-repos/smabo-hardware/stl/mobile_robot/tt_motor/tt_motor_stopper2.stl
    • 左右にモータをつけるので2つ印刷します。
      alt text

組み立て手順#

以下動画のように、必要パーツを組み立てます。

※ 動画には、前回までに印刷したパーツも含まれます

組み立ての際のポイント

組み立て動画では、ttモーター、及びどこでもキャスターSの取り付け手順は分からないため、以下に記載します。


最初に、下図のように「dc_motor_caster.stl」にどこでもキャスターSを貼り付けます。


次に、「tt_motor_bottom.stl」に対して「tt_motor_stopper1.stl」「tt_motor_stopper2.stl」を使ってttモーターを固定します。

配線#

下記表の内容に従って、配線します。

※ 下記表において、「接続先1」と「接続先2」は、両者が回路的に直接繋がっていることを指します。

接続先1 接続先2 補足
乾電池バッテリーボックスの+極 ブレッドボードの+極の右側 以降、右側を6V電圧として扱うため注意
乾電池バッテリーボックスの-極 ブレッドボードの-極 -
ESP32の5V電源 ブレッドボードの+極の左側 以降、左側を5V電圧として扱うため注意
ESP32のGND ブレッドボードの-極 -
config.jsonのdc/pins/pwmaに設定したピン TB6612FNGのpwmaピン -
config.jsonのdc/pins/ain2に設定したピン TB6612FNGのain2ピン -
config.jsonのdc/pins/ain1に設定したピン TB6612FNGのain1ピン -
config.jsonのdc/pins/stbyに設定したピン TB6612FNGのstbyピン -
config.jsonのdc/pins/bin1に設定したピン TB6612FNGのbin1ピン -
config.jsonのdc/pins/bin2に設定したピン TB6612FNGのbin2ピン -
config.jsonのdc/pins/pwmbに設定したピン TB6612FNGのpwmbピン -
TB6612FNGのVMピン ブレッドボードの+極の右側 -
TB6612FNGのVCCピン ブレッドボードの+極の左側 -
TB6612FNGのGNDピン ブレッドボードの-極 TB6612FNGには3つGNDピンがありますが、全てブレッドボードの-極に刺してください

ESP32-DevKitCの場合の配線図は、以下になります(ブレッドボードだけだと穴が足りないため、TB6612FNGは、ミニブレッドボードにて配線しています)。

TB6612FNG配線の際のポイント1

TB6612FNGは、裏側に各ピンの役割が記載してあるため、配線前によく確認しておきましょう。

※ 当然ですが、ブレッドボードに挿すと裏面から見たピン位置と左右逆になるため注意しましょう。
alt text
参考画像:デュアル・モータードライバTB6612FNG(連続最大1.2A)(スイッチサイエンス)

TB6612FNG配線の際のポイント

TB6612FNGのPWMA〜PWMBピンについてですが、「ESP32側で対応するピン位置を連続になるように設定」しておけば、下図のように

  • ジャンプワイヤーを一本ずつ剥かず、7本分まとめて扱うことができる

ため配線がすっきりします。

完成系#

今回作成したロボットの完成系は下図のようになります。

動作手順#

起動手順#

「こちらの起動手順」の内容を実行してください。

dcモータの有効化#

smabo-webの「Config」タブにて

  • 「Modes/dc_drive」を有効化

します。

alt text

コントローラー制御#

コントローラー制御の手順を説明します。

「two wheel mobile robot」タブのコントローラで移動ロボットのsmaboを制御できます。

alt text

画像処理による制御#

画像処理による制御の手順を説明します。

「Vision」タブの「Detection」にて、

  • 「Enabled」を有効化し、
  • 任意の認識モードを設定(ここでは、colorモードで青色の物体を認識するように設定しています)

します。

alt text


次に、「Behaviors」の

  • 「Drive follow」を有効化します。

alt text


なお、Drive followモードでは、カメラから見た認識物体のサイズが「Target size」を維持するように、移動ロボットが前後方向に動きます(具体的なサイズは、preview画面の青枠にて確認可能)。

alt text


設定完了後、スマホカメラの前に認識対象の物体を近づけると、物体に追従するように移動ロボットのsmaboが動作します。

次回#

次回は、以下ロードマップの

について解説します。