Клавиатура Arduino HID не работает

Я использую ItsyBitsy 32u4, Adafruit говорит, что он может работать как клавиатура USB HID. mc основан на 32u4, который, по словам клавиатуры, поддерживается.

У меня есть простой скетч, который печатает "A" каждую секунду и должен нажимать "A". Когда я загружаю скетч и подключаюсь к последовательному порту, я вижу вывод на печать, но не получаю никаких нажатий клавиш.

Есть идеи? Я на linux, подозреваю, что контроллер не регистрируется как HID-устройство, может нужны правила UDEV или драйвера?

EDIT: клавиатура работает на другом компьютере.

#include <Keyboard.h>
void setup() {
  Serial.begin(9600);
  Keyboard.begin();
  Serial.println("Start");
}

void loop() {
  Serial.println("a");
  Keyboard.write('a');
  delay(1000);
}

, 👍0

Обсуждение

вы должны прочитать ссылку и изучить примеры, @Juraj

@Juraj У меня есть, как ты думаешь, что я пропустил?, @everett1992

похоже, вы пропустили то, что есть в ответе. у вас текстовый редактор открыт на переднем плане?, @Juraj

Да, у меня есть окно, которое принимает и отображает ввод с клавиатуры. При наборе текста на моей настоящей клавиатуре отображаются клавиши., @everett1992

затем я бы попробовал удалить Serial из скетча, @Juraj

удаление серийника ничего не изменило., @everett1992

проверьте Диспетчер устройств, если у него есть HID-устройство, @Juraj


2 ответа


Лучший ответ:

0

Была проблема с моим ноутбуком, а не с контроллером или скетчем.

Я попробовал свою плату с другим компьютером, и это сработало. Я попробовал коммерческую клавиатуру на своем первом компьютере, но она тоже не работала.

Обе клавиатуры работают после перезагрузки.

,

2

Keyboard.press() ожидает символ, но вы передаете массив символов. Также Keyboard.press() только нажимает, но не отпускает клавишу. Keyboard.releaseAll() можно использовать для отпускания всех клавиш.

Я бы попробовал:

Keyboard.press('A') ;  // обратите внимание на ' вместо "
Keyboard.releaseAll();

или предпочтительно:

Keyboard.write('A');   //обрабатывает нажатие и отпускание основных клавиш
,

Я сделал ошибку, когда создавал свой простой эскиз репо, но я пробовал Keyboard.press('A') и Keyboard.write('A'). Ни работы., @everett1992

Я также попробовал Keyboard.write('a') после прочтения keyboard.cpp и осознания того, что запись 'A' отправляет клавиши для a и модификатора сдвига., @everett1992