赤外線リモコンで動く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もどきを作ってみました。

結果、安く、かつある程度省電力なデバイスで「お風呂沸かして機能」を実現することができました。

しかし、実際に組み立ててみると、もう少し小さくできそうだったり、サーボの位置をもう少し変えてみたかったりと、改善の余地がありました。

なので、プリント基板化を考慮して再設計してみようかなぁ、なんて考えてたりもします。

時間があれば、またチャレンジしてみる予定です。

では、また次回をお楽しみに。