Сенсорная клавиатура для компьютера на Arduino своими руками
Сегодня не редкость встретить ноутбук или клавиатуру для компьютера без «дополнительной клавиатуры». Также бывают ситуации, когда нужно организовать выносную клавиатуру с определенным набором клавиш. Сегодня в проекте рассмотрим, как можно сделать сенсорную клавиатуру для компьютера или ноутбука на Arduino своими руками. Также приложу все необходимые материалы, которые помогут реализовать подобный проект или проект с другим набор клавиш под ваши потребности.
Сенсорная клавиатура для компьютера своими руками.
Давайте сделаем сенсорную клавиатуру для компьютера с функционалом «дополнительной клавиатуры».
Что такое «дополнительная клавиатур» и как она выглядит? На рисунке ниже можно увидеть обозначение основных блоков клавиатуры. Желтым цветом выделены клавиши «дополнительной клавиатуры». Данный набор клавиш используется чаше всего при работе с калькулятором на компьютере или для заполнения цифровой информации, например в таблице excel.
Что понадобится для проекта «сенсорная клавиатура для ПК»?
В качестве сенсорного дисплея буду использовать дисплей 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.

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

Чтобы команды нажатия на клавишу передавались Arduino, для каждой кнопки нужно прописать уникальную команду, например для клавиши «0» она будет следующей:

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

Скетч для создания клавиатуры на Arduino pro micro.
Как пользоваться библиотекой «SoftwareSerial» уже рассказывал тут. Подробнее рассмотрим библиотеку «Keyboard», которая отвечает за передачу информации на компьютер о нажатии той или иной клавиши.
Первым делом нам нужно подключить библиотеку.
Инициализируем работу с библиотекой.
И сейчас нам нужно передать нажатие той или иной клавиши на ПК. Для этого будем использовать команду.
По аналогии предаем значение других символов.
Передача нажатия клавиши «Enter» передаётся следующей командой.
Чтобы вам не искать, список команд нажатия других клавиш клавиатуры приведен ниже:
| 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.
Пришло время проверить работоспособность клавиатуры на дисплее Nextion и Arduino. Так как я сделал «дополнительную клавиатуру» проверять работоспособность будем на калькуляторе. Подключаем устройства к ПК и открываем калькулятор.

Давайте попробуем что-то подсчитать. Нажимаем число знак, например «+». Второе число и нажимаем клавишу «Ent». И получаем результат сложения.

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

Подведём итог.
Сделать самодельную USB клавиатуру достаточно просто с использованием отладочной платы Arduino pro micro. Также можно реализовать полноценную клавиатуру. Только возникает вопрос.А зачем? Сегодня USB клавиатура стоит не так и дорого. Если делать самодельную клавиатуру только для нестандартных задач. Например, при нажатии на 1 кнопку передавать сочетание клавиш. Например «CTRL + Backspace». А также сделать дополнительное сенсорное поле, как показано на картинке ниже.
Понравился проект Сенсорная клавиатура для компьютера на Arduino своими руками? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Сенсорный модуль на AVR
Бесспорно, что кнопочная клавиатура является одним из основных способов введения информации (выбор режима работы, установка параметров и т.д.) в микроконтроллерную поделку. Но иногда, гордый вид торчащих механических кнопок придаёт «громоздкость» внешнему виду вашего устройства. В этом случае можно применить сенсорную клавиатуру, благо, хорошее описание принципа действия и готовые схемные решения найти в интернете не составляет проблем. Не оставит в беде и Arduino, предложив радиолюбителю выбрать между сенсорной кнопкой или 9-12-кнопочной панелью. Однако, покупать сенсорную кнопку на своё устройство для меня было как-то не спортивно, а готовые 9 или 12-кнопочные клавиатуры были как-то чересчур для моих устройств, причём во многих из них информация передавалась по интерфейсу UART, который у меня обычно уже занят под иные задачи, а программную реализацию интерфейса делать было не особо охота. Поэтому, взяв прототипом реализацию сенсорной клавиатуры от небезызвестного мистера Chan(а), я сделал сенсорный модуль на 1, 2 и 3 кнопки, что зачастую вполне достаточно для работы с микроконтроллерными устройствами.
Ограничение на количество сенсорных кнопок накладывает применяемый микроконтроллер – Attiny13A-SSU , но даже его применение для однокнопочного сенсорного модуля по себестоимости выходит дешевле аналогичного модуля от Arduino.
Выводы модуля:
VCC – питание 3-5 В;
GND – земля;
SIG1-SIG3 – цифровой сигнал нажатия кнопки.
При нажатии кнопки, на соответствующем цифровом выводе появится логическая «1», хотя вы можете исправить в коде программы на «0», тогда будет полная имитация нажатия механической кнопки.
Схема сенсорного модуля на 3 кнопки

В случае слишком большой чувствительности сенсорных кнопок (на выходе модуля появляется сигнал до прикосновения к сенсорной панели) можно уменьшить сопротивление резисторов R1-R3. Исходник программы, как я уже упоминал, основан на коде от мистера Chan(а), однако функцию опроса сенсорных кнопок и определение нажатой кнопки я полностью переделал, повысив помехоустойчивость и реализовав надёжное определение нажатия и отпускания сенсорной кнопки.

В архиве представлен исходный код и прошивка для трёх исполнений модуля – на 1, 2 и 3 кнопки, единственное отличие битов конфигурации для последнего случая – установить галочку напротив бита RSTDISBL (на рисунках ниже — конфигурация для 1 и 2-х кнопок).
Делаем сенсорную клавиатуру для компьютера своими руками
Для удобства использования бывает, нужно сделать выносную компьютерную клавиатуру с различным набором функций. Сегодня рассмотрим, как можно сделать сенсорную клавиатуру для компьютера своими руками.
Понятно, что использовать дисплей Nextion приемлемо в том случае, если вы делаете красивую внешнюю клавиатуру для вашего бизнеса, где вашему клиенту нужно вводить пароль, например, полученный по СМС или другую информацию.

Но для домашнего применения дисплей Nextion дороговат. Поэтому вместо дисплея можно использовать более дешёвые сенсорные дисплеи или матричную клавиатуру 4х4, как с ней работать читайте тут.

Результат получаем вот такой.

Количество клавиш и их функционал можно изменять. Или сделать что-то на подобии этого.

Скачать исходные материалы к проекту можно тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!

1.3K постов 20.2K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте — используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
В целом, красиво и функционально ( в том, плане, что есть штука и она работает)
Проблема в том, что вряд ли это изобретение действительно имеет смысл, потому что, ну серьёзно, кому может понадобиться сенсорная клавиатура, подцепленная, к нему по проводу
Но, можно было бы оторвать её от провода, и тут уже может быть интересно:
Заменить ком-порт на Bluetooth или WiFi, пусть оно выплевывает туда и вот тогда можно уже и правда превратить это в полезный девайс
Я просто прочитал название, зашёл сказать : извращение )))

А есть у кого-нибудь идеи как можно сделать сенсорный экран, реагирующий на попадание свинцовых пуль от пневматики?
Или даже не экран, а любая панель с нарисованной мишенью.
Да. Ведь дома можно и тяп-ляп делать.
Сенсорный дисплей 2.4 стоит
ЖК-модуль TFT 2,4 дюймов TFT ЖК-экран для платы Arduino UNO R3 с поддержкой mega 2560 с сенсорным стилусом gif
За 1000 можно уже 3.5 взять
ЖК-дисплей с цветным модуль экрана TFT LI9486, 3,5 дюйма, 480×32 0, плата Mega2560 с/без сенсорной панели для Arduino
Я понимаю, что мембранка стоит не большее 100р
4 12 16 20 клавиш 1*4 4*3 4*4 4 4*5 мембранная клавиатура переключателя 1×4 3×4 4 4×4 4 4×5 матричная клавиатура для arduino smart car
Но это ведь тупо не так весело ._.


Топ 25 наборов для самостоятельной сборки и пайки

Комплект электронных компонентов для сборки личного мультиметра (тестера). Предстоит самому собрать и припаять детали в нужном месте, чтобы аппарат заработал. Ссылка на источник
2) Регулятор напряжения

Набор «собери сам» для сборки регулятора напряжения с трансформатором. Работает от сети 220 вольт. Преобразует от 0 до 18 вольт. ссылка

Сборные настольные часы со светодиодами. Для любителей электроники и пайки и сборки своими руками. ссылка
4) Лодка с дистанционным управлением

Научно-познавательный набор «сделай сам» — катер с пультом управления на бутылках. Ссылка
5) Настольная лампа

Очень простой набор для сборки небольшой настольной лампы. Ссылка на источник
6) Датчик землетрясения

Деревянный конструктор для сборки детектора землетрясения. Ссылка

Набор для создания ветрогенератора, суть в том, что при вращении лопастей винта при ветре генерируется электричество и лампочка светится. Ссылка

Интересный набор для сборки электромобиля. Ссылка
9) Электромагнитная пушка

Электромагнитная пушка для самостоятельной сборки . ссылка

Забавный DIY робот-копилка для сборки, который любит есть монетки и другие металлические предметы. Ссылка

Набор для пайки и создания волчка (юла) со светодиодами. ссылка
12) Музыкальная колонка

Большой набор для сборки колонки. Ссылка

Набор для создания устройства с дуговым зажиганием. Ссылка на источник
14) Игровая приставка

Комплект деталей для сборки простой игровой приставки. ссылка

Довольно сложный в устройстве Arduino-робот. Вам предстоит не только его собрать, но и запрограммировать. Ссылка
16) Индикатор уровня звука

Дешевый и простой набор электронных компонентов для сборки. Ссылка
17) Детектор металла

Еще один дешевый наборчик с деталями детектора металла (металлоискателя). Ссылка на источник

Набор деталей для сборки датчика определения уровня алкоголя. Ссылка
19) Тренировочная плата

Набор SMD компонентов для обучения пайке на плату. Ссылка

Набор сборный для детей и взрослых для развития навыков пайки и принципа работы электроники. Ссылка

Обучающий комплект для сборки FM Радио. Ссылка
22) Детектор ядерного излучения

Интересный набор для пайки и сборки дозиметра радиации. Ссылка
23) Карманный фонарик

Простой набор для создания мини фонарика. ссылка

Комплект деталей для сборки собственного спиннера. Ссылка
25) Компьютер Z80 Орион Про

Набор для сборки одноплатного компьютера. Ссылка на источник

Топ 20 электронных комплектов «сделай сам» для самостоятельной сборки, пайки и программирования
1) Зарядная станция

Набор для сборки зарядной станции с солнечной панелью с трекером для отслеживания положения солнца. Для работы требуются знания в Arduino (Ардуино). Ссылка на источник

Набор электронных деталей для сборки умного робота-фургона с множеством интересных функций. Ссылка на модель

Обучающий комплект для сборки дома с различными способностями, например, если датчик ‘почует’ дым, то срабатывает сигнализация, если начинается дождь (капает вода на сенсор), то закрываются окна и тд. Ссылка на набор
4) Поливочный робот

Набор для создания устройства для автоматической поливки цветов. Ссылка

Комплект для сборки руки-манипулятора с пультом управления. Ссылка
6) Электронные весы

Весы для сборки в деревянном корпусе и электронной ‘начинкой’. Ссылка

Умный робот для программирования на ‘гусеницах’. Ссылка на источник

Классный ультразвуковой радар. ссылка

Набор для создания рисующего робота. Ссылка на набор

Набор для сборки и программирования робота-машинки с камерой. Ссылка

Ходячий и танцующий робот-гуманоид. Ссылка

Комплект деталей для сборки любого робота на Ваш вкус. ссылка
13) Мусорное ведерко

Умное мусорное ведро с автоматическим открыванием крышки. ссылка на источник
14) Дозатор мыла

Робот, помогающий нажать на дозатор с мыльным раствором, достаточно показать ему руки. Ссылка

Эмоциональный робот для сборки из 635 деталей. Ссылка на модель

Серьезный аппарат для программирования. Ссылка
Забавный робот, который сначала что-то напишет, потом сотрет. Ссылка на источник

Arduino программируемая рука. Ссылка

Необычный термометр с гигрометром. Ссылка

Робот-паук для самостоятельной сборки и программирования. Ссылка на источник.

Спиннинг своими руками
Насмотрелся японцев с их модой на стеклянные коротыши. Загорелся идеей приобрести, но быстро перегорел, увидев ценник в 5к. Нашел в магазине хлыстик 1,2 метра за 80р. Докупил колец и катушкодержатель, немного обточил бланк, собрал и наслаждаюсь. Насколько он получился хуже/лучше заводского — не знаю, но он однозначно получился! Цена вопроса меньше тысячи рублей, а кайфа море. Плюсом бесценный опыт криворукого родбилдинга)

Топ 25 электронных устройств ‘сделай сам’ для самостоятельной сборки и пайки
1) Вентилятор с регулировкой скорости

Комплект «собери сам» для самостоятельной сборки и пайки электронных компонентов, в завершенном виде мы получаем устройство вентилятора с платой управления скорости его вращения. Идеально подойдёт для обучения пайке и принципа работы электроники в целом. Стоит такой набор 128 рублей с бесплатной доставкой. Ссылка на источник
2) Светодиодное сердечко

Набор для создания светодиодного светильника с формой красного сердца. Стоит такой 40 рублей. Ссылка
3) Катушка Теслы

Комплект сборки мини-катушки Тесла. Стоит 83 рубля. Ссылка
4) Мигающий светильник

Набор для сборки и пайки микросхем , светодиодов и других электронных компонентов для получения платы весёлого светильника. Стоит комплект 260 рублей. Ссылка
5) Стартовый набор Arduino

Набор начального уровня для любителей сборки, пайки и программирования проектов на Ардуино. Стоит такой около 1 800 руб. Ссылка
6) Набор для создания арфы

Набор ‘сделай сам’ музыкальный инструмент лазерная арфа. Стоит около 600 руб. Ссылка
7) Анализатор спектра

Набор для пайки Анализатор звукового спектра со светодиодными индикаторами. Стоит 105 рублей. ссылка
8) Индикатор заряда батареи

Комплект для сборки индикатора уровня заряда аккумуляторов 3,7В — 12В. Стоит 130 рублей. Ссылка на источник
9) Электронные часы

Набор электронных компонентов для сборки цифровых часов с будильником и светящимися по кругу светодиодами . Стоит около 800 руб. Ссылка
10) Регулятор напряжения

Комплект «сделай сам» LM7805 модуль питания с регулятором напряжения. Стоит 37 рублей. Ссылка
11) Генератор сигналов

Генератор сигналов DIY Kit ICL8038 12V набор для сборки и самостоятельной пайки. Стоит 98 рублей. Ссылка

Электронное пианино для сборки. Состоит из одной октавы нот. Стоит 115 рублей. Ссылка
13) Тестовый модуль

Электронный комплект LED Logic Pen. Стоит 67 рублей. ссылка
14) Модуль диммера 100 Вт

Набор «сделай сам» с переключателем потенциометра, модуль регулирования скорости для Arduino. Стоит 44 рубля. ссылка
15) Макетная плата

Набор для сборки макетной платы ATMEGA8. Стоит 150 руб. ссылка

Набор для сборки модуля преобразования переменного тока в постоянный. Стоит 37 рублей. ссылка
17) Радио своими руками

Набор для сборки FM-радиоприёмника. Стоит около 550 руб. Ссылка
18) Новогодняя ёлка

Набор для сборки 3D ёлочки с разноцветными светодиодами. Стоит такая около 280 рублей. ссылка
19) Умный робот 4WD

Набор для сборки умного робота-автомобиля. стоит такой около 2500 руб. ссылка
20) Дверной звонок

Набор для сборки звонка. Стоит 67 рублей. ссылка
21) Комплект деталей для Ардуино

Набор деталей для сборки недостающих элементов в проектах Arduino и др. Стоит такой 173 рубля. ссылка
22) Высоковольтный генератор

Стоит такой набор 123 рубля. ссылка
23) Усилитель звука

Плата усилителя звука для самостоятельной сборки. Стоит такая 115 рублей. ссылка
24) Воздушный катер

Набор для сборки лодки-катера с дистанционным управлением. Вам лишь потребуется найти 2 бутылки. Стоит такой набор около 800 руб. Ссылка

Набор для сборки планетохода (луноход, марсоход) с солнечными панелями. Аппарат может работать как от батареек, так и от солнечной энергии напрямую. Стоит такой набор 598 руб. Ссылка на источник.

Ответ на пост «Бунт бунтом, а я тут люстру кита доделал»
А я тут клавиатуру решил в человеческий вид привести.
Для начала подумал — неплохо бы почистить-помыть от следов крошек, волос и говна, но когда осмотрел на предмет потёртостей — решено было ещё и закрасить их.
За качество фото извиняюсь, фотографировал на баллон Kudo.
btw если кого интересует — пластик перед покраской обезжириваю обычно перекисью водорода.









Топ 25 электронных компонентов стоимостью до 39 рублей с бесплатной доставкой, найденных на Алиэкспресс
1) Металлический плёночный резистор 100 штук

Электронный компонент резистор. Стоит такой набор 35 рублей с бесплатной доставкой. Ссылка на источник.
2) Светодиоды 100 штук

Набор белых светодиодов. Стоит около 38 рублей. Ссылка
3) Повышающий модуль

Регулируемый повышающий модуль со входом TypeC. 9V, 12V, 15V, 18V, 24V. Стоит такой 31 рубль. Ссылка
4) SMD резисторы 100 штук

Набор резисторов 100 штук. Стоит такой набор 30 рублей. Ссылка на источник
5) Модуль зарядки

Зарядная плата для литий-ионных батарей. Стоит такая 28 рублей. Ссылка
6) Двухсторонняя плата-заготовка

Плата для пайки различных электронных компонентов для проектов Arduino и др. Стоит маленькая плата 16 рублей с бесплатной доставкой. Ссылка
7) Отсек для батареек

Стоит такой 30 рублей. Ссылка
8) Сенсорный модуль

Электронная плата с сенсорным модулем. Стоит такая 33 рубля. Ссылка
9) Понижающий преобразователь

Понижающий модуль для радиоуправляемых моделей. Входное напряжение: 4,75-23в. Выходное напряжение: 1,0 V-17V. Стоит такая плата 33 рубля Ссылка
10) Плата расширения

Модуль с платой для карты памяти для различных электронных проектов или модернизации существующих=)) Стоит такая 38 рублей. ссылка

Стоит такой 26 рублей. ссылка
12) Светодиоды 10 штук

3 вольтовые светодиоды набор. Стоит 33 рубля. ссылка
13) Инфракрасный модуль

ИК модуль датчика препятствий. Стоит такая плата 38 рублей. ссылка
14) Модуль двигателя

Плата привода двигателя, обычно применяется в робототехнике. Стоит такая 39 рублей. ссылка
15) Переходник на DIP-адаптер 10 штук

Стоит такой набор 33 рубля. ссылка
16) Температурный датчик

Водонепроницаемый NTC термистор 10K 1%. Стоит такой 25 рублей с бесплатной доставкой, как и всё в нашей подборке=). Ссылка на источник
17) Плата для самодельного внешнего аккумулятора

Модуль с зарядкой и выходом USB. Стоит такой 33 рубля. Ссылка
18) Цифровой модуль датчика барометрического давления

Стоит такой датчик 39 рублей. Ссылка
19) Модуль обнаружения дождя

Плата обнаружения капель воды. Стоит такая 39 рублей. Ссылка
20) Лазерный передатчик

Стоит такая плата 39 рублей. Ссылка
21) Звуковой сигнал

Модуль звукового сигнала 95 дБ, 3-24 В. Стоит такой 37 рублей. Ссылка
22) Модуль часов

Стоит такая плата 35 рублей. Ссылка
23) Переходник с батареек Крона 9V

Стоит такой кабель-переходник 31 рубль. Ссылка
24) Маркер с тонким стержнем

Маркер чёрный с тонким кончиком для нанесения различных заметок и опознавательных знаков на электронике. Стоит такой 28 рублей. Ссылка.
25) Штекер Банан

Штекер + разъём «мама-папа» 4 мм. Стоит такой 39 рублей. Ссылка на источник
Уважаемые читатели! Информация актуальна на момент размещения поста.

Топ 17 интересных устройств для самостоятельной сборки
1) Преобразователь электрической энергии в магнитную

Набор электронных компонентов для самостоятельной сборки и пайки устройства электромагнитной пушки, за счёт преобразования энергии оно способно выстреливать снаряды, а именно металлические цилиндры. Увлекательный набор, способствующий развитию знаний в области электроники, пайки и физике. Ссылка на источник
2) Анализатор звукового спектра

Комплект «Сделай сам» светодиодный анализатор. Ссылка
3) Поливатель цветов

Набор для сборки устройства для автоматического полива цветов. Ссылка
4) Музыкальный спектр 2

Набор для сборки 12-ти канального светодиодного анализатор спектра. Ссылка
5) Музыкальная ёлка

Набор для создания музыкальной колонки со светодиодной ёлкой. Ссылка
6) Анализатор спектра v3

Музыкальный анализатор с разноцветными светодиодами. Ссылка
7) Дуговой трансформатор

Набор для самостоятельной сборки генератора высокого напряжения для дугового зажигания. Ссылка на источник
8) Часы настольные

Набор для сборки электронных часов со светодиодами. Ссылка

Набор для самостоятельной сборки и пайки FM радио. Потребуется лишь подключить наушники или колонку. Ссылка
10) Модуль усилителя

Плата двухканального усилителя OCL высокой мощности 100 Вт с 4 транзисторами высокой мощности и двумя независимыми стереоканалами. Ссылка

Набор для самостоятельной сборки настольного вентилятора. Ссылка

Сложный набор для создания радио. Вам потребуется самостоятельно и правильно припаять детали в нужном месте чтобы оно заработало. Ссылка
13) Умный автомобиль

Набор для создания машинки, которая может объезжать препятствия. Ссылка
14) Игровая приставка на скорость реакции

Забавная игрушка для самостоятельной сборки. Ссылка

Комплект для самостоятельного изготовления электронного пианино. Ссылка на источник
16) Стрелочный светофор

Набор для сборки световых маячков. Ссылка

Набор электронного конструктора для Arduino (проектов Ардуино) для самостоятельной сборки и программирования. Ссылка на источник

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

К сожалению, в наше время многие старые, но весьма неплохие по характеристикам гаджеты отправляются напрямую в помойку, и их владельцы не подозревают, что им можно найти применение. Сервер, мультимедийная-станция, да даже просто как TV-приставка — люди в упор не замечают сфер, где старенький планшет мог бы быть полезен. Но как быть, если посвящаешь жизнь портативным гаджетам, кодингу и копанию в железе? Правильно: сделать довольно мощную игровую консоль из старого планшета самому! Сегодня вам расскажу, как я сделал свою портативную приставку из планшета с нерабочим тачскрином, Raspberry Pi Pico и 8 кнопок! За рабочим результатом прячется несколько дней работы: поиск UART на плате, разработка контроллера геймпада на базе RPi Pico, написание приложения-сервиса, которое слушает события и отправляет их в подсистему ввода Linux в обход Android. Интересно? Тогда жду вас под катом!
❯ Мотивация
Прошло уже практически 10 лет с того момента, как у меня появилась моя первая портативная консоль. Несмотря на то, что я был заядлым ПК-игроком, я уже успел посмотреть на PS3 и PSP, но денег на их покупку у меня особо не было, да и к тому времени уже был в наличии Android-планшет. Но к моему 13-летию в 2014 году, когда я ходил и выбирал себе будущий девайс на день рождения, отец и мама решили подарить мне мою первую портативную консоль. Изначально, я уговаривал её купить мне целых два девайса, но бюджет был ограничен 4.000 рублей, а я хотел взять смартфон Fly IQ239 и консоль JXD S601 одновременно:

Однако, увидев здоровую 7-дюймовую консоль в магазине TREC (думаю, жители южной части РФ помнят такой), мама уговорила меня взять именно её, мотивируя это «ну и чего ты будешь тыкаться в этот мелкий экран? Возьми большую». После покупки гаджета, я был доволен: играл какие-то игрушки с ретро-платформ, устанавливал игры на Android, сидел в ВК через Kate Mobile. Что еще нужно было школяру? Однако, планшет прожил у меня недолго: с очередного лага я психанул и ударил по нему кулачком, унеся на тот свет и дисплей и тачскрин. Так консолька и пролежала в подвале около 8 лет. Впрочем, мне продолжали импонировать подобные устройства и в прошлом году я купил и написал про несколько подобных девайсов.

Несколько месяцев назад, мой читатель Кирилл Севостьянов с Хабра прислал мне HTC HD2 в качестве донора и планшет Prestigio PMP7170B3G, который был рабочим, но… у него отказал тачскрин. Я всё думал, чего бы с ним сделать и решил реализовать игровую консольку своими руками из подручных средств. Идея крутилась в голове довольно давно, но реализовал я её только сейчас.
❯ Что нам нужно сделать?
Итак, что должно быть у портативной консоли? Чипсет, дисплей, звук, ОС — это всё нам уже предоставляет планшет. Нам остаётся лишь сделать свой геймпад. Давайте подумаем, что нам будет нужно для того, чтобы его сделать и передавать от него события на планшет:
Контроллер для геймпада: тут нам подойдет практически любой микроконтроллер, который работает от 3.3в. Выбор большой: Arduino Pro Mini 3.3v, ESP32, RPi Pico. Я остановился на последнем: недавно я взял себе две штучки «пощупать» их — и они мне очень понравились!
Физический интерфейс: с планшетом нужно как-то общаться. У нас есть три варианта: USB (не факт, что поддержка преобразователей включена в ядре), UART и SPI/I2C на пятачках тачскрина (потребуют написания драйвера т. к. в android-устройствах нет прямого доступа к SPI/I2C из userland’а). Я остановился на UART: его легко найти на большинстве китайских планшетов, а если не получилось — то на помощь может прийти схема платы.
Программная реализация: как это будет работать? Я решил реализовать геймпад в виде сервиса на Android, который слушает состояния кнопок с UART и «инжектит» события напрямую в драйвер ввода. Таким образом, поддержка нашего геймпада появляется даже в самой системе — можно управлять менюшкой или приложениями как с клавиатуры!
С планом определились, пора начать с программной части: сначала нам обязательно понадобится ROOT-доступ. Его получение на разных девайсах отличается — на prestigio уже был порт CWM и я просто поставил SuperSU. Без ROOT доступа мы не сможем использовать UART!

Теперь нам нужно найти пятачки UART на плате. Разведен он не везде, но в случае устройств на MediaTek — почти всегда, ещё и пятачки подписаны. На моём планшете он нашёлся сразу: был между двух металлических экранов и соответствовал 4-ому каналу UART. Получить к нему доступ можно в /dev/ttyMT3. Я использую ESP32 в качестве UART преобразователя: подпаиваемся к RX/TX, запускаем putty и заходим в adb shell. Определяем бодрейт (скорость) нашего UART порта — на MediaTek он обычно равен 921600, на других чипсетах — 115200. Пытаемся что-то вывести и хоба — мы уже можем «поболтать» с планшетом!

❯ Приложение-сервис
Итак, у нас уже есть доступ к UART и мы можем общаться с планшетом из внешнего мира. Но получить события с кнопок пол дела, нужно их ещё и послать в систему. Для этого есть целых три способа:
InputManager.injectInputEvent — именно этим методом пользуется команда input, которую вы можете использовать через adb. Но увы, он работает только при наличие разрешения INJECT_EVENTS, который доступен только системным приложениям — находятся они в /system/app и подписаны тем же сертификатом, что и остальная прошивка.
Модуль uinput дает возможность создать виртуальное устройство ввода и посылать события из userland’а — т. е. из прикладного приложения. У моего планшета было устройство /dev/uinput, но lsmod показывал, что сам модуль не загружен. Так что отметаем — он есть не везде.
Прямой инжект событий в character устройство — весьма грязный хак, который позволяет инжектить события, не притворяясь системным приложением, но имеет некоторые ограничения. Именно его я и выбрал и о ограничениях ниже.
Сначала нам нужно узнать, какие кнопки поддерживают загруженные устройства ввода в системе. Для этого используем команду getevent -li. Там есть разные устройства ввода, в том числе и тачскрин (если вам нужно симулировать нажатия на экран), мне же подошёл драйвер физических кнопок mtk-kpd. Он занимается обработкой кнопок громкости, включения и т. п. Тут важно обратить внимание на то, что если попытаться послать кнопку, которое устройство не реализует (например пробел), то ничего не произойдет:

Инжект событий я писал на C, т. к. это требовало прямой записи input_event, а в Java прокинул его через Jni. Концепция простая: открываем устройство /dev/input/event2 и посылаем в него события ввода и синхронизации (это обязательно!), которые затем Android читает и обрабатывает:
#include <linux/uinput.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <android/log.h>
#include <jni.h>
int uinput;
extern «C» JNIEXPORT void JNICALL Java_com_monobogdan_inputservicebridge_InputNative_init(JNIEnv *env, jclass clazz) <
uinput = open(«/dev/input/event2», O_WRONLY);
__android_log_print(ANDROID_LOG_DEBUG , «Test», uinput >= 0 ? «Open event OK» : «Failed to open event»); >
void emit(int fd, int type, int code, int val) <
struct input_event ie; ie.type = type;
ie.code = code; ie.value = val;
ie.time.tv _sec = 0;
ie.time.tv _usec = 0;
write(fd, &ie, sizeof(ie)); >
extern «C» JNIEXPORT void JNICALL Java_com_monobogdan_inputservicebridge_InputNative_sendKeyEvent(JNIEnv *env, jclass clazz, jint key_code, jboolean pressed) <
__android_log_print(ANDROID_LOG_DEBUG , «Test», «Send»);
emit(uinput, EV_KEY, key_code, (bool)pressed ? 1 : 0);
emit(uinput, EV_SYN, SYN_REPORT, 0);
>
Основной обработкой занимается сервис, который я реализовал в отдельном потоке: он слушает события с UART и посылает соответствующие изменения состояния через sendKeyEvent. На вход приходят простые сообщения вида:
U L где U/D — нажато, не нажато, а L — однобайтовый идентификатор кнопки. В случае L — это влево, R — вправо и т. п. Вся доступная раскладка хранится в словаре. Причём само чтение из UART реализовано костылем с чтением «чужого» stdout, т. к. android-приложения не умеют сами по себе работать с root правами. В теории, это могло дать неприятный оверхед, но на практике никакого серьезного инпут лага это не создает. Не забываем сделать устройство event записываемым — ставим ему права 777:
package com.monobogdan.inputservicebridge;
public class InputListener extends Service <
private static final int tty = 3;
private InputManager iManager;
private Map<Character, Integer> keyMap;
private Method injectMethod;
private Process runAsRoot(String cmd)
<
try <
return Runtime.getRuntime().exec(new String[] < "su", "-c", cmd >);
>
catch (IOException e)
<
e.printStackTrace();
return null;
>
>
@override
public void onCreate() <
super.onCreate();
// According to linux key map (input-event-codes.h)
keyMap = new HashMap<>();
keyMap.put(‘U’, 103);
keyMap.put(‘D’, 108);
keyMap.put(‘L’, 105);
keyMap.put(‘R’, 106);
keyMap.put(‘E’, 115);
keyMap.put(‘B’, 158);
keyMap.put(‘A’, 232);
keyMap.put(‘C’, 212);
InputNative.init();
try <
runAsRoot(«chmod 777 /dev/input/event2»).waitFor();
> catch (InterruptedException e) <
throw new RuntimeException(e);
>
Executors.newSingleThreadExecutor().execute(new Runnable() <
@override
public void run() <
Process proc = runAsRoot(«cat /dev/ttyMT» + tty);
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while(true)
<
try <
String line = reader.readLine();
if(line != null && line.length() > 0) <
Log.i(«Hi», «run: » + line);
boolean pressing = line.charAt(0) == ‘D’;
int keyCode = keyMap.get(line.charAt(2));
Log.i(«TAG», «run: » + keyCode);
InputNative.sendKeyEvent(keyCode, pressing);
>
>
catch(IOException e)
<
e.printStackTrace();
>
/*try <
Thread.sleep(1000 / 30);
> catch (InterruptedException e) <
e.printStackTrace();
>*/
>
>
>);
>
@override
public IBinder onBind(Intent intent) <
return null;
>
>
Таким образом, если мы отправляем с ПК «D L» — система считает, что мы зажали стрелку влево, а U L — считает что мы отпустили. Но если mtk-kpd поддерживает стрелки и еще некоторые действия без каких либо проблем, то enter в список обрабатываемых кнопок не входит: придется мудрить! И тут нам приходит на помощь механизм трансляции кодов кнопок в действия: они хранятся в специальных файлах .kl в /system/usr/keylayout/. Я назначил DPAD_CENTER на… кнопку регулировки громкости звука! Ну, а почему бы и нет. 🙂 Таким образом можно переназначить уже имеющиеся кнопки громкости на, например, start/select.

❯ Геймпад
После того, как сервис был готов и отлажен, нужно было реализовать хардварную часть проекта — сам геймпад. В качестве контроллера я, как уже говорил, выбрал Raspberry Pi Pico на базе МК RP2040 — бодреньком контроллере с двумя ARM Cortex-M0 ядрами. Стоит копейки, а в отличии от ESP’шек, его SDK не такое перегруженное и выглядит более приближенным к bare-metal.

На данный момент, я решил развести все кнопки на бредборде — макетной плате без пайки, т. к. макеток для пайки у меня под рукой не было. Сделал примитивный геймпад:

Развел на соответствующие GPIO:

И написал примитивную прошивку, которая отслеживает состояние кнопок. В прошивке точно так же есть словарь, задающий ассоциацию между физическими пинами и «виртуальными» кнопками. При нажатии или отжатии кнопки, программа изменяет стейт и отсылает новое состояние планшету.
Собираем всё вместе и тестируем. Хоба, всё работает, мы можем перемещаться по менюшке используя наш геймпад!

А почему бы не попробовать поиграть в какую-нибудь игру? Ну мы же консоль вроде делаем: берём эмулятор NES, биндим кнопки в настройках и наслаждаемся игрой в Марио!
❯ Заключение
Реализация этого проекта заняла у меня не так уж и много времени: всего около 3-х дней работы по вечерам. Вероятно кто-то спросит: «а чего ты просто Bluetooth геймпад не купил?». Так это не прикольно ведь. Гораздо приятнее играть в девайс, к которому ты приложил руку сам. Более того, не у всех старых планшетов есть BT. Обошёлся на данной стадии проект недорого: планшет мне подарили бесплатно (точно также у вас дома может лежать подобный), RPi Pico — 350 рублей, кнопки по 10 рублей/штучка.
В целом, я сам по себе обожаю копаться в различных железках и их софтварной части (вспомнить хотя-бы статью про перекомпиляциюu-boot из вендорских исходников для нонейм консоли), а созидать что-то свое вообще вызывает какие-то нереальные всплески эндорфина — оно и понятно! 🙂
Однако несмотря на то, что мы уже имеем рабочий «прототип», проект далёк от завершения: я намерен довести его до конца и окончательно перевоплотить старый планшет в автономную игровую консоль (и рассказать об этом во второй части статьи). Для этого мне понадобится распечатать корпус и кнопки на 3D-принтере. К сожалению, у меня в городе ни у кого особо нет 3D-принтеров, поэтому начну копить на Ender 3, а от вас, читателей, с удовольствием почитаю мнение в комментариях и советы касательно выбора принтера!
Arduino Leonardo Mini. Собираем программируемую сенсорную клавиатуру SrachMaster
![]()
Плат Arduino на рынке сейчас есть много и разных:
От пришиваемой на одежду Lilypad до монструозной Mega 2560, на микроконтроллерах от AVR ATMega8 до ARM Cortex-M3 SAM3U4E, ESP8266 и ATSAMD21E18.
Несколько выделяются из этого ряда Arduino Leonardo.
Они не могут похвастаться необъятной памятью или количеством линий расширения, но отличительная особенность их микроконтроллера ATMega32U4 — аппаратная реализация USB-HID, позволяющая без лишних сложностей изобретать велосипеды строить клавиатуры, мышки и что Вам там ещё из устройств ввода придёт в голову.
Итак, плата пришла в запаянном антистатическом пакете:
Внутри плата и пара контактных гребёнок с шагом 2,54 мм.
Размер платы 37х18 мм без учёта выступающего разъёма USB-C.
На верхней стороне текстолита распаяны микроконтроллер с базовой обвязкой, стабилизатор на 5В и кварцевый резонатор на 16 МГц.
На нижней стороне текстолита деталей нет:
Принципиальная схема платы:
Функции выводов:
Ну а теперь переходим к практической части.
В своих запасах я нашёл вот такой сенсорный дисплей от панели управления МФУ:
Непосредственно дисплейная часть практической пользы уже не представляет — разрешение матрицы хоть и 640х480, но это CSTN с адовым временем отклика, под который найти готовую плату управления практически нереально, а делать самому на основе ПЛИС бессмысленно. Поэтому ограничимся тем, что отклеим от неё тачскрин:
Он тут резистивный с 4-проводным подключением, представляет собой стекло, на которое наложен многослойный пакет плёнок:
При нажатии они превращаются в набор из четырех резисторов, абсолютные величины которых зависят от расположения точки нажатия:
Обработку нажатий можно выполнять любым микроконтроллером, в котором есть входной АЦП.
Схема программируемой клавиатуры несложна и состоит буквально из 3-4 деталей:
Кроме Arduino и тачскрина нам понадобятся пьезодинамик-пищалка для озвучивания нажатий и желательно разъём для подключения тачскрина — его шлейф обычно плохо переносит пайку. Разъём можно добыть, например, на плате от струйного принтера:
Выпаиваем его из платы:
И припаиваем к Arduino:
Как узнать распиновку тачскрина по расположению электродов:
Прототип программируемой сенсорной клавиатуры в сборе:
Осталось прошить.
После прошивки устройство требует калибровки. В Arduino IDE запускаем монитор порта, к которому подключена плата, и отправляем ей символ «k».
Нас попросят нажать в левый верхний угол тачскрина, потом в правый нижний, после чего полученные значения будут сохранены в EEPROM и на этом калибровка будет завершена.
Расположение тап-зон по умолчанию:
А если серьёзно, то помимо автоматизации постинга сообщений в чатах и на форумах устройство может, к примеру хранить логины, пароли и любые клавиатурные макросы для их ввода одним нажатием.
-
, ,
- 18 августа 2022, 01:26
- автор: oleg235
- просмотры: 9471
Можно больше. Нормально будет, если минимальная область нажатия будет совпадать с площадью нажатия пальцем. А так-то можно и стилусом.
А ещё экран с адовым временем отклика можно было использовать для вывода надписей на кнопках и их смены во время работы.
Можно другой экран взять. Готовый, с лучшим временем отклика и углами обзора. И стоит будет совсем немного.
А ещё емкостный тачскрин можно поставить, будет ещё лучше.
Емкостной тач это отдельная микросхема, управление обычно через I2C (реже SPI) и отдельный выход прерывания.
Резистивный тач, это может быть так же отдельная микросхема тоже обычно SPI и прерывание, но можно и совсем дешево, подключая через аналоговые входы программно изменять координаты.
Поэтому как итог, емкостной тач подключается как и резистивный если это не программная реализация через АЦП у резистивного.
Если клавиатура нормальная то можно часть кнопок переназначить под макросы ( раскладки макросы/Fкнопки переключаются через esc+ctrk В моем случае) 
Либо идете на али и ищете Macro pad, +-1к рублей, никакого колхоза, и у вас на руках удобный и рабочий пад с кучей кнопок. Бонусом идут сьемные кейкапы, можете сделать гравировку со своими макросами, купить кейкапы с отсеком для бумажек ( напечатаете туда красивые картинки), или пойти во все тяжкие и покупать кастомные кнопки, либо печатать на 3д принтере.

Если денег не жалко то есть elgato stream deck, советую сразу идти на авито, мамкины стримеры любят набрать девайсов, и потом ничего не сделав, продавать все за копейки, девайс со скрина на авито от 10к но предлагают торг.
Каждая кнопка имеет маленький экран, можно выводить что угодно, хоть картинку, хоть гифку, хоть мониторинг температуры процессора.

