Vorstellung meines Weihnachtsprojekts

  • Hallo zusammen, ich möchte Euch hier mein LED-Projekt vorstellen, das ich rechtzeitig zu Vorweihnachtszeit 2008 fertiggestellt habe. Vorab ein kleines Video dazu:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Es handelt sich dabei um 15 Plastikkugeln mit 70mm Durchmesser, die nebeneinander hängen.
    Sie werden von einer zentralen Steuereinheit via DMX mit Daten gefüttert.
    In Jeder Kugel steckt eine kleine platine mit DMX-Empfänger-IC und AtTiny2313 Mikrocontroller zur Aufbereitung der Daten. Desweiteren noch ein ULN2003 als Treiber für je eine R, G, B 5-Chip-100mA-Superflux LED aus China (Bisher keine Ausfälle), sowie jede Menge Heisskleber als Diffusor.


    Hier ein Foto der Platine:


    Das ganze Huckepack mit den LED:


    In so einer Plastikkugel:


    Gesteuert wird das ganze von einem AtMega16 Mikrocontroller, der den anzuzeigenden Inhalt von einer SD-Karte bezieht und via DMX an die Kugeln sendet.
    Verwendet habe ich dabei Dieses Experimentierboard: http://heldt-intern.dyndns.org…32-644-experimentierboard.
    Wie man sieht noch "quick and dirty" verkabelt, auf einem formschönen Holzbrettchen ;)



    "abgespielt" werden 24-Bit Bitmap-Dateien, erstellt mit einem beliebigen Bildbearbeitungsprogramm. X-Achse z.B. 15 Pixel für 15 Kugeln, Y-Achte der zeitliche Verlauf der Farben. Eine diagonale rote Linie im Bild erzeugt also einen wandernden roten Punkt, usw.


    Sagt mir doch was Ihr davon haltet, und vielleicht ist es ja eine Anregung für den ein oder anderen?


    Ich überlege auch, das ganze evtl. irgendwie zu vermarkten, hat da jemand Erfahrungen/Anrgungen/Meinungen dazu?


    Danke fürs zuhören ;)


    Andre

  • Moin!


    Hätten nicht die ATTiny2313 das DMX-Signal nicht mit auswerten können? Die Tinys haben ja sonst nicht viel zu tun, ausser der PWM, oder?


    Es gibt sowas ähnliches in dne USA zu kaufen: Triklits Jedenfalls erinnern mich deine Kugel an deren ;)


    Dort erledigt die Arbeit aber ein PIC ...

  • Hmm, interessant, das Teil aus Den USA ist tatsächlich quasi das gleiche! Kannte ich vorher noch nicht! Und unschlagbar günstig isses auch noch :rolleyes:


    gekostet hat mich das ganze ~200 EUR (incl. einiger Fehlversuche und überschüssigen Teilen...)
    Platinen fertigen lassen (selbermachen ist wegen doppelseitig durchkontaktiert für mich ausgeschieden), Controller, LEDs, Kleinkram, Kabel, netzteil...


    Das DMX-Signal ist ein differentielles Signal mit abstrakten Pegeln (soweit ich weis), dazu ist ein Demultiplexer erforderlich um ein TTL-Signal draus zu stricken...


    Ja, die Tinys haben sonst nix zu tun, kleinere (tiny25 oder so) hättens sicher auch getan, aber der Preis ist ja quasi der gleiche...


    Alle beteiligten Controller hab ich selber programmiert. Am meisten Lerneffekt/Arbeit steckt in der Implementierung des FAT16-Filesystems für die SD-Karte...


    Viele Grüße
    André

  • Du hattest weiter oben von dem Datenbezug aus einer bitmap datai gesprochen.Kann ich mir das wirklich als eine Bilddatai vorstellen, die wie ein Diagramm x-Y achse hat und du da eine Kurve eingetragen hast, die der Atmega 16 auslesen kann?


    Ich dachte immer, das man dort nur Zahlen/Buchstaben auslesen kann und nicht gerade eine linie.


    Wärme mal interessant finde ich wenn du da drüber mal 2 worte verlieren könntest.


    MfG

  • Hmm, da hab ich mich wohl etwas missverständlich ausgedrückt...


    der Controller nimmt eine Zeile aus dem bitmap und gibt sie aus. Die erste Kugel nimmt sich das erste Pixel (24 Bit Farben) und leuchtet in exakt Dieser Farbe, die zweite Kugel nimmt das Zweite Pixel, und so weiter, bis die ganze reihe leuchtet wie die erste ZEILE des Bildes.


    Nach 40ms (25 Frames/s) wird dann die zweite Zeile des Bitmaps ausgegeben.


    usw...


    somit ist quasi die X-Achse die Ortsachse, und die Y-Achse die Zeitachse


    Hier mal ein Bild, wie sowas aussehen kann (Ist glaub ich sogar ungefähr das vom Anfang meines Videos)
    img0001.bmp


    Der Vorteil am Bitmap-Format ist, das man es im Prinzip lesen kann wie ein Buch, es stehen genau die Pixel nebeneinander in der Datei (Aus unerfindlichen Gründen von unten nach oben).


    Eine Diagonale im Bild erzeugt also einen räumlich und zeitlich wandernden "Fleck"


    Zugegeben habe ich etwas geschummelt, denn ich hatte zuerst ein anderes, von mir erdachtes Datenformat (Im Prinzip ähnlich dem .bmp, aber eben nur ähnlich). Dann war die Firmware für den Controller fertig, und mir kam die Idee mit den Bitmaps... Deshalb hab ich ein kleines Programm für den PC geschrieben, das die Bitmaps in das andere Format konvertiert...
    Das hat auch Vorteile, denn ein Bitmap kann laut Konvention nur ~65.000 Pixel hoch sein. Bei 25 Zeilen pro Sekunde entspricht das gerademal einer Dreiviertelstunde "Videomaterial"... Und außerdem war das RAM im Mega16-Controller zu knapp, um das Bitmap zu verarbeiten...


    Viele Grüße
    André

  • Wenn man sich deren Seite anschaut, findet man deren Schaltplan usw...
    Eignetlich kein schlechtes Produkt, aber pro String waren nur 24 Kugeln möglich. Man kann zwar mehrer String zusammenschalten, braucht dafür aber ein Extragerät. Und die verwendeten LEDs sind alles andere als gut. Farbmischung ist ganz okay (außer das alle Farben auf max nicht weiß ergeben), aber die Leuchtkraft ist alles andere als überragend... :thumbdown:


    Ich habe mal sowas wie die Triklits mit AVRs nachgebaut... Habe auch Tiny2313 verwendet, da die eine Serielle Schnittstelle haben... gesteuert habe ich das mit einem Mega8... das Projekt ist aber irgendwann eingeschlafen... :| Aber so ein tolles Farbsteuerprogramm per Bild hatte ich nicht!


    Aber wenn du mir verrätst woher du die Kugeln hast und welchen Durchmesser die haben, würde ich mich nochmal dran machen...

  • Aber wenn du mir verrätst woher du die Kugeln hast und welchen Durchmesser die haben, würde ich mich nochmal dran machen...


    http://www.euro-matic.de/


    Hab lange gesucht, bis ich passende und bezahlbare Kugeln gefunden habe...


    100 Stück 70mm kosten dort ~30 EUR, hab aber auch noch knapp 100 davon übrig *g*
    Wenn Du welche brauchst, sag bescheid!


    Die sind allerdings nicht sooo arg diffus, weswegen ich auch jede Menge Heisskleber verwendet habe...


    Hmm, die Länge meines Systems ist nur von der Datenrate des RS485-Busses abhängig... wenn man 25 Frames/Sekunde anstrebt, kann man gut 300 Kugeln adressieren...
    Allerdings misst man bei meinen knapp 9 Metern Länge schon einen Abfall des 5V-Pegels auf ~4,6V, man sollte die Versorgungsspannung also irgendwann neu einspeisen, um konstante Helligkeit zu erreichen...

  • Hmm... schick mir mal eine PM mit deiner Preisvorstellung. Ich wäre an 25 oder 50 Kugeln interesiert!


    Ich habe das Problem mit dem Spannungsabfall auch gehabt und habe es gelöst, indem ich jedem Modul (Kugel) einen Spannungswandler spendiert habe! Ich kann nach Länge mit 6 bis 80V arbeiten, wobei 80V zuviel sind und mir da nach kurzer Zeit die Spannungswandler abrauchen würden! Aber laut Datenblatt ;)

  • Oha die 5 Chip SF hatte ich als Sample von nem Chinesen bekommen. Nach paar Tagen war schon die erste Tod da die extrem heiß werden (zu heiß)


    Ich habe Deinen Thread dazu gelesen, ja!
    Ich hatte allerdings noch keine Ausfälle, da meine zum einen nicht permanent an sind (nur Abends, und da auch nicht jede Farbe dauerhaft), und zum zweitenstecken die Köpfe bei mir in reichlich Heisskleber (== Diffusor), können also über das Gehäuse Wärme abführen.


    Ich habe aber noch ein paar von denen, werde mal einen Dauertest machen! unter welchen Bedingungen hast Du Deine getestet? frei schwebend, oder uf Platine gelötet? Alle 4 Beinchein? Viel Kupfer?


    Viele Grüße
    André

  • :thumbup: Respekt! :thumbup:


    Sehr schönes Projekt und vor allem die Art der Farbsteuerung über das Bitmap finde ich genial. Da kann man sich wenigstens bei der Programmierung was drunter vorstellen wie es mal aussehen wird.


  • Ich habe aber noch ein paar von denen, werde mal einen Dauertest machen! unter welchen Bedingungen hast Du Deine getestet? frei schwebend, oder uf Platine gelötet? Alle 4 Beinchein? Viel Kupfer?

    Nur auf ne Lochrasterplatine gelötet und sie schmoren lassen (100mA), alles andere wäre ja langweilig und für mich auch nicht praxisgerecht gewesen. Kann gut sein, dass deine Aufgrund der größeren Kühlfläche halten. Bei 4 Chip SF (80mA) hab ich in der Bauform auch keine Probleme.


    Grüße

  • Hi André,


    lustige Sache! - einen Markt für sowas gibt es bestimmt, ich denke da jetzt aber weniger an Consumer, für die ist das "zu kompliziert" mit DMX und so, für die ist sowas wie das Triklits besser geeignet...


    Sowas wäre interessant für Discos, Bars, etc. als Dekolicht, da ist ja meistens eh' schon DMX vorhanden (e:cue o.ä.) - gibt's ja auch von diversen Herstellern so Dinger, hier in Regensburg z.B. baut einer sowas als DMX-Modul für HP-Leds, er hat aber auch so runde ø 60 mm Platinen, auf denen 9 RGB-SMD-LEDs drauf sind mit einem DMX-Empfänger zusammen....


    Auch das ColorKinetics oder PepperoniLight PEPledDot ist sowas in der Art, aber als Kette mit automatischer Adressierung...


    Lustigerweise baue ich sowas auch gerade (Kette mit 30 Leuchten)... also wie bei Flabig über TTL, der Tx des einen Tiny mit dem Rx des nächsten verbunden (oder war das bei Dir auch ein Bus...?) - das mache ich so, um mir den Bustreiber zu sparen, sonst müsste ich auch zweiseitig machen, die Platine ist nur 25 x 25 qmm groß:



    Auch bei mir mit Spannungsregler, die LEDs bekommen ca. 12 Volt, der µC daraus stabile 5 Volt...


    Des weiteren wird das so programmiert, dass jede Leuchte sich die ersten 3 Byte "weg"nimmt, und den Rest weiterschickt - dadurch spare ich mir, in jede Leuchte eine feste Adresse einzubrennen, also eben "automatische Adressierung"... den SuFlu-Cluster, der da drauf kommt, stelle ich heute noch in's Forum... das sollen so kleine RGB-Leuchten werden, die man dann z.B. auch in ne Kugel (dachte da an Papier-Lampions) stecken kann oder sonstwas damit machen....

    Das DMX-Signal ist ein differentielles Signal mit abstrakten Pegeln (soweit ich weis), dazu ist ein Demultiplexer erforderlich um ein TTL-Signal draus zu stricken...

    Hm, ja, das ist etwas "seltsam" ausgedrückt - "abstrakte Pegel" - wie gesagt, es ist "differentiell"/symmetrisch, also entweder liegt Data+ auf 5 Volt und Data- auf 0 Volt, oder umgekehrt...


    Das Teil da drauf ist aber kein "Demultiplexer" - so wie ich das sehe ist das ein Bustreiber, um eben TTL-Pegel draus zu machen, die *Verarbeitung* des DMX-Signals geschieht natürlich im Tiny (nehme mal an, mit der Routine, die Du in dem anderen Thread gepostet hast...?). Adressen sind da fest "eingebrannt", nehme ich an...?


    Tiny25 scheidet leider (ausser großer Aufwand) aus, von dem her: Du brauchst nen stabilen Takt, um das serielle Signal ordentlich auswerten zu können - daher der Quarz... ich hatte auch schon an nen Tiny25 gedacht, und Quarzoszi dazu, aber das ist zusammen dann größer als Tiny2313 + Quarz :D - funktionieren *könnte* es, wenn man den internen Taktgeber kalibriert, irgendwann mal werde ich das auch noch versuchen... evtl. deutlich langsamere Übertragung, dann *könnte* es auch so gehen...

    Hmm, die Länge meines Systems ist nur von der Datenrate des RS485-Busses abhängig... wenn man 25 Frames/Sekunde anstrebt, kann man gut 300 Kugeln adressieren...

    Aber dann mit nem eigenen Protokoll, die 512 DMX-Kanäle reichen da nicht mehr... 8o ;)

    Allerdings misst man bei meinen knapp 9 Metern Länge schon einen Abfall des 5V-Pegels auf ~4,6V, man sollte die Versorgungsspannung also irgendwann neu einspeisen, um konstante Helligkeit zu erreichen...

    Ausserdem das RS-485-Signal puffern/repeaten - normal sollen ja nur 32 Empfänger an so nen Bus...


    Sehr interessant finde ich die Programmierung über ein Bitmap, das ist sehr schön gelöst! :thumbup: - bei mir war jetzt erst mal ne Steuerung über gewöhnliche Lichtsteuer-SW geplant, wie bei meinen Deko-Säulen auch schon...


    Vor diesem SD-Card-Zeug, Bitmap auslesen usw. bin ich immer zurückgeschreckt, da es mir extrem kompliziert erscheint - hast Du da evtl. Links dazu, wo das etwas erklärt wird..?


    Weil interessant wäre das für mich auch: Die Lichterkette kann man ja z.B. auch als 5x6-Matrix anordnen - da wäre es sehr gut, die Animationen einfach am PC als 5x6-Pixel-Bilder zu erstellen und auf eine SD-Card zu speichern, der µC spielt die dann einfach der Reihe nach ab....

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hey!



    Lustigerweise baue ich sowas auch gerade (Kette mit 30 Leuchten)... also wie bei Flabig über TTL, der Tx des einen Tiny mit dem Rx des nächsten verbunden


    Hmm, über welche Distanzen soll das gehen? Würde jetzt nicht drauf wetten das der Tx-Pin das sauber und ordentlich macht, habs aber noch nie ausprobiert...
    Bei mir hat jede Kugel nen SN75176 als Empfänger drin...


    Zitat von Pesi


    den SuFlu-Cluster, der da drauf kommt, stelle ich heute noch in's Forum... das sollen so kleine RGB-Leuchten werden, die man dann z.B. auch in ne Kugel (dachte da an Papier-Lampions) stecken kann oder sonstwas damit machen....


    Bin gespannt! ;)


    Zitat von Pesi


    Das Teil da drauf ist aber kein "Demultiplexer" - so wie ich das sehe ist das ein Bustreiber, um eben TTL-Pegel draus zu machen, die *Verarbeitung* des DMX-Signals geschieht natürlich im Tiny (nehme mal an, mit der Routine, die Du in dem anderen Thread gepostet hast...?). Adressen sind da fest "eingebrannt", nehme ich an...?


    Alles korrekt, hatte mich da ungenau ausgedrückt ;)


    Zitat von Pesi


    Tiny25 scheidet leider (ausser großer Aufwand) aus, von dem her: Du brauchst nen stabilen Takt, um das serielle Signal ordentlich auswerten zu können - daher der Quarz...


    Stimmt, die 8-Bein-tinys haben keinen Anschluss fürn Quarz! Noch ein Grund mehr für den 2313!


    Zitat von Pesi

    Aber dann mit nem eigenen Protokoll, die 512 DMX-Kanäle reichen da nicht mehr... 8o ;)


    Hehe, genau, deshalb hab ich extra RS485 geschrieben *g*
    Aber von der SD-Karte lesen und DMX-Break senden braucht auch noch Zeit, also 300 ist eine optimistische Schätzung...



    Zitat von Pesi


    Ausserdem das RS-485-Signal puffern/repeaten - normal sollen ja nur 32 Empfänger an so nen Bus...


    Außer man nimmt einen von den teureren MAX48x (x=3 oder 5 glaub ich) statt des uralten SN75176, die haben nur 1/4 oder 1/8 Load, dann dürfen ganz offiziell 128 oder 256 Empfänger an den bus!
    Wirf mal nen Blick ins Datenblatt, da stehts genauer drin! Weniger Stromverbrauch haben die glaub ich auch noch, kosten aber deutlich mehr...


    Zitat von Pesi


    Sehr interessant finde ich die Programmierung über ein Bitmap, das ist sehr schön gelöst! :thumbup:


    :D Danke! Is nem Kumpel von mir bei nem Bier eingefallen!


    Zitat von Pesi


    Vor diesem SD-Card-Zeug, Bitmap auslesen usw. bin ich immer zurückgeschreckt, da es mir extrem kompliziert erscheint - hast Du da evtl. Links dazu, wo das etwas erklärt wird..?


    Schau mal hier: http://www.mikrocontroller.net/topic/48481#new
    Ist ein entsetzlich langer Thread, aber steht alles recht weit vorn drin was man wissen muss, also welche Kommandos über SPI an die Karte, etc...
    ie Infod über FAT16 hab ich mir von Wikipedia gezogen, von wegen in welchem Sektor was wo steht, MBR, VBR, etc... *gähn*


    Zitat von Pesi


    die Animationen einfach am PC als 5x6-Pixel-Bilder zu erstellen und auf eine SD-Card zu speichern, der µC spielt die dann einfach der Reihe nach ab....


    Klar, kein Ding! Musst halt beim auslesen des Bitmaps etwas mehr Hirnschmalz inverstieren, und einen Controller mit mehr ls 1K SRAM nehmen ;)
    Oder eben - wie ich - das Bitmap am PC parsen.


    Viele Grüße
    André

  • Hey, danke für die Infos! - den Thread lese ich mir heute abend mal durch.

    Hmm, über welche Distanzen soll das gehen? Würde jetzt nicht drauf wetten das der Tx-Pin das sauber und ordentlich macht, habs aber noch nie ausprobiert...

    Ist ja nur ne Punkt-zu-Punkt-Verbindung, von einer Leuchte zur nächsten, ca. 1 Meter - das sollte schon gehen... probier' ich natürlich vorher aus

    Außer man nimmt einen von den teureren MAX48x (x=3 oder 5 glaub ich) statt des uralten SN75176, die haben nur 1/4 oder 1/8 Load, dann dürfen ganz offiziell 128 oder 256 Empfänger an den bus!

    Der Neni empfiehlt aus diesem Grund immer den SN65HVD06, den hab' ich aber noch nicht zum Bestellen gefunden - ist bei mir halt auch ne Preisfrage, jede Leuchte nochmal 1,60 Euro teurer (MAX485 bei Reichelt)....

    Klar, kein Ding! Musst halt beim auslesen des Bitmaps etwas mehr Hirnschmalz inverstieren, und einen Controller mit mehr ls 1K SRAM nehmen ;)
    Oder eben - wie ich - das Bitmap am PC parsen.

    Hm, aber bei mir wäre das ja nur ein .bmp mit 5x6 Pixeln á 24 Bit - das sollte doch nicht so ne Riesen-Datei sein...? - da wär's ja ein .bmp pro "Szene", also nicht wie bei Dir die komplette Animation in einem Bild....

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Schönes Projekt, Hut ab :) . Und die Bitmap-Steuerung ist auch ne schöne Idee. Zweidimensionale Konstrukte könnte man ja auch mit ner Sequenz von einzelnen Bitmaps (ähnlich den animierten GIFs, nur das GIFs nur max. 256 Farben enthalten können und komprimiert sind; gibt's eigentlich auch animierte PNGs?) ansteuern.


    Den SN65HVD06 gibt's übrigens bei http://www.mouser.com (nur SOIC an Lager) oder http://www.digikey.de (SOIC und DIP an Lager) für 2,38 resp. 2,39 € pro Stück. Die Staffelpreise sind aber dann deutlich geringer bzw. nehmen sehr schnell ab. Die Vorteile sind ähnlich wie bei den MAXen neben der höheren Anzahl Knoten (bis 256) auch eine Fail-Safe-Architektur, welche auch in Idle-, Shorted- und Open-Zuständen des RS485-Busses noch einen definierten High-Pegel am Ausgang liefert, so dass dabei dann keine 'falschen' Start-Bits auftreten.


    Gruss
    Neni


    Edit: Seh gerade, dass das mit der Bitmap-Sequenz ja schon von Pesi so angesprochen worden ist ;) .

  • Ich verwendete einen Bus für die Steuerung, wobei die Tinys bei mir nur empfangen konnten. Dadurch bräuchte ich nur 3 Kabel.
    Jeder Tiny hatte min 2 Adresse, eine eigene und eine Globale um die ansteuerung einfacher zu machen. Theoretisch waren beliebig viele Adresse für einen Tiny denkbar um so einfacher Muster erstellen zu können. Aber für einen Strang dürften es nicht mehr als 255 sein.
    Ein Spannungsabfallproblem hatte ich auf der Datenleitung nicht. Ich hatte es mal mit einem 30m Kabel probiert und es funktionierte! Nur für die Spannungsversorgung waren 12V vorgesehen, die dann mit einem Spannungregler runtergeregelt worden sind!

  • Ja, mit 12V Spannung fällt der Kabelverlust sicher geringer aus!


    Allerdings kam das bei mir nicht in Frage, da ich je Farbe nur eine LED pro Kugel betreibe, und die Verlustleistung in den Vorwiderständen zu groß gewesen wäre, und für Schaltregler war kein platz/Geld...


    GIFs und PNGs sind etwas unangenehm zu verarbeiten, da dort ein Kompressionsalgoritmus eingesetzt wird, die Dateien lassen sich nicht so schön "lesen" wie Bitmaps...


    Bei mir hängt jede Kugel an 4 Kabeln, VCC, GND, DMX+ und DMX-. Da sie Kugeln aber nicht allzu schwer sind, musste ich geringe Kabelquerschnitte nehmen, daher wohl auch die Verluste...


    Das mit der Bitmapsequenz geht natürlich auch!Stichwort "Filmstreifen"-Datei!


    Viele Grüße
    André