MaJaProL

Aus II-Wiki
Zur Navigation springen Zur Suche springen
Led1.jpg

MaJaProL vorläufiger Arbeitstitel

Hardware

Im Juni 2006 wurde die Arbeit an der Hardware weitestgehend abgeschlossen:

In einem Kabelkanal von rund 12m Länge, der an allen Wänden des Zimmers angebracht wurde, stecken 328 LEDs. Davon ist die eine Hälfte Weiß mit 10.000 mcd und die andere Blau mit 7000 mcd (milli candela). Durch 21 selbst gelötete Module ist man in der Lage jeweils ein gleichfarbiges LED-Paar (macht 164 Paare) einzeln an bzw. aus zu schalten.

Realisiert wird das Ganze über den parrallel Port des Servers. Den nötigen Strom (von bis zu 5 Ampere) liefert ein herkömliches ATX-PC-Netzteil. Netzwerkclienten ermöglichen dann die Steuerung der Deckenbeleuchtung über das Internet.

Die Geschichte der teilweise recht frustrierenden Arbeit kann hier nachgelesen werden: MaJaProL:Hardware

Die Server-Software läuft auf einem 200 MHz Pentium I Rechner, der in einem Koffer verbaut wurde.

Vielen Dank auch an die vielen Helfer

Software

Anforderungen

Belegung der LEDs
  • 164 LED Paare werden angesteuert. Davon ist die eine Häfte blau, die andere weiß. Jedes kann einzeln ein und ausgeschalten werden.
  • die Helligkeit kann durch digitales Ein-und Ausschalten gesteuert werden (theoretisch)
  • Es gibt mehrere Clienten (maximal 128), wobei 2 Typen zu unterscheiden sind:
  • Typ A:
    • kMail (email - Programm)
    • licq (derzeitiger icq client)
    • Skype (VoIP-Client)
    • und andere
  • Typ B:
    • xmms (Linux-Winamp-Klon)


Die Programme des Typs A sollen nur bei bestimmten Ereignissen spezielle Miniclienten ausführen, die dem Server dazu bringen, ein bestimmtes "Leuchtmuster" an der Decke zu verursachen und anschliesend eine bestimmte Status-LED zu aktivieren. (z.B. wenn eine ICQ Nachricht angekommen ist).

Bei Programmen des Types B wird ein andauernder LED-Kommando-Strom an den Server gesendet. Zudem muss für xmms ein Plugin geschrieben werden, was den Programmieraufwand erheblich steigert.

Status

Clienten

Es existiert nun eine C++ Bibliothek, welche alle Funktionen implementiert hat, die zur Kommunikation mit dem Server notwendig sind. Außerdem habe ich einen Beispiel-Clienten gebastelt der zeigt, wie die einzelnen Methoden arbeiten. Alle Infos: MaJaProL:Clients

Mitarbeit ist ausdrücklich erwünscht ;-)


Server

01.07.2007

Mir ist gerade aufgefallen, dass der Server ja genau das tut, was er tuen soll. Und das schon mindestens seit einem halben Jahr. Ich hatte nur vergessen, es an diese Stelle zu schreiben.


25.11.2006

Der Serversimulator ist in Beta 1 fertiggestellt worden. Was noch fehlt: Timeoutbehandlung, Performance (da die Hardware unerwartet sehr schnell geworden ist).

Weiterhin ist ein Visualisierungsclient (Java) in Planung.

24.11.2006

Die Serverversion MaJaProL 1.01 ->>"Gotha"<< (1040 Zeilen C++ Code) steht : TimeOuts werden behandelt. Und erneut gab es einige Bugfixes. Zudem steht Petronios kurz vor der Fertigstellung seines Java Serversimulators. Dazu später mehr.


16.11.2006

Einige Bugfixes wurden durchgeführt.


24.10.2006

Der erste Release Candidate steht: MaJaProL 1.0- >>Eimer<<

  • Er hat den grundlegenden Funktionsumfang (ca 830 Zeilen). D.h. man kann mit ihm über das bekannte Protokoll kommunizieren und somit Leuchtsignale an meine Wand schicken.
  • Leider besitze ich keinen passenden Clienten, um den Server auf seine Funktionstüchigkeit hin zu überprüfen :-( Eine geeignete Clienten-Klasse zu bauen, wird daher meine nächste Aufgabe sein.


22.10.2006

Der Server-Koffer ist soweit vorbereitet. Ein Damn Small Linux auf 200MHz mit voller Intel-Power ;-). Jetzt muss ich nur noch auf die Freigabe vom Admin warten, dann kann der Rechner ans Netz.

Zudem hab ich weiter programmiert:

  • das Auslesen des LED-Vektors und die Darstellung an der Decke ist soweit fertig. Noch diese Woche rechne ich mit der ersten Version des MaJaProL LED Servers - Codename "Eimer" ;-)


01.10.2006

Ich hab jetzt ne Woche lang rumprogrammiert.

  • Was schon geht:
    • Server nimmt alle im Protokoll vereinbarten Packete an
    • Clienten können sich verbinden und erhalten LED-Vektor
    • Clientenseitige Trennung wird vom Server behandelt
    • Server erzeugt nun aus allen Client-seitigen LED Belegungswünschen einen Mastervektor, der dann an der Decke dargestellt werden kann. Dazu wurde Herrn G. Algorithmus implementiert (den wahrscheinlich nur Insider checken)
  • Was noch fehlt:
    • die Timeout-Behandlung
    • die Routinen zum Auslesen des Master-Vektors und der Darstellung an der Decke
    • eine Steuerungsmöglichkeit des Servers
    • ein ausführlicher Test
    • eine Überarbeitung des Codes
    • tausend Kleinigkeiten ... und vor allem viel Zeit und nochmehr Motivation ;-)

Protokoll

Die gesamte LED-Ansteuerung soll über UDP-Packete realisiert werden. Daher soll es einen extra LED-Server geben, welcher ans Internet angeschlossen ist. Durch viel Diskussion mit Herrn G. und F. (Namen sind der Redaktion bekannt) entstand nach und nach dann das Protokoll. Alles Infos dazu finden sich hier: MaJaProL:Protokoll

Danksagungen

Ich bedanke mich schonmal bei

1) Sven für seinen Werkzeugkoffer mit dem vielen bunten Werkzeugs, für die Realisierung der ersten Testschaltung aus dem letzten Semester. Die tausend Fragen die er mir beantworten konnte (und auch weiterhin kann). Und natürlich auch für den ganzen Kleinkram wie Widerstände und öhm, achja seinem Staubsauger vor allem. Und noch vielem mehr (*). Danke, danke ....

(*): Da hab ich ja das Wichtigste vergessen: Er hat die Testschaltung entworfen, die dann die Grundlage für die Gesamte Realisierung war.


2) Meinem Onkel Günter, der mich dazu verleitet hat doch so viele LEDs zu nehmen (ursprünglich sollten es mal 50 sein, jetzt sinds mehr als 4 mal so viel). Und der mir diesen netten 0,03 mm^2 Telefondraht besorgt hat mit dem ich alle LEDs angelötet habe (wenn auch recht schlecht ;-).

3) Meinem Onkel Detlef, der mir über seine Firma den Kabelkanal "gesponsort" hat.

4) Meinem Vater, der mir zwar nicht geholfen, aber dochn paar gute Tips (zwischen den ganzen blöden Sprüchen) gegeben hat ;-)

5) Markus, der mit seinem Osszi tolle Sachen anzeigen konnte und uns so geholfen hat, einen Fehler zu finden, über den ich heute nurnoch lachen kann. Damals hat der mir aber mindestens 2 Wochen Kopfzerbrechen beschert. ... Kondensator in Reihe ...tztz.. * aufreg * Achso und natürlich für sein Logikverständnis, dass ich immerwieder in Anspruch genommen habe um meine Kabelwege und Platinenaufbauten zu optimieren. (Wehe das funktioniert zum Schluss nicht! Aber dann!...... ) Aso, und fürs "drannwürgen" der Kabelkanäle. Achja und für sein Infrarot-Laserstrahl-High-End-SupaDupa-MegaCooles- ... Thermometer. (Hält so'n Kabelkanal eigentlich Temperaturen von über 50°C aus *kopfkratz*).

6) Peter, für sein Netzteil. Und für die "Montage" der Kabelkanäle an die Krummen Wände. Mann, sind die Krumm. Und dann natürlich für die Fehlersuche und Beseitigung der vielen lästigen kleinen Fehler. Daher verleihe ich ihm hiermit den Titel: Debugger des Monats. Glückwunsch ;-)

7) Stefan für seine M3 Schrauben und Muttern.

8) Dem Nachbarn von Sabine (Christian) für das Ausleihen seines Akkuschraubers und der M3 Schrauben.

9) Meinem alten Kumpel Felix für's helfen beim Streichen und dem Bohren der Löcher für den Kabelkanal. Schöne Grüße nach Flensburg ;-)

10) Und alle, die ich vergessen habe. Also diejenigen, die nur lästerten (D.h. sie haben es versucht) ;-)

11) Und natürlich Sabine (meine Ex-Freundin), die in den Semesterferien eine Woche lang zuschauen musste wie ihr Freund Platinen lötet. Und auch kräftig mitgeholfen hat. Und auch immer wieder gesagt bekam, dass ich keine Zeit habe, weil ich das Projekt endlich abschließen will. Und natürlich auch für's Löten des Mainboards.

12) Noch hinzu gekommen: Dem Jan für seinen PC-Koffer und das PC-Hardware-Equipment.

13) Die Liste wird immer länger. Danke auch an Armin für die 6GB Festplatte. Auf das sie sich nie drehen muss. (Wird nur zum Booten und Laden des Linux Systems gebraucht und dann wieder in den standby-Modus geschickt, damit ich schlafen kann.)

14) Dem Christoph W. für die gute 3Com 509B-Combo ISA Netzwerkkarte (die leider nur im Halb-Duplex Betrieb laufen will :-/ ). Aber immer noch besser als garnix.

inoffizieller Teil

Projektname

Dem Projektnamen gingen eine Menge Vorschläge voraus - noch bevor es überhaupt eine verwendbare Hardware gab.

Mittlerweile habe ich folgenden Vorschlag übernommen:

--> Martin Jäger Project Light (MaJaProL) <--


Andere coole Vorschläge waren:

  • everlasting project light
  • neverending project light
  • MaPL (Martins Project Light)
  • Mocrripl (Martins often copied rarely reached impressive project light)
  • MaRoL (Martins Room illumination)
  • Marollp (martin room illumination light project)
  • plinarlp (plinarlp is not a room lighting project)
  • korlp (kick off room lighting project)
  • dfglp (damn fucking good light project)
  • maprol (Martins project light)
  • maprolig (Martins project light)
  • prolig (project light)
  • pLight (project light)
  • MaJaUlProLig (Martin Jägers Ultimative Project Light)
  • upLight (ultimative project light)
  • elpl (el project light)
  • nupplnpl (nuclear powerplant needing project light)
  • plimilp (plimilp is Martin's impressive lighting project)
  • MaJa-II Project (Martin Jägers incredible illumination project)
  • Kunst-Sonnenschein
  • npnpl (nuclear powerplant needing project light)
  • EWL (es werde Licht)
  • oder ganz schlicht: Blinklicht

Fertigstellung

"JackKnack: ich verkünde erneut: In spätestens 20 Tagen wird meine Decke erleuchten"

Zitat vom 23.04.2006 22:53 im #ii04 Channel

Anmerkung: Die Decke wurde im selbstgesetzten Zeitfenster erleuchtet. Nur leider teilweise unwillkürlich. Aber das wird auch noch. Peddersen-->