Ich bin gerade dabei die Laser Simulation des Beamertools von zoidberg auf dem Raspberry Pi nachzubauen. Dazu suche ich jetzt Beta-Tester.
Als Voraussetzung sollte man das Beamertool unter Windows kennen und mit DMX Control steuern können. Außerdem sollte man natürlich einen Raspberry Pi besitzten. Am besten noch Grundlagenkentnisse in Linux.
Die LaserSimulation lässt sich über Art-Net steuern, für DMXControl das DDF des Windows Beamertools verwenden. Darum im Moment nur mit DMXControl 2 möglich. Es werden nur png-Texturen unterstützt, keine Videos, keine gif's.
Hier mal der aktuelle Stand was funktioniert:
- Die Lasersimulation empfängt Art-Net Daten auf SubNet 0 / Universe 0
- Es sind im Moment 4 LaserSimulationen fest eingestellt auf DMX Kanal 200, 220, 240 und 260
- Die Lasersimulation sollte dann mit dem laser2.xml DDF die gleiche Ausgabe wie das Windows Beamertool erzeugen.
Außnahme: es werden nur png Bilder angezeigt, keine Videos, gif's damit ist der Animationsregler wirkungslos
der Zoomregler, zoomt im Original abhängig vom Bildschirmseitenverhältnis in eine Elipse, bei mir wird in einen Kreis gezoomt
- Theoretisch, kann man alle Dateinamen von 000.png, 001.png, ..., 255.png vergeben, jedoch reicht der Grafikspeicher des Raspberry Pi in der Standdarteinstellung(64MB) nur für ca. 50 Texturen, abhängig von der Texturgröße, bei 128MB Graphikspeicher entsprechend mehr
Infos:
- für jede nicht gefundene Textur wird im Moment noch die nan.png Textur verwendet, deshalb ist es wichtig die Datei nan.png mit in den Ornder zu kopieren.
- es kann zu Problemen bei der Framerate kommen, wenn man viele Gobos (über Anzahl Regler) verwendet und diese recht groß skaliert
Geschätzte Faustformel: solange Skalierung, Anzahl und Zoom, so eingestellt sind, dass sich keine Gobos überlappen, sollten keine Probleme auftreten. (Überlappung von anderen Laser Instanzen sind hierbei nicht gemeint)
- ich empfehle, das Starten des Programms über ssh, da man es im Moment noch nicht direkt auf dem Raspberry beenden kann (nur durch Stecker ziehen). Über ssh kann man die Lasersim mit STRG+C beenden bzw. über sudo kill ..., außerem kann man so die Ausgabe des Programms beobachten insbesondere die FPS Anzeige.
Fehler /fehlende Funktionen die mir schon bekannt (stehen auf der ToDo liste):
- Mit Tastatureingabe beenden
- Einstellungen in config Datei auslagern
- Quellcode kommentieren und ordentlich formatieren
- effizientere Möglichkeit zum PNG laden
- Graphik Speicher effizienter ausnutzen, dass auch 64MB reichen
- Beenden funktion /Speicher aufräumen anpassen
- Problem beim Empfangen von Paketen: pro Aufruf von recieve wird nur das oberste Paket vom Empfangsstapel genommen aktuelle Lösung nimm solang vom Stapel bis kein Artnet-Packet mehr oben liegt; Problem das bleibt: kommt ein fremdes Paket oder ein nicht DMX artnetpacket verzögert sich DMX empfang um ein Schleifen/Rendering durchlauf bzw. bis wieder nur ArtNet DMX Pakete empfangen werden
- Es kommt sporadisch zu dem Problem, dass bei einer Textur am oberen Rand eine schmale wiederholung des unteren Rands eingeblendet wird
- FPS sinkt ab, wenn viele große Gobos
Bitte schreibt alle weiteren Fehler die ihr finden könnt (plus eventell Funktionswünsche / ausgenommen hiervon sei mal eine Version für DMXControl 3)
Download: lasersim.zip Edit: (neue Version vorhanden, Download im Beitrag unten!)
Installationsanleitung für 2012-12-16-wheezy-raspbian:
Kopiere die Dateien "lasersim.bin" und "nan.png" auf den Raspberry.
z.B. in das Verzeichnis /home/pi/lasersim
erstelle einen Unterordner "textures" für die Texturen und kopiere die Texturen dort hinein. Die Texturen müssen 000.png, 001.png, etc... heißen.
die folgenden Schritte sind am einfachsten im Terminal einzugeben:
die Raspberry Pi configuration aufrufen:
memory-split auswählen und den Grafikspeicher von 64MB auf 128MB erhöhen.
Dieser Schritt ist optional, jedoch kann man, bei nur 64MB Grafikspeicher, nur begrenz Texturen laden.
Ich habe einen Raspberry Pi B Rev.2 also mit 512MB RAM, dort ist es kein Problem, eventuell bei einem Raspberry mit nur 265MB Ram ist es besser nur 64MB zu verwenden, dies kann ich aber leider nicht testen.
in Verzeichnis /opt/vc/src/hello_pi wechseln
rebuild.sh ausführen:
zurück ins lasersim Verzeichnis wechseln
lasersim.bin ausführbar machen
(eventuell sudo voranstellen)
Starten:
Um die Datei im Anhang möglichst klein zu halten habe ich nur eine einzige Textur dazugepackt. Zum Testen habe ich die Texturen aus dem Wiki benutzt. Leider scheint der Link dazu nicht mehr zu funktionieren:http://www.dmxcontrol.de/wiki/Beamertool_Plugin_DMXC2 (ganz unten)
Ich habe nur den Binärcode angehängt, da mein Quellcode im Moment noch ziemlich unkommentiert und leicht caotisch ist. Ich kann diesen aber bei Intresse gerne persönlich zusenden.
mfg
Moritz