WOW!
Wirklich wunderschön, fast schon hypnotisierend. Danke für das tolle Video.
Das kann man wohl schwer toppen. Hard- und Software sind super. Das würde ich auch gerne können. Weiter so und noch ein paar mehr Videos bitte.
Gruß
mic
Hallo an die Bastler da draußen,
Rotierende LED’s haben mich schon seit längerem in ihren Bann gezogen . Von den Videos bei YouTube inspiriert baute ich eine erste Version des LED-Globe mit 54 Weißen LED’s. Aufgeklebt auf einem in Form gebrachten Kohlefaserstab. Der Controller war ein Atmel Atmega328p mit 20Mhz. Mit Strom wurde die ganze Sache über zwei Kohlebürsten aus dem Modellbau versorgt. Das Highlight war die Funkübertragung von einem Arduino auf den Globe…
Bild:
https://www.dropbox.com/s/jeq8cnsgsf...75950.jpg?dl=0
Von dem Projekt beflügelt, dachte ich, da geht doch mehr!
Und das ist dabei herausgekommen:
RGB LED-Globe V2
techn. Daten:
-Durchmesser 120mm
-96 RGB-LEDs (1,4mmx1,6mm)
-12 TLC5947 LED Treiber (12Bit PWM)
-32Bit Atmel 32UC3B512
-Micro SDCard 8Gb
-Fat32
-Wiedergabe von Bildern
-Wiedergabe von Videos bis zu 20fps
-max 40Hz (2400U/min mehr schafft der Serverlüfter nicht )
-Stromversorgung über Luftspule (H-Brücke 64Khz)
-Fernbedienung (induktive Datenübertragung)
-Drehzahlregelung
-Laufschrift mit 8 zusätzlichen LED’s
Bilder:
https://www.dropbox.com/sh/me2a68qdz...9bq-tA-Qa?dl=0
Sorry, die Herzchenbilder sind dem geschuldet, dass ich in den letzten Monaten meine bessere Hälfte sehr vernachlässigt habe.
Und so einiges wieder gut zu machen hatte...
Projektbeschreibung:
Der Weg zum Istzustand war lang und mühsam! Die Voraussetzungen eher bescheiden, da ich keine Erfahrung mit dem Entwerfen bzw. Herstellen von Platinen hatte. Die Letzte hatte ich noch mit meinem Vater per Hand gemalt (Nitrolack und Pinsel) …
Nach kurzer Recherche im Netz, nach einem passenden Tool, fiel die Wahl auf KiCad. Nach langer Einarbeitungsphase und Studium der Atmel Datenblätter war die erste Schaltung entworfen. Der Weg zum fertigen Layout hat ebenfalls viel Zeit in Anspruch genommen, da viel in Handarbeit geroutet wurde (runden und nicht 45° Leiterzügen geschuldet). Irgendwann war das Layout fertig und es ging ans Ausdrucken und Ätzen.
Gedruckt wurde mit einem Tintenstrahldrucker auf Overheadfolie, Vorder- und Rückseite zu einer Tasche verklebt und die Platine mit einem UV-Nageltrockner belichtet. Das ganze Entwickelt und mit Natriumsulfat geätzt… Also mit einfachsten Mitteln und Anleitungen siehe Google!
Nach ersten Probeätzungen mit kleiner werdenden Konturen war ich selbst von dem Resultat überrascht und bestärkt weiterzumachen. Leiterzüge von 6mil, die ich benötigte, waren möglich .
Die über 300 Durchkontaktierungen wurden mit Bungard Kupfernieten, einer kleinen Proxxon Ständerbohrmaschine, einem Körner und viel ruhiger Hand gesetzt. Danach konnte es ans Bestücken gehen. Dazu stand mir eine selbstgebaute Vorwärmplatte und eine Fernost-Heißluftstation zur Verfügung.
Der Motor selbst stammt aus einem alten Fujitsu Server (die haben für die Größe jede Menge Power). Die orig. Welle wurde ausgetauscht und eine Messingbuchse angeflanscht. In dieser ist dann die Welle, welche die Platine aufnimmt, eingeklebt. Die Teile stammen alle aus ausgeschlachteten CD-Rom’s, Festplatten, Servern…Der Fuß besteht aus einem Sammelsurium alter Prozessorlüfter, welche nach vielem Probieren irgendwie zusammen gepasst haben.
Die Drehzahl-Regelung übernimmt der Atmega 328p auf der Front-Platine. Ausgelegt als P-Regler, der das Tachosignal des Lüftermotors auswertet, und diesen über eine 10Bit PWM ansteuert.
Mit Strom wird der Globus induktiv über zwei ineinander laufenden Wicklungen versorgt. Geschaltet wird die Primärwicklung mit einer H-Brücke, welche von zwei Dual-Mosfet Treibern angesteuert wird (hab ich in einer alten Xbox360 gefunden).
Sekundärseitig wird die Spannung mittels 3A Step-Down Wandlers (MP2307) auf 5Volt stabilisiert. Bei der hohen Frequenz von 64Khz musste ich HF-Litze für die Wicklungen verwenden. Diese besteht aus 40 verdrillten 0,15mm Kupferdrähten.
Die Signale der Fernbedienung werden ebenfalls vom Atmega 328p auf der Frontplatine ausgewertet. Um nicht noch ein Protokoll für die Datenübertragung zu entwickeln und kostbare Prozessorzeit zu verbrauchen, habe ich den USART missbraucht. Dabei werden die 8Bit des Fernbedienungsbefehls auf Tx gesendet und direkt ausgewertet. Abhängig vom Pegel wird das Tastverhältnis der H-Brücke geändert. Primärseitig lässt sich das Signal mittels Timer im Capture-Mode auswerten und die Pegel des USART’s reproduzieren. Diese auf den Atmel 32UC3b512 (Rx-Eingang des USART) geleitet und man hat die Fernbedienungsbefehle interruptgesteuert auf der rotierenden Scheibe zur Verfügung. Geht sicher eleganter, aber es funktioniert…
Nun zur Software:
Der Atmel 32UC3b512 war komplettes Neuland für mich. Die Komplexität und der Mangel an hardwarenahem Beispielcode musste ich schmerzlich erfahren. Also Wochen damit verbracht das ASF (Atmel Software Framework) zu studieren und Interrupt-Prioritäten, Interrupt-Gruppen, Powermanagement, Timer… zu verstehen. Wenn man so wie ich bisher nur mit 8Bit Atmegas zu tun hatte ist das eine komplett neue Welt .
Aber jammern bringt einen nicht weiter und irgendwann leuchteten die ersten LED’s.
Um die Datenmenge schnellgenug für die LED-Treiber zur Verfügung zu stellen, wird jeder der 12 Treiber einzeln seriell angesteuert. Dafür wird der jeweils anzuzeigende Teil des Bildes, welches im RAM liegt und vorher von der SD-Card geladen wurde, in das Portregister geladen um mit einem Takt alle 12 Treiber zu füllen. Soweit die Theorie, doch mit C# Mitteln war das deutlich zu langsam. Die Lösung, welche eine Verdoppelung der Geschwindigkeit brachte, war Inline-Assembler.
Die Laufschrift, die in einem kleineren Radius als das Hauptbild läuft, wird von einem 8Bit Schieberegister generiert. Hauptbild und Laufschrift teilen sich einen frei laufenden 16Bit Timer und werden über jeweils einen Compare-Interrupt angezeigt. Grundlage dafür ist ein weiterer Timer welcher die Rundenzeit mittels Reflektions-Lichtschranke ermittelt.
Die anzuzeigenden Bilder, welche Im RAW-Format (24Bit RGB) auf der SD-Card gespeichert sind, werden auf zwei Arten gelesen. Wenn es sich um ein Einzelbild handelt kommt die langsame blockweise Lesemethode zum Einsatz. Alternativ wird der DMA-Mode verwendet um Videos (Folge von Einzelbildern) schnell genug im RAM zu aktualisieren. Methode eins hat den positiven Nebeneffekt eines schönen Übergangs beim Umschalten der Bilder.
Gruß
Fritz
Geändert von Hiedi (15.01.2015 um 19:15 Uhr)
WOW!
Wirklich wunderschön, fast schon hypnotisierend. Danke für das tolle Video.
Das kann man wohl schwer toppen. Hard- und Software sind super. Das würde ich auch gerne können. Weiter so und noch ein paar mehr Videos bitte.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hi Fritz!
Ich als x-Profibastler kann deine tolle Arbeit wirklich als top beurteilen und nur weiterso bzw. noch besser wünschen.
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Danke für die positiven Kommentare! Es bestärkt einen noch weiter zu machen, denn an Ideen mangelt es nicht .
Für die Interessierten hab ich noch etwas Beschreibung hinzugefügt...
Gruß
Fritz
...Respekt - echt ein tolles Teil !!!
Muss auch sagen, das Ding macht richtig was her und ist auch sehr sauber ausgeführt. Alle Achtung. Da steckt sicher auch ziemlich viel Arbeit hinter, oder?
AI - Artificial Idiocy
Hallo Fritz,
Ich finde es einfach nur "richtig toll gemacht" =D> (<< Beifall Smiley!! - ??)
Wie genau hast Du das TX Signal auf RX geleitet? Einfach per Schleiferkontakt? Oder IR? Was bedeutet in dem Zusammenhang die H-Brücke - ich kann mir das grade nicht richtig vorstellen. Wäre toll wenn Du dazu genauer was sagen könntest.
...ich werde mir mal deinen LED-Treiber den Du benutzt hast ansehen
Viele Gruße
Jörg
Geändert von HeXPloreR (16.01.2015 um 21:36 Uhr)
Hallo Jörg,
Die IR-DATEN werden ganz konventionell von der Steuerungsplatine (feststehend) ausgewertet. Der empfangene 8Bit Wert muss nun irgendwie kontaktlos zu dem sich rotierenden Teil übertragen werden. Das naheliegendste ist die logischen Pegel durch unterschiedliche Frequenzen/ Tastverhältnisse der Trägerfrequenz, in dem Fall die Taktfrequenz der H-Brücke, darzustellen. Und da kommt der usart ins Spiel, da für die Übertragung noch ein passendes Protokoll notwendig ist. Die Steuerplatine sendet 8Bit mit dem usart und scannt den Ausgang gleichzeitig ab. Je nach Pegel wird die frequenz der H-Brücke geändert.
Nun zum rotierenden Teil:
Die aufmodulierten Pegel des Übertragungs-Protokolls werden durch Messung der Frequenz an der Primärwicklung zurückgewonnen. Und auf den Rx Eingang des usart (UC3B512) geleitet. Dieser kann die Daten decodieren und der gesendete 8 Bit Wert steht dem drehenden Teil zur weiteren Verarbeitung zur Verfügung.
Schwer zu beschreiben, ich hoffe du weißt was ich meine...
gruß
fritz
Geändert von Hiedi (16.01.2015 um 21:03 Uhr)
Sehr interessant. Ich kann mir vorstellen, dass eine Datenübertragung auch optisch gut möglich wäre, indem man die Signale durch eine IR-LED ausgibt und über einen Fototransistor, der von allen Seiten beleuchtet werden kann, empfängt. Ich weiß aber nicht, ob da der Aufbau der Transistoren Probleme machen könnte und dann in gewissen Stellungen das Licht nicht an die wichtige Stelle kommt. Außerdem müssten bei mehreren Signalen Fremdsignale gut abgeschottet werden.
AI - Artificial Idiocy
Danke Fritz für die Erläuterung,
ich habe es natürlich nicht verstanden mit der H-Brücke
Dennoch... wenn es funktioniert ...ist die Lösung ganz sicher keinesfalls schlecht.
Ich denke auch als Alternative wäre eine direkt gegenüberliegende IR-Diode/Empfänger Version im Zentrum der Welle konstruktiv machbar. Also eine 1:1 Weiterleitung des feststehenden Fernbedienungsempfänger-IR-Diode.
Viele Grüße
Jörg
Lesezeichen