• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino + ledy ws2812b
#1
Witam,



Od jakiegoś czasu bawię się Arduino (wersja Nano), zrobiłem kilka prostych projektów teraz przyszedł czas na diody Led ws2812b. Trochę czytałem na ten temat ale chciałbym dowiedzieć się coś więcej.



W przypadku gdy mam np 5 pasków led po 1m w jaki sposób należy je podłączyć aby można było sterować wyświetleniem każdego paska niezależnie ? szeregowo (1 wyjście sterujące z Arduino) czy każdy pasek oddzielnie (klika wyjść z Arduino) ?





Finalnie chciałbym zrobić efekt coś ale spadające sople (np. ok 15 równolegle położonych lasków LED)

Trafiłem również na program o nazwie led editor - czy ktoś z Was z niego korzysta ?

Jeżeli mam np. 15 lasków led - położonych równolegle - taki mały ala multiplexing - to czy jest jakiś soft aby np wyświetlić na mi jakiś efekt ? osobiście nie wyobrażam sobie pisania ręcznie wszystkich efektów (klatka po klatce w jaki sposób się ma wyświetlać)

Dziękuje za wskazówki

Pozdrawiam


Załączone pliki Miniatury
       
 
Odpowiedź
#2
(20-10-2019, 12:29)busyboy napisał(a): W przypadku gdy mam np 5 pasków led po 1m w jaki sposób należy je podłączyć aby można było sterować wyświetleniem każdego paska niezależnie ? szeregowo (1 wyjście sterujące z Arduino) czy każdy pasek oddzielnie (klika wyjść z Arduino) ?
Szeregowo.

(20-10-2019, 12:29)busyboy napisał(a): Finalnie chciałbym zrobić efekt coś ale spadające sople (np. ok 15 równolegle położonych lasków LED)
To już nie na AVR a jeśli nawet wybierzesz mocniejszy uC z DMA to nie z bibliotekami Arduino, ale....
to https://forum.atnel.pl/post222192.html#p222192 może rozwiązać problem nawet na AVR ale....
nie ma tego jeszcze w sprzedaży, chyba, że sam zrobisz PCB. Zrobisz?

(20-10-2019, 12:29)busyboy napisał(a): osobiście nie wyobrażam sobie pisania ręcznie wszystkich efektów (klatka po klatce w jaki sposób się ma wyświetlać)
Najpierw to rozwiąż problem 15 pasków LED co daje (przy 1m na pasek) łącznie do 2160 LED zależnie jak gęsto są ułożone (30, 60, 90 czy 144 na metr). Policz sobie, jak wszystko połączysz szeregowo jakie odświeżanie będziesz miał.
Kicha, co? Wiec równolegle ale AVR nie da rady bo nie używa DMA i czy szeregowo czy równolegle jeden ch....  Szukaj więc uC z DMA ale jak wspomniałem biblioteki Arduino są do du...... (jak całe Arduino) więc musisz sam napisać obsługę WS2812 z wykorzystaniem DMA.
Zapomnij o tym, że użyjesz np 15+1 ArduinoUNO. W czasie transmisji do WS2812 zawieszane są przerwania 9choc nie muszą ale Arduino to Arduino, bardziej Gó..ino) więc nie da się odbierać komend sterujących z innego uC przez np UART (chyba, że 2 bajty wystarczą bo takie jest FIFO w AVR). Pomijając problemy z napisaniem softu pozostaje problem ceny. 16 Arduino, nawet klonów to koszt ok 480zł (klony są po ok 30zł). Za 55zł kupisz ORYGINALNĄ płytkę NOCLEO z STM.

I tym miłym akcentem kończę swoje wywody.
Jak wysterujesz 15 pasków to napiszę jak poradzić sobie z efektami ale jeśli to mają być animacje to możesz potrzebować setek kB FLASH. Karta SD może nie wypalić, zwłaszcza jak użyjesz trybu 1-bit (SPI) zamiast 4-bit (to już nie na AVR, nawet Xmega nie pomoże). Karta jest stosunkowo wolna, więc DMA i/lub RTOS, znasz RTOS? Ratunkiem będzie pamięć DataFlash.
Jeśli zrezygnujesz z animacji o której pisałeś, a wygenerujesz efekty on-line, to wtedy nie potrzeba dużo FLASH.


PS
Według mnie porwałeś się z przysłowiową motyką na księżyc. Od razu full LED zamiast najpierw próby jak to działa, jakie są ograniczenia Arduino.
 
Odpowiedź
#3
Witam,

Dziękuje Tobie za informacje i to tak szczegółowe i rozbudowane. Muszę jeszcze bardzo dużo poczytać i się nauczyć w tym temacie po powiem szczerze nic z tego nie rozumiem Sad Może źle się wyraziłem, może faktycznie porywam się z motyką na księżyc - chodzi mi o taki efekt i widzę że jest to zrobione na Arduino UNO

https://www.youtube.com/watch?v=ETl0VXT75oQ
https://www.youtube.com/watch?v=jbNSa695bVo
https://www.youtube.com/watch?v=d4LSNHRiBDE
https://www.youtube.com/watch?v=VtIWN5SJDYo

(link są przykładami tematyki)

Wiem już że paski led muszę połączyć szeregowo. Ale co z metodą wyświetlania konkretnych efektów typu np. węza, spadających sopli, gniazdy itp w jaki sposób można to zrobić ? są gotowe biblioteki czy kod trzeba ręcznie tworzyć ? przejście po przejściu ?

Pozdrawiam
 
Odpowiedź
#4
(20-10-2019, 15:22)busyboy napisał(a): chodzi mi o taki efekt i widzę że jest to zrobione na Arduino UNO
https://www.youtube.com/watch?v=ETl0VXT75oQ
https://www.youtube.com/watch?v=jbNSa695bVo
https://www.youtube.com/watch?v=d4LSNHRiBDE
https://www.youtube.com/watch?v=VtIWN5SJDYo
W linkach nie masz blisko 3000 LED. Wtedy nie ma problemu, nawet UNO to obsłuży i .... niewiele więcej (zawieszanie przerwań). Jest sposób na to ale obciążenie AVRka osiąga 80..90% (czytaj Elektronike dla wszystkich, tam będzie to dokładnie wyjaśnione i będą kody źródłowe) bo problemem sa IRQ RX z innych UART.

(20-10-2019, 15:22)busyboy napisał(a): Wiem już że paski led muszę połączyć szeregowo. Ale co z metodą wyświetlania konkretnych efektów typu np. węza, spadających sopli, gniazdy itp w jaki sposób można to zrobić ? są gotowe biblioteki czy kod trzeba ręcznie tworzyć ? przejście po przejściu ?
Efekty, która przytoczyłeś w linkach nie są generowane jako animacja tylko "matematycznie". Tu nie ma możliwosci wrzucić filmów, mam gdzies na YT . Jak znajdę link to umieszczę na forum.
Czy są gotowe libs? Wątpię bo jest to dość łatwe a jednocześnie liczba efektów ogromna i ciężko napisać libs, która zadowoli choćby 5% użytkowników. Szukaj w przykładach dla WS281x.


PS
Co do ewentualnego multipleksowania pasków. Można to zrobić ale ma to sens, na beznadziejnym ArduinoUNO i podobnych. Zysk może być taki, że LED łączy się w gwiazdę (sterownik na środku). Innych korzyści nie widzę.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości