2022年5月15日日曜日

キーマップの見直し

USBキーボードアダプタは、Raspberry Pi Picoで仕切り直し。
まずはキーマップの見直し。

パソピア700オリジナルのキーボード配置。

109キーボードへのマッピングは以下のように。

パソピア700は、SHIFTと同時押しすることでTAB/HOME/INS/↓キーが入力できます。
109キーボードでは単一キーとして割り当てたので、使い勝手がよくなりました。
但しそれらのキーと別のキーを同時押しした場合、SHIFTも入力されます。(例えばA+↓キーを同時押しすると、パソピア700にはA+↓/↑+SHIFTの3キーが入力されます)

あとパソピア700にはDeleteキーに該当するコマンドがないため、→(カーソル右移動)+DEL(BackSpace)の2つのキーを連続入力することで対応しました。

Num LockがOnの時に、10キーを16進数入力モードに変更する機能も追加。

Num LockがOnの場合、Num Lock LEDが点灯するようにしました。
static uint8_t num_lock = 0;
・・・
void tuh_hid_report_received_cb(uint8_t dev_addr, uint8_t instance, uint8_t const* report, uint16_t len)
{
       ・・・
        // Num Lockの場合
        if (report->keycode[i] == 0x53) {
            num_lock ^= KEYBOARD_LED_NUMLOCK;
        }
       ・・・
        tuh_hid_set_report(dev_addr, instance, 0, HID_REPORT_TYPE_OUTPUT, &num_lock, sizeof(num_lock));
        sleep_ms(50); // 連打ハング対策
       ・・・
}
連打するとハングするキーボードもあったので、一応少しWaitを入れています。
Caps LockとScroll LockのLED点灯はしません。

-----
Picoだと認識しないUSBキーボードがあるが、認識するキーボートは動作が安定している。
ハドフでいくつかUSBキーボードを買って試してみた。
  • Buffalo BKBU-J109LG : OK
  • Buffalo YDKBU02BK : OK
  • iBuffalo YDKBU11 : OK
  • iBuffalo BSKBU02 : OK
  • iBuffalo SAVIOR BSKBC02 : NG
  • Fujitsu USB Hub付キーボード : NG
  • Dell Keyboard KB212 : OK
  • Sanwa Supply SKB-SL065V : OK
  • ユーエーシー KU-8933 : OK
  • 3Rシステム 3R-KCKB04U : OK
  • HP 803181-291 : OK
  • ELECOM TK-FCM062 : NG (電源ONのあとUSBを抜き差しすると認識する)
  • GALLERIA GK-6260 : OK
USB Hub付きやGamingキーボードはNG。
できるだけシンプルで、消費電力が少ないものが良いと思う。

USBホットプラグは微妙なので非サポートにします。
3Rシステムのキーボードは、1回目は成功するが2回目でハング。
1回目から失敗するキーボードもある。
基本、電源投入後はUSBキーボードを抜かないように。。。

0 件のコメント:

コメントを投稿