Skocz do zawartości

Programowalna kurtyna LED


SOYER

Pomocna odpowiedź

Cześć, znalazłem takie coś do kupienia na internetach.

Zastanawiam się w jaki sposób można by zrobić podobną rzecz własnymi siłami przy okazji czegoś się ucząc.

Założenie takie, że mamy jakiś prosty obrazek/animację i samodzielnie wgrywamy nowy obraz/animację poprzez zmianę szkicu przez OTA. 

Pytanie zasadnicze jak ten obrazek/animację(kilka obrazków) zamienić na kod do sterowania programowalnymi LED.

Z doświadczenia wiem, że nie wiem za dużo, więc nie będę się rozpisywał o rozdzielczościach, wielkościach kurtyny itp.

Jedno założenie, esp32 plus ew. moduł z kartą pamięci(czy potrzebny?).

Zapraszam szanownych kolegów do dyskusji;).

Link do komentarza
Share on other sites

1 godzinę temu, SOYER napisał:

nie będę się rozpisywał o rozdzielczościach, wielkościach kurtyny itp.

 

No ale od tego trzeba zacząć - to kluczowa wartość.

Załóżmy ekran (o kurtynie potem) wielkości metr na metr. Przy paskach 30 led/m potrzebujesz 30 m taśmy, ale nie wiem czy taka rozdzielczość będzie wystarczająca. Możesz sobie zrobić symulację jakiegoś gifa o wielkości np. 32x32 i sprawdzić czy to się do czegoś nadaje.

Przy pasku 60 led/m masz już rozdzielczość jako-tako wystarczającą, ale trzeba 60 m taśmy. Wysterować się da... ale ile to będzie kosztować? Szczególnie przy założeniu, że to ma być umieszczone na zewnątrz czyli taśma wodoodporna?

Dalej: połączenie elektryczne. W normalnym układzie wszystkie ledy muszą być połączone szeregowo, czyli nie ma możliwości takiej, że każdy pasek sobie zwisa swobodnie. Rozumiem jednak, że zależy Ci raczej na czymś w rodzaju prostego ekranu (czyli nie ma problemu z dolną krawędzią). Jeśli to koniecznie musi być kurtyna z majtającymi się paskami - albo połączenie w zygzak po dwa paski (dołem muszą być połączone), albo kombinowanie z metrowymi przewodami między paskami (co niekoniecznie musi działać).

Oczywiście jest trzecie rozwiązanie - każdy pasek sterowany z innego pinu. Tu potrzebny by był jakiś multiplekser, ale kod programu nie byłby dużo bardziej skomplikowany. Gorzej z elektroniką...

Jeśli stwierdzisz, że jesteś w stanie wykonać takie coś, zmieścić się w jakichś sensownych kosztach i uruchomić na tym jakieś proste demo typu "wąż" - jedziemy dalej.

A co do tego "daleja": jak się czujesz w Pythonie? bo użycie Pythona z modułem PIL jest najprostszym rozwiązaniem jeśli chodzi o przygotowanie danych w różnej postaci strawnej dla mikrokontrolera... żaden gotowiec tego nie załatwi.

No i jeszcze jedno: zwykły esp32 bez karty powinien wystarczyć. Zresztą w razie czego podłączenie karty (np. takim samodzielnie wykonanym czytnikiem zrobionym z adaptera microSD/SD i kawałka goldpina, działa na 3.3V maszynkach lepiej niż "fabryczne" przystosowane do 5V Arduino) jest trywialne.

Edytowano przez ethanak
Link do komentarza
Share on other sites

Może w ramach testu kup sobie najprostszy moduł za kilka zł i zobacz jak się go programuje dla "obrazka" 4x4 pix. Jako zasilacz wystarczy ładowarka 1A+. W przypadku kurtyny musisz mieć już konkretne zasilanie, jeżeli zaświecisz wiele diod. ESP32 obsługuje micropythona, który nie jest wydajniejszy od c++, ale prostszy w projektowaniu, dlatego o nim wspominam (nie namawiam). Możesz rzucić okiem jak obsługuje diody RGB: link. Wczytanie obrazka z .raw jest łatwiejsze niż tworzenie animacji. Odczytujesz po 3 bajty (RGB) z pliku i ustawiasz kolor dla każdego pixela w buforze, na koniec wyświetlasz.

Link do komentarza
Share on other sites

@orb777 i to najbardziej nieefektywny sposób... masz jeszcze kilka takich dobrych rad? Po jakiego grzyba rgb jak wystarczy indeks palety? Przy 16-kolorowej palecie i rle plik będzie jakieś 8 do 10 razy mniejszy.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

Myślałem nad mniejszą rozdzielczością ok 15 szt/mb taśmy. Nie wiem jakie taśmy są.

Obraz ma być oglądany z około 20m. Wielkość ok 2m x 4-5m. 
Przy wyższych rozdzielczościach zapotrzebowanie na prąd będzie nieziemskie. To nie  ma być tv tylko bajer ma święta.

Edit: tu jest 520 diód na 3m2:

 

 

IMG_1293.png

Edytowano przez SOYER
Link do komentarza
Share on other sites

2 minuty temu, SOYER napisał:

ok 15 szt/mb taśmy.

A gdzie to widziałeś? Rzuć linkiem bo by mi się przydało 4m wodoodpornej...

 

2 minuty temu, SOYER napisał:

Wielkość ok 2m x 4-5m

Czyli ok. 2000 led. Wychodzi 120 A.

Link do komentarza
Share on other sites

Do wgrywania ja bym wykorzystał Bluetooth. Czy klasyczny, czy LE. Ja bym szedł w program w C i bezpośrednio do RAMu ładował. Bluetooth Serial Terminal na Androida i SPP albo SPP podobne dla LE. Jedna z wielu możliwości. I innej płytki bym użył 😄 O wskazanym produkcie warto przeczytać opinie... Pewnie takie same taśmy (trzy przewody z glutem) na Ali będą. Dioda co 3 cm to chyba nawet za gęsto. To i tak z daleka ma być oglądane.

Link do komentarza
Share on other sites

6 minut temu, SOYER napisał:

Myślałem nad mniejszą rozdzielczością ok 15 szt/mb taśmy. Nie wiem jakie taśmy są.

Obraz ma być oglądany z około 20m. Wielkość ok 2m x 4-5m. 
Przy wyższych rozdzielczościach zapotrzebowanie na prąd będzie nieziemskie. To nie  ma być tv tylko bajer ma święta.

Edit: tu jest 520 diód na 3m2:

 

 

IMG_1293.png

520szt/3m2

tyle tam jest

Link do komentarza
Share on other sites

1 minutę temu, orb777 napisał:

chętnie zobaczę efektywny

Tak na początek:

Nie potrzebujesz RGB. Wczytujesz sobie paletę (256 * 4 bajty na przykład), a potem tylko pojedyncze bajty z pliku. W kodzie masz coś w stylu:

pasek.setPixelColor(nr++, paleta[wczytany_bajt]);

Jeśli ograniczysz się do 16 kolorów (co akurat w tym zastosowaniu ma sens) możesz dwie ledy zmieścić w jednym bajcie, czyl:

pasek.setPixelColor(nr++,paleta[wczytany_bajt & 15]);
pasek.setPixelColor(nr++,paleta[wczytany_bajt >>4]);

I już masz 6 x mniej danych 🙂

 

Link do komentarza
Share on other sites

5 minut temu, matsobdev napisał:

Do wgrywania ja bym wykorzystał Bluetooth

Nie lepiej przez WWW?

6 minut temu, matsobdev napisał:

Ja bym szedł w program w C i bezpośrednio do RAMu ładował

Raczej C++... a RAM ma to do siebie że nie trzyma danych po wyłączeniu. A pewnie trochę zostanie miejsca na LittleFS we flashu 🙂

7 minut temu, matsobdev napisał:

I innej płytki bym użył

A co jest złego w ESP32?

 

Link do komentarza
Share on other sites

Nie ma lepiej czy gorzej. Ja tak to widzę. Jak ktoś chce tak, to zrobi tak. Inaczej, to inaczej. Nie wiem co jest złego w ESP32. Ja bym po prostu innej płytki użył, z którą jestem bardziej obeznany - Pico W. Dlatego też w C. No i bym na większą ilość kolorów sobie pozwolił, bo czemu nie. Jakaś korekcja gamma, wsadowo to też wcześniej wspomniany ImageMagick się nada. To byłaby gotowa surówka do podania na diody.

PS. A można też po prostu mieć w pamięci zestaw animacji do wyboru, tak jak się będzie chciało. To i 16 MB będzie sporo.

Edytowano przez matsobdev
Link do komentarza
Share on other sites

2 minuty temu, matsobdev napisał:

Ja bym po prostu innej płytki użył, z którą jestem bardzie obeznany

A to zmienia postać rzeczy 🙂 Zresztą Pico też można w C++ programować tak na marginesie 🙂

Ja jednak bym pozostał przy ESP32. Więcej RAM, więcej flasha, można sobie wgrywać dane na flasha bez problemu... ale to kwestia wyboru. Cenowo na jedno wychodzi. W sumie funkcje do wyświetlania niewiele się będą różnić, gorzej z całą resztą.

Link do komentarza
Share on other sites

12 minut temu, ethanak napisał:

Nie lepiej przez WWW?

Raczej C++... a RAM ma to do siebie że nie trzyma danych po wyłączeniu. A pewnie trochę zostanie miejsca na LittleFS we flashu 🙂

A co jest złego w ESP32?

 

Tym się nie martwcie, użyję dedykowanych funkcji supli do ota przez www.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.