USBキーボード
 PICなとのマイコンを使った装置を作るとき問題となるのがどんな操作にするか?これにより何個スイッチが必要かを決めて接続しなくてはならないのが普通です。特に設定が必要な装置では数字ボタンとかいろいろ多くなりそうです。
 今回はスイッチを激減させる方法としてPICにUSBキーボードを接続します。32ビットPICはHarmonyを使って少量のコードを書くだけでUSBキーボードを接続することができます。

最初に一言、HarmonyではUSキーボードのキー配列が対象になっています。JISキーボードではタイプしたキーと違うコードが取得されることがあります。
回路図
自分の回路図は少し鬱陶しいので最初に参考にさせていただいたページをご参照ください。
PIC32MX270F256B-50I/SP (USB HOST)
回路で注意するのは、
電源:
USB用に5V電源が必要
PICは3.3V電源が必要
→5V用の電源から3端子レギュレータをつかって3.3Vをつくるのが安くて簡単です。
水晶発振子:
USBPLLを供給するために水晶発振子が必要です。
いくつにするか?20MHzにしました。これならPIC32MX270F256Bを最高速の50MHzで動かせます。
ソース
 ソースコードはこちら
分かりやすくするため必要最小限のコードしか書いていません。

void decodeKey()
{
    uint8_t count, keyCode;
    
    /* We need to display only the non modifier keys */
    for(count = 0; count < 6; count++)
    {
        if(kbdData.data.nonModifierKeysData[count].event == USB_HID_KEY_PRESSED)
        {
            keyCode = getAlfabet(kbdData.data.nonModifierKeysData[count].keyCode);
            if(keyCode != 0x00)
            {
                kbdBufferWrite(keyCode);
            }
        }
    }
 }
kbdBufferWrite(keyCode);
のところでブレークさせてkeyCodeの値を確認してください。