Arduino nano как клавиатура HID
Я немного нуб в области Arduino, но я нашел Arduino nano, который я купил давным-давно, поэтому я решил, "почему бы не сделать проект". Я много играю в гоночные игры, поэтому хотел сделать с ним простую кнопку зажигания, но каждый раз, когда я пытался скомпилировать или проверить ее, она говорила:
Keyboard not found. Does your sketch include the line #include "Keyboard.h"
@brandon bondig, 👍6
Обсуждение3 ответа
Купите себе Arduino Leonardo, Micro или Pro Micro (или Due, Ноль, M0). Они могут имитировать клавиатуру.
Начните с чтения справочника Arduino Клавиатура Мышь.
Arduino Nano не может использовать библиотеку клавиатуры и мыши Arduino.
Уже много лет существует библиотека под названием "V-USB", которая требует некоторого дополнительного оборудования и позволяет микроконтроллеру ATmega328P выступать в качестве USB-устройства. Это не что - то для новичка.
Несколько лет назад Arduino изменил способ использования USB. Библиотека NicoHood HID использует новые возможности. Это позволяет, например, иметь расширенные функции для USB-клавиатуры, такие как мультимедийные клавиши.
Для обычной клавиатуры и мыши подойдет библиотека мыши с клавиатурой Arduino. Он идеально подойдет для кнопки зажигания. Но вы должны купить одну из этих плат (Леонардо и так далее).
или нано плата, @JoSSte
Решение получить плату со встроенной поддержкой USB не является предпочтительным для тех, кто просто хочет использовать уже имеющиеся платы. Можно использовать плату, которая может взаимодействовать с вашим компьютером по последовательному каналу, например Arduino Nano, для отправки данных в программу Python, которая затем может превратить ввод с Arduino в нажатия клавиш и т. Д.
Для такого подхода вам нужно будет знать python. Используемые библиотеки:
pyserial - связь с Arduino
pynput - управление клавиатурой компьютера
threading (поставляется с python) - позволяет pyserial и pynput работать одновременно
Вы можете обеспечить ввод с клавиатуры с помощью Arduino Nano, Uno или любой другой платы, выполнив следующие шаги:
- Отправка последовательных данных с помощью функции
Serial.println()в скрипте Arduino. Демонстрационный скрипт приведён ниже:
#include <Arduino.h>
void setup() {
Serial.begin(9600); // Запустить последовательную связь
}
void loop() {
int accelerator = analogRead(A0);
int decelerator = analogRead(A1);
int x = analogRead(A4);
int y = analogRead(A5);
if (accelerator > 15) {
Serial.println("q"); // Отправляем 'q' по последовательному порту
delay(10);
}
if (decelerator > 590) {
Serial.println("z"); // Отправляем 'z' по последовательному порту
delay(10);
}
if (x > 400) {
Serial.println("i"); // Вперед
delay(250);
}
if (x < 290) {
Serial.println(","); // Назад
delay(250);
}
if (y > 400) {
Serial.println("j"); // Влево
delay(250);
}
if (y < 290) {
Serial.println("l"); // Вправо
delay(250);
}
}
Затем запустим скрипт Python ниже:
import serial
from pynput.keyboard import Controller
keyboard = Controller()
arduino = serial.Serial('/dev/ttyUSB0', 9600) # Измените это в соответствии с портом вашего Arduino
while True:
data = arduino.readline().decode().strip()
if data:
keyboard.press(data)
keyboard.release(data)
Здесь измените '/dev/ttyUSB0' в соответствии с портом, который вы используете на плате Arduino.
Похоже на ChatGPT! Ты же понимаешь, что ChatGPT ворует чужие труды и не отдаёт им должное. К тому же, он слишком часто ошибается., @Rohit Gupta
- Keyboard.h не найдена на Arduino nano
- Кнопка и поворотная ручка для отправки нажатия клавиши на ПК
- Arduino Nano BLE 33 пример скетча по умолчанию "USBHID> Клавиатура" делает Arduino непригодным для использования
- Могу ли я использовать PL2303 USB to TTL Последовательный конвертер Модуль отправки нажатия клавиш с помощью Arduino nano?
- Клавиатура Arduino Nano. Клавиши удерживаются нажатыми.
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
Вы включили библиотеку клавиатуры из меню скетча?, @dandavis
@dandavis - это было бы невозможно или, по крайней мере, бессмысленно, так как нет такой библиотеки для нано., @Chris Stratton
@ChrisStratton: хорошая идея., @dandavis
В отличие от официального Arduino Uno, который использует перепрограммируемый ATmega16U2 для интерфейса USB-UART, Nano использует не перепрограммируемый чип FTDI., @gre_gor
Типичный Nano не имеет аппаратной поддержки для этого - так что вы можете сделать это только с помощью таких средств, как программное обеспечение-приблизительный USB, или путем добавления чипа интерфейса USB-устройства. Как следует из ответа, есть лучшие варианты платформы., @Chris Stratton
Может быть, этот вопрос поможет вам. https://arduinoprosto.ru/q/76557/how-can-i-make-my-arduino-uno-press-space-on-my-laptop-keyboard/76570#76570, @Dorian
Arduino Nano я не уверен. Но я уверен, что вы можете сделать это с помощью Arduino UNO. https://www.youtube.com/watch?v=tvqA-JcTQNg, @Yiming