Spisu treści:

Zsynchronizowane paski LED WiFi Mesh: 3 kroki (ze zdjęciami)
Zsynchronizowane paski LED WiFi Mesh: 3 kroki (ze zdjęciami)

Wideo: Zsynchronizowane paski LED WiFi Mesh: 3 kroki (ze zdjęciami)

Wideo: Zsynchronizowane paski LED WiFi Mesh: 3 kroki (ze zdjęciami)
Wideo: Lytmi Neo 2.0 🌈 Ambilight do każdego telewizora / Recenzja 4K 2024, Listopad
Anonim
Image
Image
Synchronizowane paski LED WiFi
Synchronizowane paski LED WiFi
Zsynchronizowane paski LED WiFi
Zsynchronizowane paski LED WiFi
Synchronizowane paski LED WiFi
Synchronizowane paski LED WiFi

Autor: CarlSTeleToylandObserwuj Więcej autora:

Zdalny selektor kolorów dla domowych diod LED
Zdalny selektor kolorów dla domowych diod LED
Zdalny selektor kolorów dla domowych diod LED
Zdalny selektor kolorów dla domowych diod LED
Szeroko zsynchronizowane diody LED otoczenia
Szeroko zsynchronizowane diody LED otoczenia
Szeroko zsynchronizowane diody LED otoczenia
Szeroko zsynchronizowane diody LED otoczenia
Stałe cyfrowe oświetlenie LED domu wakacyjne V2
Stałe cyfrowe oświetlenie LED domu wakacyjne V2
Stałe cyfrowe oświetlenie LED domu wakacyjne V2
Stałe cyfrowe oświetlenie LED domu wakacyjne V2

O: Twórca od dzieciństwa ze wszystkimi klasycznymi objawami, konstruktor robotów i CTO/Tech Product Manager ds. oprogramowania internetowego. Więcej o CarlS »

Ten projekt to kolekcja listew LED z indywidualnie sterowanymi cyfrowymi diodami LED (WS2812b "Neopixels"). Pozwalają na tworzenie animacji bez łączenia ich ze sobą. Używają sieci WiFi Mesh do łączenia się ze sobą, a animacja dostosowuje się do posiadania większej lub mniejszej liczby pasków w siatce.

Inspiracją było to, że para głównych perkusistów udekorowała buławy/pałeczki na bożonarodzeniową paradę. Animacja LED między nimi jest zsynchronizowana. Diody LED mogą być również pasmami zamiast pasków.

Drugim zastosowaniem jest instalacja artystyczna LED, w której nie chcesz prowadzić przewodu danych między wszystkimi diodami LED w pomieszczeniu - wystarczy, że podłączą je pojedynczo.

W przypadku tego projektu nie są podłączone do Internetu. Tworzą własne prywatne punkty dostępu Wi-Fi i serwery internetowe. Tak więc ten projekt nie jest zależny od sieci zewnętrznej i może działać w lokalizacjach zdalnych. Działają na 5V, więc mogą być łatwo zasilane przez zewnętrzne baterie do telefonów komórkowych!

Krok 1: Części

Części
Części
Części
Części
Części
Części

W projekcie dla każdej listwy zastosowano następujące części:

  • Niewodoodporna taśma LED WS2812b. Użyłem 30 diod/metr. Te niewodoodporne zwykle mają już przyklejoną taśmę dwustronną, dzięki czemu są łatwe w montażu. Będziesz potrzebował 1 metra na kanał, ponieważ kanały mają metr długości. Więcej diod LED na metr jest w porządku - po prostu upewnij się, że masz odpowiednio duży zasilacz. Każda (5050) dioda LED w tych paskach może zużywać do 60 mA, gdy jest w pełni włączona.
  • Plastikowa obudowa projektu elektronicznego 60x36x25mm - ta jest wystarczająco mała, aby pomieścić D1 Mini.
  • Gniazdo 5,5 mm x 2,1 mm DC do montażu na panelu
  • Zasilanie 5V - 2 A powinno wystarczyć z 30 diodami LED @ 0,06 A przy pełnym włączeniu.
  • Kabel USB na 5,5 mm x 2,1 mm, jeśli chcesz zasilić ten projekt z baterii USB
  • Płyta D1 Mini ESP8266 - również dostępna za mniej, ale z dłuższym oczekiwaniem.
  • Aluminiowy kanał z osłoną i zaślepkami do taśm LED. Do wyboru jest wiele profili. Ten jest wystarczająco szeroki dla taśm LED WS2812b (12mm) i niski profil.
  • Pręt aluminiowy - kanał ma 17mm szerokości, więc pręt aluminiowy o szerokości 1/2" jest dobrym rozmiarem. Powinien mieć grubość 1/16" i długość 6" dla każdego wykonanego pręta.
  • Dwustronna taśma piankowa - szerokość 1/2".
  • Kondensator 1000uF - zalecany do każdej taśmy, aby zapobiec uszkodzeniu diod LED przez skoki napięcia.
  • Podłączyć przewód. Ten przewód silikonowy o grubości 26 jest bardzo elastyczny i pomaga zapobiegać ściąganiu punktów lutowniczych z paska LED. Nie topi się również po dotknięciu lutownicą. Użyłem również drutu serwo, który jest również bardzo elastyczny, ale drut silikonowy jest moim nowym ulubionym drutem. Potrzebujesz tylko około 6" każdego koloru (czerwony, czarny, żółty).
  • Przewody połączeniowe - żeński czerwony, czarny i żółty służą do połączenia z procesorem. Możesz je pominąć i przylutować przewód bezpośrednio do płytki, jeśli jesteś pewny siebie.
  • Rezystor 330 omów do redukcji szumów w linii danych taśmy LED.
  • Dioda sygnałowa 1N4448 lub podobna, aby umożliwić procesorowi 3,3 V niezawodne sterowanie paskiem LED 5 V.
  • Rurka termokurczliwa 3 mm - wystarczy około 5 cali.

Krok 2: Zbuduj Bary

Zbuduj Bary
Zbuduj Bary
Zbuduj Bary
Zbuduj Bary
Zbuduj Bary
Zbuduj Bary
Zbuduj Bary
Zbuduj Bary

Konstrukcja barów jest taka sama jak w poprzednim Instructable. Są tu podobne zdjęcia krok po kroku z ostatniej wersji, a dyskusję można znaleźć na temat tego innego Instructable.

Jedna nowa wskazówka dotycząca przyklejania diod LED do aluminiowego kanału: czasami taśma dwustronna na taśmach LED jest nieco krótsza niż płytka z obwodami LED, a na pasku LED widać lekkie zapięcie. Jeśli po prostu przetniesz taśmę w tym miejscu, ułoży się płasko.

Użyłem również kilku kropel kleju UV, aby zablokować przewód zasilający i wszelkie części paska LED, które nie tkwiły.

Zamiast kontrolerów Particle Photon w tym projekcie wykorzystano płytki WeMos D1 Mini, oparte na chipsecie ESP8266. Są ładne i małe jak na projekt LED. Użyłem męskich nagłówków, aby zrobić miejsce dla żeńskich skoczków. Odwrócenie złączy nie zmieści się w obudowie. Takie podejście jest również łatwe do lutowania. Użyłem również drutu litego o grubości 20 z zaciśniętymi złączami żeńskimi, co również działa, ale jest to więcej wysiłku.

Te słupki wykorzystują to samo podejście do protektorowej diody LED dla pierwszej diody LED. W praktyce naprawdę nie jest to zauważalne. Prawie niezauważalna jest również niewielka luka między pierwszymi dwoma

Jeśli zamierzasz użyć klipsów do montażu aluminiowego kanału, aluminiowy pręt łączący kanał ze skrzynką projektową może przeszkadzać w bezpośrednim montażu klipsów do ściany, więc może być konieczne założenie podkładek lub luźnej nakrętki pod tam, aby odeprzeć je o 1/16.

Krok 3: Kod siatki

Image
Image
Kod siatki
Kod siatki

Każdy z pasków LED uruchamia ten sam kod. Podstawą tego projektu jest biblioteka painlessMesh dostępna pod adresem https://gitlab.com/BlackEdder/painlessMesh. Ta biblioteka obsługuje większość niskopoziomowych prac związanych z tworzeniem punktów dostępowych, serwerów WWW itp. Każdy słupek jest węzłem siatki.

Siatka ma jeden kontroler, a powiadomienia o zmianach animacji są emitowane do wszystkich węzłów/pasków LED. W przypadku dużej siatki może wystąpić pewne opóźnienie w wiadomościach, ale przy skali, w której pracowałem, nie było to zauważalne.

Podczas uruchamiania węzeł zakłada, że jest kontrolerem, ale wtedy komunikat updatedNodes wyzwala ocenę. Najniższy identyfikator chipa w siatce staje się kontrolerem. Zwykle zajmuje to sekundę lub dwie, zanim wszystkie węzły ustabilizują się i przyjmą jeden kontroler. Możesz włożyć więcej wysiłku w szybszą ponowną synchronizację (w połowie animacji), ale te komunikaty o zmianach są dość gadatliwe, więc i tak potrzeba trochę czasu, aby sieć się uspokoiła. W praktyce po ponownym zsynchronizowaniu pozostają bardzo solidne.

W przypadku animacji, które przecinają się, kod pobiera listę węzłów, sortuje ją, a następnie rysuje tylko wtedy, gdy bieżący węzeł jest tym, który jest rysowany. Sortują w kolejności identyfikatorów chipów, dzięki czemu możesz tworzyć animacje, które będą spójne, bez względu na to, kiedy się uruchomią. Ponadto animacje dostosują się do upuszczanych węzłów.

Kod animacji pojawia się w trzech miejscach. Pierwsza to funkcja ReceiveCallback, w której pasek otrzymał nowe polecenie animacji. Jest to dość proste - wystarczy ustawić rozmiar kroku czasowego dla animacji i zresetować liczniki. Drugie miejsce zajmuje funkcja pętli. Tam kod sprawdza, czy bieżąca animacja jest gotowa, i przechodzi do następnego kroku. Ostatnim miejscem na kod animacji jest funkcja stepAnimation, w której wykonywane jest całe rysowanie.

System wykorzystuje licznik milisekund do aktualizacji - unikając używania funkcji opóźnienia, ponieważ blokuje ona niektóre biblioteki. Kod milisa powinien być poprawnie przewijany.

Zauważ, że miałem problemy z biblioteką NeoPixel i bezbolesną siatką z więcej niż jedną diodą LED, więc przełączyłem się na FastLED.

Oto kod na GitHib, który jest również załączony tutaj. Ładujesz go prawie na wszystkie paski i jesteś gotowy do kodowania animacji LED!

Zalecana: