Sterownik RGBW do latarki (Flagiusz)

co i jak zrobiłem...
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Sterownik RGBW do latarki (Flagiusz)

Post autor: df »

Witam,
zainspirowany Quarkiem RGB postanowiłem zbudować larateczkę na diodzie MCE-RGBW i na wykonanym od podstaw sterowniku.

Oczywiście pierwszą myślą było moje ulubione ATTiny13v, ale z uwagi na tylko jeden timer zastanawiam się nad czymś większym (24/28/48).

Po kilku przemyśleniach i paru obliczeniach doszedłem do wniosku, że da się go zrobić na 13-tce i choć może nie w rozdzielczości True-Color, ale nieco niższej powinno dać się się uzyskać w miarę dobre mieszanie barw w różnych proporcjach.

Pomysł 1 jest taki (założenie, że bazujemy jednak na ATtiny13-tce):
- kolor biały - sprzętowy PWM, kanał A
- kolor niebieski (lub zielony z uwagi na czułość oka) - sprzętowy PWM, kanał B
- kolor zielony (lub niebieski) - programowy PWM
- kolor czerwony - programowy PWM

Pomysł 2 jest taki:
- wykorzystujemy 2 definiowane przerwania na liczniku ustawione na progach OCR0A i B
- w procedurze obsługi przerwania od TA i TB wstawiamy programową logikę "zapalania" i "gaszenia" danego kanału RGBW
- dzięki temu możemy z wysoką częstotliwością mieszać dowolne 2 barwy z rozdzielczością bliską 8 bitów - co da nam przy użyciu 2 składowych przestrzeń ok. 16 bitów, czyli całkiem sporo
- z uwagi na sporą rozdzielczość można by w ten sposób delikatnie "poprawiać" tint struktury białej, poprzez korekcję "bieli" jedną ze składowych RGB w odpowiedniej proporcji.

Pomysł 3 - najprostszy, jako odmiana 1-go:
- kolor biały - sprzętowy PWM, kanał A
- kolor R, G i B - programowy PWM

Natomiast sterowanie prądem struktur zrealizowałbym w oparciu o 4x AMC, gdzie każdy z nich byłby osobno sterowany i obsługiwał osobny kanał (RGBW).
Rozwiązanie to wydaje się być bardzo dobre, gdyż z jednej strony dość dobrze ogranicza prąd przypadający na każdą strukturę, a po drugie AMC-kami można bardzo ładnie cyfrowo sterować, tak jakby to były zwykłe MOSFET-y, co pozwala zaoszczędzić cenne miejsce.

Ok, to na razie tyle technicznie...

Spójrzmy zatem na to od drugiej strony.

1. do jakich zastosowań i w jakich kombinacjach RGBW miało by to służyć?
- światło białe - wiadomo
- światło czerwone i zielone - można znaleźć zastosowania
- mieszanie RGB - chyba tylko do nastrojowego podświetlania i "bajerowania" ;-)

2. jaka miała by być minimalna satysfakcjonująca rozdzielczość?
- IMHO 4 poziomy jasności na kanał RGB i 256 na W w zupełności powinny wystarczyć
(daje to 2 bity na kanały RGB - w sumie 6 bitów + 8 bitów na W = 14 bitów)
A zatem z samych tylko RGB dałoby się w ten sposób uzyskać różne 64 kolory.
- więcej jak 2-3 bity na kanał RGB będą komplikować sterowanie (nie będzie widać
różnic) oraz niekorzystnie rzutować na ich sterowanie (częstotliwość modulacji).

Tryby:
- pewnie z kilka białych o regulowanej jasności (opcjonalnie z korektą tintu)
- pojedyncze R,G lub B (ciągłe o reg.jasności i jakiś migaczyk)
- RGB mieszane (w proporcjach)
- i można by wymyślić pewnie z milion różnych dyskotek
. . . - policyjne B + R
. . . - płynne przejścia RGB (animacje)
. . . - sygnalizator świetlny (czerwone-żółte-zielone)
. . . - itd. :-)

Sterowanie - a zawłaszcza ustawianie jasności, dla RGB musi być proste - a to oznacza, że nie może być zbyt wielu możliwości (poziomów) ustawień składowych RGB, bo nikt nad tym nie zapanuje - zatem 2 bity na kolor (4 poziomy) wydaje się być dobrym założeniem.

Do ustawiania mieszanego RGB podszedłbym tak, że w jednej sekwencji konfiguracyjnej ustawiałoby się po kolei R (w 4-ech poziomach od 0 do 100%), G (tak samo) i B (również).

Inny wariant to podejście typu HUE - czyli najpierw wybieramy barwę (z kręcącej się "karuzeli"), a następnie jasność już wybranego koloru.

Wersja najprostsza, to sama "karuzela" i założenie, że przestrzeń generująca RGB będzie zawierała co najmniej jedną barwę o jasności 100%.

A może ma ktoś jeszcze inny pomysł jak do tego najlepiej podejść i co jeszcze warto byłoby tu wziąć pod uwagę?
Flagiusz
Kris_1
Posty: 127
Rejestracja: sobota 03 sty 2009, 19:34
Lokalizacja: Otwock

Re: Sterownik RGBW do latarki (Flagiusz)

Post autor: Kris_1 »

df pisze: 1. do jakich zastosowań i w jakich kombinacjach RGBW miało by to służyć?
- mieszanie RGB - chyba tylko do nastrojowego podświetlania i "bajerowania" ;-)
Prawie w ostatniej chwili zrezygnowałem z zakupu Quarka RGB po przeczytaniu recenzji i upewnieniu się że latarka nie ma mieszania RGB. Nie można ustawić dowolnego koloru i regulować jego jasności; o pamiętaniu tego nie wspomnę.

Być może jest to specyficzne zastosowanie, bo duży producent 4Sevens oraz Ty nie bierzecie pod uwagę takiej ewentualności.
Dla mnie osobiście jest to najważniejsza rzecz której szukałbym w latarce RGB. Żadnych dyskotek, stroboskopów, sygnalizatorów ulicznych - tylko ustawienie koloru który w danej chwili jest mi potrzebny i regulacja jego jasności.

Może więc maleńki zakres takiego mieszania weźmiesz pod uwagę - światło białe z możliwością regulacji: białe-zimne - białe neutralne - białe ciepłe.
To chyba najprostsze rozwiązanie - bierzesz MC-E z zimnym białym chipem, a pozostałymi ustawiasz kolor świecenia:
1. biały neutralny
2. biały ciepły

Chociaż o tyle poproszę :mrgreen:
Awatar użytkownika
df
Posty: 307
Rejestracja: piątek 23 lis 2007, 15:38
Lokalizacja: z nienacka
Kontakt:

Post autor: df »

Oczywiście, że planuję zrobić mieszanie RGB - inaczej zastosowanie diody RGB byłoby zmarnowaniem jej potencjału ;-)

Mam już nawet rozrysowane przebiegi przejścia po przestrzeni barwnej (tęczy) z przyjętym warunkiem zachowania pełnej jasności na co najmniej jednym kanale RGB.

R: 2 2 2 1 0 0 0 0 0 1 2 2
G: 0 1 2 2 2 2 2 1 0 0 0 0
B: 0 0 0 0 0 1 2 2 2 2 2 1

gdzie:
0 - brak koloru (kanał zgaszony)
1 - kolor częściowy (kanał zapalony na 30%)
2 - pełny kolor (kanał zapalony na 100%)

Co wyglądałoby +/- tak:
Obrazek

A zatem nawet nie 4, ale 3 poziomy na kolor mogą być w zupełności wystarczające.
Co doskonale upraszcza implementację oraz samo sterowanie (wybór koloru).

Przy zastosowaniu tylko 3 poziomów jasności (off, średni, on) dla każdego z kanału moja przestrzeń barwna będzie składała się z 12-tu pięknych kolorów.

W przestrzeni tej mieszane są co najwyżej 2 barwy podstawowe.
Zwiększając 3-krotnie przestrzeń można domieszać także 3-cią barwę, co da ok. 36-tu poziomów idących dodatkowo w kierunkach bieli itd.

2 bity na kolor (3 lub 4 poziomy każdej składowej) to jeszcze jedna zaleta - całość RGB (a nawet z W) da się upakować na jednym bajcie!

Pytanie, czy ktoś z forumowiczów bawił się diodą RGBW MCE?
Jedyne czego się obawiam, to to, że mieszkanie kolorów będzie prowadziło do psujących efekt artefaktów spowodowanych rozmieszczeniem poszczególnych struktur, a dokładniej ich wzajemnym przesunięciem.
Flagiusz
DNF
Posty: 4606
Rejestracja: piątek 23 lis 2007, 19:07
Lokalizacja: Bydgoszcz

Post autor: DNF »

Witam.
Darku, pomysl zacny, oby nie skonczyl sie tak jak temat "forumowych latarek" :(
Sam chetnie pewno bym sie pisal na taki sterowniczek.
Ja bym widzial to tak:

Grupa A:
-3 poziomy jasnosci swiatla bialego-jasnosc definiowana przez uzytkownika,

Grupa B:
-3 tryby kolorowe(stale). Wybor koloru definiowany przez uzytkownika-wybor z palety XX kolorow,

Grupa C:
-Pierwszy tryb-plynne przejscia(powolne) miedzy 'zakodowana' paleta barw, nastepny tryb to jakies 'blyskacze' typu stroboskop-co blysk inna barwa. Chociaz w sumie blyskowe tryby mozna sobie odpuscic.


Mowiac o definiowaniu, mam na mysli wybor taki jak jest zrobiony w Waszym sterowniku 'df&Cali'.
Przejscia miedzy grupami-dwuklik, a definiowanie poprzez-trojklik, czyli tak jak do tej pory bylo to robione.

Co do uzytkowania diody RGBW to niestety nie mialem jej w lapkach, a co do artefaktow, bardzo fajnie je zaciera zmatowiona szybka! Szybke traktujemy bardzo drobnym papierem sciernym, tak by z przezroczystej zrobila sie taka polprzejzysta. Ale nie tak mocno jak po piaskowaniu :)

Pozdrawiam
DNF
Awatar użytkownika
swietlik
Posty: 489
Rejestracja: sobota 22 lis 2008, 22:39
Lokalizacja: Gdańsk

Re: Sterownik RGBW do latarki (Flagiusz)

Post autor: swietlik »

df pisze:A może ma ktoś jeszcze inny pomysł jak do tego najlepiej podejść i co jeszcze warto byłoby tu wziąć pod uwagę?
Tak myślę, że chyba powoli nadchodzi czas na złącze USB w sterowniku i programowanie z poziomu PC.
Awatar użytkownika
Darek
Posty: 249
Rejestracja: środa 17 cze 2009, 16:14
Lokalizacja: Płock

Post autor: Darek »

Też chetnie pisałbym się na taki sterownik.Już jakiś czas mysle o diodzie RGB tylko nigdzie nie widziałem odpowiedniego sterownika.
Pozdrowienia z nowym rokiem :)
Awatar użytkownika
Volt
Posty: 408
Rejestracja: czwartek 26 mar 2009, 21:40
Lokalizacja: Bydgoszcz/W-wa

Post autor: Volt »

swietlik pisze:Tak myślę, że chyba powoli nadchodzi czas na złącze USB w sterowniku i programowanie z poziomu PC.
Nie trzeba od razu USB - można dodać dodatkowy tryb, w którym jedna ze struktur (chyba najlepiej biała) działa na zasadzie fotodiody i sterownik mierzyłby panujące na niej napięcie. Na ekranie komputera byłby wyświetlany kwadracik i do tego miejsca należałoby przyłożyć latarkę. Następnie kwadracik zmienia kolor czarny/biały, sterownik to wykrywa i tak oto dane zero-jedynkowo dostają się z komputera do naszego sterownika.

Tak jak tu:
http://www.aniomagic.com/examples/example12.php
zupełnie na dole strony jest link "Program your bracelet" - tu rolę "kwadracika" pełni żółty/brązowy kwiatek.
(http://www.aniomagic.com/schemer/)

pozdrawiam!
Midi custom @ XM-L :: RC-G2 @ 15880 1/2/3 AA :: UF C3 @własny driver :: Tank007 E06 :: UF A10 :: UF C1 :: Solarforce Skyline 2 @ 4xAMC :: Skyline 1 :: XTAR A01
DNF
Posty: 4606
Rejestracja: piątek 23 lis 2007, 19:07
Lokalizacja: Bydgoszcz

Post autor: DNF »

To juz w ogole bylby kosmos :D
Tylko troche to nie wygodne by bylo.
Pozdrawiam
DNF
Awatar użytkownika
Volt
Posty: 408
Rejestracja: czwartek 26 mar 2009, 21:40
Lokalizacja: Bydgoszcz/W-wa

Post autor: Volt »

DNF pisze:Tylko troche to nie wygodne by bylo.
No na pewno wygodniejsze niż USB - bo niby gdzie miałbyś to gniazdko wcisnąć?
Kurcze, chyba coś takiego sobie spróbuję zrobić :twisted:
Midi custom @ XM-L :: RC-G2 @ 15880 1/2/3 AA :: UF C3 @własny driver :: Tank007 E06 :: UF A10 :: UF C1 :: Solarforce Skyline 2 @ 4xAMC :: Skyline 1 :: XTAR A01
ODPOWIEDZ