AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Opensource Lichtsteuerung PC_DIMMER2008
Thema durchsuchen
Ansicht
Themen-Optionen

Opensource Lichtsteuerung PC_DIMMER2008

Ein Thema von christian.noeding · begonnen am 26. Mai 2005 · letzter Beitrag vom 13. Sep 2006
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von christian.noeding
christian.noeding
Registriert seit: 26. Mai 2005
PC_DIMMER2012 - Das Opensource Lichtprogramm


Im Folgenden möchte ich den vor einiger Zeit begonnenen Post zu meinem Opensource-Projekt "PC_DIMMER" aktualisieren, damit in der DP nicht veraltete Informationen herumgeistern Das Projekt ist besonders in den letzten Monaten stark ausgebaut worden, sodass man vom programmiertechnischen einiges Interessantes finden kann. Zudem kann man im Sourcecode von mir etliche Anregungen für eigene Problemlösungen finden.

Der PC_DIMMER2012 ist ein von mir entwickeltes Opensource-Lichtprogramm, mit dem man inzwischen jedes Bühnengerät steuern kann, was der Markt so hergibt. Darunter zählen Bewegtscheinwerfer (Scanner, MovingHeads, etc.), LED-Pars, Stroboskope und vieles mehr.


Hier einmal Stichpunktartig die Funktionen:

- Steuerung von bis zu 8192 Kanälen (16 DMX Universes)
- Unterstützung für DMX512-Sender (über Ausgabeplugins erweiterbar)
- Programmfunktionen über Plugins erweiterbar
- Gerätebasierte Oberfläche. Über eine Skriptsprache können für jedes Gerät eigene Oberflächen in das Programm integriert werden, sodass man gezielt die Gerätefunktionen verwenden kann
- Ein Audioeffektplayer erlaubt das zeitgenaue abspielen einer Lichtshow zu einer Audiodatei ähnlich einem Videoschnittprogramm
- Eine umfassende Befehlssteuerung erlaubt das Steuern von Programmfunktionen aus allen Bereichen der Anwendung
- Eine grafische Bühnenansicht erlaubt das schnelle Einstellen von Bühnenparametern
- Über geometrische Kompensationsverfahren werden Bewegungen von zur Bühne verdrehten Bewegtscheinwerfern kompensiert
- MIDI-, Joystick- und andere Steuerungen werden unterstützt
- Webserver zur Steuerung der wichtigsten Funktionen über das Internet (Szenen, Kontrollpanel, Geräteübersicht, etc.) - für Architekturbeleuchtung sehr interessant


Weitere Informationen findet man unter http://www.pcdimmer.de


Vielen Dank auch an die diversen Leute, die mir hier in der DP mit Rat und Tat geholfen haben - besonders an die vielen anderen Opensource- und Teilquellcode-Schreiber, ohne die mein Projekt nie den heutigen stand erreicht hätte.



PS: die nachfolgenden Posts beziehen sich zum Teil auf die ersten Programmversionen. Inzwischen ist der Sourcecode entsprechend angepasst und modernisiert worden.
Miniaturansicht angehängter Grafiken
pcdimmer2008_785.jpg   pcdimmer_109.png  

Geändert von christian.noeding (14. Jun 2012 um 10:28 Uhr)
 
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#21
  Alt 2. Jun 2005, 17:28
Nachdem ich zum x-ten mal alles durchgegangen bin, habe ich den Fehler gefunden.


Die PowerButton-Komponente hier aus dem Forum hat den Fehler verursacht! Ich werde jetzt mal in den Sourcecode der Komponente reinschauen, was die Komponente alles macht und woran das liegen kann...



dummdidumm, irres Gefühl wenn Fehler plötzlich weg sind *g*


schönen Abend noch!
Christian
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

 
Delphi 10.2 Tokyo Starter
 
#22
  Alt 12. Jul 2005, 20:38
Zitat von christian.noeding:
dummdidumm, irres Gefühl wenn Fehler plötzlich weg sind *g*
Jepp, DAS sind die Adrenalinstöße, die das Programmieren so spannend und schön machen!

mfg, mh166
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#23
  Alt 5. Aug 2005, 23:13
Hi Leute,

nach etlichen Zwischen-Releases habe ich nun wieder eine neue Version des PC_DIMMERs rausgebracht. Also wollte ich das hier mal etwas publik machen. Zwar habe ich es immer noch nicht geschafft, alle Verbesserungsvorschläge aus dem Forum hier umzusetzen, allerdings sind einige neue Funktionen hinzugekommen (Einheitliche Projektdatei, Effekttimeline, Szenenablaufliste, Bugfixes, etc.).

Falls jemand den PC_DIMMER verwendet, kann er die neue Version hier runterladen:
230V 128 Kanal PC_DIMMER v2.1.0.0


Der aktuelle Sourcecode ist noch nicht online, wird aber sicher in den kommenden Tagen passieren.


Die offizielle Homepage liegt wie gehabt hier: http://www.pcdimmer.de



Schönes Wochenende
Christian
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.4 Sydney
 
#24
  Alt 13. Sep 2006, 17:21
Also als Elektroniker der sich schon mal eine 5-kanalige Lichtorgel gebaut hat interessiert mich das Projekt schon.

Also habe ich mir die Schaltpläne mal reingezogen. Was ich da jetzt ganz und gar nicht verstehe: Die gezeigte Schaltung steuert jeweils 8 Kanäle mit einem µProzessor. Gut. Dann gibts da eine vierbittige Adressierung per DIP-Schalter welcher wohl für den µProzessor eine ID von 0 bis 15 vergibt. Auch klar. Also 8x16=128 Kanäle.

Nur was mir aus der Schaltung überhaupt nicht klar wird: Wie bitte soll man, wie auf der Website angegeben, mit einem einzigen COM-Port 128 Kanäle steuern? So wie ich die Schaltung sehe braucht je 8 Kanäle einen COM-Port. Eine Datenübergabe an den nächsten µProzessor sehe ich in der Schaltung jedenfalls nicht. Auch die gezeigten Hardwarelösungen betreiben alle nur jeweils 8 Kanäle.

Also wie kriegt man jetzt 128 Kanäle in Hardware realisiert? Ich hab mal vor vielen Jahren Spezial-ISA-Karten gesehen die über ein Steckpanel 8 COM-Ports lieferten und DOS kannte ja auch die Ports COM1 bis COM9. Aber 16? Gib mir mal nen Schubs wie ich das verstehen soll.
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#25
  Alt 13. Sep 2006, 17:29
Hallo Codehunter,

du kannst tatsächlich mindestens 128 Kanäle mit nur einem Comport regeln. Du musst dir das wie ein Bussystem vorstellen: an einen Comport kommen alle 8 Mikrocontroller dran. Da alle Mikrocontroller jedesmal das gleiche empfangen bekommt jeder eine eindeutige ID, sodass man jeden Controller einzeln ansteuern kann. Somit kann man sogar wie bei DMX ein einziges langes Kabel durch alle Geräte durchschleifen.

Das hat sich in der Praxis bereits sehr bewährt und die Hardware läuft sicher und stabil.

Wenn du weitere Fragen hast, dann steht dir auch unser Forum (forum.pcdimmer.de) zur Verfügung, in dem ich gern alle Fragen beantworte


viele Grüße,
Christian
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.4 Sydney
 
#26
  Alt 13. Sep 2006, 18:12
Also alle 8 Controller (wieso eigentlich jetzt 8? Müßten doch 16 sein oder?) hängen praktisch parallel geschaltet an den RX/TX-Leitungen vom COM-Port? Interessante Idee, ist mir noch nie in den Sinn gekommen.

Aber wenn man das logisch durchdenkt tun sich da zwei Probleme auf. Erstens würde so eine Durchschleifgeschichte in Verbindung mit einem Laptop kaum mit so vielen "Bus-Hosts" funktionieren. Dafür sind die Signalpegel am RS232 eines Laptops zu schlapp weil jede Schaltung die Signalleitung mit 10 kOhm gegen Masse belastet.

Das zweite Problem dürften die Waitcycles sein. Das heißt je mehr "Bus-Hosts" auf diese Weise verschaltet werden, umso träger wird das Ganze. Denn je mehr "Hosts" an dem Bus hängen umso weniger Zeitanteile entfallen pro "Host". Haben denn die µProzessoren einen internen Puffer und reicht die Baudrate um 128 Kanäle so schnell anzusteuern daß sagen wir mal 3 Hz Blinkfrequenz pro Kanal möglich sind?
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#27
  Alt 13. Sep 2006, 18:26
Sorry, ich meinte 16... ich war in Gedanken bei "8-Bit" der Mikrocontroller - warum auch immer *g*

Nun, die 10kOhm gehen ja nicht direkt gegen Masse, sondern nur auf die Basis des Transistors. Die Ströme zwischen Basis und Emitter sind sehr gering und belasten den Comport nur wenig - von daher sind hier keine Probleme zu erwarten. Bislang funktioniert meine Schaltung mit 7 angeschlossenen Geräten einwandfrei. Man könnte natürlich eine Art Signal-Booster verwenden, aber dafür sehe ich noch keinen Grund, da selbst mit meinem USB-2-RS232-Adapter für den Laptop das alles gut funktioniert.

Und ja, alle 16(!) Geräte hängen parallel. Man könnte hier sogar noch weiterausbauen, indem man z.B. statt einer 7-Bit Adressierung eine z.B. 8-Bit Adressierung (255 Geräte) verwendet. Dies wäre lediglich eine kleine Firmwareanpassung (und natürlich dann auch an der Software, obwohl die Hardware auch mit DMX-Software über entsprechende Plugins funktioniert: z.b. DMXControl)


Derzeit läuft die Übertragung mit 115,2kBit/s und damit kann man alle 128 Kanäle recht schnell ansprechen. Natürlich steigt die Zeit mit der Anzahl der Kanäle. So kann ich z.B. 4 Kanäle viel schneller wechseln (ca. 4-7 Hz) als alle 128 Kanäle gleichzeitig (max. 1 Hz), aber das Problem gibt es auch bei DMX *g*

Die µController haben einen internen Puffer. Diese speichern erstmal den kompletten RS232 Rahmen und verarbeiten ihn dann. Somit ist der Bus sofort wieder frei und es kommt zu keinem Datenstau. Eine interne Fehlerkorrektur verhindert falsche Adressierung bzw. fehlerhafte Daten. Allerdings ist derzeit kein Repeating bei Fehlern vorgesehen, sodass bei Übertragungsfehlern der Befehl manuell erneut gesendet werden muss.

Man hat hier also viele Vorteile von einer komplexen DMX Hardware aber kann mit geringsten Mitteln einen Dimmer aufbauen. Von Flimmereffekten bishin zu stundenlangen Fadeins ist hier alles möglich. So nutze ich z.B. den Dimmer auch bei mir im Wohnzimmer über ein Wandpanel


ciao,
Christian.


PS: es werden am Comport nur Änderungen, nicht aber laufend das gesamte Universe (wie z.B. bei DMX) übertragen. Die µController speichern intern die Werte und erhalten nur neue Anweisungen!
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.4 Sydney
 
#28
  Alt 13. Sep 2006, 19:22
Also lassen wir das Problem der Signalpegel auf dem COM mal beiseite, da gibts gute und schlechte Hersteller von UART-Chips. Zur Not halt einen MAX232xxx dazwischen und gut is.

115 kBaud ist ja schon mal recht flott Sollte man die Leitung aber nicht allzu lang machen und sauber verlöten am Stecker.

Wie viele Fade-Stufen hat das System eigentlich? Hab ich irgendwie nicht rausgefunden auf der Website.

Das "Next Big Thing" dürften sicherlich LED-Lichtquellen sein. In der Richtung schläft DMX nämlich derzeit noch den Schlaf der Gerechten Zwar hast du da einen 0..10-Volt Treiber aber das ist eben mit Netzteil, Vorwiderstand und LED auch schrecklich ineffizient. Eine LED dimmt man ja typischerweise auch nicht über die Spannung sondern über das Impuls-Pause-Verhältnis bei konstanter Frequenz. (Ok ok eine Phasenanschnittsteuerung ist das Selbe in Grün, nur ist das halt "schrecklich altmodisch analog" )

In der Praxis würde das dann so aussehen daß man die 230 Volt Netzspannung per Grätzbrücke gleichrichtet, ein oder zwei dicke Elkos dran und dann gehts damit ab in ein Array von Thyristoren. Weil bei LED-Lichtquellen wesentlich kleinere Ströme fließen brauchts hier kaum Kühlung. Allerdings brauchste dann zwischen Thyristor und Lichtquelle ein geschirmtes Kabel. Denn wenn du 300 Volt mit sagen wir mal 50 kHz schaltest und das auf eine 20-Meter-Strippe legst, dann hast nen prima Mittelwellensender

Nur wie müßte dann die Steuereinheit aussehen? Ein Taktgenerator mit steuerbarem Impuls-Pause-Verhältnis. Wenn man den jetzt geschickt konstruiert (diskret mit ein paar Bauteilen und Taktmultiplikator) könnte man den direkt an der Lichtquelle plazieren. Das Ganze bestünde dann aus 4 billigen 1N4148, einem Elko zum Glätten, besagtem Taktmultiplikator der aus den 50 Hz Netzfrequenz gespeist wird und dem Impuls-Pause-Regler. Der müßte idealerweise einen kleinen Puffer haben und einen 8-Bit-Wert verarbeiten. So beschickst du diese Einheit nur jeweils mit einem neuen Datenwert und der behält diesen dann bis zum Eintreffen des nächsten Wertes. So hast dann 256 Helligkeitsstufen.

Vorteil bei dem Verfahren: Du brauchst pro Kanal und Helligkeitsänderung nur ein einziges Byte senden. Dadurch kannst du viel mehr Kanäle deutlich schneller mit Daten versorgen. Und du hast im Leistungsbereich sehr kurze Leitungswege wodurch Störungen auf dem Netz gegen Null gehen.

Stell dir mal eine parallele statt einer seriellen Steuerung vor. Du hast eine 16-adrige Steuerleitung. 8 Bits für die Adressierung, 8 Bits Daten. Macht 256 Kanäle a 256 Helligkeitsstufen mit einer einzigen Word-Variable. Du brauchst keine riesigen Geräte-Kästen mehr wo die ganzen Leistungssteller und Schukodosen verbaut werden. Du kannst da ganz neue Effekte ermöglichen mit so einer affig schnellen Steuerung
  Mit Zitat antworten Zitat
Benutzerbild von christian.noeding
christian.noeding

 
Delphi XE2 Professional
 
#29
  Alt 13. Sep 2006, 19:41
Tja, bislang scheint das ganze bis ca. 100m stabil zu laufen. Das liegt aber mitunter daran, dass ich nur eine Tx-Leitung und keine Tx/Rx-Leitung habe, sodass keine Störungen auf die jeweils andere Leitung aufinduziert werden.

Die Faderstufen sind wie folgt: steuere ich vom Computer den Dimmer per Fader, dann nutze ich (aus Protokollgründen) 128 Schritte (ich habe nur 7 Bit frei). Dimmt der µController selber, dann nutzt er die vollen 256 Schritte aus. Das ist ja das dolle, dass ich dem Controller nur den Endwert und die Zeitspanne übermitteln muss, sodass er dann fröhlich alleine ohne PC vor sich hindimmt

Das mit den Thyristoren an Gleichspannung habe ich überhört... versuche mal die zu löschen. ich glaube du meinst eher MOSFETs, Transistoren, oder IGBTs? Und ich nutze als Gate-Signal für die TRIACs ja ein 100 Hz PWM-Signal. Das kann man ohne weiteres direkt ans Gate eines MOSFETs klemmen. Mit entsprechender SK-Drossel glättet sich der Strom auch gleich ein wenig und die LEDs bleiben etwas länger Leben =) Natürlich könnte man hier auch überlegen, die Frequenz aus Flimmergründen etwas zu erhöhen...


Als Taktgenerator kann man doch wieder einen Mikrocontroller nutzen? der schafft locker ein 20-50 kHz Signal und man kann ihn natlos in den PC_DIMMER BUS einklemmen. Nur warum du jetzt mit paralleler Technik anfangen willst, kann ich nicht ganz nachvollziehen? Ich bin gerade froh, dass das ganze seriell abläuft, da auf diese Weise auf der Bühne die geringste Menge an Leitung nötig ist. Zudem kann man prima die XLR Leitungen nutzen.
Derzeit muss ich auch lediglich ein Byte Adresse und ein Byte Helligkeit übertragen. Die anderen 4 Bytes meines Protokolls enthalten die Informationen für das automatische Dimmen und für Steuerungen, wie z.B. die Adressvergabe per Software oder das Auslesen der µController-Informationen (Frequenz, Firmwareversion, etc.)


Ich werde auch jetzt nicht mit einem neuen Projekt anfangen, da sich der PC_DIMMER durchaus in der Praxis auf der Bühne, wie auch in der Wohnung durchaus bewährt hat


ciaociao!
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.4 Sydney
 
#30
  Alt 13. Sep 2006, 20:04
Das mit der Leitungsmenge ist bei meiner Idee relativ betrachtet auch nicht mehr. Du hast dann mit der Spannungsversorgung weniger Kabelei weil du im Gegensatz zur zentralen Steuerung nicht jeweils ein Stromkabel vom Steuergerät zur Lampe ziehen must. Kannst du ja bequem Mehrfachdosen-Verteiler verwenden da du mit LED-Lampen nur kleine Ströme hast.

Denk das doch mal ein Stück weiter. Du kannst ja wieder einen Bus aufbauen, seriell oder parallel ist doch dir überlassen. Also baust du eine Reihe von kleinen Steuergeräten auf, die jeweils eine 8-adrige Steuerleitung zur Lampe führen. Die Steuergeräte hast du dann direkt im Bühnengerüst hängen.

Mit LED-Lichttechnik wird sich ja einiges grundlegend verändern, die alten Gebräuche bei der Verkabelung eingeschlossen. Ich hab ja sogar schon LED-Module gesehen die Leistungssteller eingebaut hatten inkl. Empfänger für eine Infrarot-Fernbedienung. Dahin wird die Reise gehen: Lampenmodule mit eingebauter Steuerung und direkter Adressierung. Irgendwann gibts dann auch noch WLAN-on-a-Chip und du steuerst den ganzen Laden per WLAN und USB-Stick vom Laptop

PS: Mit dem Thyristor hast du natürlich recht, ich meinte Leistungstransistor.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz