Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Tragbares kapazitives Touch-Piano mit Arduino & MPR121 – Bauanleitung

Benötigte Hardware

Projektidee

Ein kompaktes, tragbares Klavier mit **12 kapazitiven Tasten** (eine Oktave: C–B) auf der Gehäuseoberseite. Der MPR121-Chip erkennt Berührungen zuverlässig. Der Arduino spielt Töne per tone()-Library über den Piezo. **„Geheime“ Tastenkombinationen** lösen vorprogrammierte Melodien aus. Das ProtoStax-Gehäuse schützt die Elektronik und dient gleichzeitig als Tastenfeld.

Aufbau-Schritte

1. Arduino im Gehäuse montieren

Uno in die Base Plate des ProtoStax-Gehäuses schrauben, Gummifüße anbringen. Offener Zugriff für Entwicklung; später Side Walls & Top Plate aufsetzen.

2. MPR121-Shield vorbereiten

3. Gehäuse & Tastenfeld fertigen

  1. MPR121-Shield auf Arduino stecken.
  2. Upper Bracing Elements & Side Walls in ProtoStax einrasten.
  3. **Top Plate modifizieren**: 12 Löcher (ca. 3 mm) per Laser oder Bohrer (Klebeband gegen Rissbildung) im Piano-Layout bohren.
  4. Drähte von unten durch die Löcher führen (Eingang 0 = linkste Taste … Eingang 11 = rechtste Taste).
  5. Drähte zurückschieben, nur Metallspitzen schauen heraus.
  6. Kupferfolienband in Piano-Tastenform schneiden (Vorlage s. unten), abziehen, **leitfähige Klebeseite auf Drahtspitze & Gehäuseoberfläche kleben**.
  7. Top Spacers & Schrauben befestigen – fertig.

4. Demo-Code & Bibliothek

Code-Highlights

Adafruit_MPR121 cap = Adafruit_MPR121();
uint16_t lasttouched = 0, currtouched = 0;
int scale[12] = {NOTE_C4, NOTE_CS4, NOTE_D4, NOTE_DS4, NOTE_E4, NOTE_F4, 
                 NOTE_FS4, NOTE_G4, NOTE_GS4, NOTE_A4, NOTE_AS4, NOTE_B4};

void setup() {
  cap.begin(0x5A); // Default I2C-Adresse
  pinMode(TONE_PIN, OUTPUT);
}

void loop() {
  currtouched = cap.touched();
  for (uint8_t i = 0; i < 12; i++) {
    // Taste gedrückt (steigende Flanke)
    if ((currtouched & _BV(i)) && !(lasttouched & _BV(i))) {
      tone(TONE_PIN, scale[i]); // Note an
    }
    // Taste losgelassen & keine andere gedrückt -> Note aus
    if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) && !currtouched) {
      noTone(TONE_PIN);
    }
  }
  // Geheime Kombos (Bitmaske von currtouched)
  if (currtouched == 0b100010001001) { // C E G B (Bits 0,3,7,11)
    playTune(melody_twinkle, ...);
  } else if (currtouched == 0b000001011101) { // C D E F G
    playTune(melody_scale, ...);
  } // ... weitere Combos
  lasttouched = currtouched;
}

Vorprogrammierte Melodien (Geheimcodes)

Eigene Melodien hinzufügen

Struktur Note { int frequency; float duration; }. Noten als NOTE_C4, Dauer als NOTE_QUARTER etc. (aus pitches.h, noteDurations.h). Dotted Notes via DOTTED(NOTE_QUARTER). Einfach Array definieren & Combo-Bitmaske hinzufügen.

Weiterentwicklungsideen

  1. Eigene Jingles & Geheimcodes definieren.
  2. Zweiter Piezo + NewTone Library (nutzt Timer1) → 2-stimmige Polyphonie.
  3. Zusätzliche Hardware-Taster für **Oktav-Umschaltung** (Shift-Taste gedrückt + Taste = höhere/untere Oktave).
  4. MIDI-Output über USB (Arduino Leonardo/Micro) oder Serial-MIDI.

Vorlage & Schaltplan

Herstellungsprozess

  1. Das Klavier: Von antiken Wurzeln zur modernen Meisterschaft
  2. Mobile Toiletten: Geschichte, Design und Umweltauswirkungen
  3. Spielerklavier: Akustische Tradition trifft automatisierte Präzision
  4. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  5. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  6. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  7. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  8. Arduino Touch Breakout-Spiel: Klassisches Arcade auf 2,4″ TFT LCD
  9. MIDI-Keyboard zum smarten Klavierlehrer umbauen – Arduino, LEDs & MuseScore
  10. DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden