ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2014年6月15日日曜日

SparkFunのコイン投入器(Coin Acceptor)を使う



SparkFunでプログラマブルなコイン三種まで利用可能なコイン投入器。
データシートなんかがペラ1枚みたいな感じだったので使えるかどうか不安はあったが、$19.95と安めだったので買ってみた。真ん中よりやや下の高校をほぼ最底辺くらいの成績で卒業した私でもなんとか読める程度に簡単な英語なので、ちゃんと動かすことができた。

プログラマブルというのは(たぶん)投入するコインの種類、コインを認識するためのサンプリング数、それによって発生するパルスの数(1~50)、正確さ(おそらくコインの差異をどの程度許容するか)などを設定可能であるということだろうと思う。利用するコインの数はこのモデルでは最大三種類で、自分の好きなコインを使うことができる。もちろん、実際の硬貨でも問題ない。これと同型のモデルと思われる投入器が東南アジアのゲーセンで利用されている映像を見たことがある。つまり実用的に使うことができるということだろう。

利用するコインは上述した設定を行ったあとでサンプリングモードで記憶する。付属する紙切れによると、サンプリング数は15枚以上、20枚くらいはあったほうがいいらしい。サンプリングは簡単で、決められた数分投入口からコインを入れるだけだ。詳しい手順については後述する。

電源はDC12Vで、接続する先は12V、GND、pulseの三つだ。pulseは5Vで直接マイコンに接続することができる。このほかcounterというラインもあってこれもpulseと同じタイミングで動作するが、オープンコレクタ出力になっている。紙切れでは一切触れられていないが、外国のフォーラムとかを見てみると、カウンタICに接続するためにあるとかそういうことらしい。よく知らん。

パルスについて

ちょっと悩んだのが、これのパルスについて。
上述のとおりパルスは好きな数にすることができるが、このパルスがまだ発生している間に次のコインが入ると、そのまま続けてパルスが出てしまう。またこのパルスはモードで早くすることもできるがそれでも100msくらいかかるので、ぜんぜん次のコインを投入できてしまう。つまりコイン1がパルス1、コイン2がパルス2、コイン3がパルス3の場合、パルス3が来てもコイン1が三枚入ったのか、コイン1とコイン2が入ったのか、コイン3が入ったのか判別する手立てがない。

寡聞にしてこういうもののスタンダードがどのようになっているのかということを知らないが、1パルス分は開けるとか、あるいはもう一個信号線があってどこまでがひとつの信号なのか示してくれるとか、そういう仕組はないもんかと思った。もっとも、私の買ったのの倍くらいの値段のするモデルだとシリアル通信でちゃんとデータを送ってくるらしいので、安いのでこんなもんなのだろう。
そもそもゲーム機などの場合、コインは一種類で事足りるだろうから、それで良いのだろう。

検索して読んだコードの中でなるほどなあと思ったのは、パルスの設定をそのまま金額に対応させるというものだ。たとえば10円がパルス1だとすると100円はパルス10とするということだ。そうすればあとはパルスがどんな風に来ようと投入金額は正確に把握することができる。10円玉いくつで100円玉いくつかは分からないが、パルスが12回来たなら120円入っていることは分かる。

詳細な設定手順

まずはコインについての設定。

  1. ADDとMINUSを同時押しのまま長押し(以下全部同じだけど、ポチッじゃなくて、一瞬だけホールドする感じ)すると、Aという表記がLEDに出る。
  2. SETを長押しするとEという表記に変わる。この状態でADDとMINUSを押すと数値が1~3まで変わる。利用したいコインの種類の数にして、SETを長押しすると設定される(以後、設定はすべてSETを長押しで確定する)
  3. H1という表示に変わる。ADDとMINUSであとの手順でサンプリングするときに利用する硬貨の枚数を選ぶ。最大30枚、15枚以上はあった方が良いらしい。SETを長押しで確定。
  4. P1という表示に変わる。ADDとMINUSでそのコインが入ったときに出力されるパルスの数を選ぶ。前述の通り、値段とパルス数を合わせたりする。SETを長押しで確定。
  5. F1という表示に変わる。ADDとMINUSで正確さ(どれくらい誤差を許容するかということだと思う)を設定する。1が一番厳密で一番ゆるいのが30。5-10くらいが普通は良いらしい。利用するコインが似たような種類なら、厳密にしないと判定を間違える。SETを長押しで確定。
  6. コインの種類数が1以上なら、ここでHn,Pn,Fn(nはコインの種類の番号)という風に3,4,5の手順を枚数分繰り返す。
  7. 設定が終わるとAという表示に変わる。今までの設定を確定したい場合、SETを長押しする。Eという表示に変わったら確定(これをしないと確定しない)。電源を落とすと設定が保存される。
続けて、サンプリングをするのでもう一度電源を入れる。

  1. SETを長押しするとA1という表記が出る。
  2. 用意しておいたサンプルを投入口から入れる。LEDには入れた枚数が表示される。
  3. 枚数分入れるとA1という表記が戻ってくる。種類が1種類ならここで終了。電源を落とすと保存される。次の種類がある場合は、SETを長押しするとA2に表記が変わって次のコインのサンプリングを行う。あとは繰り返し。
利用するときは電源を入れて、特に何もせずそのままコインを入れれば良い。
コインが入って、LEDが自分の設定したパルスの数値を表示してチカッと光れば正しく設定できている。コインが通らないときはサンプリングか設定に失敗している可能性がある(設定されていないコインは通さない仕様になっているっぽい)。

以上。
このあたり書くためにマニュアル読み返してたらAP modeとかいうものがあって、もしかするとそれが複数コイン入れたときに判別する方法と関係するかもしれないので、とりあえず試してみてからまた書く(かも)。