ToySwitchとは
ToySwitchは、ESP32-C3を使ったBLEスイッチです。アプリからBluetoothで接続し、電池で動くおもちゃのモーターをON/OFFしたり、出力の強さを変えたりできます。
このページの中心は、まず確実に動かしやすい外付けケース型です。おもちゃの内部を大きく改造せず、電池ボックスにBD配線を挟み込んで使います。
完成写真 外付けケース型ToySwitchの完成例です。ケース内に本体をまとめ、3PコネクターからBD配線へ接続します。
今回のページの考え方
電子回路の専門的な完成図だけでなく、実際に試作して分かった「ここで失敗しやすい」「ここを確認すると安全」というポイントも入れています。
最初に確認すること
100V機器には使いません。
ToySwitchは、単3電池などで動く低電圧のおもちゃ用です。家庭用コンセントや100V機器の制御には使わないでください。
このページの作例は、単3電池1〜2本程度で動く低電圧のおもちゃ用です。
まずは単3電池2本のおもちゃでの製作をおすすめします。3.3V出力のDC-DC昇圧基板からXIAO ESP32C3の3V3端子へ給電しているため、5V USB電源や乾電池3本以上など、3.3Vを超える電源はこの作例の入力には使わないでください。
- はんだ付けが必要です。ショートしないよう、配線後に必ず目視確認します。
- ESP32-C3は、公開・配布・譲渡を考える場合、技適マーク付きの基板を使います。このページでは Seeed Studio XIAO ESP32C3 を推奨版にしています。
- 電池を逆向きに入れると部品を壊すことがあります。そのため、このページではPch MOSFETによる逆接防止を入れています。
- モーターはノイズを出します。ダイオード、コンデンサ、部品配置が安定動作のポイントになります。
全体の配線図
細かいはんだ付けに入る前に、全体の流れを確認しておきます。ToySwitchは、大きく分けると電源部、ESP32制御部、おもちゃ接続部で できています。
主な接続表
| 接続元 | 接続先 | 説明 |
| 電池+ | AO3401のDrain側、おもちゃモーター+側 | 電池+は、逆接防止Pch MOSFETへ入る線と、モーター+側へ向かう線に分かれます。 |
| AO3401のSource側 | DC-DC基板のVI | 正しい向きの時だけ、DC-DCへ電源が届きます。 |
| DC-DC基板 GND | 電池−、ESP32 GND、Nch MOSFET Source、Pch MOSFET Gate | GNDは共通にします。実際の製作では、この部分に4本のマイナス系配線が集まります。 |
| DC-DC VO | ESP32 3V3 | ESP32用の3.3V電源です。XIAO ESP32C3では、3V3端子へ外部3.3Vを入れて使います。 |
| ESP32 D2 | Nch MOSFET Gate | おもちゃの動きを制御します。試作時のD7では起動時に一瞬動くことがあったため、D2へ変更しました。 |
| Nch MOSFET Gate | 10kΩ抵抗を通してSource / GND | 誤動作防止のプルダウンです。GateとSourceにまたぐように入れます。 |
| おもちゃモーター−側 | Nch MOSFET Drain | マイナス側をスイッチングします。 |
| ダイオード | モーター両端に並列 | 線がある側をモーター+側、線がない側をモーター−側へ接続します。 |
この回路になった理由
最初は、電池の逆接続でDC-DC昇圧基板を壊してしまったことが、逆接防止を入れるきっかけでした。
ダイオードを直列に入れるだけでも逆接防止はできます。しかし、ToySwitchでは単3電池1〜2本程度で動く低電圧のおもちゃを想定しているため、その少しの電圧低下でもモーターの動きが弱くなり、電池の力を十分に生かせませんでした。
そこで、電圧ロスの少ないPch MOSFET方式にしました。ただし、Pch MOSFETは向きを間違えると電源がうまく流れません。そこで、DC-DC基板へつなぐ前に、LED確認基板やテスターで向きを確認する手順を入れています。
また、試作段階ではESP32のD7を制御ピンにしていましたが、電源を入れた瞬間におもちゃが一瞬動くことがありました。そのため、制御ピンをD2に変更し、Nch MOSFETのGateとSourceの間に10kΩ抵抗を入れて、起動時の誤動作を抑えています。
ESP32へプログラムを書き込む
XIAO ESP32C3をUSBでパソコンにつなぎ、書き込み用HTMLからToySwitch用プログラムを書き込みます。
XIAO ESP32C3は、USB接続時には基板上のLEDが点きます。BOOTボタンを押しながら、WindowsPCなどでUSB接続してください。書き込みが終了した場合は、接続しなおすか、基板上のRESETボタンを押します。番号確認・変更ページで接続し、ToySwitch00001と番号が表示されれば書き込み成功です。あとは好きな番号に変更してください。変更する必要がなければ、そのまま終了します。
写真12 XIAO ESP32C3をUSBで接続し、書き込みページからToySwitch用プログラムを書き込みます。
写真13 書き込み時の画面例。初回はブラウザからシリアル接続の許可が必要です。
写真14 ToySwitch番号確認・変更ページ。初期名は ToySwitch00001 です。
写真15 複数台作る場合は、5桁の番号を変更して区別できるようにします。
初期名は ToySwitch00001 です。複数台作る場合は、番号変更ページで ToySwitch00002 などに変えておくと、アプリで選びやすくなります。
ケースに固定する
ケースは、配線を出す部分だけを少しカッターで切り取っておきます。各パーツはホットボンドで固定します。
写真46 ケースに各部品をホットボンドで固定します。アンテナ線の引っ張り対策も行います。
- アンテナは上部の蓋側に付けると、ケース内で収まりやすくなります。
- アンテナ線は、ESP32の取り付け部分に力がかからないよう、途中をホットボンドで固定します。
- AO3401のミニ基板は金属部分が露出するため、固定後に上側もホットボンドで絶縁しておくと安心です。
- コネクター部分は固定せず、蓋を閉じた時に内部部品を守る位置に置くと、取り外しもしやすくなります。
おもちゃに取り付ける
電池ボックスは、通常、スイッチのある側と反対側がモーターなどへ向かうプラス・マイナスの線になっています。おもちゃによって構造が違うため、必ず確認しながら取り付けます。
写真47 電池ボックスにBD配線を挟みます。プラス側には赤線を挟みます。マイナス側は、電池のマイナス面側に黄線、電池ボックス側に黒線を挟むようにします。
写真48 ピッコリーネに取り付けた例。ピッコリーネの電池蓋にはちょうど良い位置に切り込みがありますので、そこから5cmのBD配線を出して外付けケースをマジックテープで取り付けます。
プラス側は、電池ボックスと電池のプラスが通電した状態でプラス電源を取り出すように赤線の銅板を挟みます。マイナス側は、電池のマイナス面に黄線の銅板、電池ボックス側を黒線の銅板になるように挟みます。おもちゃのスイッチを入れると、赤線にプラス、黄線にマイナスが流れて、ToySwitchに電源が入ります。アプリで操作することによって、黒線にマイナスが繋がり、おもちゃが動く仕組みです。
取り付け後は、USB接続時には基板上のLEDが点きますが、電池動作させる場合はLEDが点きません。アプリ「おもちゃであそぼう」から ToySwitch00001 などの名前で接続して動作確認します。
参考:内蔵型にする場合の注意
おもちゃの中にToySwitchを内蔵すると見た目はすっきりしますが、モーターのノイズや部品配置の影響を受けやすくなります。初めて作る場合は、まず外付けケース型で安定動作を確認するのがおすすめです。
試作で分かったポイント
- ダイオードは、できるだけモーターに近い場所に入れます。内蔵型ではモーター端子に直接付けるのが最も良い方法です。
- モーター端子まで分解しにくい場合は、電池ボックスからモーターへ向かう赤線・黒線の近い場所に入れます。
- Nch MOSFETの背面金属板はノイズの影響が出やすい部分です。モーターやESP32のアンテナからできるだけ離して配置します。
- ESP32が落ちる、BLEが切れる、動作が不安定になる場合は、配線だけでなく部品の位置を変えると改善することがあります。
- アルミシートでシールドする場合は、必ず裏側を絶縁し、基板や端子に触れないようにします。アルミは電気を通すため、ショートに注意が必要です。
実際の試作では、ピッコリーネの犬ではNch MOSFETの金属板をモーターから一番遠い位置へ移すことで安定しました。トンピーくまちゃんでは、ToySwitch本体を元の電池ボックスのスペースに置いて距離を取り、おもちゃ内部の電池ボックス裏側全面を絶縁したアルミシートでシールドすることで安定動作になりました。
うまく動かないとき
| 症状 | 確認すること |
| アプリの接続画面にToySwitchが表示されない | 電池向き、Pch MOSFETの向き、DC-DC出力3.3V、ESP32の3V3/GND配線、GND共通、書き込み済みプログラムを確認します。 |
| USB接続ではLEDが点くが、電池動作ではLEDが点かない | XIAO ESP32C3では、電池2本で3V3端子から給電している場合、LEDが点きません。アプリでToySwitchが表示されるか確認します。 |
| 電源を入れた瞬間におもちゃが少し動く | 制御ピンがD2になっているか、Nch MOSFETのGateとSourceの間に10kΩ抵抗が入っているかを確認します。 |
| おもちゃが動かない | Nch MOSFETのGate/Drain/Source、D2接続、BD配線の挟み方、3Pコネクターの線色、アプリの出力設定を確認します。 |
| 動きが弱い | 電池残量、BD配線の接触、モーターの必要電圧、アプリの「さいていのつよさ」を確認します。 |
| 途中でESP32が落ちる | モーターノイズ、ダイオードの向き、コンデンサ、Nch MOSFET金属板の位置、アンテナ位置を確認します。 |
| 逆接防止が不安 | DC-DCへつなぐ前に、LED確認基板またはテスターでPch MOSFET後の電圧を確認します。 |
関連する作り方ページ
外付けケース型ToySwitchは、電池で動くおもちゃを大きく改造せずに使いやすい基本タイプです。おもちゃの中に組み込む場合、声や音だけで動かす場合、USB電源や100V機器を動かす場合、またはiPadのアプリ操作を外部スイッチで行いたい場合は、用途に合わせて次のページをご覧ください。
使い分けの目安
電池で動くおもちゃを手軽に使うなら外付けケース型、アプリから操作できる専用おもちゃにするならピッコリーネ内蔵型ToySwitch、声や音だけで反応するおもちゃにするならVoiceSwitch、USB電源や100V機器をまとめて動かすなら電源タップ型、画面タッチの代わりにアプリを操作するならTouchSwitchが向いています。