Как сэмулировать нажатие клавишы Пробел на Arduino?
Всем привет!
На интернет-странице есть кнопка. Если она в данный момент является выбранным элементом на странице, то по нажатии клавишы Пробел данная кнопка нажимается. (Выбрать её можно или нажав на неё мышкой или с помощью Tab, перебирая все элементы на странице)
Постановка задачи: Нужно, чтобы Arduino по хлопку эмулировало нажатие клавишы Пробел и кнопка (уже выбранная) нажималась.
С инициированием действия по хлопку проблем не возникает. Сложность с эмуляцией клавиатуры.
Arduino Leonardo умеет притворяться клавиатурой. Функция Keyboard.press() эмулирует нажатие и удерживание какой-либо клавиши. Однако, насколько я понимаю, кнопка на странице ждет именно нажатия клавиши Пробел, а не передачи ей символа " " (№32 в ASCII). Предположение оказалось неверным. Эмуляция 32 символа работает как надо. Достаточно использовать Keyboard.press(' ') И если с помощью Keyboard.press() я могу сэмулировать нажатие Ctrl или Backspace, то эмуляция Space поставила меня в тупик.
Подскажите, есть ли решение данной проблемы?
Извините, не смог сформулировать проблему менее запутанно. Готов ответить на вопросы.
Заранее спасибо!
Странно: если ардуина — USB-клавиатура, то она передаёт именно нажатие физической клавиши «пробел».
Впрочем, у вас тут стоит пробел в кавычках " ". Скорее всего, именно в этом ошибка: при плохой проверке типов, присущей Си, в функцию (которая требует char) будет передан адрес строки «пробел».
Надо Keyboard.press(' '); или Keyboard.write(' ');. В одиночных кавычках. То есть целое число.
Кроме того, Keyboard.press только нажимает на кнопку, и разбирай, как эту кнопку «отпустить». По крайней мере, моя «лисичка» требует именно ОТПУСКАНИЯ пробела. Как вариант — тот же Keyboard.write, который жмёт и отпускает.