NXTで自走式のバーコードリーダを作ってみました。
二進数の勉強になることを想定しています。
barcode.zipをダウンロード (動作無保証、フリーソフト、言語はNXC)
▲やり方ですが、まず添付のPDFを印刷して、床に敷きます。
サンプルのPDFには1cm刻みに8ビットx3 = 24ビットぶん(3バイト)のマス目があり、
B1h、B2h、B3hを二進数で描いています。
そして、インテリジェントブロックにはbarcode.rxeを入れておきます。ソースコードはbarcode.nxcです。
ロボットを写真の位置に置き、ENTER(オレンジ)ボタンを押してください。
白レベルを学習した時点で音が鳴り、それからバーコードを読み取ります。
上位ビットから読み込みます。
▲うまくいくと、B1h、B2h、B3hをキャラクターコードにした結果、
「アイウ」と表示されます。プログラム内に自作フォント(smallfont)を搭載していますので、カタカナも表示させることができます。
ロボットはまっすぐ走ってくれないときは手でアシストしてください。
▲ロボットはBとCポートにモータをつけること、56mmのタイヤを使うこと、
光センサをポート3につける条件だけ守れば、どんな形でも大丈夫です。
光センサは床面から1cmくらいに保つのがオススメです。
(追記)
リテール版のNXTソフトウェア1.0で同様のプログラムを作ってみました。
barcode.rbtをダウンロード (動作無保証、フリーソフト、NXTソフトウェア1.0)
▲サンプルPDF(barcode.pdf)の読み取り結果。
結果は2進数24ケタ(000000000000000000000000~111111111111111111111111)
と10進数(0~16777215)で表示します。プログラム的な都合でキャラクタ表示はなくなりました。
「11645619」と表示されたら正解です。