Construire une console de contrôle Photoshop DIY avec Arduino Nano RP2040
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Nano RP2040 Connect | 1 |
| Interrupteur tactile C&K PTS 645 Series | 1 |
| Potentiomètre rotatif (générique) | 1 |
Applications et services en ligne
- Arduino IDE
- Arduino Web Editor
- Arduino IoT Cloud
À propos de ce projet
Fabriquer une console d'édition Photoshop DIY
Ce projet montre comment créer une console matérielle personnalisée qui envoie des raccourcis clavier à Adobe Photoshop par simple pression d'un bouton. En câblant un ensemble de commutateurs tactiles et de potentiomètres sur un Arduino Nano RP2040, la console peut déclencher des actions courantes de Photoshop – redimensionnement, zoom, sélection d'outils – sans naviguer dans les menus.
Qu'est-ce que HID ?
Les protocoles Human-Interface Device (HID) permettent aux microcontrôleurs d'émuler des claviers ou des souris. En tirant parti de la bibliothèque USB HID sur le Nano RP2040, la console peut transmettre des combinaisons de touches (ex: Ctrl+T) directement à l'ordinateur hôte.
Le circuit – Console d'édition photo DIY
Le design utilise quatre boutons-poussoirs momentanés connectés aux broches numériques D2–D5, deux potentiomètres analogiques sur A0 et A1, et une LED d'état sur la broche 13. La carte est alimentée par l'USB, avec un régulateur de tension qui abaisse 5 V à 3,3 V pour correspondre au niveau logique du Nano RP2040.

Le PCB a été conçu dans Altium Designer et fabriqué par PCBWay. La carte finale est un double face, 1,6 mm FR-4 avec tous les composants soudés d'un seul côté pour un format compact.
Fabrication du PCB
Le service en ligne de PCBWay accepte les fichiers Gerber et offre un délai rapide pour les petites séries. Le processus consiste à télécharger le design, vérifier l'aperçu et effectuer le paiement. La carte arrive finie, prête pour le placement des composants.

Code pour Arduino Nano RP2040
Voici un exemple minimal qui démontre les raccourcis pilotés par boutons et le zoom par potentiomètres. Le code utilise la classe USBKeyboard pour envoyer des frappes via HID.
#include <PluggableUSBHID.h>
#include <USBKeyboard.h>
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
const int ledPin = 13;
USBKeyboard Keyboard;
int button1State = 0;
int button2State = 0;
int button3State = 0;
int button4State = 0;
int pot1 = 0;
int pot2 = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
Serial.begin(9600);
}
void loop() {
button1State = digitalRead(buttonPin1);
button2State = digitalRead(buttonPin2);
button3State = digitalRead(buttonPin3);
button4State = digitalRead(buttonPin4);
pot1 = analogRead(A0);
pot2 = analogRead(A1);
if (button1State == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Bouton 1 appuyé");
Keyboard.key_code('t', KEY_CTRL); // Redimensionner image
delay(500);
} else {
digitalWrite(ledPin, LOW);
}
if (button2State == HIGH) {
digitalWrite(ledPin, HIGH);
delay(500);
Serial.println("Bouton 2 appuyé");
Keyboard.key_code('u', KEY_CTRL); // Annuler
} else {
digitalWrite(ledPin, LOW);
}
if (button3State == HIGH) {
digitalWrite(ledPin, HIGH);
delay(500);
Serial.println("Bouton 3 appuyé");
Keyboard.key_code('j', KEY_CTRL); // Aller au calque
} else {
digitalWrite(ledPin, LOW);
}
if (button4State == HIGH) {
digitalWrite(ledPin, HIGH);
Keyboard.key_code('v'); // Coller
delay(500);
Serial.println("Bouton 4 appuyé");
} else {
digitalWrite(ledPin, LOW);
}
if ((pot1 >= 750) && (pot1 <= 400)) {
Serial.println("Pot 1 Min");
} else if (pot1 > 750) {
Keyboard.key_code('-', KEY_CTRL); // Zoom out
delay(500);
} else if (pot1 <= 400) {
Keyboard.key_code('+', KEY_CTRL); // Zoom in
delay(500);
}
}
N'hésitez pas à adapter les mappages de touches et à ajouter une logique anti-rebond ou de pression longue selon votre flux de travail.
Test
Après assemblage, alimentez la carte via USB et lancez Photoshop. Appuyez sur chaque bouton pour vérifier que le raccourci attendu apparaît dans la console série. Ajustez les positions des potentiomètres pour confirmer le comportement du zoom. Une fois validé, vous pouvez fixer la console sur votre bureau et profiter d'une session d'édition plus efficace.

Processus de fabrication
- Construire une console de contrôle Photoshop DIY avec Arduino Nano RP2040
- Créer un système Ambilight spectaculaire pour moniteur avec Arduino
- TeleBall : Console de jeu rétro portable DIY (Arduino Nano) – Breakout & Tennis à deux
- Construire une console de jeu portable Arduboy DIY (Arduino Micro + PCB)
- Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
- Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
- Robe Connectée : Surveillance du Rythme Cardiaque et LEDs avec Arduino Nano, CrazyCircuits et DFRobot
- Construire un Capteur de Rythme Cardiaque Infrarouge Fiable avec Arduino : Guide Étape par Étape
- Serveur Web Arduino Uno WiFi : Commander une LED via Navigateur