Piano Hack

From Hackteria Wiki
Revision as of 10:38, 18 September 2021 by Tcscheid (talk | contribs) (Vorgehen)
Jump to: navigation, search

go back to Medizintechnik DIY

go back to Team Chihuahua

Auf dieser Seite wird das Vorgehen beim Piano Hack genauer erläutert. Ausserdem sind hier alle Dateien Open Source zu finden, sodass dieser Hack leicht nachgebaut werden kann.

Vorgehen

Minipiano1.jpg

Zunächst wurden sieben Tasten auf dem Breadboard befestigt. Diese wurden anschliessend wie auf dem Bild (links) mit dem Arduino verbunden. Es wurden die Anschlüsse D4 - D10 auf dem Arduino genutzt. Der Ton C wurde dabei mit dem Pin D10 verbunden und der Ton B mit dem Pin D4. Die Reihenfolge der Tonleiter ist: C, D, E, F, G, A, B. Der Lautsprecher wurde mit dem Pin D11 sowie dem Ground (GND) verbunden.

Der Code, den wir leicht abgeändert und für unser Piano genutzt haben ist im Kapitel Open Source Dateien zu finden.

Nun musste nur noch das Arduino mit dem Laptop verbunden und das Programm gestartet werden und schon funktionierte die erste Version unserers Pianos.

Für das Gehäuse wurde in einer Datenbank eine Datei für ein Klavierflügel gesucht und mit dem Lasercutter ausgeschnitten. Die Datei ist im Kapitel Open Source Dateien zu finden. Damit die Tasten auch gedrückt werden konnten, mussten einige Anpassungen bei dieser Datei gemacht werden. Beispielsweise wurden sieben kleine Quadrate ausgeschnitten, in welche die Tasten später eingesetzt wurden. Weiter mussten zwei Schlitze in den Boden gemacht werden, damit die Kabelführung funktioniert. In den Seitenrahmen wurde der Teamname eingeritzt und auf der Rückseite wurden 3 Löcher gemacht für einen USB-B Anschluss, einen Einspeiseanschluss sowie für ein LED-Licht. Diese abgeänderten Dateien sind im Unterordner Änderungen durch Team Chihauhau zu finden.

Open Source Dateien

Arduino Code

Dies ist der Code den wir leicht abgeändert und für unser Piano genutzt haben:

//Arduino Piano
/*

Visit the Channel for more interesting projects

https://www.youtube.com/channel/UCks-9JSnVb22dlqtMgPjrlg

*/

#define T_C 262
#define T_D 294
#define T_E 330
#define T_F 349
#define T_G 392
#define T_A 440
#define T_B 493

const int C = 10;
const int D = 9;
const int E = 8;
const int F = 7;
const int G = 6;
const int A = 5;
const int B = 4;

const int Buzz = 11;
const int LED = 13;

void setup()
{

  pinMode(3, OUTPUT); // LED an Pin 3 

  pinMode(LED, OUTPUT);
  pinMode(C, INPUT);
  digitalWrite(C,HIGH);
  
  pinMode(D, INPUT);
  digitalWrite(D,HIGH);
  
  pinMode(E, INPUT);
  digitalWrite(E,HIGH);
  
  pinMode(F, INPUT);
  digitalWrite(F,HIGH);
  
  pinMode(G, INPUT);
  digitalWrite(G,HIGH);
  
  pinMode(A, INPUT);
  digitalWrite(A,HIGH);
  
  pinMode(B, INPUT);
  digitalWrite(B,HIGH);

   digitalWrite(LED,LOW);
}

void loop()
{
   // LED immer an (PIN 3)
   digitalWrite(3, HIGH);
   
  while(digitalRead(C) == LOW)
  {
    tone(Buzz,T_C);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(D) == LOW)
  {
    tone(Buzz,T_D);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(E) == LOW)
  {
    tone(Buzz,T_E);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(F) == LOW)
  {
    tone(Buzz,T_F);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(G) == LOW)
  {
    tone(Buzz,T_G);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(A) == LOW)
  {
    tone(Buzz,T_A);
    digitalWrite(LED,HIGH);
  }

  while(digitalRead(B) == LOW)
  {
    tone(Buzz,T_B);
    digitalWrite(LED,HIGH);
  }

  noTone(Buzz);
  digitalWrite(LED,LOW);

}


Lasercutter

Die folgende Datei haben wir aus einer Datenbank und mit dem Lasercutter ausgeschnitten: File:Piano_3mm.svg

Änderungen durch Team Chihuahua

Die folgenden Dateien wurden leicht abgeändert, damit sie für unser Prototyp geeignet sind.

File:Piano Schlitz.pdf File:Piano Tasten.pdf File:Rahmen.pdf

Piano Beleuchtung

Für die Beleuchtung verwendet wurde ein HL3 1209 310144 von Lumitronix.

Die Stromversorgung wurde direkt von der 12 V DC Speisung abgegriffen. Das bedeutet also auch, dass die LED Beleuchtung dur dann funktioniert, wenn das Piano über die 12 V Speisung betreiben wird.