WeMos D1 Mini(ESP8266)を使いWi-Fi経由で操作するミニラジコン「Mini Tank」を作ってみました!
片手サイズに上手く収めることができ、なかなか可愛いミニラジコンになったと思います。
マイコンを使って制御して動かすラジコンのような動くものの製作は非常に面白く、作った後も楽しく遊ぶことができ、そして動かしながらプログラム(スケッチ)を修正したり機能を追加したりとマイコンの知識も身に付けることが出来ます。
いつも感じていますが、電子工作と3Dプリンタってほんと相性がいいですよね!
このような製作物の試作など思い付いたら何でも試すことができ、実際にちゃんと動作するレベルにまでもっていくことが出来ます。
以前、キャタピラー部分のパーツも含め全て3Dプリントパーツのみでこのようなラジコンを製作しました。
この投稿をInstagramで見る
クローラー(キャタピラ)の設計やテンションの調整など結構大変だったので、今回キャタピラー部分は既製品となる『タミヤ トラック&ホイールセット』と全回転(360°)タイプのSG90サーボモーターを使うことによりさらに小型なサイズで製作しやすい構成にしたものをThingiverseに公開しました。
この投稿をInstagramで見る
スマホアプリから操作するラジコンモードと自動運転モードの2つのモードで遊べます。
この投稿をInstagramで見る
マイコン部分の回路構成は簡単なので、機能を追加するなどいろいろとカスタムさせてみるのも面白いと思います。
目次
WeMos D1 Mini(ESP8266)で動かすMini Tankの製作!
マイコンには小型なESP8266開発ボードのWeMos D1 Mini(Lolin)を使い2つのSG90サーボモーター(全回転タイプ)を制御するシンプルな構成で、障害物検知用に超音波センサー(HC-SR04)も使ったWi-Fi経由でスマホアプリなどから操作するMini Tankとなります。
ベースとなるキャタピラーは『タミヤ トラック&ホイールセット』を使っています。
ギアボックスを使い3mmシャフトでホイールを固定して動かすものですが、3Dプリンタでマウントパーツを作成しこれをSG90サーボモーターで動かせるようにしています。
SG90のサーボホーンを固定する先端のギア(溝)のギザギザ部分は3Dプリンタでも上手く再現することが出来るので、このようなブラケットを作成できればいろいろと幅が広がりますね!
なかなか面白いMini Tankくんだったので実は2台目も作りました。
1号機はマイコンにESP-01(ESP8266)を使った構成で作りましたが、マイコン駆動の3.3Vとサーボ駆動の5Vレギュレータが必要でスケッチの書き込みの際にUSB-シリアル変換モジュールと接続する必要があったりと・・・少し手間がかかるので、WeMos D1 Miniを使いシンプルな構成にした2号機をご紹介しています。
動作確認用としてスマホアプリ『RemoteXY』で操作するためのArduino用サンプルスケッチも添付しています。
Wi-Fi接続して操作できるスマホアプリはBlynkなどいろいろとありますが、他のアプリで使用する際はスケッチを修正して使って頂ければと思います。
以下ThingiverseサイトからSTLデータとArduinoサンプルスケッチをダウンロードできます。
参考 Mini Tank(WeMos D1 Mini/ESP8266)Thingiverse使用パーツ一覧
使用したパーツ一覧をまとめておきます。
電子工作でよく使われるパーツばかりなので、手持ちストックがあるという方も多いと思います。
ユニバーサル基板に回路を組むのである程度の自由度はあると思いますので、手持ちパーツでスペックの近いもので代用等して頂ければと思います。
WeMos D1 Mini(ESP8266)
制御するマイコンボードはESP8266開発ボードとして有名なWeMos D1 Miniを使いました。
小型で使いやすいESP8266開発ボードの一つとなります。
今回V2タイプのボードを使っていますが、他のバージョンのボード(V3やV4)でも問題なく動作します。
SG90サーボモーター(全回転360°タイプ)
モーターは全回転(360°)タイプのSG90サーボモーターを2つ使っています。
SG90はTowerPro製が正規品となりますが、互換サーボでは極稀に高さ方向に若干(1.5~2mmほど)長いものも存在します。
SG90関係の製作物はこれまでThingiverseに多数アップしていますが、基本的に互換サーボでも問題ないようにサイズ調整をしていました。
今回のMini Tankではボディーサイズが小さくスペースの関係で正規品のサイズにピッタリと合うように調整しています。
また通常の180°回転タイプのSG90をお持ちなら、抵抗2本を使えば360°回転タイプに改造することも可能です。(微妙なセンター位置のズレをスケッチで修正する必要があるかもしれませんが)
タミヤ トラック&ホイールセット
キャタピラー部分のパーツは、『タミヤ トラック&ホイールセット』を使いました。
よく出来たキャタピラーで既製品だけあり動きは非常にいい感じです。
このサイズのキャタピラーを3Dプリンタパーツで作成し可動させるにはかなり大変ですからね!
TP4056 充電モジュール
今回製作したMini Tankの駆動は、小型な16340リチウムイオン電池を使っています。
リチウムイオン電池用の専用充電器をお持ちならカットしても問題ありませんが、直接バッテリーの充電も出来るので便利だと思います。
TP4056のUSB端子の形状は数種類ありますが、今回Type-Cのものを使っています。
16340リチウムイオン電池 & 電池ボックス
マイコン&サーボモーターの駆動に16340リチウムイオン電池を使っています。
リチウムイオン電池は乾電池と違い1本で3.7V(満充電時4.2V)の電圧が取り出せるので、このようなラジコンの駆動用バッテリーには向いています。
また16340はCR123Aとサイズ的に同等ですが、CR123A電池には3Vの1次電池タイプ(充電は出来ません)のものもあります。
CR123A電池を使用する場合は、充電できる3.7Vの2次電池タイプのものを選択して下さい!
MT3608 昇圧モジュール
16340リチウムイオン電池の電圧をWeMos D1 MiniとSG90サーボモーターの駆動に必要な5Vに昇圧するためのDC-DCコンバーターです。
5V昇圧モジュールは小型なものなどいろいろとありますが、今回の回路構成ではこのサイズのものでもユニバーサル基板に収めることができ、出力側の電流も安定するようです。
HC-SR04(超音波センサー)
障害物の検知に超音波センサーHC-SR04を使いました。
スマホから手動でラジコンとして動かすだけなら必要ありませんが、自動運転もなかなか面白いと思います。
ユニバーサル基板
ユニバーサル基板は4×6cmタイプのものを2枚使いました。
ボディーサイズをこの寸法に合わせていますが、お手持ちの基板をボディーに収まるサイズにカットして使えば問題ありません。
基盤用スライドスイッチ
電源スイッチに小型スライドスイッチを使っています。
ユニバーサル基板に取り付けるので、2.54mmピッチの基盤用のスライドスイッチを選択して下さい。
M3ビス & スペーサー
ユニバーサル基板の固定にいくつかM3ビスとスペーサーを使います。
ユニバーサル基板へのパーツ配置によりスペーサーの高さなど変わってきますが、本記事で紹介している完成写真のものは以下サイズのものを使っています。
- M3×5mmスペーサー(オス−メス)×4本(基盤固定用)
- M3×20mmスペーサー(オス-メス)×4本(基盤固定用)
- M3×5mmビス×4本(基盤固定用)
- M3×8mmビス×4本(ホイール固定用)
各種ピンヘッダー
直接ユニバーサル基板にはんだ付けしてもいいですが、サーボ端子の固定やHC-SR04の固定など各所ピンヘッダーを使いました。
必要に応じて用意して下さい。
以上が全パーツ構成となります。
ボディーの組み立て
ボディーの組み立ては非常に簡単です!
上記Thingiverseでパーツを出力させて下さい。(ボディー×1・ホイール固定パーツ×2)
まずSG90サーボモーターの取り付けです。
SG90付属のM2×6mmタッピングビスを使って固定します。
サーボの固定ができたら、ホイール固定用パーツの取り付けです。
こちらも付属しているサーボホーン用ビスを使い固定します。
このホイール固定用パーツに「トラック&ホイールセット」に付属のスプロケットホイール(大)をM3×8mmビスで固定します。
M3×8mmビスは用意して下さい(計4本)
4つ穴を空けていますが、片側2本で大丈夫です。
あとは「トラック&ホイールセット」付属のアイドラーホイール(大)を付属タッピングビスで固定します。
タッピングビスなので奥まで締付け、スムーズに回転する位置まで少し緩めて下さい。
キャタピラーは30コマのものを使います。
これを取り付けて駆動部は完成です!
下記動画はサーボテスターを使って動作テストをしていますが、かなりスムーズに動いてくれます!
この投稿をInstagramで見る
サーボケーブルを収納するためM3×5mmのスペーサーを取り付けておきます。
ナット受けするスペースがないので、オス型スペーサーをペンチなどを使い回しながら取り付けて下さい。
完成イメージは、2枚のユニバーサル基板を5mmと20mmのスペーサーを挟み込んで固定する感じです。
ユニバーサル基板へのはんだ付け
次にユニバーサル基板を使い電子パーツを接続していきます。
全体の接続はこのようになります。
コメントでMT3608のINとOUTの接続が逆だというご指摘を頂きました。
ありがとうございます。
上記回路図に修正しました。
Wemos D1 miniのGND接続が抜けていたので修正しました。
ユニバーサル基板なのでパーツ配置の自由度はありますが、リンク先のパーツを使われる場合下記写真このような配置がベストだと思います。
ちなみに固定穴(3mm)はリンク先のユニバーサル基板を使われる場合は下記位置となります。
使用する基盤により穴位置を合わせてあけて下さい。
上段の基板には、電池ボックス・TP4056充電モジュール・スライドスイッチを配置しました。
ユニバーサル基板なので使用するパーツによりうまく配置して下さい!
この時点でスケッチを書き込み、動作チェックをするのがいいと思います。
こんな感じでボディーの完成です!
うん、可愛い!
スケッチの書き込み
最後にスケッチの書き込みです。
スマホアプリ『RemoteXY』を使って動作するサンプルスケッチをThingiverseに同封しています。
最低限の動作ができるサンプルスケッチとなりますが、これをベースにして修正等して使って頂ければと思います。
Arduino IDEでのスケッチの書き込みには、ESP8266に対応したボードパッケージをインストールしておく必要があります。
ESP8266ボードパッケージのインストールがまだという方は、こちらの記事を参考にインストールを行って下さい。
またThingiverseに同封しているサンプルスケッチはスマホアプリ『RemoteXY』を使って動作させるものとなるので、RemoteXYライブラリのインストールも必要となります。
Arduino IDEの[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理]へと進みます。
[remotexy]で検索すると目的のライブラリが見つかります。これをインストールしておきます。
上記ESP8266ボードパッケージのインストールとRemoteXYライブラリのインストールが完了したら、スケッチの書き込みです。
Arduino IDEの[ツール]→[ボード]→[ESP8266 Boards]から[LOLIN(WEMOS)D1 R2 & mini]を選択して下さい。
あとは通常通りアップロードボタンを押してスケッチのコンパイル&書き込みを行う事が出来ます。
サンプルスケッチの動作
Thingiverseに添付しているサンプルスケッチは、スマホアプリ『RemoteXY』を使うものとなります。
Blynkなど他のアプリをお使いの方は、スケッチを修正して使って下さい。
スマホアプリ『RemoteXY』のインストールはこちらか行えます。
iPhoneとAndroid端末に対応しています。
RemoteXYはマイコンボードを使った無線通信(Wi-Fi/Bluetooth)で便利に使えるアプリです。
RemoteXYの使い方に関して詳しくは、こちらの記事も参考にして下さい。
スマホにアプリのインストールが完了したら、Mini Tankの電源スイッチを入れスマホのWi-Fi設定を行います。
iPhoneで進めていきますが、Android端末でも手順は同じです。
スマートフォンの[ネットワーク]の項目に[RemoteXY]が表示されるのでこれを選択します。
パスワードは[123456789]で設定しているのでこれを入力して下さい。
接続が完了したらスマホアプリRemoteXYアプリを開きます。
画面右上の[+]をタップし、[WiFi point]を選択します。
[Connect]をタップしパスワード[12345]を入力すれば接続されます。接続が完了したらアプリから操作する事が出来ます。
[MANUAL]を選択してラジコンとして動かしたり、[AUTO]でセンサーを使った自動運転モードで動かすことが出来ます。
この投稿をInstagramで見る
この投稿をInstagramで見る
カスタムして楽しむ!
添付しているサンプルスケッチは最低限の動作テストが出来るものなので、あとはスケッチを修正したり機能をカスタムして楽しんで下さい。
WeMos D1 Miniの使えるGPIO端子は多数残っています。
LEDを複数取り付けてカラフルにしたり、こんな感じでセンサー部分を光らせると可愛くなり面白いと思います。
この投稿をInstagramで見る
また、FPVカメラを取り付け映像をリアルタイムで確認しながら操作したりと・・・いろいろとカスタムしてあげればさらに楽しめると思います。
最後に!
非常に可愛いMini Tankになりました!
今回ご紹介したMini Tank(2号機)は、シンプルな構成でパーツも比較的入手しやすいもので作り直しているので製作はしやすいかと思います。
このような動くものを作るのは電子工作では非常に楽しく、作ったあともスケッチを修正したり機能を拡張したり出来るのでマイコンを使った製作物の知識向上にもつながりますね!
連絡が遅くなりました。DMM.makeで注文したその後の報告です。
注文してから1か月ほどで到着しました。部品の精度については、
サーボモーターにホイール固定用パーツを取り付ける際、とてもきつく、
なかなか取り付けできません。思いっきり押し込んで、なんとか取り付けできました。
またサーボモーターを本体に固定する際や、スプロケットホイールを固定する際の
ネジが、半分ほどは空回りしてしまいました。
残り半分のネジで固定できているので、使用上の問題はありません。
というわけで、なんとか、ミニタンクを作成することができました。
このようなパーツの微調整については、自分で3Dプリンタを持っていればこそですね。
私も3Dプリンタが欲しくなりました。
この度はどうもありがとうございました。これからも参考にさせていただきます。
ご報告、大変参考になりました(^^)
他の方の環境でも3Dプリントパーツが上手く機能するよう再現できるのか?
というのは前々から思うところがあり・・・
使用する3Dプリンタの調整、また使うフィラメントによる収縮などもあるのでサーボボーン部分など細かい所の再現はなかなか難しいようですね!
やはりこのような微調整は3Dプリンタがあると便利だと思います。
スライサーでスケール調整やビス穴部分はウォールラインを増やすなど対応が可能になります。
3Dプリンタはホントおすすめですよ!
Ender3やKP3Sなど低価格帯に属する機種しか私は持っていませんが、それでも精度に関しては全く問題なく非常に綺麗に出力できるので電子工作に限らずいろいろと活用できると思います。
この度は、製作ありがとうございました(^o^)
非常に興味深いことをされていますね。
私も子供と一緒に作成したいと思ったのですが、残念ながら3Dプリンタを持っていません。
そこで、DMM.makeの3Dプリントサービスを利用して作成してみることにしました。
素材は「Resin A1 Pro」を選択しました。
現在、注文中です。到着したら、またご報告します。
ありがとうございます(^o^)
ぜひぜひ、作ってみて下さい!
すてきなラジコンを公開していただき、ありがとうございます!
製作に取り組んでいたところ、配線図でおかしな点に気づきました。
MT3608 昇圧モジュールのINとOUTが逆に接続されている図になっていないでしょうか?
実際に組み立てた際は図とは逆に接続して動作しています。
おおー、ほんとですね!
MT3608のINとOUTの接続が逆になってますね。
これは失礼しましたm(__)m
自宅に戻ったら修正しておきます。
ご指摘、ありがとうございます。
そして製作ありがとうございます(^o^)