Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Materiały eksploatacyjne
- Krok 2: Określenie odpowiedniego zasilacza dla twojego LedWall
- Krok 3: Przewód zasilający
- Krok 4: Podłączanie zasilania
- Krok 5: Zasilanie ESP32S
- Krok 6: Zasilanie pasków świetlnych LED
- Krok 7: Podłączanie ESP32 do taśm świetlnych LED
- Krok 8: Przygotowanie komputera: sterownik C2102
- Krok 9: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1
- Krok 10: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2
- Krok 11: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 3
- Krok 12: Dodawanie bibliotek do Arduino IDE
- Krok 13: Pierwszy kod: test pasm
- Krok 14: Przykładowy kod SHU
- Krok 15: Przesyłanie kodu do ESP32
- Krok 16: Cytaty
Wideo: Ściana z 500 diodami LED z ESP32: 16 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Cześć wszystkim! Pod koniec tego samouczka dowiesz się, jak stworzyć własną ścianę LED.
Ten samouczek jest oparty na letnim programie oferowanym na Sacred Heart University.
Baw się dobrze!
Kieszonkowe dzieci
Materiały wymienione poniżej.
Krok 1: Materiały eksploatacyjne
Zacznijmy od zebrania wszystkiego, czego potrzebujemy do ukończenia naszej ściany Led:
(Linki zostały utworzone 7.10.2019)
Oprogramowanie Arduino IDE
Mikrokontroler ESP32
Oświetlenie pikselowe LED
Zasilacz
Kabel zasilający
Narzędzie do ściągania izolacji
Kable połączeniowe do płyt chlebowych
Przewód elektryczny
Krok 2: Określenie odpowiedniego zasilacza dla twojego LedWall
Istnieje prosty matematyczny sposób, aby dowiedzieć się, który zasilacz jest najlepszy dla Ciebie.
Używamy prawa mocy Ohma: P = IxV (Moc = Intensywność x Napięcie)
Napięcie określają nasze diody: w tym przypadku 5V.
Intensywność zależy od sprzętu, pojedyncza dioda LED pobiera 30mA.
Każdy pasek 50 diod LED zatem zużywa 50 x 30mA = 1250mA = 1,25A.
Dlatego nasza ściana 500 Led zużywa 10 razy więcej (10 pasków): 12,5 A.
Zużycie energii wynosi wtedy 5V x 12,5A = 62,5W dla diod LED.
Oczywiście, oprócz diod LED, musisz uwzględnić ESP i każdy inny element twojego obwodu.
Mamy zasilacz 60A, mamy dużo więcej niż potrzebujemy.
Krok 3: Przewód zasilający
Nasz zasilacz jest dostarczany ze złączami przewodowymi. Musimy przystosować przewód zasilający, aby podłączyć go do wtyczki 110V.
- Odetnij złącze żeńskie od przewodu zasilającego. Zachowamy męską część, inaczej znaną jako NEMA 5-15P.
- Usuń izolację kabla, aby na wszystkich przewodach było widoczne około 3 mm miedzi.
Oto krótki samouczek wideo na temat zdejmowania izolacji z przewodów:
Krok 4: Podłączanie zasilania
Teraz jesteśmy gotowi do podłączenia zasilania!
Zawsze odłączaj zasilanie podczas pracy z nim.
Okablowanie
- Czarny przewód (faza) łączy się z pinem „L” zasilacza
- Biały przewód (neutralny) łączy się z pinem 'N' zasilacza
- Zielony przewód łączy się z pinem uziemienia zasilacza
(Jeśli wewnętrzne przewody twojego kabla zasilającego nie są w tym samym kolorze co nasze, bądź bezpieczny i sprawdź schematy online.)
Testowanie
Podłącz przewód zasilający komputera do dowolnego gniazdka elektrycznego. Zielona dioda LED na zasilaczu powinna się zaświecić.
Krok 5: Zasilanie ESP32S
Patrząc na swój ESP, obok każdego pinu powinny znajdować się etykiety. Jeśli nie jest oznaczony, możesz sprawdzić „pinout” swojego indywidualnego ESP online.
Używając męskiego do żeńskiego przewodu połączeniowego płytki stykowej lub przewodu elektrycznego, podłącz:
- Pin '5V' ESP32S do '+V' zasilacza (pomarańczowy na zdjęciu powyżej)
- Pin 'GND' ESP32S do sekcji '-V' zasilacza (czarny na zdjęciu powyżej)
(W niektórych ESP pin „5V” jest oznaczony jako „VCC”, oba oznaczają to samo.)
Pamiętaj, że twój ESP może mieć inny "pinout" niż ten, którego używamy. W związku z tym możesz podłączać przewody do innej lokalizacji niż na powyższym obrazku. O ile łączysz się z odpowiednimi pinami (5 V i GND), fizyczna lokalizacja na planszy nie ma znaczenia.
Testing Podłącz ponownie zasilacz, a jeśli Twój ESP ma wskaźnik LED (większość tak), zaświeci się, aby wskazać, że zasilanie jest wysyłane do ESP. Gratulacje!
Krok 6: Zasilanie pasków świetlnych LED
Za pomocą przewodów elektrycznych:
- Podłącz czerwony przewód taśmy LED Light Strip do V+ na zasilaczu.
- Podłącz niebieski przewód taśmy LED Light Strip do V- na zasilaczu.
Krok 7: Podłączanie ESP32 do taśm świetlnych LED
Nasz ESP32 instruuje sterownik WS2811 podłączony do każdej diody LED o kolorze i jasności, które muszą być. Aby to zrobić, nasz ESP32 potrzebuje kabla "data" do pasków.
Paski Leds są dostarczane z 3 przewodowym złączem:
-Czerwony: Moc-Niebieski: Neutralny-Biały: Dane
Podłączmy kabel taśmy z białą diodą LED do cyfrowego pinu w ESP. Zapamiętaj wybrany numer PIN, ponieważ będziemy musieli go później wybrać w kodzie. Podłączyliśmy nasz do pinu 13.
Krok 8: Przygotowanie komputera: sterownik C2102
Teraz, gdy nasz sprzęt jest podłączony, chcemy wgrać nasz pierwszy kod, aby go przetestować. Domyślnie Windows lub MacOs nie mogą komunikować się z naszym ESP32. Aby to zrobić, musimy pobrać "sterownik" do układu komunikacyjnego USB ESP: C2102.
Ten sterownik należy pobrać i zainstalować:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(Linki na dzień 7.10.2019)
Krok 9: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1
Zanim będziemy mogli używać naszego ESP32 z oprogramowaniem Arduino, musimy się upewnić, że jest ono rozpoznawane. Domyślnie oprogramowanie Arduino nie może skompilować kodu dla naszego ESP32, naprawmy to:
Krok 1: Dodanie tablic do menedżera
1 - Kliknij w Arduino opcję Plik >> Preferencje
2- W polu „Additional Boards Manager URLs” skopiuj następujący link:
Krok 10: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2
Teraz, gdy oprogramowanie Arduino „zna” więcej płyt, zainstalujmy naszą obsługę ESP32
Krok 2: Instalacja obsługi ESP32
1 - W górnym menu wybierz: Narzędzia >> Tablica >> Menedżer tablic
2 - Pojawi się okno. Użyj pola wyszukiwania, znajdującego się w prawym górnym rogu, aby znaleźć „ESP32”.
3 - Znajdź ten zrobiony przez espressif. Zainstaluj to. (Zobacz zdjęcie)
Krok 11: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 3
Teraz, gdy oprogramowanie Arduino może komunikować się z naszym ESP32, podłączmy go do komputera i sprawdźmy, czy wszystko działa.
1 - Upewnijmy się, że pracujemy na platformie ESP32:
Kliknij Narzędzia >> Płyta >> Moduł deweloperski ESP32
1- Upewnijmy się, że oprogramowanie Arduino wie, jak komunikować się z naszym ESP:
Kliknij Narzędzia >> Port i wybierz ten, który wyskakuje po podłączeniu tego kabla.
Ważny:
Jeśli masz problem z przesłaniem kodu do ESP, najpierw sprawdź te dwa menu. Jeśli port nie jest zaznaczony znacznikiem, oprogramowanie Arduino nie będzie się z nim komunikować.
Krok 12: Dodawanie bibliotek do Arduino IDE
Teraz dodamy bibliotekę, która pozwoli nam przetestować naszą Led Wall!
1- Kliknij Narzędzia >> Zarządzaj bibliotekami.
2- W prawym górnym rogu wyszukaj NeoPixelBus. Zlokalizuj „NeoPixelBus by Makuna”, zainstaluj go (patrz zdjęcie)
Potencjalne inne interesujące biblioteki: (niewymagane w tym samouczku)
- NeoMatrix
- FastLed
- Artnet
- GFX
Krok 13: Pierwszy kod: test pasm
Nasz pierwszy kod jest przykładem z Biblioteki.
Możesz skopiować/wkleić poniższy kod lub kliknąć:
Plik >> Przykłady >> Adafruit NeoPixelBus >> Strandtest
Upewnij się, że zmieniłeś swój LED_PIN na ten, którego użyłeś do fizycznego podłączenia diod LED. W tym samouczku użyliśmy 13.
Upewnij się również, że dostosowałeś rozmiar nici za pomocą zmiennej LED_COUNT.
// Podstawowy codzienny program LED Striptest.
#include#ifdef _AVR_ #include // Wymagane dla 16 MHz Adafruit Trinket #endif // Który pin Arduino jest podłączony do NeoPixels? #define LED_PIN 13 // Ile NeoPixels jest podłączonych do Arduino? #define LED_COUNT 500 // Zadeklaruj nasz obiekt paska NeoPixel: Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Liczba pikseli w pasku NeoPixel // Argument 2 = Numer pinu Arduino (większość jest prawidłowa) // Argument 3 = Flagi typu pikseli, dodaj je w razie potrzeby: // Strumień bitów NEO_KHZ800 800 kHz (większość produktów NeoPixel z Diody LED WS2812) // NEO_KHZ400 400 KHz (klasyczne piksele „v1” (nie v2) FLORA, sterowniki WS2811) // NEO_GRB Piksele są okablowane dla strumienia bitowego GRB (większość produktów NeoPixel) // Piksele NEO_RGB są okablowane dla strumienia bitowego RGB (piksele v1 FLORA), nie v2) // NEO_RGBW Piksele są podłączone do strumienia bitów RGBW (produkty NeoPixel RGBW) // funkcja setup() -- uruchamia się raz przy starcie -------------------- ------------ void setup() { // Te wiersze są przeznaczone specjalnie do obsługi Adafruit Trinket 5V 16 MHz. // Dowolna inna płyta, możesz usunąć tę część (ale nie zaszkodzi jej pozostawienie): #if defined(_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // KONIEC kodu specyficznego dla Trinket. strip.początek(); // INICJALIZUJ obiekt paska NeoPixel (WYMAGANE) strip.show(); // WYŁĄCZ wszystkie piksele JAK NAJSZYBCIEJ strip.setBrightness(50); // Ustaw JASNOŚĆ na około 1/5 (maks. = 255) } // Funkcja loop() -- działa wielokrotnie, dopóki tablica jest włączona --------------- void loop() { // Wypełnij wzdłuż paska różnymi kolorami… colorWipe(strip. Color(255, 0, 0), 50); // Czerwony colorWipe(strip. Color(0, 255, 0), 50); // Zielony colorWipe(strip. Color(0, 0, 255), 50); // Niebieski // Zrób efekt teatralny w różnych kolorach… theaterChase(strip. Color(127, 127, 127), 50); // Biały, połowa jasności theaterChase(strip. Color(127, 0, 0), 50); // Czerwony, połowa jasności theaterChase(strip. Color(0, 0, 127), 50); // Niebieski, tęcza o połowie jasności(10); // Płynący cykl tęczy wzdłuż całego paska teatrChaseRainbow(50); // Wariant theatreChase z technologią Rainbow } // Niektóre własne funkcje do tworzenia animowanych efektów ----------------- // Wypełnij piksele pasków jeden po drugim kolorem. Pasek NIE jest wyczyszczony // najpierw; wszystko, co tam będzie, zostanie zakryte piksel po pikselu. Przekaż kolor // (jako pojedynczą „spakowaną” 32-bitową wartość, którą można uzyskać przez wywołanie // strip. Color(red, green, blue), jak pokazano w funkcji loop() powyżej), // i czas opóźnienia (w milisekundach) między pikselami. void colorWipe(uint32_t color, int wait) { for(int i=0; i strip.setPixelColor(i, color); // Ustaw kolor piksela (w pamięci RAM) strip.show(); // Zaktualizuj pasek, aby dopasować opóźnienie(czekaj); // Pauza na chwilę } } // Pogoń za światłami w stylu teatralnej markizy. Przekaż kolor (wartość 32-bitowa, // a la strip. Color(r, g, b) jak wspomniano powyżej), i czas opóźnienia (w ms) // między klatkami void theaterChase(uint32_t color, int wait) { for(int a=0; a<10; a++) { // Powtórz 10 razy… for(int b=0; b<3;b++) { // 'b' liczy od 0 do 2… strip.clear();// ustawia wszystkie piksele w pamięci RAM na 0 (wyłączone) // 'c' liczy od 'b' do końca strip w krokach co 3… for(int c=b; c strip.setPixelColor(c, color); // Ustaw piksel 'c' na wartość 'color' } strip.show(); // Zaktualizuj pasek z opóźnieniem nowej zawartości (wait); // Pauza na chwilę } } } // Cykl tęczy wzdłuż całego paska. Przekaż czas opóźnienia (w ms) między klatkami. void rainbow(int wait) { // Barwa pierwszego piksela wykonuje 5 pełnych pętli przez Koło kolorów. // Koło kolorów ma zakres 65536, ale jest OK, jeśli przewrócimy, // policz od 0 do 5*65536. Dodanie 256 do firstPixelHue za każdym razem // oznacza, że 5*65536/256 = 1280 przechodzi przez tę zewnętrzną pętlę: for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) { for(int i= 0; I // Przesuń odcień piksela o wartość, aby wykonać jeden pełny obrót // koła kolorów (zakres 65536) wzdłuż paska // (strip.numPixels() steps): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip. ColorHSV() może przyjmować 1 lub 3 argumenty: odcień (0 do 65535) lub // opcjonalnie dodać nasycenie i wartość (jasność) (każdy od 0 do 255). // Tutaj używamy tylko jednoargumentowego wariantu odcienia. Wynik // jest przekazywany przez strip.gamma32() w celu zapewnienia 'prawdziwszych' kolorów // przed przypisaniem do każdego piksela: strip.setPixelColor(i, strip.gamma32 (strip. ColorHSV(pixelHue))); } strip.show(); // Zaktualizuj pasek z nową zawartością delay(wait); // Wstrzymaj na chwilę } } // Ulepszona oprawa kinowa Rainbow. Przekaż czas opóźnienia (w ms) void theatreChaseRainbow(int wait) { i nt pierwszyPixelHue = 0; // Pierwszy piksel zaczyna się od koloru czerwonego (odcień 0) for(int a=0; a<30; a++) { // Powtórz 30 razy… for(int b=0; b RGB strip.setPixelColor(c, color); / / Ustaw piksel 'c' na wartość 'color' } strip.show(); // Zaktualizuj pasek z nową zawartością delay(wait); // Najpierw wstrzymaj na chwilęPixelHue += 65536 / 90; // Jeden cykl koła kolorów ponad 90 klatek } } }
Krok 14: Przykładowy kod SHU
Nasz kod włącza wszystkie diody po kolei, aby upewnić się, że działają:
// Ten przykład będzie przełączać się między wyświetlaniem 500 pikseli jako czerwony
#includeconst uint16_t Liczba pikseli = 500; // ten przykład zakłada 4 piksele, zmniejszenie ich spowoduje błąd const uint8_t PixelPin = 13; // upewnij się, że ustawiłeś właściwy pin, zignorowany dla Esp8266
#define colorSaturation 128// trzy elementy pikseli, w różnej kolejności i prędkości
Pasek NeoPixelBus (PixelCount, PixelPin);
//NeoPixelBus pasek(PixelCount, PixelPin); RgbColor czerwony (0, nasycenie koloru, 0); RgbColor zielony(Nasycenie koloru, 0, 0); RgbColor niebieski (0, 0, nasycenie koloru); RgbColor biały (nasycenie koloru); RGBKolor czarny(0); HslColor hslRed(czerwony); HslColor hslGreen(zielony); HslColor hslBlue(niebieski); HslColor hslWhite(biały); HslColor hslBlack(czarny); void setup() { Serial.begin(115200) while (!Serial); // czekaj na dołączenie szeregowe Serial.println(); Serial.println("Inicjowanie…"); Serial.flush(); // to resetuje wszystkie neopiksele do stanu wyłączonego strip. Begin(); strip. Show(); Serial.println(); Serial.println("Działa…"); } void loop() { delay(100); Serial.println("Kolory R, G, B, W…"); for(int i = 0; i <=499;i++){ // ustaw kolory, // jeśli nie pasują do siebie w kolejności, musisz użyć funkcji NeoGrbFeature strip. SetPixelColor(i, red);strip. Show (); opóźnienie (100); strip. SetPixelColor(i, hslRed); strip. Pokaż(); opóźnienie (100); }}
Krok 15: Przesyłanie kodu do ESP32
Ważny:
Aby móc wgrać kod do dowolnego mikrokontrolera, musi on być w trybie programowania. Większość z nich robi to automatycznie, a wystarczy kliknąć w oprogramowaniu.
Nasz ESP32 wymaga przytrzymania przycisku programowania podczas wysyłania kodu. Musisz również zresetować go po przesłaniu kodu, naciskając raz przycisk resetowania.
Przycisk programowania naszego ESP32 znajduje się po lewej stronie, przycisk resetowania po prawej. Jeśli masz inny mikrokontroler, zapoznaj się z instrukcją.
Krok 16: Cytaty
Ta instrukcja została stworzona za pomocą następujących samouczków:
randomnerdtutorials.com/installing-the-esp…
Służy do instalacji ESP32 w Arduino IDE.
Autorski:
Nathaniel BaroneGabriel Castro
Redaktor:
Cedric Bleimling
Zalecana:
Arduino - Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: 6 kroków (ze zdjęciami)
Arduino | Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: Witam Jestem Isaac i to jest mój pierwszy robot „Striker v1.0”. Ten robot został zaprojektowany do rozwiązywania prostego labiryntu. W konkursie mieliśmy dwa labirynty i robota był w stanie je zidentyfikować. Wszelkie inne zmiany w labiryncie mogą wymagać zmiany w
Interaktywna ściana kafelkowa LED (łatwiejsza niż wygląda): 7 kroków (ze zdjęciami)
Interaktywna ściana z płytek LED (łatwiejsza niż wygląda): W tym projekcie zbudowałem interaktywny wyświetlacz ścienny LED przy użyciu Arduino i części wydrukowanych w 3D. Inspiracją do tego projektu były częściowo płytki Nanoleaf. Chciałem wymyślić własną wersję, która byłaby nie tylko tańsza, ale także bardziej
Interaktywna dotykowa ściana projekcyjna: 6 kroków
Interaktywna dotykowa ściana projekcyjna: Dzisiaj przynoszę ci odrobinę animowanej ściany na wystawie kultury Twojej marki, działaniach w salach wystawowych i innych miejscach, umieszczając taką tablicę kontrolną, aby Twoja ściana była pełna zabawy
Interaktywna ściana radarowa: 5 kroków
Interaktywna ściana radarowa: Interaktywna ściana radarowa jest jednym z systemów wielodotykowych. Opiera się na technologii widzenia komputerowego, wychwytuje i rozpoznaje ruch palca osoby po obszarze projekcji (okna lub biurka). Dzięki oprogramowaniu do kontroli nastawienia naturalnego gest
Modułowa ściana LED drukowana w 3D: 6 kroków (ze zdjęciami)
Modułowa ściana LED z nadrukiem 3D: W ten sposób bardzo łatwo można wykonać ścianę LED za pomocą drukowanych modułów 3D, 12 mm diod LED WS2812 i 38 mm piłek do ping-ponga. Jednak wykonanie konstrukcji mechanicznej było bardzo skomplikowane. Zamiast tego zaprojektowałem modułowy system 3D. Każdy moduł ma wymiary 30x30 cm i