Von Scott Torborg und Grant Elliott
Update!
Eine detaillierte Dokumentation und Software steht nun in der Download-Sektion bereit!
Prolog
Wir möchten Euch hier eine umfangreiche, jedoch bei Weitem nicht komplette, Schilderung der Idee und der Umsetzung des "First East Disco Dance Floors" geben. Dabei soll es sich aber ausdrücklich nicht um eine fertige Beschreibung oder gar Bauanleitung handeln. Vielmehr sollt Ihr verstehen wie wir auf diese Idee gekommen sind und welche Schritte notwendig waren um sie umzusetzen. Lehnt Euch zurück:
Die Story
Alles hat im August 2004 begonnen, als die neuen First East Frischlinge willkommen geheissen wurden bei einem Abendessen im Bertucci's. Bald kam das Gespräch auf den "Wettbewerb der Schlechten Ideen" (Bad Ideas Competition), der von den Leuten des East Campus Studentenwohnheims jedes Jahr im Januar ausgetragen wird. First East veranstaltet dazu traditionell eine Party, den "Bad Ideas Ball", die den Abschluss dieser Veranstaltung darstellt. Schuyler, einer unserer Mitbewohner, hat vorgeschlagen die diesjährige Party unter das Motto "Disco" zu stellen. Und dabei sollte es genau so sein wie es damals bei John Travolta und Konsorten war (wörtlich gemeint). Inklusive einer beleuchteten Disco Tanzfläche. Die Idee war geboren...
Schuyler's ursprüngliches Konzept waren einzelne Kacheln (2' x 2' = 60cm x 60cm) mit jeweils einer Glühbirne und einem Gel-Pad als Diffusor darunter. Auf den ersten Blick schien das die beste Idee. Ein paar Hundert Dollar und die Sache wäre in einem Tag geritzt gewesen. Natürlich wäe es wohl so ausgegangen, dass die Tanzfläche irgendwann am Ende des Abends zerstört gewesen wäre und einer mit Scherben im Fuss in ein Krankenhaus gekommen wäre, aber das wären vernachlässigbare Schäden, verglichen mit dem Aufwand der notwendig ist um die Idee umzusetzen. Aus irgendeinem Grund wollten, Grant und Scott die ganze Sache wirklich richtig angehen. Eine Sache des persönlichen Anspruchs, wie es scheint...
Wir haben uns mit einigen Ansätzen unter Verwendung von Thyristor-Leistungsstellern (SCR's) oder anderen billigen Schaltmöglichkeiten herumgeschlagen um die jeweiligen Glühbirnen anzusteuern. LEDs hatten wir zunächst aus Kostengründen verworfen. Am Ende des Abendessens haben wir uns zwar nicht konkret auf eine Idee geeinigt, aber wir dachten irgendwas wird uns schon einfallen. In den nächsten Monaten haben wir uns dann mehr oder weniger gelangweilt über die eine oder andere Umsetzungsmöglichkeit beim Schrauben und Löten anderer Dinge unterhalten.
Wie Ihr sicher wisst, ist es nicht unbedingt eine gute Idee sich über etwas nach 3:00 Uhr Nachts zu unterhalten. Es kommt meistens nichts Vernünftiges dabei raus. Aber irgendwann begannen Grant und Scott über eine computergesteuerte Tanzfläche zu diskutieren. Dies war dann letztendlich die schicksalshafte Nacht. Bald wurde schon von der Mischung roter, grüner und blauer LEDs gesprochen. Das war im Nachhinein eine schlimme Nacht(katermäßig), in der schon bald in durchaus respektabel-betrunkenem Zustand der Schrei nach "verschiedenen Schattierungen von Lila" laut wurde. Nach und nach wurden unsere Konzepte ernster und ernster, und wir haben uns mit den Problematiken der technischen Umsetzung befasst. Es war aber noch keiner von uns richtig tief eingestiegen, und daher haben wir auch kein konkretes Ergebnis erwartet, aber je mehr man über unerste Sachen redet, umso ernster werden diese dann irgendwann. Und ehe man sich versieht philosophiert man von USB-gesteuerten Tanzflächen, die Video-Streams abspielen können - und alle die zuhören glauben es sei Ernst.
Also haben wir einige LED Treiber-Chips von Maxim gefunden, von denen wir dachten die wären richtig. Irgendwer hat auch eine Quelle für günstige LEDs aufgetan. Im Weiteren haben wir beschlossen, dass die Kacheln nun doch 6" x 6" (15cm x 15cm) groß sein sollten, was sich als gute Idee herausstellte (einige Zeit hätten lang war der Plan 4" x 4", also 10 cm x 10cm), da wir unseren gesamt Lounge-Boden damit bedecken wollten (12 m²!). Aber so richtig ernst nahm die ganze Sache noch immer niemand und keiner hat daran geglaubt, dass es je etwas werden würde - Auch als wir bereits halb fertig waren.
Das Design
Grant and Scott haben dann irgendwann eine Controller-Platine für 192 LEDs und 64 druckempfindlichen Sensoren (genau wie in Michael Jackson's Billie Jean-Video) zusammengelötet... und das auf einer Platine mit gerade einmal 4" x 5.25" (10cm x 13 cm). Der Atmel Mikrocontroller übernimmt dabei die Drecksarbeit uns sorgt für die Kommunkation zwischen den USB-Daten und der Weitergabe dieser Daten an die LED-Controller. Nachdem jede Platine 64 Kacheln kontrolliert und wir 16x32=512 Kacheln benötigten, brauchten wir 8 Platinen. Wir haben beschlossen, dass jede Platine eine Fläche von a 2'x8' (60cm x 240cm)kontrollieren sollte. (bei 6" = 15 cm Kacheln, wenn Ihr Euch erinnert). Diese Einheit haben wir Module getauft. Naja, aber ehrlich gesagt nennen wir die Platinen selber auch Mal gern Module. Keiner weiss warum; es ist nicht nur dumm, sondern auch in höchstem Maße verwirrend, weil keine genau weiss von was man redet. Aber unterm Strich sind wird froh, dass wir nicht unsere ursprünglichen Bezeichnungen wie Zellen, Module und Meta-Module beibehalten haben. Die unterschiedliche Bezeichnungen haben aber irgendwie die lustigsten Geschichten während der Arbeit hervorgebracht...
Nun aber zum verblüffendsten Teil: Grant and Scott haben über die Winterferien das Layout der Platinen weiterentwickelt und fertiggestellt (Leiterbahnen mit der Hand verlegen ist sonst eine ziemliche Fieselei...). Dann hat Scott Ende Dezember die Bestellung der Platinen in Auftrag gegeben. Nicht zu vergessen, dass die Party für den 24. Januar angesetzt war und die Bestellung gute 2 Wochen Lieferzeit hatte! Also habe wir das gemacht, was jeder gute Entwickler macht: Daumendrücken und gleich einmal 25 Stück bestellen. Für den Fall, dass Ihr es nicht wisst: Bei Platinen in Kleinstmengen ist es egal ob man 8 oder 25 Stück bestellt. Der Preis ist annähernd gleich. Leider wussten wir natürlich nicht, ob die Dinger auch wirklich funktionierten. Wir haben zwar die Leiterbahnen mehrmals überprüft, aber es ist halt schwer alles beim ersten Versuch und dann nur in der Theorie hinzubekommen. Um aber die Spannung rauszunehmen: Es hat funktioniert. Es weiss zwar keiner genau warum, aber lasst uns einfach nicht weiter darüber nachdenken. Haken dahinter.
Die Platinen haben wir bei Advanced Circuits bestellt und sie kamen rechtzeitig an; noch dazu in sehr guter Qualität. In der Zwischenzeit haben wir bei Digikey, Maxim, Jameco, Home Depot, und GE die elektronischen Bauteile bestellt. Dabei lagen wir schon gut doppelt so hoch, wie unser ursprüngliches Budget hergeben sollte. Klingt immer besser die Idee, gell?
Die Konstruktion
Um bei der bisherigen Philosophie des Projekts zu bleiben, haben wir beschlossen es würde den meisten Sinn machen mit dem Bau der Unterkonstruktion erst eine Woche vor der Party zu beginnen. Tatsächlich waren die Meisten von uns die letzten 3 Tagen mit der MIT Mystery Hunt beschäftigt, was uns nicht gerade viel zum Schlafen hat kommen lassen. Naja, nachdem alle Bestellungen rechtzeitig eingetroffen sind, konnten wir also zum angedachten Termin beginnen (dummerweise bekommt man, wenn man bei Jameco 150 Meter Schrupfschlauch bestellt, eben 150 einzeln verpackte 1-Meter-Stücke).
Nun aber zum ersten wirklichen Problem bei unserem Projekt: Die wunderschöne Platine - prima klein, weil alle Bauteile in SMD-Technik aufzubringen sind. Die LED-Chips sind 24 Pin QSOPs. Und QSOPs sind leider verdammt klein. Glücklicherweise hat Mike ein unglaubliches, verstecktes Talent: er konnte zum Schluss einen 24 pin QSOP in einer knappen Minute auflöten... Kein Nachteil, wenn man bedenkt, dass man 128 von diesen Teilen auflöten muss, oder? Mike dürfte damit die Ehre gebühren der Hauptgrund dafür zu sein, dass dieses Projekt wirklich rechtzeitig fertig wurde...
Zwischenzeitlich mussten aber auch 512 Flachbandkabel, mit den LEDs und den Drucksensoren auf der einen und dem Stecker auf der anderen Seite gemacht werden. Das Einfachste wäre dabei gewesen für die Drucksensoren sogenannte Druckempfindliche Widerstände herzunehmen, aber die Dinger sind schweineteuer und wir waren eh schon weit über dem Ursprungsbudget. Also hat sich Grant daran gemacht eine billigere Alternative zu finden. Es hat sich herausgestellt, dass man die weltschlechtesten, aber auch billigsten Drucksensoren aus einem Stück abisoliertem Klingeldraht und Frischhaltefolie bauen kann (wir empfehlen dabei die Packung mit dem Zahnband, um die Folie leichter abschneiden zu können). Nichts desto Trotz, wer schon Mal probiert hat LEDs an freie Kabelenden zu löten, weiss dass es einige Zeit braucht. Nun die hatten wir nicht, dafür aber 1.536 dieser Lötstellen vor uns - ohne die Drucksensoren, ach und ohne die Stecker auf der anderen Seite... Unsere Kabelmacher wurden aber dennoch gerade rechtzeitig fertig. Und nur einer musste zum Arzt, weil die Lötdämpfe seinen Gaumen haben anschwellen lassen. Fragt nicht wie der Doktor geschaut hat. Hier einige Informationen (in Englisch) über bleibedingte Gesundheitsprobleme.
In der anderen Lounge (nachdem wir die Tanzfläche in der Goodale Lounge vorgesehen hatten, galt die Walcott Lounge als eher uncool, aber ehrlich gesagt cool ist weder die eine noch die andere) haben Schuyler und Matt eine kleine Schreinerei mit Kreissäge, etc. aufgebaut. Sie, und Ihre Heinzelmännchen-Arbeitsgruppe, haben gute 6 Tage gebraucht um die Holzrahmen der 8 Module zuzuschneiden und zusammenzubauen. Den 7. Tag haben sie dazu verwendet, nein nicht um zu ruhen, sondern um die Teile der Tanzfläche zu beplanken unter denen sich die Stromversorgung verbirgt, dass sich auch niemand den Knöchel brechen kann.(
Scott hat derweilen versucht den client-seitigen Quellcode, bzw. die Firmware der Module zum Laufen zu bringen. Leider sind wir dabei auf einen Bug im Maxim Datenblatt gestossen, was uns 2 Tage gekostet hat um und die Intensitätssteuerung in den Griff zu bekommen. Obwohl die Maxim Support-Hotline das Problem selbst nicht beheben konnte, möchten wir erwähnen, dass sie dennoch nennenswerte Zeit damit verbracht haben uns zu helfen. Als es Grant endlich gegen 5:00 Uhr morgens hinbekommen hat, haben wir eine kleine Zwischenfeier eingelegt, bei der wir blinkende LEDs in eine Coladose gepackt haben und irgendwelche Oden an die "verschiedenen Schattierungen von Lila" gesungen haben.
Der endgültige Zusammenbau ist erst am letzten Tag vor der Party passiert, nachdem wir sämtliche Bewohner unseres Wohnheims angebettelt haben uns zu helfen. Zum Schluss waren alle Module zusammengebaut und mit den (immer noch nicht zurechtgeschnittenen) Lexan-Platten bedeckt. Blöderweise haben aber nicht alle Module funktioniert. Es stellte sich heraus, dass die Sicherungen Schuld waren. Aber lasst uns nicht davon sprechen; es ist etwas peinlich... Wenigstens haben am Partyabend dann 6...ähh....5...ähh...4...nein, doch wieder 6...der Module funktioniert (#3 und #7 gehen immer noch nicht). Ach, und einige Kacheln haben dauernd geleuchtet. Zudem hat der Code nicht wirklich sauber funktioniert, deshalb mussten 2 Leute mit Laptops den ganzen Abend daneben sitzen um die Module anzusteuern, aber das sind nur nebensächliche Details.
Nichts desto Trotz: In nur einer Woche und einem Tag haben wir eine unglaubliche computergesteuerte Tanzfläche von Grund auf zusammengebaut. Und das zu einem wirklich günstigen Preis
Die letzten Feinarbeiten
Klar, wir hatten die ganze Sache in einer Woche und einem Tag fertig, aber es gab natürlich auch noch weitere Arbeiten die notwendig waren, über die wir uns nicht weiter auslassen wollen. Es wird wohl immer wieder ein Problem auftauchen. Richtig perfekt (Grant ist da ziemlich unermüdlich wegem diesem Perfektionsding) wird es wohl nie, aber durch die fortwährende Arbeit kommen wir diesem Ziel schon sehr nahe. Schaut Euch das Demo-Video an, wenn Ihr's nicht glaubt. Die einzige wirklich größere Veränderung der Hardware bislang war der Austausch der Stromleitungen, sonst nur ein bisschen Löstellen nachlöten und ein paar durchgescheuerte Kabel ausbessern.
Auf alle Fälle war es eine Supererfahrung. Jeder von uns hat einen Haufen gelernt. Wenn auch nur soviel: Bau dir niemals eine Disco Tanzfläche - Es zehrt eine Menge an Lebenszeit. Und zum Schluß noch eine Lehre, die man nicht in der Schule gelehrt bekommt: Wir glauben, dass wir in unserer Wohnheimslounge den coolsten Bodenbelag der Welt haben. Falls nicht, ist es sicher der Komplexeste. Soweit wir aber wissen gibt es niemanden im Internet, der sich eine derart komplexe Tanzfläche zu Hause zusammengeschustert hat. Und es gibt einen guten Grund dafür!
Nachtrag
Wir haben nach der Party natürlich immer noch ein bissl hier und da geschraubt. Scott hat einige Gimmicks geschrieben: eine weitaus stabilere I/O-Bibliothek die pthreads verwendet, ein Plug-in für xmms um Muster und andere Gimmicks zu steuern oder ein Matlab-Script, das ein Array in das spezielle Format der Steurungssoftware bringt. All das kann man im demo movie sehen.
Unterm Strich hat es auf alle eins gebracht: Eine Unmenge an Spaß. Stay tuned für einen möglichen zweiten Teil: Die Disco-TanzflächeTeil 2!