こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
私たち「OSSS」は、ネスレから販売されている「ネスカフェ バリスタ」をHTCPCP対応にする装置、「HTCPCP Kit」を開発しました。HTCPCP Kitは、HTCPCPサーバとなるRaspberry Piと、そこから指示を受けてバリスタを制御するmbedで構成されます。
開発背景
HTCPCP(Hyper Text Coffee Pot Control Protocol)は、4月1日のエイプリルフールで公開された「ジョークRFC」のRFC2324で規定されるプロトコルです。
HTTPの拡張として、遠隔からコーヒーを淹れることを目的としています。HTCPCPの実現は、一般にその実現が強く望まれていることはないといえることは決して無いと思うこともあるかも知れません。そこで、課題が出たことをきっかけに、実現します。
設計について
HTCPCP Kitの全体像を示します。
PCは、HTCPCPに従ってRaspberry Piと通信を行い、バリスタの電源操作およびコーヒー抽出操作の指示を行います。Raspberry Piは、mbedに対して、その操作に対応するメッセージをUARTで送信します。これを受信したmbedは、バリスタの制御を行います。
実装について
実装について、Raspberry Piとmbedに分けて述べます。
Raspberry Piについて
まず、Raspberry Piの実装について説明します。
バリスタの電源を入れて、コーヒーの抽出という操作を行うために今回実装したHTCPCPのメソッドはコーヒーを淹れる指示を出すBREWメソッドと、バリスタの電源の操作のためのONOFFメソッドです。まず、サーバの起動時にバリスタの電源を入れる指示をだし、BREWメソッドを受け取ったらどの種類のコーヒーを淹れるか、またONOFFメソッドを受け取ったら電源スイッチを押す指示をUART通信でmbedへ文字を送信送信することで行いました。なお、サーバの実装はRubyとSinatraを用いました。
mbedについて
次に、mbedについて述べます。
バリスタ内部の基板は、押しボタンが配置された「操作パネル基板」と、ヒータなどを制御する「メイン基板」に分かれていました。これらの基板間はある規則に沿って連携しており、当初はこの規則をmbedで再現すれば、自由にメイン基板を制御できると考えました。しかし、予想以上に難解で、気付けば成果物のデモを行うまで24時間を切っていました。
そこで、力技ですが、操作パネルのボタンを電子的に「押したことにする」という方法を取ることにしました。トランジスタを用意し、ボタンを押すと短絡するような二点間をコレクタとエミッタに接続し、ベースをmbedの出力ピンに接続します。もっとも、わざわざトランジスタを用意せずとも、mbedのオープンドレイン(オープンコレクタ)出力を利用すればもっと楽だったかも知れません。しかし、実現方法はともかく、この方法で課題に取り組んで初めてバリスタの制御ができ、感動しました。
おわりに
最後に、少し分かりにくいですが、動作している様子を掲載します。
ちなみに、実装についてですが、やはりmbedでの「力技」は、あまり好ましい方法とはいえません。これで完成とせず、今後は力技に頼らずに制御できる方法を検討し、改善していきます。