バーコードリーダー
今日紹介するのはお店で必ず使うバーコードリーダー
先端に4つのセンサー
今までは多くても2つくらいのセンサーだけ使っていましたが
今回は4つのセンサーが付いています。
赤外線センサーの使い方
今回つかうセンサーは_と_の違いを判別できるセンサーです
その性質を利用して、白と黒の並びによってそれぞれの違いを見分ける事で
一つのバーコードリーダーとしての仕組みを再現しています。
バーコード表に書いてある数字は2進数(にしんすう)
これはテキスト上で説明していますが
2進数であらわした数字になります。
プログラムの流れ
プログラムの流れを説明します
バーコード表は
1~4桁まであり、1つのセンサーが各桁の読み取りに対応しています。
基本の条件の書き方
4つのセンサーの内、どれかが読み取られるまで待ちます。
①まずセンサーがバーコードを読み取る部分です。
設定した「しきい値」より小さければ「黒」と判別します。
これをセンサーの数だけ組み込みます
②ぜんぶのごうけいが0なら読み取られてないので、
どれかがよみ取られる(1より大きくなる)まで、待ちます。
③その後、読み取られたバーコードは2進数なので
10進数に直すのかこのプログラムです。
④読み取られた事も確認する為、ブザーから基本のドの音(60)にnumberで出た数字を足して音を変えていきます。
本来ならnumberが1ならド、numberが2ならド#、numberが3ならレ
という風に上がっていきますが
これなら自動的にそれに対応した音がでるようになります。
実際の動き
まだ音階の部分のプログラムは実装されていないので音は変わりませんが、
しっかりと各変数は変わっています。
qrコードも読み取れる?
今回のバーコードリーダーは
4かしょの「白」と「黒」の違いを判別して、そのパターンによって
その後の動作を変える事ができます。
この「色の違い」によって結果を変える事ができるのがバーコードの大きな特徴です。
さて、皆さんが使っている商品のバーコード、サイトに行く時や電子決済に必要な「QRコード」も
この「色の違い」によって結果を変えている点では同じ仕組みです。
効率の良いプログラムの組み方は?
今回のプログラムはまず
①白と黒を判別するのに0と1を使いました。
②判別されるのを待ってから
③読み取られた数字を変換しました
問題です
①すべてが0でも読み取った事にするにはどうすればいいでしょうか?(プログラムでもいいですし、何か別の方法を使っても構いません)
②プログラムをもっと分かりやすくするにはどこを変えればいいでしょうか?