Elektroda.pl
Elektroda.pl
X
TermopastyTermopasty
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Termometr RGB na diodach WS2812B

Limonit 19 Lut 2015 23:53 13992 21
  • Termometr RGB na diodach WS2812B

    Ponieważ wspomniane diodki zrobiły się ostatnio popularne, a taki projekt chodził mi już od dawna po głowie (nie było za bardzo jak go wykonać), zdecydowałem, że w końcu będzie dobra okazja.

    Dwa słowa na temat diod WS2812 – są to diody RGB wyposażone w sterownik. Sama dioda ma parametry typowe dla małych diod smd – pobór prądu na każdy kolor to około 20mA. Ciekawy jest sterownik – posiada interfejs szeregowy, za pomocą którego można sterować barwą diody – każdy kolor posiada rozdzielczość 8 bitów – daje to teoretyczną głębię barw 24 bit. Oprócz tego dioda posiada wyjście sygnału na kolejne diody – można je łączyć w ten sposób w łańcuchy – teoretycznie dowolnej długości. Dioda, która zostanie wysterowana przekazuje sygnał dalej - w ten sposób kolejne ramki trafiają do kolejnych diod w łańcuchu – co za tym idzie, na każdej diodzie można ustawić dowolną barwę i jasność.

    W moim projekcie użyłem gotowej linijki składającej się z 10 diod. Termometr ma pokazywać temperaturę w postaci liczby zapalonych diod (każda odpowiada jednemu stopniowi C). Kolor diod ma tworzyć skalę barwną (od niebieskiego do czerwonego). Podstawowy przedział to 18 – 27 st. czyli okolice temperatury pokojowej. Powyżej 27 stopni termometr przełącza się w tryb, w którym pierwsze 5 diod zapalone jest na stałe, a kolejne reprezentują temperatury 29-33. Podobnie poniżej 18 stopni, górne 5 diod się świeci a coraz niższe prezentują temperatury do 12 st. Mała ściąga została umieszczona na płytce PCB.

    Termometr RGB na diodach WS2812B

    Mózgiem układu jest ATiny85. Taktowany 8MHz. Diody sterowane sa programowo. Zasilanie jest rozwiązane poprzez gniazdko mini-usb. Mikrokontroler jak i diody zasilane są bezpośrednio napięciem 5V.

    Czujnik temperatury, jaki został wykorzystany to MCP-9700. Jest to czujnik analogowy z napięciem na wyjściu proporcjonalnym do temperatury. Dokładność czujnika nie jest imponująca, ale w takim projekcie w zupełności wystarcza. Czujnik został wlutowany wyżej i wystaje przez otwór w obudowie. Wyjście MCP-9700 jest podłączone bezpośrednio na wejście ADC w Attiny.

    Obudowa wykonana z gotowego elementu z plexi, który można dostać jako element wystawowo-ekspozycyjny, oraz rurki również z plexi, także bez problemu do nabycia.

    Termometr RGB na diodach WS2812B

    Termometr RGB na diodach WS2812B

    Termometr posiada dwa przyciski. Pierwszy służy do zmiany jasności diod (są 4 poziomy). Zmiana zapisywana jest w pamięci EEPROM. Drugi pozwala odczytać temperaturę w postaci liczbowej. Po naciśnięciu w odstępach sekundowych są wyświetlane dziesiątki i jedności stopni w różnych kolorach.

    O projekcie można też poczytać na mojej stronie:


    Link

    Fajne! Ranking DIY
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
    O autorze
    Limonit
    Poziom 13  
    Offline 
    Limonit napisał 129 postów o ocenie 329, pomógł 1 razy. Mieszka w mieście Wwa. Jest z nami od 2007 roku.
  • TermopastyTermopasty
  • #2
    seba_x
    Poziom 31  
    Efektownie wygląda ten termometr, odczyt temperatury... Powiedzmy że dla ciebie nie ma problemu bo wiesz jak to działa, ale ktoś z "zewnątrz" raczej nie połapie się w tym.
  • #3
    Limonit
    Poziom 13  
    Oczywiście termometr w odczycie jak i samym pomiarze nie jest zbyt precyzyjny. Ale nawet na pierwszy rzut oka można intuicyjnie stwierdzić, czy temperatura jest powiedzmy w normie, czy od tej normy odbiega.
    Celem było bardziej rzeczywiście stworzenie efektownego gadżetu. I może nawet przede wszystkim cel edukacyjny - chciałem wypróbować diody WS2812 w praktyce.
  • #4
    excray
    Poziom 40  
    seba_x napisał:
    Efektownie wygląda ten termometr, odczyt temperatury... Powiedzmy że dla ciebie nie ma problemu bo wiesz jak to działa, ale ktoś z "zewnątrz" raczej nie połapie się w tym.

    To tak samo jak z zegarkiem binarnym i jakoś nikt nie postrzega tego jako wadę. Jak dla mnie to koncepcja jest świetna i bardzo efektowna wizualnie.
  • #5
    daniell4
    Poziom 13  
    Wiem, że logika podpowiada:zimno-niebieski, ciepło-czerwony, ale z doświadczenia wiem, że oko ma nieco problemy z ustawieniem ostrości na niebieskim świetle. W związku z tym, nie ma problemów z liczeniem diod?
  • TermopastyTermopasty
  • #6
    Limonit
    Poziom 13  
    Są problemy.
    W termometrze jest dodatkowo zastosowana regulacja jasności (4 stopnie). Na tych jaśniejszych ustawieniach patrzenie z bliskiej odleglości jest w zasadzie niemożliwe - mocno razi. Z wiekszej diod się nie policzy.
    Tak jak pisałem, chodzi raczej o intuicyjny odbiór, czyli stwierdzenie na pierwszy rzut oka, czy jest nromanie (20-22st) czy zimniej czy gorąco.

    Jak ktoś ma ochotę, może wcisnąć przycisk, wówczas termometr wyświetli w dwóch seriach liczbę dziesiątek i jedności stopni (w rożnych kolorach) i wtedy odczyt jest do 1*C.

    Podsumowując jako gadżet się sprawdza, jako precyzyjny termometr nie bardzo ale takie były założenia projektowe.
    Dodatkowo potwierdza to użyty rodzaj czujnika - MCP-9700 jak można wyczytać w karcie ma dokładność raczej niewielką.
    Przez moment myślałem o wbudowanym w mikrokontroler termometrze - ale tam jest jeszcze gorzej.

    Kolory można dowolnie wyedytować, aczkolwiek spędziwszy nad tym chwilę wybrałem taką typową skalę barwną.
    Alternatywnie można np użyc skali wzorowanej na barwie emitowanej przez ciało doskonale czarne w zależności od temperatury - czyli czerwony-pomarańczowy-biały-niebieski.

    Byc może ten banalny projekt będzie też dla kogoś inspiracją do zrobienia czegoś bardziej złożonego na diodkach WS2812.
  • #7
    andrzejlisek
    Poziom 28  
    daniell4 napisał:
    Wiem, że logika podpowiada:zimno-niebieski, ciepło-czerwony, ale z doświadczenia wiem, że oko ma nieco problemy z ustawieniem ostrości na niebieskim świetle. W związku z tym, nie ma problemów z liczeniem diod?


    Ja doświadczyłem nieraz takiego zjawiska, że jak w odległości kilku metrów ode mnie jest niebieska dioda LED (np. jakaś kontrolka w laptopie), to jej światło jakby się rozpływa i widzę plamkę. A jak w tej samej odległości jest czerwona lub zielona, to widzę wyraźny świecący punkt. natomiast samo urządzenie, w tym okolice poza plamką świetlną widzę dobrze. Czy piszesz o tym samym zjawisku?
  • #8
    ostry_18
    Poziom 24  
    andrzejlisek napisał:
    Ja doświadczyłem nieraz takiego zjawiska, że jak w odległości kilku metrów ode mnie jest niebieska dioda LED (np. jakaś kontrolka w laptopie), to jej światło jakby się rozpływa i widzę plamkę.


    aberracja chromatyczna w układzie optycznym oko + okulary. masz krótkowzroczność?
  • #9
    andrzejlisek
    Poziom 28  
    ostry_18 napisał:
    andrzejlisek napisał:
    Ja doświadczyłem nieraz takiego zjawiska, że jak w odległości kilku metrów ode mnie jest niebieska dioda LED (np. jakaś kontrolka w laptopie), to jej światło jakby się rozpływa i widzę plamkę.


    aberracja chromatyczna w układzie optycznym oko + okulary. masz krótkowzroczność?


    Nie noszę okularów, generalnie dobrze widzę na co dzień, tylko przy badaniu wzroku mam problem z odczytaniem najniższego rzędu liter (najmniejsza czcionka).
  • #11
    Limonit
    Poziom 13  
    Dzięki.

    leonow32 napisał:
    Piękny projekt :) bardzo mi się podoba. W szczególności obudowa jest bardzo dobra i gustowna. Gdzie kupowałeś te elementy z pleksy?


    Elementy zakupiłem na znanym portalu aukcyjnym, jak pisałem, są w kategorii akcesoria reklamowe/wystawowe itp. Cena kilka - kilkanaście złotych. Drożej wychodzi zamówienie czegoś na wymiar, ale często można dobrać jakieś gotowe elementy.

    Np. mam zrobiony odtwarzacz na bazie RPi, do tego wyświetlacz LCD, hub usb, karta wifi i wszystko zamontowane na elemencie który kupiłem pod nazwą stojak do hot dogów.
  • #12
    noel200
    Poziom 25  
    Ciekawy projekt, mam propozycję.
    Może żeby to nie tylko był efektowny gadżet, a więc by dało się odczytać sensownie temperaturę to zrób tak, że ostatnia dioda, czyli najwyższa informująca o aktualnej temperaturze będzie świeciła najjaśniej, a pozostałe tylko delikatnie. Wtedy kolor całego podświetlonego plexi, a więc ogólnie większość światła pochodzącego z termometru będzie miała kolor odpowiadający odczytanej temperaturze. Pozwoli to nawet z daleka sensownie oszacować temperaturę odczytywaną przez czujnik.
  • #13
    karol75
    Poziom 16  
    Jedno małe ale Nie WS2812B Tylko WS2812 (w linku piszesz dobrze).
    WS2812B mają także w swojej obudowie "rejestr przesuwny" i pamięć i najważniejsza różnica to: WS2812B mają 4 wyprowadzenia a nie 6.

    Mnie interesuje za to, czy próbowałeś nakładać jakieś filtry poprawiające ostrość.
  • #14
    krzysiek71
    Poziom 13  
    Kolego karol75 rejestr przesuwny? 8-O
    Może jednak warto obejrzeć ten poradnik?
    https://www.youtube.com/watch?v=nj_vZTQAO7k
    Zagłębiłem się w temat ws2812b i na temat rejestru (wewnątrz)diody nic nie znalazłem.Owszem ramki,bity,częstotliwość.......itd.itd.
    Pozdrawiam.
  • #15
    karol75
    Poziom 16  
    Oczywiście że nie ma napisane w nocie otwarcie.
    Ale jak sobie wyobrażasz przekazywanie na wyjście poszczególnych bitów jak nie szeregowy rejestr przesuwny?

    Mam w opracowaniu matrycę diod i śmiga. Poszukaj mojego wątku na temat xmegi i WS2812B.
    Co do poradnika, owszem fajny do wytłumaczenia na początek i dla jednej linijki.
    Ale pomyśl sobie o panelu świetlnym w którym jednocześnie zapalanych jest kilkaset takich linii? Na xmega doszedłem do maksymalnie 8 linii jednocześnie przy 32MHz. Więcej się procek nie wyrabiał, może w asemblerze. Przy "nie ludzkim" podejściu do zapisu w pamięci da się i 24 linie w jednym czasie.

    Będzie opakowane w obudowie to pokażemy filmik.
  • #17
    karol75
    Poziom 16  
    ^^^
    Widziałem tamto.
    Tylko skąd w Xmega weźmiesz 24(lub więcej) UARTY?

    Powstaje powoli sterownik na FPGA.
  • #18
    Limonit
    Poziom 13  
    karol75 napisał:
    Jedno małe ale Nie WS2812B Tylko WS2812 (w linku piszesz dobrze).
    WS2812B mają także w swojej obudowie "rejestr przesuwny" i pamięć i najważniejsza różnica to: WS2812B mają 4 wyprowadzenia a nie 6.

    Mnie interesuje za to, czy próbowałeś nakładać jakieś filtry poprawiające ostrość.


    Zgadza się, mój bład. W projekcie są użyte diodki bez B - inny footprint. Praktycznie mając gotowy moduł, nie musiałem się szczególnie przejmować dokladnym typem.
    Oba typy różnią się częstotliwością pracy, aczkolwiek moim urzadzeniu diody działają na częstotliwości sporo niższej niż w specyfikacji - jak widać tolerancja jest na tyle duża, że działają niezawodnie.

    Filtra nie próbowalem, ponieważ świecą we wszystkich kolorach, inna barwa niż szara pewnie zaburzałaby odbiór. Natomiast ograniczenie jasności zrealizowane jest w urządzeniu.
  • #19
    karol75
    Poziom 16  
    Nie tyle chodzi o przytłumienie jasności co o ujednolicenie barwy(delikatne rozmycie), spróbuj przykryć kalką techniczną lub papierem śniadaniowym i zobaczysz o co mi chodzi. Na kalce można byłoby nanieść podziałkę.
  • #20
    piotrekda
    Poziom 11  
    karol75 napisał:
    Jedno małe ale Nie WS2812B Tylko WS2812 (w linku piszesz dobrze).
    WS2812B mają także w swojej obudowie "rejestr przesuwny" i pamięć i najważniejsza różnica to: WS2812B mają 4 wyprowadzenia a nie 6.

    Mnie interesuje za to, czy próbowałeś nakładać jakieś filtry poprawiające ostrość.


    tak w sumie to są WS2812S - tak są aktualnie sprzedawane przez producenta
  • #21
    Oo-PAWEŁ-oO
    Poziom 12  
    Czy mógłbyś rozwinąć tę myśl:
    Limonit napisał:
    Przez moment myślałem o wbudowanym w mikrokontroler termometrze - ale tam jest jeszcze gorzej.

    - czy taki uC istnieje ?, a może chodziło o pomiar napięcia z termometru przez wbudowany przetwornik, ale przecież Autor właśnie go wykorzystuje.

    Co do projektu to bardzo miły dla oka, minimalistyczna obudowa, sam lubię gdy elektronika jest wyeksponowana poprzez przezroczystą obudowę lub jej brak. Jedyne do czego bym się przyczepił to stabilność tej obudowy.
    Płytki robione samodzielnie?

    pozdrawiam
  • #22
    Limonit
    Poziom 13  
    Na szybko z DS ATTiny 25/45/85
    10-bit ADC
    • 4 Single Ended Channels
    • 2 Differential ADC Channel Pairs with Programmable Gain (1x, 20x)
    • Temperature Measurement

    Mają czujnik podlączony na stałe do 4 kanału ADC. W DS szczegóły, dokładność słaba, ale zawsze pod ręką.

    Płytka samodzielnie, metodą fotochemiczną (folia), cynowane stopem Lichtenberga.