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

DIY Arduino Nano i diody WS2812B na choinkę - zmiany

Visar78 03 Sty 2020 19:59 1881 13
  • Witam,

    minęło parę lat od przedstawienia ostatniej wersji lampek choinkowych,

    Arduino + WS2811 - lampki choinkowe

    a ponieważ sprawdzały się przez te wszystkie święta, postanowiłem pokazać wersję mocno uproszczoną do sterowania drzewkiem na zewnątrz, gdzie po prostu włącza się to przed świętami i ma chodzić do końca stycznia.


    Link


    Tak więc tym razem odpada wszelkie zewnętrzne sterowanie, z praktyki wiem, że możliwość wybierania efektu, zmiany prędkości, itp. to "bajer" który szybko się nudzi i potem i tak wszystko zostaje w trybie demo.

    Tak więc co się zmieniło w stosunku do poprzedniego razu:
    jest to wersja zewnętrzna więc zmontowana w obudowie hermetycznej z poliwęglanu, z hermetycznymi złączami,
    program jest w dużej mierze przejęty z poprzedniego urządzenia, zmianie uległy dwa efekty i doszło reagowanie na światło
    nowa wersja funkcji wysyłającej dane do łańcucha, która potrafi składać dane z dwóch buforów i dodatkowo jeszcze sterować jasnością, wykorzystując do tego wolne cykle procesora podczas oczekiwania na wysłanie danych do łańcucha, samo przesłanie danych dla 250 diód łącznie z miksowaniem dwóch źródeł i uwzględnieniem jasności trwa poniżej 7ms.

    DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany DIY Arduino Nano i diody WS2812B na choinkę - zmiany

    DIY Arduino Nano i diody WS2812B na choinkę - zmiany

    Do obudowy zostały dokręcone "nogi" które pozwalają na łatwe umieszczenie skrzynki w ziemi koło drzewka. Wszystkie wypusty na kable zostały umieszczone od spodu, zaś z prawej strony wygląda na świat fotorezystor.

    Aktualny kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod
    [/code]

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Visar78
    Poziom 9  
    Offline 
    Specjalizuje się w: programowanie
    Visar78 napisał 21 postów o ocenie 143, pomógł 0 razy. Mieszka w mieście Warszawa. Jest z nami od 2011 roku.
  • #2
    Miray
    Poziom 3  
    Ten zasilacz to jakiej mocy jest? Zakładam, że pojedyncza dioda wymaga np. 2V i 20 mA co daje jakieś 0,04 W. Razy 250 to daje jakieś 10 W. Chyba, że te diody konsumują więcej. To popraw mnie.
  • #3
    Erbit
    Poziom 36  
    Dobrze, że pokazałeś nową wersję, bo starej nie widziałem ;)

    Świetny projekt. Na pewno na przyszły rok zbuduję.

    Z ilu maksymalnie diod może być złożony jeden sznur? Głównie obawiam się o spadki napięć.
    Czy przy dłuższym sznurze nie byłoby bezpieczniej zastosować diody 12V (właśnie ze względu na spadki napięć)?
    Jaką długość obsłuży Arduino Nano?
    Czy te diody mocno się grzeją? Zastanawiam się czy dla polepszenia efektu nie założyć piłeczki ping-pong na każdą z diod.
  • #4
    Visar78
    Poziom 9  
    Ten zasilacz ma moc 90W na wyjściu, a co do diod, to dla jednego łańcucha (50 diod) podawana jest moc 15W, jedna dioda ma prąd typowo 60mA, max. 80mA, tutaj przy zastosowaniu pięciu łańcuchów po 50 diod potrzeba min 75W. Wybrany został zasilacz 90W ze względu na jego dosyć kompaktowe wymiary, wcześniejszy 80W miał większy rozmiar.

    Tutaj jest pięć łańcuchów po 50 diodek połączonych w jedną długą linię, ale każdy zestaw 50 diod ma osobne zasilanie. Dlatego jest pięć gniazdek na obudowie, a sterowanie jest tylko na jednym z nich. Pewnie 12V jest wygodniej stosować, ja akurat miałem jeszcze zapas 5V.

    Diody nie grzeją się za bardzo, są tylko ciepłe w dotyku.

    A co do maksymalnej długości to zależy od rodzaju oprogramowania sterującego, w moim przypadku było to robione pod max 250 diod. Ale spokojnie można to zrobić do okolic 600 diod (chodzi o długość bufora w RAMie, którego tutaj jest mocno ograniczona ilość).
  • #5
    Miray
    Poziom 3  
    Visar78 napisał:


    A co do maksymalnej długości to zależy od rodzaju oprogramowania sterującego, w moim przypadku było to robione pod max 250 diod. Ale spokojnie można to zrobić do okolic 600 diod (chodzi o długość bufora w RAMie, którego tutaj jest mocno ograniczona ilość).


    Zastanawiam się czy gdyby zaprogramować to w czystym C, np. w Atmel Studio to można by obsłużyć większą ilość diod. W końcu Arduino lubi dla zwykłego mrugania diodą zabierać nawet kilka % pamięci programu.
  • #6
    Visar78
    Poziom 9  
    Tutaj raczej nie pomoże czyste C, Atmega 328p ma tylko 2048 bajtów RAMu, dla 600 diod potrzeba na bufor 1800 bajtów, co pozostawia dla reszty programu tylko nieco ponad 200 bajtów. Jeśli by trzeba było sterować większą ilością diod, to poszedłbym w ESP8286 gdzie RAMu jest 20KB.
  • #9
    Visar78
    Poziom 9  
    Ostatnim razem kupowałem u tego sprzedawcy: https://pl.aliexpress.com/item/32981560503.html?spm=a2g0s.9042311.0.0.118a5c0fxgD6v7, darmowa przesyłka kurierem pozwala szybko mieć towar u siebie (4 dni), ale wiąże się to dodatkowo z zapłatą podatku. Link kolegi wyżej wygląda zdecydowanie korzystniej.
  • #10
    Erbit
    Poziom 36  
    Visar78 napisał:
    ...wygląda zdecydowanie korzystniej.

    Nie szukałem, podałem "pierwszy z brzegu".

    Jak widać są nawet wielkości piłeczek ping-pongowych -> https://pl.aliexpress.com/item/1953381392.html albo takie: https://pl.aliexpress.com/item/32462921140.html

    Myślę, że każdy znajdzie coś dla siebie, trzeba tylko poszukać.

    [edyta]
    Dla leniwych - są też kontrolery -> https://pl.aliexpress.com/item/32848426554.html i co ciekawe , z kartą SD (chyba dla potrzeb zmiany programów).
    Ja oczywiście wolę DIY Kolegi choć nie ukrywam, że zrobię to na ESP8266 co umożliwi albo "wysyłanie programów" albo pobieranie ich z HTTP.

    Jeszcze nie wiem jak ale... coś wymyślę. Mam na to prawie rok.
  • #11
    Slawek K.
    Poziom 32  
    Te z linków powyżej z aliexpress to WS2811, czy różnica WS2811 vs. WS2812B to tylko wbudowany układ w diodę (WS2812B) zamiast zewnętrznego ? widzę, że teraz na topie WS2813 które mają wbudowany pin bypass'u - w przypadku uszkodzenia diody, reszta nadal działa.

    Do autora, bardzo fajnie i estetycznie wykonany projekt, poleciały zasłużone punkciki ;)

    Pozdr
  • #12
    fotomh-s
    Poziom 21  
    Erbit napisał:
    Ja oczywiście wolę DIY Kolegi choć nie ukrywam, że zrobię to na ESP8266 co umożliwi albo "wysyłanie programów" albo pobieranie ich z HTTP.

    Ja też polecam ESP. Można zrobić Artnet albo sACN, jest sporo dobrego softu do sterowania takim czymś (ja korzystam z zabugowanej wersji GrandMA2 OnPC, bug umożliwia export parametrów bez sprzętu od MA). Przy ESP-32 nie każda biblioteka działa odpowiednio, neopixel nie działa, fastled działa dobrze, przy 8266 chyba nie ma problemu z bibliotekami. ESP ma dużo pamięci, nie trzeba się martwić wielkością bufora.

    Ja w tym roku skąpo, tylko taki test zrobiłem:
    DIY Arduino Nano i diody WS2812B na choinkę - zmiany
  • #13
    marcineeek
    Poziom 1  
    Przepraszam że się wetnę. Czy spotkaliście się może z gotowym projektem lub DIY umożliwiającym sterowanie matrycą diod WS28xx w czasie rzeczywistym np. z komputera, raspberry, przez sieć, etc ... Chciałbym wykonać matrycę poziomą tzw. "fartuch" do aneksu kuchennego (40x6 oczek po jednej WS28xx 10x10cm) realizującym funkcję oświetlenia akcentującego, oświetlenia blatu roboczego, przy muzyce efekty coś jak w winampie, informacje o poczcie, sms-ach przychodzących, nazwę dzwoniącego przez tel GSM, itp., itd. Kiedyś widziałem drzwi z tetrisem w pionie w "szybie" - tu byłoby w poziomie. Zupełnie nie wiem czy takie coś jest możliwe i w zasięgu oraz w jakie narzędzia celować. Może ktoś widział i coś podpowiecie ...
  • #14
    fotomh-s
    Poziom 21  
    marcineeek napisał:
    Czy spotkaliście się może z gotowym projektem lub DIY umożliwiającym sterowanie matrycą diod WS28xx w czasie rzeczywistym np. z komputera, raspberry, przez sieć, etc ...

    Art-Net albo sACN jeśli chcesz sterować w czasie rzeczywistym. Do tego dobierasz sobie soft jaki Ci pasuje.
    Można zrobić na ESP i sterować przez WiFi.

    Na githubie są biblioteki do Arduino z przykładami pod WS2812. Potrzebna płytka z ESP (8266, może być i 32), biblioteka fastled oraz biblioteka Art-Net lub sACN. Do tego oczywiście musisz pobrać biblioteki dla ESP (te oficjalne).

    Jeśli chcesz zrobić dane z telefonu (jak nazwa dzwoniącego) to najlepiej przez BT (ESP-32), wymagać to jednak może odpowiedniego softu na telefon (nie wykluczone że będziesz musiał apkę napisać) i oczywiście implementacji po stronie ESP.