DIY-CNC-Pendant mit Arduino Leonardo: Günstige HID-Steuerung mit 23 Tasten & Handrad
Komponenten und Zubehör
- Arduino Leonardo (ATmega32u4 – HID-fähig) × 1
- 23× Taster (momentan, mit LED & Beschriftungsfeld) × 1
- 1× Elektronisches Handrad (100 PPR, 6-polig)
- Gehäuse: Mahagoni-Holz (CNC-gefräst), Klarlack
- 1× 1-kΩ-Widerstand pro Taster (Pull-up, 2 mA @ 5 V)
Über dieses Projekt
Ein kommerzielles Pendant für meine CNC-Steuerung (EdingCNC) kostet ~100 € und bietet nur 2 Tasten + Handrad. Eigenbau: 23 Tasten, bis zu 6 Funktionen pro Taste (Single/Double/Triple Click, Hold-Kombinationen), Handrad – und das Gehäuse bleibt beim Drehen stabil auf dem Tisch.
Warum Arduino Leonardo?
Der ATmega32u4 kann als USB-HID (Tastatur/Maus) auftreten. Der PC erkennt das Pendant als Tastatur – Tastendrücke senden Tastenkombinationen (Shortcuts) direkt an die CNC-Software. Kein Treiber, keine eigene PC-Software nötig.
Tastenlogik mit ClickButton-Bibliothek
Die Bibliothek ClickButton.h erkennt pro Taster:
- Single Click
- Double Click
- Triple Click
- Single Click + Hold (≥1 s)
- Double Click + Hold
- Triple Click + Hold
Entprellung (20 ms), Multi-Click-Zeit (250 ms), Long-Click-Zeit (1000 ms) sind einstellbar.
Beispiel: X-Achsen-Taste (Button 13)
if (button[13].clicks != 0) {
switch (button[13].clicks) {
case 1: shortcut_HANDWHEEL_X(); break; // Handrad auf X
case 2: shortcut_ZERO_X(); break; // X nullen
case -1: // Single Click & Hold
press_ESC(); goto_MAIN_MENU(); user_MACRO_18(); // G0 X0
break;
}
}
Gehäuse & Beschriftung
Mahagoni, doppelseitig gefräst (Vectric Cut2D), 36,5 mm Gesamtstärke. Tasterkappen abnehmbar → Poly-Vinyl-Sticker (Laserdrucker) hinter transparenter Abdeckung. Icons aus der EdingCNC-Software entnommen.
Handrad
Standard 60 mm, 100 PPR, 6-polig. In der CNC-Software auf 100 Impulse/Umdrehung einstellen.
Elektronik
Alle Taster an digitale Pins (0–13, A0–A5) mit internem Pull-up (einseitig auf GND). Leonardo-Stromaufnahme ~150 mA (mit Taster-LEDs). USB-Kabel dient sowohl für HID als auch zum Programmieren (Pendant bleibt an CNC-Netzteil angeschlossen).
Wichtige Shortcut-Funktionen (EdingCNC)
| Aktion | Tastenkombination |
|---|---|
| Reset (F1) | KEY_F1 |
| ESC | KEY_ESC |
| Hauptmenü | ALT+F1 |
| Auto-Menü | ALT+F4 |
| Handrad X/Y/Z | CTRL+SHIFT+X/Y/Z |
| Achse nullen X/Y/Z | CTRL+1/2/3 |
| Handrad 1×/10×/100× | CTRL+N/O/P |
| AUX1 (Absaugung) toggeln | CTRL+M |
| Mist (Licht) toggeln | CTRL+L |
Code-Struktur
Der Sketch initialisiert 20 ClickButton-Objekte im Array, aktualisiert sie zyklisch per Update() und ruft bei Klick-Events die entsprechenden Keyboard.press()-Sequenzen auf. Hilfsfunktionen (press_ESC(), goto_AUTO_MENU(), shortcut_HANDWHEEL_X() etc.) kapseln die Tastenkombinationen.
// Kern-Loop (vereinfacht)
void loop() {
for (int i=1; i<=buttons; i++) button[i].Update();
if (button[1].clicks != 0) handleButton1();
if (button[2].clicks != 0) handleButton2();
// ... bis button[20] ...
}
// Beispiel Hilfsfunktion
void shortcut_HANDWHEEL_X() {
Keyboard.begin();
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('x');
delay(100);
Keyboard.releaseAll();
}
Der vollständige Sketch (inkl. aller 20 Tasten-Handler und Makros) ist im Projekt als Download verfügbar.
Fazit
Ein leistungsfähiges, individuelles CNC-Pendant für einen Bruchteil des Preises. Die HID-Methode macht es softwareunabhängig – funktioniert mit jeder CNC-Steuerung, die Tastatur-Shortcuts unterstützt.
Herstellungsprozess
- Der Knopf: Vom antiken Verschluss zur modernen Innovation
- LED-Helligkeit per PWM und Taster am Arduino Mega steuern
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
- DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Selbstbau: Schlagbare, anpassbare Tasten mit Arduino und Piezo-Element
- Osai USA OPENwiTP: Kabelloses Bedienpult für effiziente CNC-Steuerung
- Reset-Taste am CNC-Bedienfeld: Funktion und Anwendung