Wieder ist ein Jahr vorbei und die Vorbereitungen für den Geburtstag sind in vollem Gange. Diesmal soll in die Tischdeko etwas mehr Bewegung kommen.
Für die Vorgeschichte schauen Sie sich am besten das Projekt 11 kurz an. Die Umsetzung der 11 hat Spaß gemacht. Dieses Jahr wollte ich etwas Bewegung in die Sache bekommen.
Und es gibt noch eine weitere Anforderung des Geburtstagskindes: Es muss etwas mit Harry Potter zu tun haben!
Bei den Stichworten Bewegung und Harry Potter viel mir als erstes die Uhr im Haus der Weasleys’s ein, die anzeigt, wann ein Weasley zu Hause ist.
Das Konzept
Das wollte ich so umsetzen, das anstelle der Personen, die Zahlen 1 und 2 aufklappen können. Zum Start sind die beiden Zahlen unsichtbar in der Box. Nach dem Einschalten klappen diese heraus und machen ein paar Bewegungen.
Die Zahlen 1 und 2 für die „12“ bekommen den Look der Schriftart von Harry Potter.
Die Hardware
Die Box habe ich aus 4 Holzleisten – auf Gehrung gesägt – zusammen geklebt. Die Bewegung der Zahlen erfolgt über Servos. Der Einbau war in diesen Fall sehr einfach. Sie wurden nur mit Heißkleber an die Innenwand der Box geklebt.
Die Zahlen und 1 und 2 sind aus Sperrholz ausgesägt und auf die meistens enthaltenen Befestigungsarme der Servos geklebt.
Als Mikrocontroller habe ich einen Arduino Nano gewählt. Die Stromversorgung kommt über eine kleine Powerbank. Beides passt recht gut in die Box und hält auch eine Party lang durch.
Die Software
Damit der Geräuschpegel der Servo’s nicht permanent stört, soll die „12“ in der Endposition bleiben und eine Weile nichts passieren.
Bei meinen einfachen Servo’s nimmt man aber trotzdem ein wenig Rauschen war. Deshalb werden sie bei mir, wenn sie länger in einer Position bleiben, ausgeschaltet.
Dafür gibt es zwei Prozeduren ServosEin() und ServosAus().
void ServosEin() { servo1.attach(PinServo1); servo2.attach(PinServo2); } void ServosAus() { servo1.detach(); servo2.detach(); }
Bewegt wird ein Servo ganz einfach über einen write-Befehl. Dafür habe ich zwei Grenzwerte Oben/Unten definiert.
int PosUnten=12; int PosOben=89; servo2.write(PosUnten); delay(5000); servo2.write(PosOben);
Für ein bißchen mehr Harry Potter Feeling wurde jede Zahl um eine eigene RGB-LED erweitert. So können noch ein paar bunte Blitz-Effekte beim Erscheinen oder Verschwinden eingebaut werden.
void Blinken12(int r, int g, int b, int dauer1, int dauer2) { //Led1 und 2 blinken nach den Vorgaben von dauer1 und dauer2 Led1(r,g,b); Led2(r,g,b); delay(dauer1); Led1(LOW,LOW,LOW); Led2(LOW,LOW,LOW); delay(dauer2); }
Als Farbe für die Box habe ich schwarz ausgesucht. Das war aber schon ziemlich dunkel. Deshalb kamen auf die Vorderseite nochmals 6 weitere LED’s. Jeweils 2 von ihnen werden über einen Pin gesteuert.
Für die LED’s verwende ich einen Lauflicht-Effekt.
void Lauflicht() { for (int i=0; i<4; i=i+1){ digitalWrite(PinLed1, HIGH); digitalWrite(PinLed2, LOW); digitalWrite(PinLed3, LOW); delay(200); digitalWrite(PinLed1, LOW); digitalWrite(PinLed2, HIGH); digitalWrite(PinLed3, LOW); delay(200); digitalWrite(PinLed1, LOW); digitalWrite(PinLed2, LOW); digitalWrite(PinLed3, HIGH); delay(200); } digitalWrite(PinLed3, LOW); }
Ergebnis
Zu den beiden Servo’s 1 und 2 kam noch ein weiterer mit einem Schild „Glückwunsch“ dazu.
Hier finden Sie ein paar Eindrücke:
Oder Sie schauen sich die Animation als Youtube-Video an:
Also Happy Birthday.
Links
Arduino Quellcode projekt12.ino