Я хочу сделать простую программу для моей платы Arduino / Genuino (Sunfounder) Uno, которая при подключении вызывает функцию Keyboard.print(). Когда я компилирую для этого свою программу, в ней говорится, что я не включаю Keyboard.h, хотя на самом деле я нахожусь в начале своей программы.

Мой код:

#include <Keyboard.h>

void setup() {
  Keyboard.begin();
  Keyboard.print("Hello, world!");
  Keyboard.end();
}


void loop() {

}

Когда я компилирую код, я получаю такую ​​ошибку:

KeyboardMessage:4:3: error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?

Я проверил файл своих библиотек в файле редактора скетчей Arduino, и там есть Keyboard.h.

Любая помощь приветствуется.

-1
Coordinate Newton 22 Сен 2018 в 22:29

2 ответа

Лучший ответ

Arduino / Genuino Uno не поддерживает клавиатуру. Вы можете увидеть это в hardware/ardunino/avr/libraries/HID/HID.h. Этот файл включен из Keyboard.h и содержит #if defined(USBCON). Но USBCON не определен для Arduino / Genuino Uno. Вам нужно использовать другую доску для Keyboard.h

Следующие контроллеры поддерживают его:

  • ATmega32U6
  • ATmega8U2
  • ATmega16U2
  • ATmega16U4
  • ATmega32U2
  • ATmega32U4
  • и немного ATxxUSBxx

Arduino / Genuino Uno использует ATmega32U8.

3
Thomas Sablik 22 Сен 2018 в 20:41

Вы знаете, что сейчас вам не нужен 32u4. У меня есть решение использовать клавиатуру и мышь через любую Arduino.

Все, что вам нужно сделать, это что-то вроде этого:

Serial.println("pressA")

На Arduino

Перейдите к скрипту Python и сделайте следующее:

import serial
import pyautogui
Arduino_Serial = serial.Serial('COM5', 9600)

while 1:
    incoming_data = str(Arduino_Serial.readline())
    print(incoming_data)
    if 'pressA' in incoming_data:
        pyautogui.press('a')
    incoming_data = ""
-1
xKobalt 7 Июл 2020 в 17:11