毎週オタクイベントに行ったり板タブを買って絵をかいたり仕事がアホみたいに忙しかったりしたせいで間が開いてしまいました。トイレで気を失うのはもうコリゴリですよ。ちなみに仕事をする体力はありませんが遊ぶ体力はあります。
ということで今回は回路設計をしていきます。
一応リアルの進捗として、基板は殆ど出来上がっていて、ソフトの方も書いているんですけど、記事にするのはもう少し後にします。
本体回路図

マイコンはESP32を使用します。豚に持たせる機能は以下です。
- 音量調節
- 音源の再生・選択(ラジオ体操第一の他10種類)
- 前照灯
- 尾灯
- 方向指示器
- リチウムイオン電池による充電式
- バッテリ残量監視
- USB Type-C充電
- ラジコンカー
主な機能の解説
【音源の再生・選択】
DFPlayer Miniを使用します。これはマイクロSDカードに入れたMP3をスピーカから再生できるモジュールで、ESP32からUART制御を行い、音源選択スイッチで設定した音源を流します。ちなみにこのモジュールなら音量もデジタル制御できますが、直感的な操作を簡単な回路で実現したいので、単にボリュームを挿入するだけにしました。
音源の選択はDIPロータリスイッチにより行い、最大10種類までとします。
【前照灯】
5mm白色LED OSW57L5B61Yを使用します。IF=80mA, 35000mcdと超高輝度で、これ1個で懐中電灯並の明るさが出せます。当初はこれでビカビカに光らせようとしたものの、後述の安全設計により10mAまでしか流せないことが分かったので妥協しました。他のLEDも同じ理由で電流を抑えています。
【充電式】
中に色々詰め込むのに乾電池が邪魔だったのでリチウムイオン電池にしました。USB-TypeCで充電できるようにします。実装スペースの都合上、USB通信で音源の差し替えやプログラムの書き込みはできません。
ちなみに充電ICのMCP73831/2、これはいいですね。抵抗1本で充電電流を設定でき、充電中を示すLEDも接続できます。取扱いにビビってしまうリチウムイオン電池もこれを使えば楽に充電できます。
【ラジコンカー】
ギヤードモータを付けて、モータドライバDRV8835で制御します。これとは別にリモコンを作って走らせられるようにする予定です。
安全設計
異常が起きても電池が燃えないようにします。自分で使う物ならその辺の対策はザルでもいいんですけど、今回は人に渡す物なのできちんとやっておかないとマズいです。
想定する異常と事故
まず想定する異常は以下の3つです。
- モータに異物が挟まってロックする
中で部品が欠けてギヤに挟まったり、ふざけて車輪を手で止めたりすると、モータがロックする原因になります。 - ボリューム最大時にスピーカに大電流が流れる
スピーカに流れる電流がコントロールしにくく、リスクを排除し切れません。
なおDFPlayer miniは3Wのアンプを備えているので1A位流せてしまいます。 - 回路が短絡する
部品がショートモードで故障したり、金属の異物が入ったりすると、回路が短絡する原因になります。
そして上の異常が起きると、このようなことが起きます。
- リチウムイオン電池に過電流が流れる、或いは過熱し、発火する。
対策
- 過電流が流れないようにする
- 過電流保護回路を付ける
安全設計としてはそもそも過電流が流れないようにするのが理想です。なので豚に流れる最大電流が、電池の定格(640mA)を下回るようにします。まずスピーカとモータのロックについて対策した結果が以下です。
- スピーカに33Ωを挿入
短絡時の電流は3.3V/33Ω=100mA。 - モータに10Ωを挿入
ロック時の電流(停動電流)は実測値で380mA。ちなみに抵抗がないと700mA流れます。
以上を踏まえて、豚に流れる電流を見積もると最大630mAになり、スピーカとモータが原因で定格オーバーになるのを防げます。ちなみに過電流保護は後述のポリスイッチでも行うので定格とのマージンは少なめでOKとしています。
| 消費電流 (mA) | ||
| 部品名 | 通常時 | 異常時 |
| DFPlayer mini | 20 | 20 |
| スピーカ | 100 | 100 |
| 方向指示器 | 10 | 10 |
| 前照灯 | 10 | 10 |
| 尾灯 | 5 | 5 |
| モータ (2個合計) | 150 | 380 |
| ESP32 (BLE受信時) | 100 | 100 |
| 充電表示灯 | 5 | 5 |
| 合計 | 400 | 630 |
次に回路が短絡したときはどうするかというと、ポリスイッチで対策します。今回使用するMF-RX030を使うと、電池の定格0.64Aを上回った場合に、30秒以内にトリップして電流を遮断します。もし中途半端に短絡してジリジリ過電流が流れた場合は、これで保護します。
MF-RX030は保持電流0.3A、トリップ電流0.6Aです。通常時の消費電流は0.4Aで定格オーバーですが、特性図を見るとトリップするまで1000秒以上あります。更に0.4Aという電流はスピーカを鳴らしながらBLE通信をし続け、モータが回り、かつ全てのLEDが点いた状態での数値であり、1000秒以上それが続くことはそうそうないはずなので、普通に使う分にはトリップしないものとして、問題なしとします。

リチウムイオン電池にも保護機能はある

実をいうと電池自体にも過電流保護は付いていて、電流を遮断するまでの時間は以下の通りです。(データシート)
- 1.5A~3.5A:9ms
- 短絡:≤320us
それでも0.64A~1.5Aの範囲で保護を付けたいのと、冗長性を持たせたい意図でポリスイッチを追加しています。
ちなみに冒頭で、人に渡す物だからきちんと安全設計すると書きました。もしこれが自分用だったらどうなるかって?多分リチウムイオン電池の保護回路だけに頼っていたと思います。
