朝起きる。コーヒーメーカーの投入口に豆を、ドリッパーにペーパーフィルターを、寝ぼけ眼でセット。スイッチを押す。豆が挽かれてドリップが始まる。終了。
この本来寝ているはずの5分間を取り戻すべく、日経Linux 5月号を片手に、Linuxサーバーとマイコンボード「Arduino」の組み合わせで、毎朝自動でコーヒーを沸かしてくれるメカを自作することにした。人間の指の代わりに、コーヒーメーカーの物理スイッチを押してくれる“ロボット”だ。
日経Linux 5月号の特集「Linuxで家電を自由に操る」では、家電を制御するソフトから電子工作を含むハードまでと、入門から応用まで幅広い内容を扱っている。これを参考にして今回、5月の連休にサッと作れそうな、自作パソコン並みの手軽さにこだわった電子工作に挑戦してみた。
利用するパーツは、なるべく手間のかからないものを選んだ。マイコンボードの「Arduino」、Arduinoに装着するイーサネットインタフェース「イーサネットシールド」、回転角度を制御できるサーボモーター、それらをつなぐジャンパー線、およびUSBケーブルとイーサネットケーブルだ。電源は余っているUSB ACアダプターを流用した。LAN内のサーバーからスイッチをリモート制御できるように、ハンダごてを握ることなく組み上げることをゴールとする(写真1)。
Arduino Uno R3とイーサネットシールドを利用
Arduinoは、設計情報が公開された「オープンソースハードウエア」として開発されたイタリア発のマイコンボードだ。今回は純正の「Arduino Uno R3」を選んだ。Arduinoの種類によっては、USBインタフェースでPCとシリアル接続するのに拡張モジュールが必要になるので、購入に際しては間違えないようにしたい。給電にはUSBが使える。
Arduinoのボードには、様々な部品の足を差し込むだけで接続できる「ピンソケット」が用意されている(写真2)。ピンソケットの配置は規約化されており(電源、アナログ、デジタルの各種信号がある)、ピンソケットに差し込んで段重ねにできる「シールド」が数多く販売されている。今回はイーサネット機能を追加する「イーサネットシールド」を使用した(写真3)。
サーボモーターは、モーターの回転角度を制御できるのが特徴である。今回は、日経Linux 5月号でも利用している安価で必要十分な性能を持つ「Zebra ZS-F135」を選んだ(写真4)。
Arduinoとの接続では、サーボモーターの赤線(電源)・黒線(接地線、GND)・白線(制御信号線)を、Arduinoの「5V」、「GND」、「9」番ソケットにつなぐ。接続には、ピンソケットに挿すだけで部品をつなげるジャンパー線を使う。ジャンパー線は、つなぐ先を間違えないように多色セットのものを利用した(写真5)。
安全性を事前に確認
電子工作を始める前に、スイッチを押す対象のコーヒーメーカーの仕様を見てみる。安全上問題がある操作になるかどうかの検討と、押す必要があるボタンの調査が目的だ。
まず安全性については、この機種ではあまり問題はなさそうだ。誤って空焚きすると危険だが、豆と水を入れない状態ではブザー音とともに運転が停止する。就寝前の準備を忘れたとしても、目覚めてコーヒーができていないのを嘆く程度で済む。
次に、押すべきボタンの数。これは筆者の機種では、1つで十分だった。味を決める「マイルド」と「リッチ」の各ボタンは、1度設定すると記憶してくれる。「豆」ボタンを押すだけで動作するので、シンプルな構成でいけそうだ。
面食らったのが、サーボモーターの貼り付け方だ。工業デザイン上、操作パネルが湾曲している。隙間が埋まるタイプの接着材でなければ、接着部の面積が狭くなってしまう。そこでクッション材入りの厚みのある両面テープを利用した。ただ接着力によってはサーボを持って引っ張ると、コーヒーメーカーのパネルごと外れそうになる。剥がす際は、パネル部分を押さえながらゆっくり剥がさないと破損する危険がある。そこは慎重に作業することにした。