Создание настраиваемой «бьющейся» клавиши на Arduino: пошаговое руководство
Компоненты и материалы
| Компонент | Количество | Примечание |
|---|---|---|
| Arduino Micro (или Leonardo, любой на ATmega32U4) | 1 | Встроенный USB позволяет эмулировать клавиатуру/мышь |
| Пьезоэлемент (пьезо-диск) | 1 | Можно извлечь из музыкальной открытки |
| Резистор 1 МОм | 1 | Ограничение напряжения и защита аналогового входа |
| Перемычки | 1 набор |
Инструменты
- Губка (пенистый материал)
- Ткань (любого цвета) для обшивки
- Иголка с ниткой для пошива чехла
Приложения
- Arduino IDE
О проекте
Хотите выплеснуть эмоции, не ломая клавиатуру? Сделайте свою «бьющуюся» кнопку! При ударе по ней срабатывает заданное действие клавиатуры (например, пробел).
Необходимое оборудование
Arduino Pro Micro
Основан на ATmega32U4 с встроенным USB — распознается как HID-устройство (клавиатура/мышь). Подойдет любая плата на этом чипе.

Пьезоэлектрический диск
Генерирует напряжение при механической деформации. Можно достать из динамика музыкальной открытки: разберите корпус, извлеките металлическую пластину и печатную плату, под ней лежит пьезо-диск.

Резистор 1 МОм
Ограничивает ток и напряжение от пьезоэлемента, защищая аналоговый вход.

Губки
При ударе деформируются, затем восстанавливают форму. Пьезоэлемент помещается между двумя слоями губки — при ударе генерируется сигнал.

Схема подключения
Пьезоэлемент полярный: черный провод (минус) → GND, красный (плюс) → аналоговый пин A0. Резистор 1 МОм параллельно пьезоэлементу (между A0 и GND).

Принцип работы
Если выходной сигнал пьезоэлемента (как датчик удара) превышает пороговое значение, плата выполняет действие клавиатуры согласно программе.
Изготовление чехла
Из ткани сшивается чехол для губок и электроники (я попросил маму).

Установка пьезоэлемента в губку
Пьезоэлемент помещается между слоями губки внутри чехла.

Код
#include <Keyboard.h>
const int knockSensor = A0; // пьезо на аналоговом пине 0
const int threshold = 100; // порог срабатывания
int sensorReading = 0;
void setup() {
Keyboard.begin();
}
void loop() {
sensorReading = analogRead(knockSensor);
if (sensorReading >= threshold) {
// Замените ASCII-код на нужный (32 = пробел)
Keyboard.write(32);
delay(150);
Keyboard.releaseAll();
}
}
- Соберите схему и загрузите код.
- Подключите к USB-порту компьютера — устройство будет работать как клавиатура.
Для изменения действия замените только строку Keyboard.write(32); на нужный ASCII-код (см. таблицу ASCII).
Идеи для использования
- Геймерские шорткаты или управление
- Запуск часто используемого приложения
- Переход на любимый сайт
- Системные сочетания (сохранение, свернуть все окна)
- Ввод email, пароля или часто используемого текста
- Паник-кнопка на работе
Приятного творчества!
Производственный процесс
- Измерение качества воздуха с OpenSensors: руководство по Arduino и Python
- Создание робота на Arduino и Raspberry Pi: пошаговое руководство
- Создание потрясающей системы Ambilight для монитора на Arduino
- Создание универсального ИК-пульта на Arduino: пошаговое руководство
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Сборка неопиксельной LED-матрицы на Arduino Nano: Пошаговое руководство
- Сборка собственного счётчика Гейгера‑Мюллера на Arduino, HV Boost и LCD 20x4
- Использование термистора: пошаговое руководство для Arduino
- Arduino 64-клавишная прототипная клавиатура: матрица на сдвиговых регистрах
- Цифровой компас в реальном времени на Arduino и Processing