ESP32-S3ボードに、ASCII文字を直接入力する方法がないかとネット上を探し、見つけました。作者に感謝いたします。
最初はコンパイルエラーなどあり、困りましたが結果できました。
環境・構成・留意点は以下です。
1.Windows 11 Pro
2.Arduino IDE 2.3.6
3.ボードは、FREENOVE ESP32-S3 WROOM N8R8 (8MB Flash)
Arduino IDE上では「ESP32S3 Dev Module」
4.ライブラリマネージャーで「EspUsbHost」をインストール
コンパイルエラーが出るので、スケッチフォルダー内に
"EspUsbHost.h"と"EspUsbHost.cpp"を配置
5.USB Type-A メスコネクタを外付けし、それにUSBレシーバーを接続
ESP32-S3 | USB Type-A メスコネクタ | |
---|---|---|
19(D-) | D- | 逆では動かない |
20(D+) | D+ | 同上 |
5V | VBUS | |
GND | GND |
最初はD-
とD+
を逆にしており、反応しませんでした。私がネット上で見つけた「FREENOVE」のピン配図が間違っていたようです。ちなみに、「ESP32-S3-DevKitC-1」のピン配図は正しく、この接続で動作しました。余ってたELECOM製ワイアレスキーボード(2.4GHz)が使えラッキーです。
スケッチ自体はとてもシンプルですが、裏で動いているライブラリが凄いですね、私にはまったく理解できないです。Exampleのままですが、載せさせていただきます。
EspUsbHostKeybord.ino
#include "EspUsbHost.h"
class MyEspUsbHost : public EspUsbHost {
void onKeyboardKey(uint8_t ascii, uint8_t keycode, uint8_t modifier) {
if (' ' <= ascii && ascii <= '~') {
Serial.printf("%c", ascii);
} else if (ascii == '\r') {
Serial.println();
}
};
};
MyEspUsbHost usbHost;
void setup() {
Serial.begin(115200);
delay(500);
usbHost.begin();
usbHost.setHIDLocal(HID_LOCAL_Japan_Katakana);
}
void loop() {
usbHost.task();
}
これで、新たに何かできそうです。最後まで見ていただきありがとうございました。