Mini RGB-Licht

  • Hallo zusammen,


    passend zur dunklen Jahreszeit, habe ich endlich mal Zeit gefunden das erste Exemplar meines Mini RGB-Licht ferdrig zu stellen. Eine runde Platine (eigentlich zumindest, mein Prototyp ist nur grob ausgeschnitten) mit ATtiny25, LM78L05, Widerständen, Kondensatoren und einer PLCC4 RGB-LED. Mit drauf ist natürlich auch eine ISP-Schnittstelle zum wechseln der Firmware.


    Leider ist mir erst nach dem Bestellen der ersten Platinen aufgefallen, dass ich einen kleinen Fehler drauf habe. Die LED ist an PB0,3 und 4 angeschlossen. PB0 ist auch teil der ISP-Schnittstelle (MOSI) und genau das war das Problem. Mein ISP-Progger (serielles Bitbanging mittels Pollin Evaluations Board) schafft es nicht beim Proggen die LED mit zu treiben, weshalb ich in dieser Konstellation mit dem Auflöten der LED die ISP-Schnittstelle nichtmehr nutzen konnte. Auf dem Steckbrett half ein Pulldown von etwa 500 Ohm an MOSI, bei der fertigen Schaltung nicht. Deswegen habe ich als Workaround den Widerstand für rot nicht auf das eigentlich Pad gelötet was dann mit MOSI verbunden wurde, sondern so dass eine Seite quasi in der Luft hängt und diese dann mit einem kleinen Draht an MISO angeschlossen. MISO wird beim Proggen vom AVR selber getrieben und dieser schafft die LED problemlos.


    Warum überhaupt ISP? Ich möchte die Platine für mehrere Dinge nutzen. Konkret stell ich mir drei Möglichkeiten vor:

    • Kerzenlichtsimulation
    • RGB Farbkreis (für den Einsatz in Dekoobjekten)
    • Blitzen/Gewitter (zB für Halloween)

    Die Firmware für den Farbkreis und fürs Blitzen ist soweit fertig, zur Kerzenlichtsimulation bin ich bisher noch nicht gekommen. Beim Farbkreis nutze ich die angepasste HSV->RGB-Routine von synvox, hier nochmal danke dafür. Ich gehe in einer Schleife einfach den HUE-Wert durch, Sättigung und Helligkeit stehen fest auf dem Maximum.


    Die Platine ist übrigens nicht angelaufen, die Schatten sind Reste vom Fluxer. War grad zu faul sie sauber zu machen.




    Hier sieht man den Fix.


    Für die LED habe ich 100 bzw. 150 Ohm Widerstände verwendet, alle Farben laufen damit bei etwa 17mA. Die gesamte Stromaufnahme _vor_ dem Regler beträgt beim Farbkreis etwa 25mA als Maximum.


    Ich habe bereits ein korrigiertes Layout, weiß aber noch nicht ob ich das so fertigen lassen soll. Mir schwebt als Nächstes eine Version vor, die mit Knopfzellen und ohne Regler betrieben werden soll, damit sie wirklich als Teelicht-Replacement dienen kann. Ein 12er-Nutzen der Platine hat mich inkl. Versand 16 EUR gekostet (platinenbelichter.de). Die Bauteile sind bis auf die LEDs standard SMD-Kram von Reichelt. Die LEDs waren irgendwelche billigen PLCC4 LEDs von eBay (20 Stk für 7,19 EUR).


    Zum Schluß noch ein Video, wobei man nicht viel sehen kann. Ich habe vor die LED im Abstand von etwa 5cm einfach ein Stück Plexi gehalten, weil man sonst mit der Digicam einfach nur viel Licht sieht :D. Das Flimmern oder Flackern muss an der Cam liegen, in Wirklichkeit pumpt die Helligkeit kein bisschen.


    fKWYM174pHM


    Alles in Allem nix Besonderes, aber ein nettes Gimmick, vielleicht auch mal als Geschenk. Hoffe es gefällt euch.


    EDIT: Für diejenigen, die auch Interesse an dem kleinen Spielzeug haben, mal die Ätzvorlage: http://crap.dgoersch.info/ls/rgb-mini-light_nutzen.pdf

  • Hallo,


    sieht gut aus. Sowas könnte ich auch brauchen. Mit was machst du deine Layouts? Die abgerundeten Leiterbahnen sehen chic aus.


    Grüße


    Fasti


    Edit: PS: Ich denke das Pumpen kommt vom Autofokus, weil der bei dem hellen Licht nicht genau scharf stellen kann und die Linsen ständig hin und her bewegt. Dadurch verändert sich auch die Lichtcorona.

  • Mit was machst du deine Layouts?

    Das Layout ist mit EAGLE erstellt. Hatte es zuerst in den üblichen 45°.Knicken, aber das sah total hässlich aus. Runde Leiterbahnführung auf runder Platine gefiel mir dann total gut. Bei Bedarf kann ich gern mal ein 12er-Nutzen als PDF anhängen...


    EDIT: Natürlich vom Layout ohne den Fehler 8)

    Ich denke das Pumpen kommt vom Autofokus

    Ich glaube eher durch die Helligkeitsanpassung (Shutter oder so heissts glaube ich) im Video-Modus.


    Und dann an einem nen Sensor (IR oder so), da nen Feuerzeug drüberhalten - und alle gehen an

    Darüber hatte ich ernsthaft nachgedacht, allerdings nicht IR sondern einen Temp-Sensor. Durch starke Hitze (Freuer) einschalten und durch Temperaturabfall (Pusten) abschalten. Aber "Standby"-Strom bei Batterieanwendungen die man nur alle paar Tage mal braucht erschien mir dann für wenig sinnvoll.

  • Hat das erst die neue 5er Version drin oder gabs das schon in der 4er?

    Das kann ich dir leider nicht sagen. Ich habe eine wohl auch nichtmehr so ganz frische 5er Version.


    Ich bin via PN nach dem Code für den Farbfader gefragt worden. Da er zum größten Teil aus der HSV->RGB-Umrechnung von synvox besteht, veröffentliche ich den natürlich auch gerne wieder. Die Lorbeeren gebühren aber synvox.


  • Darüber hatte ich ernsthaft nachgedacht, allerdings nicht IR sondern einen Temp-Sensor. Durch starke Hitze (Freuer) einschalten und durch Temperaturabfall (Pusten) abschalten. Aber "Standby"-Strom bei Batterieanwendungen die man nur alle paar Tage mal braucht erschien mir dann für wenig sinnvoll.


    Hmm... ich glaube die Idee kommt auf die Todo-Liste (wenn auch etwas weiter unten)
    Ich mag Batteriebetriebene Sachen eh nicht, also ist nen Standby-Strom kein Problem ;)


    (Muss man nun nicht verstehen.)


    Ist aber gar nicht so schwer, wenn man halbwegs aktiv mitliest ^^

  • Hey hey... Ich hab gerade mal den Hue-RGB Code auf meine Beleuchtung umgeschrieben. Funktioniert tadellos.
    Die Farbverläufe hier finde ich viel dynamischer und schöner als im RGB Farbraum. " :rolleyes: überzeugt"



    Noch ne kleinigkeit, gibt es irgend wo eine kleine erklärung zu DIESEM code? sprich woher die fix werte kommen? (10880 oder 128 für max. sat )
    Ich weis dass es offtopic ist aber vielleicht kann einer mal kurz 2 sätze darüber los werden, dann brauch ich nicht extra nen neues thema eröffnen.


    MfG

  • Naja, da ich ja hier lobend erwähnt werde (Vielen Dank für die Credits Domi :) ), kann ich ja auch gleich selbst hier Freakys Frage beantworten:


    Eine Erklärung zu den zwei Varianten (die Zweite wird hier angewendet) der HSB-nach-RGB-Umrechnung findet sich in diesem Beitrag von mir, wo ich auf eine Anfrage von turi hin diese Umrechnungen gepostet habe. Allerdings sind es in dem Beitrag Umsetzungen in C, da turi ja C verwenden wollte. Ich habe aber beide Varianten (für mich) ursprüglich in BASCOM entwickelt.


    Trotzdem hier noch ein paar konkrete Erklärungen zu den Zahlen:
    Die Variante 2 (hier verwendet) ist ja auf einen möglichst gleichbleibenden und von der Farbe unabhängigen Helligkeitseindruck normalisiert. Bezogen auf einen Maximalwert pro Kanal von 255 (bei 8-Bit-PWM) ergibt sich bei gleichmässiger Ansteuerung aller drei Kanäle ein Maximalwert pro Kanal von 85 (3 x 85 = 255), also so, dass die Summe der Ansteuerungen der drei Kanäle nicht grösser als 255 wird. Es wird also in den Kanalwertberechnungen auf den Wert 85 normiert. Da aber die einzelnen Kanalwerte sowohl grösser als auch kleiner als 85 werden können, werden die Zwischenresultate sowohl positive als auch negative Werte annehmen können. Also muss mit Integer gerechnet werden. Integer können aber 'nur' einen Wertebereich von -32768 bis 32767 annehmen. Deshalb wird die Sättigung auf maximal 128 (es sind nur direkte 2er-Potenzen erlaubt, um echte Divisionen in der Berechnung umgehen zu können) limitiert, damit die Rechenwerte immer im Bereich bleiben. Man könnte natürlich Long Integer verwenden und dann für die Sättigung max. 256 haben, aber das würde sich stark negativ auf die Rechenzeit auswirken.
    Der Wert 10880 ist übrigens der vorberechnete Wert für 85 x 128, also 85 mal max. Sättigung.


    Die ganze Umrechnung sowohl bei Variante 1 als auch Variante 2 ist eben sehr stark auf Effizienz und Geschwindigkeit hin optimiert. Man will ja bei solchen Umwandlungsfunktionen, welche ja pro Zeiteinheit je nach Applikationen recht häufig aufgerufen werden, möglichst wenig Rechenzeit verbraten müssen. Da kann man stumpfsinnige Umsetzungen der Wikipedia-Formeln mit Fliesskomma-Arithmetik schlichtweg vergessen.


    Gruss
    Neni

  • Dank dir neni,


    ich habe gerade meine Zimmerbeleuchtung auf den HSV farbraum umgeschrieben, funktioniert einwandfrei. Jetzt hab ich wieder was neues zu rumspielen. ( kann nun von hsv auf rgb hin und herschalten) Das ist einfach super, jetzt kann ich viele sachen einfacher Programmieren. Habe vor einiger zeit für den RGB farbraum einen "weiß fader", ( einen fader der weis mit rot / grün / blau mischt ( ich denke man weis was gemeint ist?)) gebaut. Das würde mit dem HSV farbraum um einiges leichter gehen ;) super sache.


    nochmal danke für die super erklärung, synvox, jetzt ist mir das ganze schon um eingies klarer geworden, warum du manche operationen durchführst.


    so nun aber genug offtopic (tut mir leid)


    MfG

  • Ich habe im ersten Beitrag mal die Ätzvorlage für den 12er-Nutzen angehängt. Natürlich die korrigierte Version. Der Code oben ist auch schon die angepasste Version (rote LED an PB.1 statt PB.0).

    so nun aber genug offtopic (tut mir leid)

    So wirklich OT wars ja garnicht, gehört ja schon irgendwie zur Firmware.

    Nur so aus Neugierde, was hast du als Ätzmittel verwendet ?

    Ich hab mir den "Luxus" gegönnt und 'nen 12er-Nutzen auf 175x125mm fertigen lassen (für 16 EUR inkl. Verzinnen und Versand bei platinenbelichter.de).