Bouw een DIY Photoshop-bedieningsconsole met Arduino Nano RP2040
Onderdelen en benodigdheden
| Arduino Nano RP2040 Connect | × | 1 |
| C&K Switches PTS 645 Series Schakelaar | × | 1 |
| Draaipotentiometer (generiek) | × | 1 |
Apps en online diensten
- Arduino IDE
- Arduino Web Editor
- Arduino IoT Cloud
Over dit project
Een DIY Photoshop-bedieningsconsole maken
Dit project demonstreert hoe je een aangepaste hardware-console maakt die toetsenbordsneltoetsen naar Adobe Photoshop stuurt met een druk op een knop. Door een set tastschakelaars en potentiometers aan te sluiten op een Arduino Nano RP2040, kan de console veelvoorkomende Photoshop-acties activeren — zoals formaat wijzigen, zoomen, en toolselectie — zonder door menu's te navigeren.
Wat is HID?
Human-Interface Device (HID) protocollen staan microcontrollers toe om toetsenborden of muizen te emuleren. Door gebruik te maken van de USB HID-bibliotheek op de Nano RP2040, kan de console toetscombinaties (bijv. Ctrl+T) direct naar de hostcomputer sturen.
Het schema - DIY foto-bewerkingsconsole
Het ontwerp gebruikt vier momentane drukknoppen verbonden met digitale pinnen D2-D5, twee analoge potentiometers op A0 en A1, en een status-LED op pin 13. Het bord wordt gevoed via een USB-voeding, met een spanningsregelaar die 5 V naar 3,3 V omzet om aan de logische niveau van de Nano RP2040 te voldoen.
De PCB is ontworpen in Altium Designer en gefabriceerd door PCBWay. Het uiteindelijke bord is een dubbellaags, 1,6 mm FR-4 layout met alle componenten gesoldeerd aan één kant voor een compacte vormfactor.
De PCB laten maken
PCBWay's online dienst accepteert Gerber-bestanden en biedt snelle afhandelingen voor kleine series. Het proces omvat het uploaden van het ontwerp, het bekijken van de preview, en het voltooien van de betaling. Het resulterende bord arriveert in een afgeronde staat, klaar voor componentenplaatsing.
Arduino-code
Hieronder is een minimaal voorbeeld dat knop-gestuurde sneltoetsen en potentiometer-gebaseerde zoom demonstreert. De code gebruikt de USBKeyboard klasse om toetsaanslagen via HID te verzenden.
#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("Knop 1 ingedrukt");
Keyboard.key_code('t', KEY_CTRL); // Formaat wijzigen
delay(500);
} else {
digitalWrite(ledPin, LOW);
}
if (button2State == HIGH) {
digitalWrite(ledPin, HIGH);
delay(500);
Serial.println("Knop 2 ingedrukt");
Keyboard.key_code('u', KEY_CTRL); // Ongedaan maken
} else {
digitalWrite(ledPin, LOW);
}
if (button3State == HIGH) {
digitalWrite(ledPin, HIGH);
delay(500);
Serial.println("Knop 3 ingedrukt");
Keyboard.key_code('j', KEY_CTRL); // Spring naar laag
} else {
digitalWrite(ledPin, LOW);
}
if (button4State == HIGH) {
digitalWrite(ledPin, HIGH);
Keyboard.key_code('v'); // Plakken
delay(500);
Serial.println("Knop 4 ingedrukt");
} else {
digitalWrite(ledPin, LOW);
}
if ((pot1 >= 750) && (pot1 <= 400)) {
Serial.println("Pot 1 Min");
} else if (pot1 > 750) {
Keyboard.key_code('-', KEY_CTRL); // Uitzoomen
delay(500);
} else if (pot1 <= 400) {
Keyboard.key_code('+', KEY_CTRL); // Inzoomen
delay(500);
}
}
Voel je vrij om de toestoewijzingen aan te passen en debouncing of lang-in-druk-logica toe te voegen om aan je workflow te voldoen.
Testen
Na montage, voed het bord via USB en start Photoshop. Druk op elke knop om te verifiëren dat de verwachte sneltoets in de console-log verschijnt. Pas de potentiometer-posities aan om zoom-gedrag te bevestigen. Eenmaal bevestigd, kun je de console op je bureau monteren en een efficiëntere bewerkingsessie genieten.
Productieproces
- Bouw een DIY Photoshop-bedieningsconsole met Arduino Nano RP2040
- Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
- TeleBall: Retro Handheld Game Console – Bouw Je Eigen Arduino Breakout & Tennis Spel
- Bouw een Handheld Gaming Console met de Arduboy Clone
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Real-time IoT hartslagmonitor met Arduino en MAX30100
- Arduino Nano Bundle: CrazyCircuits, DFRobot Sensoren & Tools – Bouw Projecten met Vertrouwen
- Bouw een betrouwbare infrarode hartslagsensor met Arduino: stapsgewijze handleiding
- Arduino Uno WiFi Webserver: LED aan/uit schakelen via browser
- Bouw een DIY VR-skateboard met Arduino, Google Cardboard en Bluetooth
- Bouw een compacte FM-radio met Arduino Nano en RDA5807M