硬貨を選別することで、投入金額や貯金箱内の総額を自動集計することが出来るようになります。本ブログではトイボックス製コインルーム SELECTOR BANKにセンサーを取り付け、マイコンボードIchigoJam Sで自動集計する方法について説明します。
無人店舗などで、領収書の自動発行や、売り上げ金額の把握などにも応用できるかもしれません。
トイボックス製コインルームにセンサを取り付け、投入金額をIchigoJamで自動集計するシステムの構成例。コインルームは、縦6階建ての構造。コインの大きさに応じて、硬貨を自動選別し、各階へ振り分けて蓄える。
下図は、50円硬貨1枚、10円硬貨1枚、5円硬貨1枚を投入したときの様子です。投入金額65円の入金により、貯金箱内の合計金額は125円になりました(予め60円が入金されていた)。
投入したコインの枚数を計測し、投入金額を集計する。また、過去の投入金額の合計も表示する。
目次
製作に必要な機器
- コインルーム SELECTOR BANK (トイボックス製)
https://amzn.to/2MVrUP3 - IchigoJam S(またはIchigoJam T)
- センサ(フォトリフレクタ TPR-105×5個、フォトインタラプタ CNZ1023×1個)
- 抵抗器(一例:100Ω×1個、220Ω×2個、470Ω×3個、10kΩ×2個、22kΩ×1個)
- ブレッドボード、ピンヘッダ、配線
- その他、周辺機器(テレビ、キーボード、ACアダプタなど)
センサ部の製作
本製作の中で重要となるのがセンサ部です。コインルーム内のコインが通過するスロット部は、透明なパーツで出来ています。そこで、スロット部へ、反射型のフォトリフレクタ TPR-105を取り付けることにしました。
フォトリフレクタには赤外線LEDとフォトトランジスタが内蔵されており、コインが近接すると、赤外線の反射によってフォトトランジスタに電流が流れます。
ただし、1円硬貨が通過する最下段については、形状が異なったため、透過型のフォトインタラプタ CNZ1023を取り付けました。
反射型のフォトリフレクタ TPR-105には、4本のリード線が取り付けられています。ここでは、配線を3本に減らすために、LEDのカソード側とフォトトランジスタのエミッタをショートし、共通のGNDとして使用することにしました。
上図の加工を行ったフォトリフレクタへ、3本の電線をハンダ付けします。下図の灰色の線がセンサ出力(フォトトランジスタのコレクタ)、白色がLED入力(LEDのアノード)、黒がGND(LEDのカソードとフォトトランジスタのエミッタ)です。
作成した電線つきセンサを、コインルームに取り付ける方法を説明します。
コインルームの筐体(ブルー又はグレーの半透明)中には、コイン識別用の仕切り板6枚(透明)が挿入されており、その仕切り板には、それぞれ異なる形状のコイン通過用のスロットが仕切り板の上面と下面に成形されています。
センサを取り付ける場所は、仕切り板の下面側の奥です。仕切り板の上面にセンサを取り付けると、蓄積されたコインの邪魔になり、コインが正しく選別されなくなります。
下面側のスロットには、円弧上の切り欠きがあります。下図は仕切り板を裏返したときのようすです。切り欠きの向かい側にセンサを、ポリイミドテープなどで固定してください。
動作確認・感度調整を行うために、センサをコインが落下する下側のスロット部へ、ポリイミドテープで固定したときのようす。写真は仕切り板を裏返したときのようす(コインは写真の下側から上側に向かって通過する)。
センサの取り付け位置の調整も必要です。
中央にセンサを取り付けると、穴のある50円硬貨や5円硬貨を投入したときに、2枚とカウントしてしまうことがありました。また、コインを連続投入したときに2枚のコインのうち1枚しかカウントできない懸念もあります。かといって、あまり端に寄せると、直径の小さな1円硬貨が検出できないことがありました。正しく検出できるまで、貼り替えてながら調整してください。
調整が終わったら、ホットメルトなどで接着します。実際に接着する作業の順序は、プログラムを入力して、動作確認と位置などの調整後に行ってください。
下図は、コイン選別用の仕切り板を筐体に戻したときのようすです。仕切り板6段中の上位
5段までを取り付けました。仕切り板の下面側にセンサやセンサの配線が取り付けられているので、硬貨の邪魔になりません。
5段までを取り付けました。仕切り板の下面側にセンサやセンサの配線が取り付けられているので、硬貨の邪魔になりません。
なお、センサからは赤外線が照射されています。電源を入れた状態では、センサを覗き込まないでください。目を傷める場合があります。
赤外線は目には見えないうえ、目に入っても瞳孔が閉じないので、可視光よりも慎重に取り扱いましょう。
1円硬貨用の最下段の仕切り板には、透過型のフォトインタラプタCNZ1023を取り付けます。
下図は、最下段の仕切り板の下面側です。中央のスリット上の穴がコインの通路です。左側の黒色の部分がフォトインタラプタです。
コインが通過するときに、フォトインタラプタのスリット部をコインがさえぎることで、コインを検出します。CNZ1023には、ビス止め用の耳が付いていますが、切り落として使用します。
センサをIchigoJamへ接続する
センサが完成したら、センサをブレッドボード経由でIchigoJam Sへ接続します。センサ6個×3本の計18本の配線を、下図のようにブレッドボードへ接続し、各センサのセンサ出力(フォトトランジスタのコレクタ端子)を、IchigoJamのIN1~4と、OUT1~2へ接続しました。
ブレッドボード上には、各センサのLED用の電流制限抵抗と、各センサのコレクタへ電源を供給するためのバイアス抵抗を取り付けました。
コインルームからの配線(ピンヘッダ付き配線・奥)は、下の写真の左側から順に、3本ごとに、コインルームの最上段から最下段まで接続しました。抵抗値は各センサの感度や、IchigoJam側の内部プルアップ状態などに応じて調整しました。
IchigoJamへの配線(ブレッドボード用ジャンパ線・手前)は、写真の左側から順に、IN1、IN2、IN3、IN4、OUT1、OUT2へ接続しました。IN1、IN4、OUT6については、IchigoJamマイコン内のプルアップ抵抗からセンサ内のフォトトランジスタへ電流を流すようにしました。
電源についてはIchigoJam Sの3.3Vへ接続しました。IchigoJam Uでは供給能力不足になります。3.3V 100mA以上のレギュレータをブレッドボードへ実装してください。
感度はフォトトランジスタの抵抗を高くする、もしくはLEDの抵抗を低くすることで高まりますが、高すぎると常に検知状態となってしまいます。
また、フォトトランジスタの抵抗が高いと応答速度が低下し、硬貨の落下の加速によって、検出しにくくなることがありました。50円硬貨の検出部にはLEDを100Ωの抵抗で高輝度に点灯させたうえで、フォトトランジスタを10kΩの抵抗で感度を下げつつ、応答速度を高めました。
以下に、本製作例での調整結果を示します。なお、センサの取り付け方によっても変化するので、再調整が必要な場合があります。
各センサごとのIchigoJam接続先と抵抗器(調整後)センサ1(500円硬貨)→IchigoJam IN1 TR用 なし LED用 470Ωセンサ2( 10円硬貨)→IchigoJam IN2 TR用 22kΩ LED用 220Ωセンサ3(100円硬貨)→IchigoJam IN3 TR用 10kΩ LED用 220Ωセンサ4( 5円硬貨)→IchigoJam IN4 TR用 なし LED用 470Ωセンサ5( 50円硬貨)→IchigoJam OUT1 TR用 10kΩ LED用 100Ωセンサ6( 1円硬貨)→IchigoJam OUT2 TR用 なし LED用 470Ω
連続投入にも対応 IchigoJam BASIC用プログラム
コインを、ゆっくり1枚づつ投入するのであれば、プログラムは簡単です。しかし、コインの落下中にも次々にコインが投入されることが考えられます。
そこで、センサの変化状態を配列変数へ代入し続け、3秒以上、変化が無くなった段階で投入金額を集計するプログラムを作成しました。また、センサの変化を検出する部分(行番号140~160)については、なるべく処理を軽減し、検知漏れを防止しました。
1 cls:?"Coin Room for IchigoJam
2 clv:out 1,-1:out 2,-1
3 T=180:?"ソクテイ ジカン T=";T
4 Y=0:?"キンガク Y=";Y100 @IN
110 I=6:B=#3F
120 if in(1) cont
130 clt:led1
140 C=in()F
150 if tick()>T goto @PULSE
160 if C=B goto 140
170 clt:B=C:[I]=C^32:I=I+1
180 '? bin$([I])
190 if I<70 goto 140200 @PULSE:led 0
210 for J=0 to 5
220 [J]=0:B=1
230 for K=6 to I-1
240 C=[K]>>J&1
250 if C<>B B=C:[J]=[J]+1
260 next
270 [J]=[J]/2
280 next300 @COIN
310 for J=0 to 4
320 [J]=[J]-[J+1]
330 next
340 gsb @PRINT
350 goto @IN500 @PRINT
510 ?" \500:";[0]:C=500*[0]
520 ?" \100:";[2]:C=C+100*[2]
530 ?" \50:";[4]:C=C+50*[4]
540 ?" \10:";[1]:C=C+10*[1]
550 ?" \5:";[3]:C=C+5*[3]
560
?" \1:";[5]:C=C+[5]
570 ?"ニュウキン: \";C:Y=Y+C
580 ?"ゴウケイ: \";Y:?
590 rtn
ご注意
誤検知を減らすための工夫や調整を行うことで、コインルーム製品そのものの誤選別率と同等の安定した検出精度を得ることが出来るようになりました。
しかし、市販品のような精度はありません。誤検出によって、金額が異なったとしても支障のない範囲で、ご利用ください。いかなる損害が発生したとしても、当方は、一切の責任を負いません。
なお、製作のばらつきや、周囲の輝度、コインの状態などの影響で、誤検出率が高まることもあります。
by ボクにもわかるIchigoJam用マイコンボード