mbed(5) LPC1768で、UsbHostキーボードを試す


 LPC1768ボードにUSB−Aコネクタを追加して、USBHostを試しました。
 試した内容は、USBキーボードを押下したら、そのデータをmbedで受けてパソコンに送る事と、USBケーブル上のデータのモニタです。

●構成と結果

 上の写真は、試した構成です。mbedにUSBキーボードを接続しました。
 下は、mbedで受けたUSBキーボード押下データをmbedをパソコンのTeraTermで受信した状況です。










●プログラムの構成とコード

 プログラムの構成は、Webコンパイラ画面を見て下さい。
 main.cpp は、プログラムコードで下に示します。
 TextLCD は、ライブラリで、mbedのホームページのCookbookのTextLCDのライブラリをインポートしました。






 コードを、次に示します。


#include "mbed.h"
#include "USBHostKeyboard.h"

DigitalOut led(LED1);

void onKey(uint8_t key) {
printf("Key: %c\r\n", key);
}

void keyboard_task(void const *) {

USBHostKeyboard keyboard;

while(1) {
// try to connect a USB keyboard
while(!keyboard.connect())
Thread::wait(500);

// when connected, attach handler called on keyboard event
keyboard.attach(onKey);

// wait until the keyboard is disconnected
while(keyboard.connected())
Thread::wait(500);
}
}

int main() {
Thread keyboardTask(keyboard_task, NULL, osPriorityNormal, 256 * 4);
while(1) {
led=!led;
Thread::wait(500);
}
}


●USBケーブル上のデータのモニタ

 上の写真は、接続した時に発行されるデータです。 通常のUSBのコンフュグレーションと異なります。
 下の写真は、キー押下時に発行されるデータで、不要な処は削除しました。それぞれの時間を見ると、押下した時が判ります。
 終わり部分の連続’1’は、キーを長押しした状況です。約0.5秒毎にデータが送られています。











ホームへ戻る