ロードマップ#
本ページは、以下ロードマップ「移動ロボット」のガイドページです。
また、本ページは「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

- smabo-repos/smabo-hardware/stl/mobile_robot/tt_motor/tt_motor_bottom.stl

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

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

- 左右にモータをつけるので2つ印刷します。
組み立て手順#
以下動画のように、必要パーツを組み立てます。
※ 動画には、前回までに印刷したパーツも含まれます
組み立ての際のポイント
組み立て動画では、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は、裏側に各ピンの役割が記載してあるため、配線前によく確認しておきましょう。
※ 当然ですが、ブレッドボードに挿すと裏面から見たピン位置と左右逆になるため注意しましょう。
参考画像:デュアル・モータードライバTB6612FNG(連続最大1.2A)(スイッチサイエンス)
TB6612FNG配線の際のポイント
TB6612FNGのPWMA〜PWMBピンについてですが、「ESP32側で対応するピン位置を連続になるように設定」しておけば、下図のように
- ジャンプワイヤーを一本ずつ剥かず、7本分まとめて扱うことができる
ため配線がすっきりします。
完成系#
今回作成したロボットの完成系は下図のようになります。

動作手順#
起動手順#
「こちらの起動手順」の内容を実行してください。
dcモータの有効化#
smabo-webの「Config」タブにて
- 「Modes/dc_drive」を有効化
します。

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

画像処理による制御#
画像処理による制御の手順を説明します。
「Vision」タブの「Detection」にて、
- 「Enabled」を有効化し、
- 任意の認識モードを設定(ここでは、colorモードで青色の物体を認識するように設定しています)
します。

次に、「Behaviors」の
- 「Drive follow」を有効化します。

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

設定完了後、スマホカメラの前に認識対象の物体を近づけると、物体に追従するように移動ロボットのsmaboが動作します。
次回#
次回は、以下ロードマップの
について解説します。



