-->

2020年10月25日日曜日

コインアクセプタの解析

 この記事は2012年に別のHPで公開した内容です。今は未公開にしているのですが、たまにアクセスされているようなので、こちらで公開します。ここで解説しているコインアクセプタはAdafruitのものですが、おそらく別のコインアクセプタも仕様は同じかと思われます。参考までに。Amazonだと例えば以下のようなものが該当すると思います。


ここではAdafruitから購入したコインアクセプタの使い方を解説しています。 具体的には以下の商品です。

箱の中にはモジュールと説明が書かれた紙が1枚。紙をスキャンしたのが以下です。

サイトの商品ページに乗っている説明書と大差はないようです。
さて、このモジュールができることは以下のことです。
  • 4種類のコインを登録できる
    コインの直径を認識しているみたいなので、登録できるのは直径の違う4種類のコインということになります。ですが、日本硬貨の5円と50円のような穴の開いたコインはうまく認識できないようです。
  • 登録したコインのみを認識して選り分けることができる
    投入したコインが登録されたものだったら後ろの排出口に、登録されていないものだったら前面の返却口に出力できます。
  • 認識したコインの種類を外部にパルスとして出力できる
    これによって何のコインが投入されたか知ることができます。
次はモジュール周りのインタフェースを見てみます。周辺部の写真を掲載します。
  1. 外部ピン(4本)
    名称説明
    DC12V+12V
    COIN認識したコインの種類をパルスで出力
    パルスの数はプログラム可能(任意数が出力できます)
    パルスはTTL?(5Vレベル)っぽいです
    パルスについては後に掲載あり
    GNDGND
    COUNTER不明
    謎です
    ※接続するコネクタはワイヤ付きで同封されています
  2. 2接点スライドスイッチ
    "NO"と"NC"の記載あり(ノーマリーオープン/コネクタ?)。よくわからないのでデフォルトの"NO"から触らず。
  3. 3接点スライドスイッチ
    - Fast
    - Medium
    - Slow
    上記3つの設定から出力パルスの長さを選択できます(後述)
  4. "SET"ボタン
  5. ”ADD"ボタン
  6. 7セグ
  7. ”MINUS"ボタン
    ※4から7は使用前の設定で使用します
使うにあたってはコインのパラメータ設定とサンプリングをする必要があります。パラメータ設定とは使用するコインの種類の数や出力パルス数の設定で、側面のボタンと7セグで行います。サンプリングは実際に使用するコインを投入してコインの種類を覚えさせる工程です。これらの手順は前述のAdafruitのサイトや同封されているマニュアルに掲載されています。

ここからは使用前の設定を解説していきます。電圧を印加すると1秒ぐらい経過した後、ブザーが鳴ってLED(表示灯)が点灯します(ブザーは結構大きな音ですので、びっくりします)。
まずはパラメータの設定を行います。電源を入れた状態で以下の手順を実行します。
  1. ”ADD”ボタンと”MINUS”ボタンを同時に1秒以上押す
    ボタンを離すと7セグに”A”が表示されます。
  2. ”A"が表示されたら”SET"ボタンを1秒以上押す
    ”SET"ボタンを離すと7セグに”E"が表示されます。
  3. ”E"が表示されたら”ADD"ボタンと”MINUS"ボタンで認識するコインの種類を決め、”SET"ボタンを1秒以上押す
    このモジュールは4種類のコインを認識できるので1から4が設定可能です。”SET"ボタンを離すと”H1"が表示されます。”H1"の”1”はコインの1種類目を意味していると思います。
  4. ”H1"が表示されたら”ADD"ボタンと”MINUS"ボタンでサンプル数を決め、”SET"ボタンを1秒以上押す
    サンプル数とはこのパラメータ設定の後に行うコインのサンプリングを行う回数です。設定できる最大は30で、15以上を設定するとより正確性が増すとマニュアルにあります。 ”SET"ボタンを離すと”P1"が表示されます。”P1"の”1”は"H1”と同様にコインの1種類目を意味していると思います。
  5. ”P1"が表示されたら”ADD"ボタンと”MINUS"ボタンで出力パルス数を決め、”SET"ボタンを1秒以上押す
    このモジュールは認識したコインの種類をパルスの数で出力します。ここではそのパルス数を設定します。マニュアルによると最大は50だそうです。 ”SET"ボタンを離すと”F1"が表示されます。”F1"の”1”は"H1”と同様に (略)。
  6. ”P1"が表示されたら”ADD"ボタンと”MINUS"ボタンで正確度を決め、”SET"ボタンを1秒以上押す
    正確度とは所謂”あそび”に関連しているものだと思われます。1から30まで設定可能で、1であれば最も正確、30であれば曖昧になります。通常は5から10が最適だとマニュアルにあります。似た形状のコインを認識したい場合は小さくしたほうが良いとのこと。 ”SET"ボタンを離すと”H2"が表示されます(2種類以上の設定を行った場合)。
  7. "6"の手順が終わると"4"へ戻るので、"3"で設定したコインの種類の数だけ"4"から"6"の設定を繰り返す
  8. ”A"が表示されたら”SET"ボタンを1秒以上押す
  9. ”E"が表示されたら電源をOFFにする
次は実際にコインを投入するサンプリングの手順です。複数回(同種類の複数枚の)コインを投入する必要がありますが、同一のコインを複数回投入しても大丈夫です(たぶん)。
  1. ”SET”ボタンを1秒以上押す
    ボタンを離すと7セグに”A1”が表示されます。
  2. ”A1"が表示されたら1種類目のコインをパラメータ設定で設定したサンプル数の回数分投入する
    コインを投入すると7セグに投入した回数がカウント表示されます。設定回数分投入すると7セグに”A1"が点滅表示されます。
  3. ”SET”ボタンを1秒以上押す
    ”SET"ボタンを離すと”A2"が表示されます。
  4. "3"の手順が終わると"2"へ戻るので、"2"から"3"の設定を4回繰り返す
    ここではパラメータ設定で設定したコインの種類の数によらず4回行わなければならないようです。ただし、"SET"ボタンを1秒以上押すことでコインのサンプリングをスキップすることが可能です。
    例:2種類のコインを使用したい場合、"A3"と”A4"はスキップします
  5. すべて終わると自動的に再起動します
※設定後、設定したコインを投入すると一瞬だけそのコインの出力パルス数が7セグに表示されるので何を認識したかはモジュール単体でもわかります

実際の日本硬貨を使用する際の設定例を以下に掲載します。残念ながら穴の開いている5円と50円はうまく認識できません(事実サンプリング時に投入するとカウンタが1ではなく2ずつ増えるので認識できていないと考えられます)。ですので使用するのはその2種類を除いた4種類の硬貨です。5円はいいのですが50円が認識できないのは正直微妙なところです。
設定後動かしてみましたが正しく認識できました。
  • 設定値
    10円100円500円1円
    サンプル数15151515
    出力パルス5101520
    正確度5555
注意点としては、モジュールを水平に設置しないとうまく認識しません。コインの直径を見ているとは思うのですが、どのようにセンシングしているのか興味深いです。

では、COINから出力されるパルスを見てみます。パルスはロジアナを使用して観測しました(ZEROPLUSの安いロジアナ使用->これ)。スライドスイッチは"Fast"を選択しています。
  • 出力パルス設定"5"のコインを認識した波形
    プルアップされていてローのパルスが出力される模様。
  • 上の波形を少し拡大して時間を表示したもの
    約30msのパルスが出力されているようです。この出力幅はスイッチで変更できます。
その他のスライドスイッチの設定も試してみました。以下にまとめておきます。
  • スライドスイッチの設定と出力パルス長の関係
    スライドスイッチ設定出力パルス長
    "Fast"約30ms
    "Medium"約50ms
    "Slow"約100ms
解析は以上です。