IchigoJam RでUSBキーボードが使えるようになって、試してみたかったのがUSBテンキーです。
いくつか試した中では、いち推しがエレコムのTK-TCM011BKです。
www.elecom.co.jp
NumLockスイッチがONの時に数字が入力できて、NumLockをOFFにするとカーソルキーがちゃんと入力できます!
ゲームのコントローラーや、カムロボのリモコンなどに使えそうです。
かわくだりゲームをテンキーで操作してみました。
【IchigoJam】IchigoJam RでUSBテンキーを使う
IchigoJam R起動時はNumLock ONになるので、OFFにしてから左右カーソルキー(4と6)で操作します。ゲームオーバー時はEnterキー(文字コード10)でリプレイするように改造しました。
10 CLS:CLT:X=16 20 X=X-BTN(28)+BTN(29) 30 IF SCR(X,5) GOTO 80 40 LC X,5:?"O" 50 LC RND(32),23:?"*" 60 WAIT 3 70 GOTO 20 80 ?TICK()/60 90 IF INKEY()=10 RUN ELSE CONT
なおNumLock OFFの時、通常文字以外のキーは以下の文字コードが入力されます。
BS=8 Tab=9 Enter=10 Ins=17 Home=18 PageUp=19 PageDown=20 End=23 ←=28 →=29 ↑=30 ↓=31 Del=127 00=NumLock OFF時は無入力、ON時は「0」(文字コード48)が2回入力
なお、手持ちの他のUSBテンキーも試したのですが、
www.elecom.co.jp
上記のTK-TCM011BKと似た、無線タイプのテンキー。NumLockの制御がおかしいらしく、数字キーが数字・機能キーとも入力できません。他のBS、Tab、Enterなどは入力できるので、NumLock周りの問題と思われます。無線のコントローラーにできたら面白いのですが…
www.ohm-electric.co.jp
だいぶ古いUSBテンキー。NumLock ONで数字が入力できますが、NumLock OFFにしても数字になってしまいます(NumLockが効いたまま)。
(追記)USBテンキーのNumLock問題
USBテンキーでよく言われる点に「NumLock問題」があります。
USBテンキーにあるNumLockキーを押すと、つないでいるPCのNumLockが連動する(=NumLockのキーコードをそのままPCへ送る)のが「同期タイプ」、連動しないのが「非同期タイプ」です。
ノートPCにUSBテンキーをつないで数字入力に使う場合、同期タイプだとUSBテンキーのNumLockをONにするとノートPC側もNumLock ONになってしまい、キーボード右半分のアルファベットが数字になってしまいます。非同期タイプではそういった現象は起きません。
では非同期タイプのUSBテンキーが、PC側がNumLock OFFなのにどうやって数字キーを入力するか?と言うと、以下のように解決しているようです。
- テンキー内部は基本的にNumLock OFFモードになっている。
- テンキーのNumLock ONランプが点いている時、数字キーを押すと、「NumLockキー」「数字キー」「NumLockキー」の3つのキーコードをPCへ送る。
今回成功したエレコム・TK-TCM011BKは、公式サイトによると、
●「NumLock」問題を解決 「NumLock」問題をハードウェアで解決しており、対策ソフトのインストールは不要です。
と書かれていて、こうした処理がされているようです。なので、今回試してみました。
恐らくIchigoJam Rでは、NumLockキーのキーコードは無視されてNumLock OFFモードのまま、数字キーのキーコードを受信するので、カーソルキーとして認識するのでしょう。
(同様に「NumLock非同期タイプ」となっている他のUSBテンキーも、IchigoJam Rでコントローラーとして使える可能性があります)
無線タイプのTK-TDM017BKも、同様に「ハードウェアで解決」してほしいですが…。