Beiträge von Pepe_1981

    Hallo,


    wie der Titel schon verrät wollen mein Kollege und ich heut unser letztes Projekt vorstellen.


    Youtube-Video


    Es ist keine Hexenwerk sondern „nur“ ein POV-LED-Globe in RGB Ausführung. Mit anderen Worten: 40 RGB-LEDs drehen sich lustig im Kreis und erzeugen dabei bunte Bilder auf einer Kugeloberfläche. Das Ganze gibt es zur Genüge in Form von sog. Propeller-Clocks und dergleichen, als Globus findet man aber nur wenige Ausführungen und diese dann zumeist monochrom.


    Die Ansteuerung ist recht simpel. Ein ATMEGA328 füttert insgesamt 15 Shieberegister vom Typ 74HC595 mit Daten. Das Ganze passiert 200-mal pro Umdrehung. So entsteht eine virtuelle Matrix mit einer Auflösung von 40x200 Punkten. Damit das Bild still steht (genauer: damit es sich mit programmierbarer Geschwindigkeit dreht) muss die Startposition der Matrix bei jeder Umdrehung synchronisiert werden. Diese Geschieht über eine Infra-rote LED und eine im infra-roten sensitive Photodiode. Letztere erzeugt dann pro Umdrehung einen Hardware-Interrupt auf dem µC.
    Wie gesagt, das Ganze ist kein Hexenwerk, aber der Teufel steckt wie immer im Detail. Die mechanische Ausführung ist wirklich nicht ohne. Wir brauchten zwei Versuche bis wir beim Einschalten des Gerätes keine „Angst vor herumfliegenden Teilen“ mehr haben mussten. Die Einzelverdrahtung von 40x3=120 LEDs mit je einem separaten Kupferlackdraht ist auch nicht ohne.


    Zu guter Letzt aber noch ein kleines Feature als Alleinstellungsmerkmal: Normalerweise werden POV-Geräte über zwei Timer im µC zum Leben erweckt. Ein Timer bestimmt die aktuelle Drehzahl, der zweite realisiert die Sektorzeit. Wir kommen bei diesem Projekt gänzlich ohne Timer aus. Letzter könnten also für andere Sachen verwendet werden, z.B. eine PWM innerhalb eines Sektors, aber das hat noch Zeit für kommende Updates …
    Mehr Infos, Schaltplan und Layout sowie Firmware werden wir in den nächsten Tagen auf unserer Project-Page zur Verfügung stellen.


    In diesem Sinne beste Grüße,



    Pepe


    PS: Bitte seht es mir nach wenn ich diesen Beitrag in umgeänderter Form auch bei Microcontroller.net reinstelle. Ich weiß immer noch nicht so recht wir groß die Schnittmenge zwischen letzterem und diesem Forum ist. Zudem freut man sich ja über jeden Click und jeden Kommentar :)

    Hallo,


    in die Foam-Board-Platten haben wir für jede einzelne LED 4 Löcher à 0.7mm mit dem Drehmel gebohrt. Dann die LED eingefädelt. Bereits das reicht für guten Halt. Man kann das Board umdrehen ohne dass die LED herausfällt. Dann werden auf der Rückseite die Beinchen um 90° gebogen. Das gibt nochmals zusätzlichen Halt.


    Die Ping-Pong-Bälle haben wir mit einem Drehmel und einem konischen Schleifsteinaufsatz auf ca. 6-7 mm aufgebohrt, einen Tropfen Sekundenkleber um das Bohrloch verteilt und einfach auf die LED aufgesetzt.


    Beste Grüße,


    Pepe

    Hallo und Schande über mein Haupt.


    "In den nächsten Tagen ..." hatte ich vor einer ganzen Weile geschrieben "werden wir den Code ins Netz stellen."


    Leider kommen im Leben immer so viele Dinge dazwischen und aus ein paar Tagen werden viele Wochen ... Aber was lange werd' ... Hier nun der fertig auskommentierte Code (ganz unten auf der Seite)


    https://sites.google.com/site/…jects/Modular-Plasma-Wall


    Die LED's sind von http://www.led-dealer.de --> 5mm --> diffus -- gem. Minus. Sau-billig und mit einer Ausfallquote von exakt 0.0 !!


    LG,


    Pepe

    Hallo,


    die Software die am PC läuft wurde mit der Entwicklungsumgebung "Processing" geschreben. "Processing" ist quasi der große Bruder von "Arduino" nur eben für PC-Anwendungen.


    Die Anoden der LED's sind spaltenweise über einen verzinnten Kupferdraht von 0.25mm verbunden (würde auch dünner gehen, aber dann wird's mechanisch nicht so stabil). Die Kathoden sind zeilenweise über einen 0.75mm verzinnten Kupferdraht verbunden, da diese ja den Strom von bis zu 24 LED's im whorst case abführen müssen.


    Von der Matrix zum Treiber-Board geht dann Standard-Fachbandkabel weg an dessen Ende eine Pfostenbuchse sitzt.


    Ich glaube rein rechnerisch könnte das Falchbandkabel für die Kathodenleitungen zu sogar noch zu schwach sein aber in der Realität haben sich bisher keine Probleme gezeigt!


    Beste Grüße,


    René Heller

    echt super gemacht! - gute Idee auch das mit den Tischtennisbällen, sieht richtig nett aus


    Besten Dank! Als stiller Leser über die letzten 6 Monate hier im Forum konnte ich (insbesondere in Deinen Beiträgen) sehr viel lernen und in das Projekt einfließen lassen!


    wird es sich da wohl auch um nen Arduino handeln...?


    Genau so sieht's aus! Von den ganzen netten Makros die die Arduino-IDE so mit sich bringt ist aber quasi nix benutzt worden. Die Funktionen machen zwar gerade Anfängern vieles einfacher und verhelfen zu raschen Erfolgen (zumindest war es bei mir so), aber wenn es um Ressourcen geht merkt man sehr schnell wieviel Overhead in den vorgefertigten Funktionen verloren geht.


    Ihr habt praktisch pro Modul ne Matrix 24x8, die 32 Leitungen kommen aus 4 Schieberegistern...? - sind dann praktisch 32 Bit pro Matrix, Ihr habt 8 Matrixen, sind 256 Bit für das ganze Panel ... gemultiplext wird dann 8 mal, 216 Farben sind 6 PWM-Stufen pro LED (also 5 Segmente) - macht dann praktisch 10.240 Bit die man rausschieben muss für einmal durchmultiplexen mit PWM...


    Exakt formuliert und ausgerechnet!


    rechnet man nun mit 100 Hz Refresh, damit's nicht flimmert, dann wäre das praktisch 1 Mbit/s Datenrate zur Ansteuerung - oder habe ich mich nun irgendwo verrechnet..?


    das ist ja kein Problem, kann man über den HW-SPI ja locker rausschieben


    Auf 100Hz schaffen wir es nicht und auch die HW-SPI schafft das nicht. Sie kann zwar locker 1MBit, aber das gilt nur für die eigentliche Übertagung. Die Berechnung jedes Bytes würde zu kompliziert ablauften bei dieser Art der Datenübertragung. Oder besser formuliert: Ich habe auch nach mehreren Nächten Programmierung keinen Weg gefunden alle Schieb-Register seriell über SPI zu füttern und dabei auf eine annehmbare frame rate zu kommen.


    aber man hat dann bei 16 MHz Prozessortakt nur 125 Takte, um jedes Byte zu "berechnen"...


    OK, gut, ein Byte (das für die aktive Zeile) ist ja bei jeder Matrix gleich und ändert sich auch während eines PWM-Zyklus nicht - aber ich glaube gerne, dass das ne Herausfordrung war, das alles so timing-mäßig hinzubekommen...


    Wie schon gesagt, genau da liegt der Hase im Pfeffer! Schön das jemand das so auf die Schnelle erkennt und zu schätzen weiß! :)


    Des Problems Lösung sie wie folgt aus (ob es die beste Lösung ist weiß ich aber nicht, zumindest funktioniert sie):


    Die Matrix aus 4x2 Segmenten wird in zwei Hälften zerlegt, eine obere Reihe 4x1 sowie die unterer Reihe 4x1.Jede Reihe entält 16 Schieberegister. Diese werden aber NICHT seriell beschalten / beschrieben.


    Vielmehr hängen "nur" die 4 Schiebe-Register für die Farbe Rot in Reihe, die vier für Grün, vier für Blau und vier für die Zeilen. Damit gibt es in jeder der beiden Teilmatrizen 4 Datenleitungen also insgesamt 8. Diese gehen zum Atmega! Die CLOCK, LATCH, ENABLE und RESET-Leitungen ALLER Schieberegister sind parallel geschaltet und gehen auch noch zum Atmega. Damit benötigt man insgesamt 12 Pins am Atmega.


    Mit einem (natürlich selbst generiertem) CLOCK-Puls kann man nur die daten an 8 Leitungen parallel rausschicken und die Berchung der aktuellen Zusände die an den 8 Datenleitungen anliegen müssen vereinfacht sich auf einen einfachen Vergleich zwischen zwei Zahlen (Mux-Counter und Farbwert an der akuellen Matrixposition)!! :)


    Das ist der ganze "Trick" an der Sache.


    Ich werde in den nächsten Tagen den Code auf unserer Projekt-Seite online stellen (wenn ich ihn gescheit kommentiert habe), da ist das was ich hier in Prosa geschrieben habe bestimmt etwas besser zu ersehen. Seit heute stehen aber schon ein paar sehr übersichtliche Schemata sowie die Schaltpläne und Layouts auf unserer Seite die ich erstellt habe um den Mechanismus etwas zu verdeutlichen. Das Ganze wie gesagt auf unserer Seite (https://sites.google.com/site/arduinodiyprojects/Home) unter "Modular Plasma Wall". Für die die nicht suchen wollen hier der Direktlink zu den Plänen:


    https://picasaweb.google.com/e…Z_5RQ#5588821706565406978



    es gibt direkt aus China z.B. so "RGB-Lichterketten" mit einem WS201 oder TM1804 pro RGB-LED


    Ja, von den WS2801 habe ich auch ne Stange hier rumliegen, das war quasi der erste Vorversuch. Ich habe auch einzelne "Pixel-Patinen" entwurfen, ähnlich den Deinen. Funktionierte prima aber der Ätzaufwand für 512 solcher Teile hatte uns dann doch sehr abgeschreckt.


    Von den fertigen Pixeln aus dem Reich der Mitte habe ich auch ein paar hier aber die wurden aus "Mangel an Eigenleistung" verworfen :)




    was hat das Ganze denn gekostet, habe ich nicht gefunden... ich baue gerade was ähnliches, dabei festgestellt, dass das Ganze drumherum (bei mir die Kabel und Kugeln, Montagematerial etc., bei Euch wohl die Tischtennisbälle etc.) dann leider immer gleich nochmal so viel kostet wie die Elektronik selbst...


    Die Gesamtkosten für das Projekt liegen bei ziemlich genau 500 EUR. In der Tat sind es die vielen kleinen Dinge in Bezug auf Mechanik und Verkabelung die die Kosten immer wieder in die Höhe treiben. Aber ein Hobby ist nunmal erst dann ein Hobby wenn man es übertreibt!


    Die Tischtennisbälle gibt es übrigens ganz günstig bei http://www.gunstigepreise.com/ 240 Stück unbedruckt für unschlagbare 29.99 EUR !!



    Das muss so sein!


    Unterhopfen ist die häufigste Ursache für Fehler beim Basteln! Daher empfiehlt es sich immer zu zweit zu arbeiten und sich gegenseitig zu reichlich Flüssigkeitsaufnahme zu ermahnen!


    In diesem Sinne beste Grüße,


    Pepe

    Hallo und besten Dank für die positiven Kritiken!


    Zu den Fragen:


    - die Sound-To-Light-Berechungen (und auch alles andere was vom Rechner kommt) macht ein kleines Programm, dass ich in der (kostenlosen) Programmierumgebung "Processing" realisiert habe. "Processing" schickt dann auch die Daten über seriell raus.


    - Wenn Du nur 20 Byte rausschieben willst und 20 Frames pro Sekunde haben möchtest kommst Du locker mit einer Baudrate von 9600 aus!!! Ein Knackpunkt dabei ist aber der Windows-API gleich ein Array aus Bytes zu übergeben und NICHT (wie auch ich es anfänglich tat) Byte für Byte (Dann hat man nämlich unglaublich viel Overhead und es wird richtig langsam).


    Mehr Infos gibt's in Kürze auf unsere Projekt-Page!


    Beste Grüße,


    Pepe

    Hallo liebe Forenmitglieder!


    Bisher war ich nur als stiller Beobachter in diesem Forum unterwegs und konnte viele Sachen lernen! Jetzt habe ich mit meinem Kollegen selbst ein Projekt in Angriff genommen welches ich hier kurz vorstellen möchte.


    Viele von euch werden sicher auch bei µController.net unterwegs sein und haben die Projektvorstellung vielleicht schon gesehen. Bitte seht es mir nach wenn ich den Text von da einfach hier hinein kopiere.



    ... mein Kollege und ich haben endlich unser Langzeitprojekt einer
    "modularen Plasmawand" fertiggestellt und möchte es euch nicht
    vorenthalten:


    http://www.youtube.com/watch?v=yzCAcbA51A0


    "Modulare Plasmawand"!? Klingt komplizierter als es ist. Prinzipiell
    handelt es sich um mehrere (8 Stück an der Zahl) 8x8 RGB-Matrizen die zu
    einer großen Wand vereinigt sind. Jedes Segment hat eine eigene PCB die
    nicht mehr als 4 Schieberegister 8 Transistoren und 8 Widerstände
    enthält. Die Daten werden seriell von PCB zu PCB über Cat6-Kabel
    übertragen.


    Klingt nicht sonderlich spannend!? Die selbstgesetzte Herausforderung
    für dieses Projekt bestand darin eine Gesamtmatrix von 512 RGB LEDs,
    d.h. physikalisch 1536 Einzel-LEDs mit einem einzigen 8bit µC zu steuern
    und dabei noch genügend Reserve zu haben um PWM für jede einzelne LED
    und jede einzelne Farbe zu realisieren. Viele von euch kennen sicher die
    vielen tollen Videos der DMX gesteuerten "Groß-Matrizen" bei der zumeist
    ein FPGA sein bestes tut. Wir wollten das mit einem einfachen ATMEGA 328
    im DIP-gehäuse schaffen!


    Was soll ich sagen es ist ganz gut gelungen. Wir schaffen 216 Farben pro
    LED bei einer Framerate von 20 fps. Zudem bleibt noch genug Kapazität um
    wahlweise Daten vom PC über UART zu empfangen oder online einfache
    Plasmaalgorithmen zu berechnen.


    Es war ein wahnsinniger Löt- und verdrahtungsaufwand und die Optimierung
    des Codes war auch langwierig, aber ich denke es hat sich gelohnt.


    Ich denke mit ein wenig Geschick bei der Programmierung kann man den
    8bit-ern mehr entlocken als so mancher glaubt. Es muss nicht immer ein
    FPGA ran um "Großes" zu leisten. ...



    Wenn euch das Projekt gefällt schaut doch einfach mal auf unserer Projekt-Page rein und schreibt was ins Gästebuch!


    https://sites.google.com/site/arduinodiyprojects/Home


    In desem Sinne beste Grüße und ein schöne WE,


    Pepe
    Markierten Text zitieren | Antwort |