アマゾンで↓の機械を買いました。
これがあれば自分で自動販売機を作って好きなものを好きなだけ売れます。そして、現金とコンピュータプログラムが接続出来るということは、これはもうFinTechですね!(ですかね?)
さっそくセットアップして大儲けします。
以下がこのコインセレクターの基本的な仕様です。
- 12V 65mA(+-5%) のDC電源で動作します。
- 4種類までのコインを識別可能です(4種類までコインを覚えさせる事ができます)。
- 識別済みのコインを投入すると、定められたパルス信号をケーブルから出力するとともに、本体下部の穴からコインを排出します。
- 未識別のコインを投入すると、パルスは出力せず、本体前面の穴(お釣り取り出し口的な穴)からコインを排出します。
↓本体下部の穴。識別済みはここから。
12V 65mA(+-5%) の電源が必要ですが、今回は秋月電子さんで下記を購入しました。
超小型スイッチングACアダプター12V1A AD−K120P100: 電源一般 秋月電子通商 電子部品 ネット通販
あと、ブレッドボードに接続するためのDCジャックも購入します。
2.1mm標準DCジャック(4A) ユニバーサル基板取付用: パーツ一般 秋月電子通商 電子部品 ネット通販
配線です。これらの機材をRaspberry PIに繋いでいきます。
下の写真は実際に繋いでみた感じです。(今回はたまたま手元にあったRaspberryPI ZEROを使っていますが他のRaspberryPIでも問題ないはずです)
写真のブレッドボード右端のDCジャックにACアダプタがつながっています。
下の写真は本体の背中部分の各種ケーブルと、ディップスイッチ群です。
このケーブルのDC12Vを電源のプラスに、GNDを電源のマイナスとRaspberryPIのGNDに、COINをRaspberryPIのGPIOに(今回は18)それぞれ接続します。
ではコインセレクタを初期設定して実際にコインを覚えさせるわけですが、そのあたりの手順は「ハードウェアとか研究所」さんの手順をそのまま実行することで出来ました。ありがとうございます。
具体的な設定手順はハードウェアとか研究所さんを見て頂くとして、つまずいたり、気づいたりしたポイントを列挙しておきます。
- 2接点スイッチは「NC」に設定すること(ハードウェアとか研究所さんではNOで使用しているようだが、RaspberryPIのGPIOではNCでないと値が取得できなかった)。
- 電源を切っても設定を覚えているので使いやすい
- 硬貨ごとにパルスを任意で設定できるので10円なら1、100円なら10とかとすることで、複数硬貨の組み合わせ計算が出来る様子
続いてRaspberryPI側のプログラムの作成です。
node.jsでGPIOを扱うためのモジュールを適当なディレクトリでインストールします。
npm install onoff --save
下記がコインセレクタからのパルス信号を受信するプログラムです。
coin.js
var Gpio = require('onoff').Gpio,coin = new Gpio(18, 'in', 'both');function exit() {coin.unexport();process.exit();}coin.watch(function (err, value) {if (err) {console.log("err");throw err;}console.log("%d coin! %d", Date.now(), value);});process.on('SIGINT', exit);
実行
node coin.js
コンソール出力
1502977801154 coin! 01502977801212 coin! 01502977803754 coin! 11502977803804 coin! 01502977803904 coin! 11502977803954 coin! 01502977804054 coin! 1
また、識別していないコインを投入した場合、プログラム(GPIO)には何も反応がありません。
この仕組みと他のものを組み合わせれば、現金駆動型の仕組みが作れそうです。夢が膨らみますね。