ビットコインで支払いができる、お菓子の自販機を作りました。食べたいお菓子を選ぶと、ビットコイン支払い用のQRコードが右手前の液晶画面に表示されます。スマートフォンのビットコインお財布アプリでQRコードを読み取ってビットコインを支払うと、お菓子が出てくる仕組みです(図1)。

図1●お菓子自販機の外観
図1●お菓子自販機の外観
[画像のクリックで拡大表示]

 お菓子を一つずつ出すために、爪が付いた木製の歯車を使っています。モーターを回転して、お菓子に爪が引っ掛かった状態にしてから、モーターを逆回転させます。すると、爪に掛かったお菓子が一つだけ出てきます。今回は一つのモーターで4種類のお菓子に対応するため、四つの歯車を90度ずつずらした角度で取り付けています(図2)。

図2●お菓子を取り出す歯車
図2●お菓子を取り出す歯車
[画像のクリックで拡大表示]

 制御プログラムはJavaScriptで作りました。Raspberry Pi上にNode.jsのサーバーを立てて、GPIOにつないだお菓子選択ボタンの入力状態を監視したり、液晶にQRコードを表示したりしています。

 Raspberry Piは有線LANかLTE通信アダプターでインターネットにつながっており、ビットコイン取引所のAPIを利用して、支払いを確認しています。自販機のボタンの状態を監視しつつ、ビットコイン取引所のAPIサーバーと通信するなど、さまざまなタスクを同時に走らせる必要があったので、JavaScriptのフレームワークであるReduxやredux-sagaを使用しています。

 仕方のないことではありますが、開発当初よりも最近はビットコインが値下がりしています。仮に実用化するとしたらそのような相場への対応も必要なのかもしれません。

 実際に動かした動画をYouTubeで紹介しています。