Клавиатура своими руками arduino
В этой заметке речь пойдет о том как собрать беспроводную клавиатуру для ПК или ноутбука. Данную мини клавиатуру можно использовать для управления проигрывателем Windows Media, либо её не сложно перепрограммировать под любое другое приложение.
Для сборки приемника клавиатуры который будет подключаться к ПК понадобиться плата Ардуино LEONARDO. Обычная плата Ардуино тут не подойдет. Ардуино LEONARDO может прикидываться для ПК клавиатурой, мышкой или джойстиком. Я буду использовать в проекте плату Arduino Micro, которая является аналогом платы Ардуино LEONARDO, но имеет более удобный форм-фактор для работы с макетной платой.
Для сборки передатчика. Подойдет любая плата Arduino – я буду использовать Arduino Nano. Также понадобиться пара UART модулей – для этого проекта я буду использовать HC-11 – они обеспечивают уверенную связь внутри небольшой квартиры – управлять компьютером с расстояния 2 км я думаю, особой необходимости нет, и поэтому использовать дальнобойные UART модули типа HC-12 или APC 220 в таком проекте смысла особого не имеет. Ну и 5 кнопок. 2 кнопки для управления громкостью 2 для переключения треков и одна для старта/приостановки воспроизведения. Приемник будет питься от разъема USB компьютера. Сама клавиатура от PowerBank. Схема подключения простая – она приведена ниже.
Для того чтобы плата Ардуино Leonardo превратилась в клавиатуру потребуется библиотека Keyboard.
Как пользоваться библиотекой Kyboard
Для организации связи я буду использовать свою библиотеку Serial27b. Пример использования этой библиотеки вы сможете найти в этой статье:
Как пользоваться библиотекой Serial27b
Разумеется перед заливкой прошивки необходимо, чтобы обе эти библиотеки были установлены в среду программирования Arduino IDE – как это сделать можно узнать здесь:
Как установить библиотеку в среду Arduino IDE
Все библиотеки можно скачать по этим ссылкам.
Библиотека Serial27b
Библиотека Keyboard
Скетч клавиатуры и приемника вы найдете после установки библиотеки Serial27b в среду Arduino IDE в демонстрационных примерах.
Список железок вы найдете в описании под видео – если статья Вам понравилась не забывайте ставить лайки и оставлять комментарии, чтобы её смогли увидеть другие люди. Приятного просмотра.
Сенсорная клавиатура для компьютера своими руками.
В качестве сенсорного дисплея буду использовать дисплей Nextion, про который у меня на сайте есть блок уроков. Вы можете использовать другой сенсорный дисплей или матричную клавиатуру 4х4, про которую подробнее рассказывал тут.
Мозгом будет Arduino pro Micro, потому что данную отладочную плату можно использовать как периферийное устройство и не нужно использовать дополнительное программное обеспечение, чтобы использовать данную плату в качестве клавиатуры или компьютерной мыши.
Схема подключения самодельной сенсорной клавиатуры на Arduino Leonardo.
Подключение дисплея Nextion к Arduino pro micro осуществляется по 4 проводам. Благодаря чему данную конструкцию можно поместить в небольшой корпус или вмонтировать в стол.
Но нужно помнить одно ограничение! Не все контакты на Arduino Leonardo и Micro поддерживают прерывания, поэтому для RX можно использовать только следующие pin: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Необходимые библиотеки для Arduino pro micro.
- SoftwareSerial - библиотека для эмуляции Serial порта. (Можно обойтись и без нее, но лучше аппаратный Serial порта не занимать, вдруг нужно будет выводить информацию при отладке программы).
- Keyboard - эти базовые библиотеки позволяют платам Arduino Leonardo, Micro или Due при подключении к компьютеру определяться как обычная мышь и/или клавиатура. Данная библиотека встроена в Arduino IDE, и дополнительно устанавливать ее не нужно.
Дизайн клавиатуры для дисплея Nextion.
Как создать красивый дизайн для дисплея Nextion, рассказывал в отдельном уроке, который вы можете прочитать тут.
Для данного проекта понадобится 2 картинки в пассивном состоянии кнопок.
И состояние кнопок при нажатии.
Можно использовать более простые команды для общения дисплея с Arduino, но как показывает опыт, при использовании коротких команд бывают проблемы.
Также можно упростить интерпретатор, тем самым уменьшить код для Arduino. Но я не стал усложнять код. Чтобы понять мог каждый, кто читал моиуроки про программирование Arduino и дисплея Nextion.
Скетч для создания клавиатуры на Arduino pro micro.
Первым делом нам нужно подключить библиотеку.
Инициализируем работу с библиотекой.
И сейчас нам нужно передать нажатие той или иной клавиши на ПК. Для этого будем использовать команду.
По аналогии предаем значение других символов.
Чтобы вам не искать, список команд нажатия других клавиш клавиатуры приведен ниже:
Key | Шестнадцатеричное значение | Десятичное значение |
KEY_LEFT_CTRL | 0x80 | 128 |
KEY_LEFT_SHIFT | 0x81 | 129 |
KEY_LEFT_ALT | 0x82 | 130 |
KEY_LEFT_GUI | 0x83 | 131 |
KEY_RIGHT_CTRL | 0x84 | 132 |
KEY_RIGHT_SHIFT | 0x85 | 133 |
KEY_RIGHT_ALT | 0x86 | 134 |
KEY_RIGHT_GUI | 0x87 | 135 |
KEY_UP_ARROW | 0xDA | 218 |
KEY_DOWN_ARROW | 0xD9 | 217 |
KEY_LEFT_ARROW | 0xD8 | 216 |
KEY_RIGHT_ARROW | 0xD7 | 215 |
KEY_BACKSPACE | 0xB2 | 178 |
KEY_TAB | 0xB3 | 179 |
KEY_RETURN | 0xB0 | 176 |
KEY_ESC | 0xB1 | 177 |
KEY_INSERT | 0xD1 | 209 |
KEY_DELETE | 0xD4 | 212 |
KEY_PAGE_UP | 0xD3 | 211 |
KEY_PAGE_DOWN | 0xD6 | 214 |
KEY_HOME | 0xD2 | 210 |
KEY_END | 0xD5 | 213 |
KEY_CAPS_LOCK | 0xC1 | 193 |
KEY_F1 | 0xC2 | 194 |
KEY_F2 | 0xC3 | 195 |
KEY_F3 | 0xC4 | 196 |
KEY_F4 | 0xC5 | 197 |
KEY_F5 | 0xC6 | 198 |
KEY_F6 | 0xC7 | 199 |
KEY_F7 | 0xC8 | 200 |
KEY_F8 | 0xC9 | 201 |
KEY_F9 | 0xCA | 202 |
KEY_F10 | 0xCB | 203 |
KEY_F11 | 0xCC | 204 |
KEY_F12 | 0xCD | 205 |
Проверка работоспособности самодельной клавиатуры на дисплее Nextion и Arduino.
Как видим, все работает. Возможно, не хватает еще пару клавиш. Но зная, как это все делается, добавить дополнительные команды не составит труда. И реализовать выносную клавиатуру под необходимые требования.
Подведём итог.
Понравился проект Сенсорная клавиатура для компьютера на Arduino своими руками? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Резистивная клавиатура на Arduino pro micro
Один из первых моих проектов на Arduino. Устройство предназначено для использования совместно с ПК или планшетом, для расширения возможностей стандартной клавиатуры.
Резистивные кнопки подключаются к аналоговому входу A0, при нажатии кнопки на АЦП контроллера появляется определённый уровень напряжения и эмулируется нажатие клавиатурной клавиши.
Описание библиотеки MouseKeyboard .
Я использовал данный контроллер для обработки нажатий резистивного подрулевого джойстика в автомобиле. Обрабатываются клавиши управление громкостью и Mute, переключения треков(при коротком нажатии) и перемотки(при удержании), а также воспроизведение/пауза (при длительном нажатии) и ALT+TAB при коротком. Можно назначить большое количество других клавиш или их комбинаций.
В данной схеме можно изменить количество кнопок, подобрав сопротивления резисторов.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
В этой статье расскажу как работает матричная мембранная клавиатуру и приведу простой пример подключения клавиатуры к Arduino с отображением нажатий клавиш на последовательном мониторе.
Технические параметры:
► Разъём: PLS-8;
► Тип шлейфа: плоский, гибкий, 8 pin;
► Длина шлейфа: 75 мм;
► Размер: 77×69×2 мм;
► Масса: 7 г.
Обзор матричной мембранной клавиатуры
В статье пойдет речь о матричной мембранной клавиатуре на 4×4. Так же существуют клавиатуры 4 × 3, 4 × 1 и другие, в не зависимости от размера, все они работают одинаково. Как видно из фото, на передней части располагается сами кнопки, а на обратной стороне приклеена липкая основа, которая позволяет приклеить клавиатуру к любой поверхности.
Принцип работы матричная клавиатура
В матричной мембранной клавиатуре 4 x 4 (4 столбца и 4 строки) содержится 16 кнопок, под каждой кнопкой находится мембранная переключатель. Все эти кнопки соединены с друг другом, образуя матрицу 4 × 4, это позволило уменьшит количество используемых выводов для подключения к микроконтроллеры (Arduino) с 17 контактов до 8 контактов.
Подключение матричной мембранной клавиатура к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Матричная мембранная клавиатура 4х4, 16 кнопок x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-F x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
Теперь приступим к сборке схемы, подключим контакта 1 клавиатуры к цифровому контакту 9 на Arduino. Далее необходимо подключить все остальные контакты 2 с 8 и так далее.
Программа:
Пример простой, копируем или скачиваем и загружаем в Arduno.
Связь с компьютером может выполнить простая система на основе Arduino, чтобы получить доступ к широкому кругу устройств и информации. Большинство радиолюбителей связывают Arduino с помощью последовательной связи (USB-соединение).
Значит можно использовать Arduino для подключения пользовательского устройства ввода к компьютеру, так что он будет эмулировать клавиатуру или джойстик.
Необходимые детали
1шт-Arduino Duemilanove, Arduino Pro, Seeeduino, или эквивалент
1шт-USB разъем "Мама"
1шт-USB-к-B кабель (обычно используется в качестве кабеля для принтера и для Arduino)
2шт-3,6 стабилитроны (должен быть рассчитан на 0,5 Вт или меньше, 1W не будет работать)
1%: красный-красный-черный-коричневый коричневый
Принципиальная схема
Программный Код VirtualUsbKeyboard
* Enumerates itself as a HID (Human Interface Device) to a host
* computer using a USB shield. The Arduino then appears to the host to
* be a USB keyboard and keypress events can be sent on demand.
* This example watches the state of 6 push buttons and when a button
* is pressed it sends a matching keypress event to the host.
* Copyright 2009 Jonathan Oxer
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
// Requires the use of the "UsbKeyboard" library available from
// Define the inputs to use for buttons
// Use the on-board LED as an activity display
* Configure button inputs and set up the USB connection to the host
// Set up the activity display LED
pinMode (ledPin, OUTPUT);
digitalWrite (ledPin, HIGH);
// Set the button pins to inputs
pinMode (BUTTON_A, INPUT);
pinMode (BUTTON_B, INPUT);
pinMode (BUTTON_C, INPUT);
pinMode (BUTTON_D, INPUT);
pinMode (BUTTON_MSG, INPUT);
pinMode (BUTTON_ENTER, INPUT);
// Enable the CPU's internal 20k pull-up resistors on the button
// inputs so they default to a "high" state
digitalWrite (BUTTON_A, HIGH);
digitalWrite (BUTTON_B, HIGH);
digitalWrite (BUTTON_C, HIGH);
digitalWrite (BUTTON_D, HIGH);
digitalWrite (BUTTON_MSG, HIGH);
digitalWrite (BUTTON_ENTER, HIGH);
// Disable timer0 since it can mess with the USB timing. Note that
// this means some functions such as delay() will no longer work.
TIMSK0&=!(1
Читайте также: