赤外線リモコンで動くSwitchBotもどき
SwitchBotって、ご存じですか?
こんな感じの、スイッチのオン/オフに特化したガジェットです。
売りは、スマホやスマートウォッチと連携し、遠隔から物理スイッチを操作できるようになる点です。
現在開発中のドロイド君に「お風呂沸かして機能(=給湯スイッチを押してくれる機能)」をつけたかったので、これはちょうどいいかも!
ということで、真似っこして作ってみたのがこちら。
パチもん感溢れるけど、んまぁ実用的なのでいいか。
以下では、制作する上で苦労した点なぞ、記述したいと思います。
仕様イメージと成果物
制作に際して、次のような点に配慮しつつ、取り組みました。
----
1. SwitchBotはお値段がちょっと高い(代理店価格で4,500円程!)。
⇒ 市販品のパーツで安く作る。
2. ドロイド君からの指示で動作
⇒ 赤外線リモコン信号を受信して動くのが、汎用的かつ単純かしら。
3. なるべく使いやすいものを
⇒ 小さい、かつ電池交換頻度が低い。
----
その結果、完成したプロトタイプがこれ。
横幅が本家よりちょっと広いかしら。ケースは3Dプリンタで作りました。
中身はこんな感じ。
まだスペースがあり、小さくできる余力を感じますな。
分解するとこんな感じ。
基本、秋月やAmazonで手に入りそうな部品のみを使っています。
----
・PIC16F1705(メインマイコン): 110円
・DRV8835(モータドライバ): 300円
・赤外線受光モジュール: 50円
・中華サーボ: 300円
・赤色LED: 10円
・タクトスイッチ: 10円
・電池ホルダー: 忘れた。
・各種コンデンサ、抵抗、ピン、ソケット: 100円くらい?
・2.54mmピッチユニバーサル基板: 90円
----
全部で1,000円ちょっとくらいかな?やはり、安いですね。
この制作にあたり、特に苦労した点に絞って解説します。
市販品でつくる際の課題
小さく作るために、電池にはCR2を使いました(SwitchBotと同じ)。よく、カメラなどに使われていたりする3V程度の電池です。
しかし、ここでひとつ困った点が。市販品の多くのサーボは、3V程度だとまともに動かないんです。少なくとも、私の保有しているサーボは全てダメでした。
試しにCR2で駆動してみると、そこには生まれたての小鹿が。ピクピク動くだけで、まったく制御できやしない。
きっと、電圧がサーボコントローラの仕様外なんだろうなぁ…。
ここで普通なら昇圧などを考えるのですが、今回はバッサリ、内蔵コントローラを使わないことにしました。
というのも、サーボって分解すると…。
さらに、コントローラをとっちゃうと…。
あれまー、中身はただのDCモータ(2本の白線)と回転ポテンショ(3本の赤線)だけなんですね(あたりまえか)。
なので、DCモータを外付けのドライバ経由で制御し、回転ポテンショはPICでAD変換して読み取ることで、サーボと同様の動きを実現できます。
今回の用途的に、細かい位置制御の必要はないので、回転ポテンショはPICのAD精度で十分です。
逆に、回転ポテンショの値を直接読めるので、電源投入時の初期位置を知ることができたりと、メリットもあります。
一方のDCモータ用外付けドライバについては、電流容量だけでなく、最低駆動電圧にも注意する必要があります。生まれたての小鹿が生まれないように。
今回はロジック電源が2Vでも動作する、DRV8835を使いました(細かく選定したわけではなく、たまたま保有していたので)。
省電力設計
電池はなるべく長く使いたい。お金かかるし、交換も面倒なので。
ということで、電池にやさしい設計を。
待機中の工夫
待機状態において、PICやモータドライバはSleepさせています。
そして、赤外線受光モジュールの信号検知、またはタクトスイッチ押下をトリガとして、割込みで起きるような作りにしました。
では、待機中の電流は…。
おお、0.20mA。なかなか頑張ったのではなかろうか。
サーボ駆動時の工夫
もう一つの問題として、今回私が使ったサーボは、スイッチを押すにはトルクが弱め。
なので、全力で電圧をかける必要があります。が、いきなり全力でモータが動くと、回路や電池によろしくない。
ということで、ちょっとずつ速度を上げる処理を入れました。
これにより、急激に電流が流れてしまうのを避けられ、電池にもやさしい訳ですね。
電池の持ちは?
はい、さっぱり知識がございません。嘘が書かれてたらごめんなさい。疑いの目でみてください。
今回電池に使っているCR2は、標準負荷20mA、公称容量は850mAhとなっています(参考ページはこちら)。
一方、今回のプロトタイプの待機電流は0.20mAなので、単純計算で 850mAh/0.20mA = 4250h = 半年程度は持つ、という計算。
ただ、電池の容量というのは、使用する際の電流量に大きく左右されるようで、0.20mA程度であればもっと持つ気がします。(こちらのPanasonic様のサイトがわかりやすいです)
しかし、ずっと待機しているわけではなく、スイッチを入れる際にはサーボが動いたりと大きな電流が流れるので、使用頻度によってはもっと持たない気もします。
ということで、あくまでこれは目安であって、実際は使ってみてどうなることやら、ですね。
本当に電池交換が半年程度に一回程度で済むなら、使い勝手としては合格かしら。
ちなみに、本家SwitchBotは600日もつと謳っている。すごいな。
おわりに
今回は、市販品のパーツを使って、SwitchBotもどきを作ってみました。
結果、安く、かつある程度省電力なデバイスで「お風呂沸かして機能」を実現することができました。
しかし、実際に組み立ててみると、もう少し小さくできそうだったり、サーボの位置をもう少し変えてみたかったりと、改善の余地がありました。
なので、プリント基板化を考慮して再設計してみようかなぁ、なんて考えてたりもします。
時間があれば、またチャレンジしてみる予定です。
では、また次回をお楽しみに。