Go Down

Topic: Löung bzw. Ansatz für eine Idee (lampions) (Read 2456 times) previous topic - next topic

MrMiyagi

Hallo,

ich hab da so ne Idee, die ich ganz gerne wenn ich wieder über etwas mehr Geld verfüge realisieren würde.
Die Idee sind Lampions mit rgb-led's die über den Arduino gesteuert werden, nur mit dem Konzept bin ich mir noch nicht ganz sicher.
Am wichtigsten wäre es mir das ich schöne langezogene Lichtiübergänge hab, wie würdet ihr das mach? Ich dachte daran das ich die rgb's
mit PWM ansteure und die eine Farbe heller und die andere dunkler mache.

Was ich mir auch wünsche ist das man mit dem Anschluss der Lampions flexibel recht flexibel ist. ich hatte mir das wie folgt vorgestellt.
Ich habe ein Langes Kabel(vllt. mehrere) das als hauptkabel dient und an jedem Lampion noch ein kabel mit einem Stecker daran.
Und da wo ein Lampion haben möchte kann ich sie einfach an das Kabel anschließen. Und da ist mein Problem, ich weiß nicht ganz wie ich das machen soll, ich dachte an ein I2C - Bussystem der von dem Masterarduino gesteuert wird, und in jedem Lampion sitzt ein Slavearduino der dann die RGB's ansteuert.

Was haltet ihr davon, ist halt so eine Idee wo ich noch Umsetzungsschwierigkeiten habe, und würd mich über Ideen oder Anregungen von euch freuen :)

Gruß Nils.

uwefed

Du mußt viel Geld haben.
I2C hat eine limitierte maximale Länge der Busleitungen. 1-3 meter ohne Extratreiber, 10 mal mehr mit den Treibern.
Du könntest den WS2801 nehmen und ihn mit geringer Busfrequenz betreiben. allerdings müssen alle in sequenz geschaltet werden, was ein flexibles Einhängen über die gesamte Leitung unmöglich macht.
http://arduino.cc/forum/index.php/topic,105202.0.html

Grüße Uwe

volvodani

#2
May 14, 2012, 09:52 am Last Edit: May 14, 2012, 09:58 am by volvodani Reason: 1
Mir fällt da eine Lösung über RS485 ein, ich würde ein DMX512 Bus einsetzten. Professionelle Steuerung und ausgereiftes System
Vorteile:

1. 512 Adressen (je 1 für eine Farbe(max.170 Lampen wenn jede einszeln adressierbar)) 3Adressen pro Lampe oder mehrere Lampen an 1 Block
2. Flexible Leitungslängen bis insgesamt 1,2km
3. Gibt es schon gut ansätze auch hier im Froum und im Web.
4. Master => Adruino (328)
5. Slaves => Arduino auf Attiny 84 (14DIP) (Kann man auch mit Arduino programmiern da Portierungen auf die schon gibt)
6. Kompatibilität zu diversen andern Lichtsteuerungen da DMX512 ein Standard ist.
7. Störungsunempfindlich da diffentieller Bus
8. Kannst auch Sensoren im Feld einsetzten die dem Master daten geben
9. Volle Skalierung also jederzeit erweiterbar
10. Adressen der Lampen an der Lampe einstellbar

Nachteile.

1. Extra benötigt MAX485 oder SN75176
2. Größere Programmieraufwand aber mit libaries gut Abfangbar.

Das ist mein Ansatz.

attiny84 mit ardu: http://hlt.media.mit.edu/?p=1695
DMX512: http://arduino.cc/playground/Learning/DMX

Mehr Info kann ich dir gerne geben (einfach mal PM)

Gruß
Daniel
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Udo Klein

Ich würde mit Google nach einem Hersteller für programmierbare RGB LED strips suchen programmable led rgb strip. Danach würde ich schauen welcher der Hersteller ein Datenblatt hat welches mir genehm ist. D.h. eins bei dem das Kommunikationsprotokoll einfach ist oder schon Open Source Projekte zum verwendeten Steuerungschip auf dem Netz zu finden sind. Dann würde ich die gewünschte Länge bestellen und mir mit dem Arduino eine Steuerung aufbauen.

Die Idee auf der LED Seite mit Controllern selber was zu machen kannst Du vergessen. Was den Preis angeht kann das niemals mit einer fertigen Lösung mithalten. Auf der Controllerseite hingegen ist das nicht so gravierend weil man davon ja nur einen braucht.
Check out my experiments http://blog.blinkenlight.net

mkl0815

z.b. der hier: http://www.watterott.com/de/Digital-Addressable-RGB-LED
Dafür gibt es schon eine Lib für den Arduino. Bei einem Meter hast Du dann 16 Segmente mit je 2 LEDs pro Segment, die aber beide trotzdem unterschiedlich angesteuert werden können.

uwefed

#5
May 14, 2012, 08:05 pm Last Edit: May 14, 2012, 08:08 pm by uwefed Reason: 1

z.b. der hier: http://www.watterott.com/de/Digital-Addressable-RGB-LED
Dafür gibt es schon eine Lib für den Arduino. Bei einem Meter hast Du dann 16 Segmente mit je 2 LEDs pro Segment, die aber beide trotzdem unterschiedlich angesteuert werden können.

Die Vorgabe von MrMiyagi ist, daß er die Leuchtkörper unabhängig und irgendwo auf eine "Stromschiene" einhängen kann. Die Lösungen mit den HL1606, WS2801 oder LPD8806 kommen nicht an die Vorgabe heran da alle diese Treiber wie ein Schieberegister funktionieren. Um mehrere betreiben zu können werden sie kaskadiert und der Daten- bzw  Takt-Ausgang geht auf den Daten- bzw  Takt-Eingang des nächsten. Darum kann eine Reihe nicht dynamisch nach Lust und Laune und Notwendigkeit des Lichts in einem bestimmten Bereich des Raumes plaziert werden.

Diese Vorgabe erfüllt nur ein Bussystem. I2C entfällt wegen der Kabellängen. DMX512 Ist eine Lösung auch wenn, wie Udo sagt, eine etwas Kannonen-Spatzen-schießiges und etwas teuer auch wenn ein ATtiny und ein RS485 Umsetzer und 3 Transistoren pro Leuchtpunkt nicht die Welt sind.

Viele Grüße Uwe

volvodani

Ich dacht nur daran, dann bist du nach allen Seiten hin offen (oder nicht ganz dicht  :D).
Das DMX Protokoll setzt ja nur auf die RS-485 auf. Damit hat man ja die Möglichkeit in alle Richtungen zu senden also auch vom Salve=>Master. Also Evtl. Noch Sensorik dezentral zu platzieren oder ein Domtik"light" aufzubauen.
RS485 ist halt eine Busstruktur die sich weit ausdehnen lässt und universell nutzten lässt. Auf DMX512 bin ich nur gekommen da dies ein Standard in Lichttechnik ist und du dann auch andere "fertige" Hardware nutzten kannst.
:)
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

MrMiyagi

Wow ich bin beeindruckt das schon so schnell so gute Ideen kommen,
also da ich das nicht sofort brauche und ich auch lieber bastle weil man dadurch viel lernt, fällt es weg irgendwas zu kaufen was schon fertig ist.

Ich find das mit DMX512 Bus eine coole Idee wobei ich noch nie mit sowas gearbeitet habe.
Das würde aber genau dem entsprechen, nachdem ich gesucht habe :D.
Ähm warum geht I2C nur 3 Meter und der DMX512 Bus weiter?.
Und wie habe ich mir das vorzustellen, also der DMX512 ist ein Baustein der das Kommunizieren unterainander übernimmt?
Und  für was Brauche ich das hier noch - >MAX485 oder SN75176.

Mit dem Preis für einen Attiny 84 und das was noch dazukommt kommt kann ich leben, hauptsache flexibel :).
Brauch man dann noch extra so ein Programmierboard dafür, oder wie wird der programmiert?
Ist RS485 die Baustruktur des DMX512, oder was ist damit gemeint?

Und was ist Domestic Light?

Oh man ich hoffe das sind nicht zu viele Fragen ^.^, aber schon mal danke für die bisherigen guten Ideen.

Gruß Nils




uwefed

#8
May 15, 2012, 12:38 am Last Edit: May 15, 2012, 12:58 am by uwefed Reason: 1
DMX512 ist ein Protokoll, also Regeln wie die Daten und welche Befehle übertragen werden und wie die einzelnen Teile zu antworten bzw was sie ausführen sollen.
http://de.wikipedia.org/wiki/DMX512

RS485 ist eine Schnittstelle die definiert wie einzelne 1-en und 0-en übertragen werden.  Dazu noch welche Spannungspegel und wie die Treiber auszusehen zu haben.
http://de.wikipedia.org/wiki/RS485

MAX485 und SN75176 sind beides Interface-bausteine die die RS485 Spannungspegel auf TTl bringen und umgekehrt. Es gibt noch viele andere Modelle.

Wenn Du nach "Arduino DMX512" suchst, dann findest Du jede menge Infos, zB http://arduino.cc/playground/Learning/DMX .

Warum I2C nur 3 Meter? Weil das aus den, wie die Signale erzeugt werden, hervorgeht.
I2C verwendet als Ausgang einen open collektor, dh ein Transistor kann die Leitung auf Masse ziehen. So könen gefahrlos mehrere Ausgänge paralell geschaltet werden. Den H-Pegel produziert ein Pullup-Widerstand. Dieser muß den Strom aufbringen um die Leitungs- und Eingangskapazität der I2C Bausteine in kurzer Zeit zu laden um ausreichend schnelle L-H Übergänge zu ermöglichen. Kleisnstmöglicher Pullupwiderstand ist mit 1,2kOhm definiet (hoffe ich erinnere mich richtig, aber auf alle Fälle in dieser Größenordnung) Daraus ergibt siech die maximale Leitungslänge.

RS485 hat als Ausgänge eine Halbbrücke (oder Totempole genannt): ein Transistor der auf High zieht der zweite auf LOW. Es ist immer nur einer der beiden leitend. Die Sender werden, wenn sie nicht senden abgeschaltet (hochohmig) und die Programmierung der Übertragung verhindert, daß 2 Sender aktiv sind. Auf der zweiten Datenleitung wird ein umgekehrtes Signal gesendet: H auf der ersten Leitung und L auf der anderen bzw umgekehrt. Das ermöglicht eine hohe Störsicherheit gegenüber Störungen die in beide Leitungen einstreuen.

Grüße Uwe

daniel3p4u

Hallo,
würde dir auch zu der DMX Variante raten. Ich habe meinen Arduino gerade mit einem SN75176 und dieser Libary zum laufen gebracht http://www.mathertel.de/Arduino/DMXSerial.aspx
Ist wriklich sehr einfach zu programmieren. Dann hast du die möglichkeit Alles mit einem Arduino steuern oder ein DMX Pult zu nehmen. Außerdem kannst du weitere DMX fähige Geräte in die Kette hängen.
Warum das Rad neu erfinden, wenn du ein vorhandenes Protokoll gut nutzen kannst.
Gruß Daniel

MrMiyagi

Hallo,

oke das mit dem DMX hab ich glaub ich verstanden, damit komme ich dann nur bei programmieren mit in berührung oder bzw
mit der bibliothek davon.

Und das mit dem EIA-485 ist quasi wie beim Arduino das UART oder?

Das heißt, das ich mir ein Baustein kaufen muss(MAX485 oder SN75176) und das mit dem Arduino verbinde.
Mit dem Baustein kann ich ja senden und empfangen oder?
Bedeutet, ich brauche für jeden Teilnehmer in meinem System also 1*Master und x*Slave so ein Baustein oder?
Im Internet steht ich kann max 32 Empfänger mit dem EIA-485 wie ist das gemeint ich dachte 512 ^^.

Und wie viele Leitungen brauch man damit Der Bus funktioniert, also Senden und Empfangen?

Gruß Nils :)

volvodani

Das DMX512 ist das Protokoll das einen Adressraum von 512 adressen umfasst. Dies ganze ist auf der Basis der RS485 aufgebaut. Das mit den 32 physikalischen Empfängern. Ein einzelner Treiber kann nur 32 "Slaves" ansprechen. Das was hat mit der Belastung des Busses auf 32 Stationen zu tun (32fach Parrallel Geschalteter Eingangsimpendanz beim "hochen"). Danach ist ein Repaeter notwendig. Aber zwischen den 32 Stationen  kann insgesamt 1,2km liegen.
Du brauchst für jeden Slave und den Master je einen der Bausteine, dieser übernimmt die Wandlung von RS232 => RS485.
Lies die mal die Wiki-Artikel zu RS485 und DMX512 durch dann hast du schon viel Infos.
Der Bus benötigt nur zwei Leitung A + B. mehr nicht es ist ein diffrentielles Signal was die Bausteine auswerten und umsetzten.
Du Brauchst auch eine begleitende Masse . Zwei gemeinsam geschirmte Leitungen reichen aus.
Gruß Daniel
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

uwefed

Quote
Du brauchst für jeden Slave und den Master je einen der Bausteine, dieser übernimmt die Wandlung von RS232 => RS485.

Daniel, stimmt nicht ganz. Das ist eine keine richtige RS232 Schnittstelle sondern eine Schnittstelle mit  RS232 timing aber mit TTL Pegel. Genau eine wie sie der Atmega UART an Pin 0 und 1 hat.

Für die RS485 Schnittstelle brauchst Du nur 2 Leitungen (und keine Masse) und da Du die Module auch noch mit Spannung versorgen willst nochmal 2 für masse und die Versorgungspannung.

Max 32 Empfänger wegen der maximlen Ausgangsleistung des Senders der nicht mehr Eingänge versorgnen kann. Aber wie gesagt gibt es Verstärker (Repaeter). Die 512 ist die Anzahl der möglichen Adressen.
Grüße Uwe


BerndJM

Vieleicht noch zum besseren Verständnis der 32 Empfänger und 512 Adressen:
Ein Empfänger kann mehrere Adressen belegen für verschiedene Funktionen die er auszuführen hat.

z.B. in der Bühnenlichttechnik ein "Moving Head" - also ein Strahler der über Motoren in mehrere Richtungen bewegt werden kann - ist ein Empfänger, benötigt aber je eine Adresse für:
- links/rechts Bewegung
- rauf/runter Bewegung
- Licht an/aus (bzw. Dimmer)
wenn da ein RGB Leuchtmittel drin ist kommt noch jeweils eine Adresse dazu für jede der Grundfarben,
dann braucht nur noch ein Gobo-Rad (die Dinger mit denen man so schöne Muster/Effekte zaubern kann) drin sein, muß dies ja auch über eine Adresse angesteuert werden ebeso wie eine einstellbare Blende usw.

So ein Teil (Empfänger) belegt also round about 8 - 10 Adressen (mit weiteren Sonderfunktionen kanns auch leicht mal das doppelte werden).

Grüßle Bernd
Theoretisch gibt es keinen Unterschied zwischen Theorie und Praxis ...

volvodani

Da kommt ja noch einer von der Stagetechnik  :D.

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Go Up