FacebookのIchigoJam-FANグループにも参加している渡邊さんが、「USB-PS/2逆変換アダプタ」を作って、スイッチサイエンスで発売しました。
USBキーボードの信号をPS/2へ変換するアダプタで、これを介すると普通のUSBキーボードをIchigoJamにつないで使うことができます。
以前「バーコードJam」を作る際に、USBタイプのバーコードリーダーをIchigoJamにつなごうとして失敗していました。
このアダプタでつなげば行けるんじゃ?と思って、IchigoJamにUSBバーコードリーダーをつないで試してみました。
その結果、読み取り速度を調整すれば、バッチリ読めました!
使用したバーコードリーダーは、ビジコム社の「BC-BR900L」です。設定マニュアルをサイトからダウンロードして印刷し、リーダーでバーコードを読み取ると動作を設定できます。設定値は以下のとおり。
バーコードから読み込んだ文字+EnterキーがそのままIchigoJamへ入力されるので、とてもわかりやすいです。
これで電子工作無しで簡単に「バーコードJam」が作れます! 作ってみたのがこちら。
USBバーコードリーダーと変換アダプタがあればすぐ試せるので、子ども向けのカードプログラミングにいかがでしょうか。
USBバーコードリーダーに対応したプログラムは以下のとおり。読み込み部分が簡単になりました。
プログラム0:メインプログラム
1 SWITCH1:CLS:?"*Barcode Jam*" 2 CLV:F=FILE():WAIT60:CLK 3 OUT0:Z=0:L=0 4 ?"OK" 5 ?CHR$(1);:R=1 6 B=INKEY():IF!BCONT 7 GSB28 8 ?CHR$(8);:IF!CGOTO15 9 IFTGSB14 ELSEGSB12 10 GOTO23 11 GOTO5 12 Z=Z+1:[Z]=C*16+O:IFC=8L=L+1:[70+L]=Z 13 ?">";Z*10;" ";:RTN 14 [Z]=[Z]|((C*16+O)<<8):T=0:RTN 15 BEEP30,30:IFO=1?"RUN":R=0:GOTO20 16 IFO=2?"LIST":R=2:GOTO20 17 IFO=3?"NEW":GOTO3 18 IFO=4CLS:GOTO4 19 GOTO5 20 A=0 21 A=A+1:IFA>ZGOTO4 22 C=[A]&#F0/16:O=[A]&15:?A*10;" "; 23 IFC=15&&O=15LRUNF+1,150 24 LRUNF+1,C*10 25 IFT&&(R!=1):C=([A]&#F000)>>12:O=([A]&#F00)>>8:T=0:GOTO23 26 B=INKEY()&#FF:IFBGSB28:IFC=15&&O=15BEEP30,30:?"ESC":GOTO4 27 GOTO21 28 I=89 29 I=I+1:[I]=B-48 30 B=INKEY():IF!BCONT 31 IFB!=10GOTO29 32 D=0:FORJ=90TOI:D=D*10+[J]:NEXT 33 C=D/16:O=D%16:BEEP:WAIT30:CLK:RTN
※1行目の「SWITCH1」を削除すれば、普通の液晶モニタで動きます。
プログラム1:コマンドサブルーチン
1 '*Barcode Jam-1 10 @LED 11 ?"LED ";O:IFR=1LRUNF,11 12 IFR=2LRUNF,25 13 LEDO:LRUNF,25 20 @WAIT 21 ?"WAIT ";O*60:IFR=1LRUNF,11 22 IFR=2LRUNF,25 23 WAITO*60:LRUNF,25 30 @BEEP 31 ?"BEEP":IFR=1LRUNF,11 32 IFR=2LRUNF,25 33 BEEP:LRUNF,25 80 @LABEL 81 ?"@";O:IFR=1LRUNF,11 82 LRUNF,25 90 @GOTOL 91 ?"GOTO @";O:IFR=1LRUNF,11 92 IFR=2LRUNF,25 93 A=[70+O]-1:LRUNF,25 100 @IFBTN 101 ?"IF BTN()=";O;" THEN ";:T=1:IFR=1LRUNF,11 102 IFR=2LRUNF,25 103 T=(BTN()=O):IF!T? 104 LRUNF,25 120 @FOR 121 ?"FOR I=1 TO ";O:IFR=1LRUNF,11 122 IFR=2LRUNF,25 123 I=1:J=O:S=A:LRUNF,25 130 @NEXT 131 ?"NEXT":IFR=1LRUNF,11 132 IFR=2LRUNF,25 133 I=I+1:IFI<=JA=S 134 LRUNF,25 150 @END 151 ?"END":IFR=1LRUNF,11 152 IFR=2LRUNF,25 153 A=Z:LRUNF,25
※プログラム0とプログラム1は、連続したスロットに置いてください。
(スロット0と1でなくても構いません。が、スロット0と1に置いて自動起動すると便利です)