Créer un bouton clavier personnalisé « frappable » avec Arduino : guide pas à pas
Composants et fournitures
| Composant | Quantité | Notes |
|---|---|---|
| Arduino Micro (ou tout ATmega32U4 : Leonardo, Pro Micro) | 1 | Le port USB natif permet d'être reconnu comme clavier/souris. |
| Élément piézoélectrique (disque piézo) | 1 | Récupérable sur les haut-parleurs de cartes musicales. |
| Résistance 1 MΩ | 1 | Limite la tension/courant du piézo et protège l'entrée analogique. |
| Fils de liaison (génériques) | 1 |
Outils et machines nécessaires
- Matériau spongieux (éponge, mousse)
- Tissu (toute couleur) pour recouvrir l'éponge et l'électronique (coudre une pochette)
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Au travail ou en jouant, n'avez-vous jamais eu l'envie de frapper votre clavier ? Frappez cette touche personnalisable ! Évacuez votre frustration.
Ce projet réalise une touche de clavier « frappable » et personnalisable, composée d'un élément piézo, d'une carte à base d'ATmega32U4, d'une résistance de 1 MΩ et d'éponges.
Pour « taper », l'utilisateur frappe ou tape simplement sur la touche souhaitée.
Matériel requis
Arduino Pro Micro
Basé sur l'ATmega32U4 avec USB natif, reconnu comme souris ou clavier. Toute carte à base d'ATmega32U4 convient.

Disque piézoélectrique
Un piézo génère une tension sous déformation mécanique (vibration, choc, pression). On en trouve dans les cartes musicales. Si vous en avez une, démontez le haut-parleur (tournevis/couteau), retirez la plaque métallique, soulevez le circuit pour accéder au disque piézo.

Résistance 1 MΩ
Limite la tension/courant du piézo et protège l'entrée analogique.

Éponges
L'éponge se déforme sous la force et reprend sa forme au relâchement. Le piézo est placé entre deux éponges : un coup génère une tension lue sur l'entrée analogique de l'Arduino Micro.

Schéma de câblage

Les piézos sont polarisés : fil noir (basse tension) → GND, fil rouge (haute tension) → Pin analogique A0. La résistance 1 MΩ est placée en parallèle sur le piézo.
Fonctionnement
Si la sortie du piézo (capteur de choc) dépasse un certain seuil, la carte exécute une action clavier selon le programme.
Réaliser une enveloppe pour les éponges

Cousez une pochette en tissu pour enfermer les éponges et le circuit. J'ai demandé à ma mère de la confectionner.
Insérer l'élément piézo dans l'éponge

Code
#include <Keyboard.h>
const int knockSensor = A0; // piézo sur pin analogique 0
const int threshold = 100; // seuil de détection
int sensorReading = 0; // valeur lue
void setup() {
Keyboard.begin();
}
void loop() {
sensorReading = analogRead(knockSensor);
if (sensorReading >= threshold) {
// Personnalisez la touche en changeant la valeur ASCII
// https://www.arduino.cc/en/Reference/ASCIIchart
Keyboard.write(32); // 32 = Espace (Space bar)
delay(150);
Keyboard.releaseAll();
}
}
- Câblez selon le schéma et téléversez le code.
- Branchez sur le port USB de l'ordinateur : la touche effectue l'action programmée.
N'oubliez pas de modifier le code pour une autre action clavier.
Changez uniquement la ligne suivante :
Keyboard.write("Valeur ASCII");
Pourquoi c'est cool ? Idées d'utilisation :
- Raccourcis ou commandes de jeu
- Ouvrir une application fréquente
- Accéder à un site web favori
- Raccourcis Windows : enregistrer un document, réduire toutes les fenêtres
- Saisir votre email ou une chaîne courante
- Entrer un mot de passe complexe
- Bouton de panique au travail
Merci de votre lecture ! Pour plus d'infos, commentez, je répondrai avec plaisir.
Bon bricolage !
Code
- customizable_punchable_keyboard_button.ino
customizable_punchable_keyboard_button.ino Arduino
#include <Keyboard.h>
const int knockSensor = A0;
const int threshold = 100;
int sensorReading = 0;
void setup() {
Keyboard.begin();
}
void loop() {
sensorReading = analogRead(knockSensor);
if (sensorReading >= threshold) {
Keyboard.write(32);
delay(150);
Keyboard.releaseAll();
}
}
Schémas
circuit_diagram_dCHo19d2OK.fzz
Processus de fabrication
- Mesurer la qualité de l'air avec OpenSensors : Guide Arduino et Python
- Construire un robot Arduino piloté par Raspberry Pi – Guide pas à pas
- Créer un système Ambilight spectaculaire pour moniteur avec Arduino
- Construire une télécommande IR universelle avec Arduino : Guide étape par étape
- Construisez un Stadiomètre Numérique : Suivez la Croissance avec Arduino et Capteur Laser
- Matrice LED NeoPixel spectaculaire avec Arduino Nano : guide pas à pas
- Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4
- Utiliser une thermistance facilement : Guide étape par étape Arduino
- Construire une Boussole Numérique Temps Réel avec Arduino et Processing