Программируемая русская макро клавиатура на Ардуино
.
|
Инструкция по изготовлению USB макро клавиатуры
Приклейте любую резистивную сенсорную панель к твердой поверхности по краю с двух сторон с помощью двухсторонней клейкой ленты.
Создайте таблицу в Excel с размерами сенсорной области. Найдите подходящие иконки в интернете и вставьте их в ячейки таблицы. Вырежьте напечатанную таблицу и вставьте его в щель между подложкой и сенсорной панелью.
На задней стороне USB макроклавиатуры приклеен модуль Pro Micro с ATmega32U4 (аналогично плате Arduino Leonardo) и пьезоэлектрический преобразователь.
Это очень легкий радиолюбительский DIY проект, который может повторить даже новичок в электронике. Схема подключения содержит только 3 компонента. Это также очень дешевый электронный проект.
Резистивное сенсорное стекло для экрана 155 мм 88 мм стоит, например, за 5,36 €
Pro Micro модуль стоит, например, с Aliexpress 3.30 €
Пьезо 0,70 €
Общая стоимость самодельной USB макро клавиатуры составляет 9,36 €
Схема
Я вставил в схему Пьезоэлектрическижй зуммер чтобы озвучивать нажатие кнопки. После нажатия на сенсорное поле издается тихий щелчок. На пьезо подаётся по очереди 5 В и 0 В при каждом срабатывании.
Калибровка резистивной сенсорной панели
При первом использовании Arduino макро клавиатуры нужно откалибровать Touchscreen Panel один раз.
Запустите Arduino Terminal и отправьте символ "k".
Вам будет предложено нажать один раз в верхнем левом углу и один раз в нижнем правом углу.
Лучше всего попасть в угол внешнего края таблицы на бумажной вкладке.
Значения калибровки постоянно хранятся в EEPROM. При перезагрузке программы они также сохраняются.
Посылая символ «r», активируется режим, в котором необработанные данные выводятся через последовательный интерфейс в целях отладки.
Быводятся значения X / Y аналого-цифрового преобразователя и пересчитанные значения столбцов и строк ячейки в таблице.
Программирование USB-клавиатуры
Сочетания клавиш, текстовые блоки и макро последовательности хранятся в таблице в рограммной памяти контроллера Arduino Leonardo.
В начале ррограммы расположен двумерный массив строк.
Позиции строк в массиве соответствуют ячейкам на сенсорной панели
#define Reihen 3 // Строки #define Spalten 4 // Столбцы const String data[Reihen][Spalten] = { { "1", "2", "3", "A" }, { "4", "5", "6", "B" }, { "7", "8", "9", "C"}, }; |
Обязательным условием является то, что палец должен помещатся в клеточку. Я думаю, что минимальная площадь составляет 10x10 мм. Таким образом, 15 * 8 = 120 клавиш (кнопок) можно разместить на сенсорной панели размером в 155-мм на 88-мм .
макросы и сочетания клавиш
Тексты в строке данных передаются на компьютер сразу после нажатия сенсорной кнопки, как если бы они были напечатаны.
Чтобы сохранить сочетания клавиш и макросы, я предоставил 4 макро команды . Каждая макро команда начинается с символов «§» и заканчивается « » символом пробела.
§p - Press "§p0x80 " нажать Strg
§r - Release "§r0x80 " отпустить Strg
§a - Release All "§a " отпустить все нажатые клавиши
§w - Write "§w0xB0 " нажать и отпустить Enter
§t - Timer "§t3000 " 3 секунды подождать
Вот как выглядит макрос для выключения компьютера
"§p0x87 r§r0x87 §t100 shutdown -s -t 0 -f\n"
нажать 0x87
написать "r"
отпустить 0x87
подождать 100mS
написать текст "shutdown -s -t 0 -f"
новая строка (тоже самое что и Enter)
нажать клавишу Windows (Code 0x87 RIGHT_GU смотри Keyboard.h), напечатай r-клавишу, отпустить клавишу Windows. Это сочетание клавиш для запуска Выполнить-диалога. Затем ждём 0.1s для открытия диалогового окна. Затем вводится “shutdown -s -t 0 -f”. Это команда выключения Windows, а затем нажемается клавиша \n . Enter.
Arduino IDE поддерживает следующий управляющий код:
\n 10 LF (Line Feed) – Start new line (new line) клавиша возврата
\r 13 CR (Carriage Return) – Go to beginning of a line (return)
\t 9 Tab – Advance cursor to next tab-stop (tab)
\” 34 Double Quote
\’ 39 Single Quote
\\ 92 Backslash – so we can actually type that one as well
Для клавиши ввода "\ n" есть альтернатива, можно использовать команду сценария "§w0xb0 ".
w-Write 0xb0 Code für KEY_BACKSPACE (смотри Keyboard.h)
Sketch
Скачать Sketch для ATmega32U4
Применена Многоязычная библиотека для Arduino клавиатуры
а также TouchScreen Bibliothek
Создаём индивидуальный макет для сенсорной панели в Excel.
USB Macro Keyboard DIY Video russian