Клавиатура своими руками arduino

Обновлено: 05.07.2024

В этой заметке речь пойдет о том как собрать беспроводную клавиатуру для ПК или ноутбука. Данную мини клавиатуру можно использовать для управления проигрывателем 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 pro Micro.

Но нужно помнить одно ограничение! Не все контакты на Arduino Leonardo и Micro поддерживают прерывания, поэтому для RX можно использовать только следующие pin: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Необходимые библиотеки для Arduino pro micro.

Необходимые библиотеки для Arduino pro micro.

  1. SoftwareSerial - библиотека для эмуляции Serial порта. (Можно обойтись и без нее, но лучше аппаратный Serial порта не занимать, вдруг нужно будет выводить информацию при отладке программы).
  2. Keyboard - эти базовые библиотеки позволяют платам Arduino Leonardo, Micro или Due при подключении к компьютеру определяться как обычная мышь и/или клавиатура. Данная библиотека встроена в Arduino IDE, и дополнительно устанавливать ее не нужно.

Дизайн клавиатуры для дисплея Nextion.

Как создать красивый дизайн для дисплея Nextion, рассказывал в отдельном уроке, который вы можете прочитать тут.

Для данного проекта понадобится 2 картинки в пассивном состоянии кнопок.

Для данного проекта понадобится 2 картинки в пассивном состоянии кнопок.

И состояние кнопок при нажатии.

Для данного проекта понадобится 2 картинки в пассивном состоянии кнопок.

Чтобы команды нажатия на клавишу передавались Arduino,

Можно использовать более простые команды для общения дисплея с Arduino, но как показывает опыт, при использовании коротких команд бывают проблемы.

Также можно упростить интерпретатор, тем самым уменьшить код для Arduino. Но я не стал усложнять код. Чтобы понять мог каждый, кто читал моиуроки про программирование Arduino и дисплея Nextion.

Но я не стал усложнять код. Чтобы понять мог каждый, кто читал моиуроки про программирование 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.

Подключаем устройства к ПК и открываем калькулятор.

И получаем результат сложения.

Как видим, все работает. Возможно, не хватает еще пару клавиш. Но зная, как это все делается, добавить дополнительные команды не составит труда. И реализовать выносную клавиатуру под необходимые требования.

Сделать самодельную USB клавиатуру достаточно просто с использованием отладочной платы Arduino pro micro.

Подведём итог.

Понравился проект Сенсорная клавиатура для компьютера на Arduino своими руками? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Резистивная клавиатура на Arduino pro micro

Резистивная клавиатура на Arduino pro micro

Один из первых моих проектов на Arduino. Устройство предназначено для использования совместно с ПК или планшетом, для расширения возможностей стандартной клавиатуры.

Резистивная клавиатура на Arduino pro micro

Резистивные кнопки подключаются к аналоговому входу 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

Читайте также: