Jak zbudować lampę chmurową za pomocą błyskawicy reaktywnej

  • Mark Lucas
  • 0
  • 3330
  • 41
Reklama

Kilka miesięcy temu społeczność twórców stała się popularna lampa do grzmotów i błyskawic o wartości 3000 USD. To było oszałamiająco piękne światło, ale cena nie pozwalała na to nikomu z nienaruszonym zdrowiem psychicznym. To, co dzisiaj zrobimy, nie jest dokładnie takie samo - zamiast dzieła sztuki tworzymy coś bardziej praktycznego, ale będzie o wiele fajniejsze i bardziej konfigurowalne.

Zdecydowałem się pominąć głośniki, zakładając, że prawdopodobnie masz już w pokoju dobrą parę głośników, których wolisz używać, a szczerze mówiąc umieszczenie głośnika w lampie jest trochę dziwne. Zamiast tego dodam mikrofon, który pozwoli błyskawicy automatycznie reagować na głośne dźwięki - albo z rzeczywistej burzy, albo ze ścieżki dźwiękowej odtwarzanej z komputera lub stereo.

Zamierzamy również zastosować ciąg pełnych diod LED Neopixel RGB (WS2812B), abyśmy mogli odtwarzać kolory inne niż biały i kontrolować każdy piksel.

Ostrzeżenie: zasilacz, którego użyłem w tym projekcie, ma zaciski śrubowe, które łączą się z przewodem prądu przemiennego pod napięciem. Jeśli nie czujesz się pewnie, podłączając wtyczkę, upewnij się, że kupiłeś całkowicie zamknięty zasilacz. Przynajmniej będziesz musiał zamknąć zasilacz w bezpiecznym polu projektu.

Krok 0: Wprowadzenie

Oto film demonstracyjny ukończonego projektu. Do tej pory wdrożyłem kilka różnych trybów, od standardowej błyskawicy po potworną chmurę kwasową i kolorową lampę nastroju, którą można wybrać za pomocą pilota.

Pełny potrzebny kod i biblioteki są dostępne do pobrania z tego repozytorium Github.

Krok 1: Będziesz potrzebować

  • Pasmo WS2812B, zwykle wycenione na około 50 USD za 5 metrów. Nie martw się, jeśli masz inny typ nici Neopixel, prawie na pewno jest obsługiwany przez interfejs FastLED, ale twoje okablowanie może być inne (na przykład może być wymagana linia synchronizacji oprócz sygnału).
  • Zasilacz 5 V, 10 A + - kupiłem jakieś 15 A za 11 USD za sztukę. Pobierają napięcie wejściowe 120–240 V prądu przemiennego i wytwarzają mocny sygnał wyjściowy 5 V, który wystarczy do zasilania wszystkich naszych pikseli przy pełnej jasności, a Arduino.
  • Okablowanie elektryczne, wtyczka i przełącznik liniowy
  • Załącznik do projektu
  • Dwa Arduinos. Klony Funduino za 10 USD są w porządku. Drugi jest niezbędny do zdalnego sterowania, podczas gdy pierwszy steruje główną logiką i diodami LED.
  • Dwa rezystory o wartości 2,2 tys. (Lub więcej) - dokładna wartość nie ma tak wielkiego znaczenia, powinno działać od około 1,5 tys. Do 47 tys..
  • Breadboard
  • Odbiornik podczerwieni TSOP4838
  • Pilot na podczerwień - kupiłem hurtowo za około 2 USD każdy, ale każdy pilot powinien działać z modyfikacjami kodu.
  • Duży moduł mikrofonu
  • Zeskrob drewno MDF, aby wyciąć podstawę i wyrzynarkę.
  • Polistyrenowe materiały opakowaniowe / wkładki do pudeł.
  • Bawełniana poduszka z bawełny polipropylenowej. Wyciągnąłem wystarczająco dużo z kilku okropnych starych poduszek. Jeśli to nie jest możliwe, powinieneś być w stanie kupić coś nowego za około 10 USD lub użyć nawet tańszej waty. Próbowałem z obydwoma - wata wymagała więcej pracy, aby się z nią drażnić i nie była tak puszysta, ale w skrócie, zadziała.
  • Łańcuch i haczyki do zawieszenia chmury - powinny pomieścić ponad 5 kg.
  • Pistolet do klejenia z ustawieniem niskiej temperatury
  • Rozpyl klej - dzięki temu łatwiej jest przykleić farsz do chmury, ale pistolet do kleju może również działać.

Całkowity koszt to około 100 USD, nie wliczając narzędzi, ale większość z nich przeszukałem po całym domu. Wszystkie elementy elektroniczne są powszechnie dostępne; mikrofon można znaleźć w zestawie czujników lub kupić osobno.

Krok 2: Wytnij podstawę

Wytnij szorstką podstawę z kawałka płyty MDF za pomocą wyrzynarki - dokładny kształt zależy oczywiście od ciebie, ale z jakiegoś powodu chmura ma kształt fasoli nerkowej. Będziemy dołączać do tego kilka haczyków do zawieszenia, ale w przeciwnym razie zapewnia to solidną podstawę do budowania. Centralny obszar będzie zarezerwowany dla elektroniki, zasilacza i do przekazania łańcucha, więc upewnij się, że masz wystarczająco dużo miejsca, aby umieścić co najmniej obudowę projektu z otaczającymi ją hakami.

Krok 3: Warstwa styropianowa

To najtrudniejszy i najbardziej kreatywny krok, ale tak naprawdę tworzymy coś solidnego i tak troche w kształcie chmury, aby przykleić pasek LED. Przyklej duże kawałki styropianu do podstawy (i pod nią), używając ustawienia niskiej temperatury na pistolecie do kleju. Jeśli nie masz niskiego ustawienia, wyłącz opalarkę i pozwól jej nieco ostygnąć przed przystąpieniem do klejenia. Jeśli temperatura jest zbyt wysoka, po prostu stopisz się przez materiał opakowania.

Upewnij się, że każdy kawałek jest solidny przed przyklejeniem następnego, a najlepiej przykleić więcej niż za mało.

Ponownie pamiętaj o pozostawieniu wystarczająco dużej wnęki w chmurze, aby zmieściła się elektronika, łańcuch i haki.

Krok 4: Wytnij kształt chmury 3D

Użyj noża do rzeźbienia, aby uporządkować chmurę, zaokrąglając rogi i odcinając niepotrzebne materiały, aż do uzyskania szorstkiego kształtu chmury 3D. To naprawdę nie ma znaczenia, jak szorstkie to jest, ponieważ później zajmiemy się nadzieniem - możesz łatwo ukryć błędy.

Krok 5: Napraw haki, uporządkuj

Na koniec przymocuj trzy lub cztery haczyki do podstawy MDF od wewnątrz każdego rogu wnęki chmury. Musisz wywiercić mały otwór pilotujący, ponieważ płytę MDF trudno jest wkręcić bezpośrednio.

Dałem też wszystko prostą warstwę białej farby w sprayu, aby zapewnić jednolitą bazę kolorów, ale nie jestem pewien, czy to rzeczywiście było konieczne.

Krok 6: Przyklej paski LED

Zanim zaczniesz nakładać klej na diody LED, zacznij od nowego paska lub policz, ile masz w sumie diod LED - musisz dowiedzieć się, ile z nich wykorzystałeś w późniejszym etapie programowania. Wytnij mały otwór z boku chmury i przebij się przez druty tworzące początek paska LED do wnęki chmury. Uważaj, aby zacząć od właściwego końca - paski LED są wrażliwe na kierunek, więc upewnij się, że strzałki sygnału są skierowane w kierunku przeciwnym do wnęki.

Pracując powoli, przyklej piksele LED do podstawy z polistyrenu w kształcie koła, zanim pociągniesz pasek w dół do podstawy, aby zakryć spód. Znowu - nie musisz być idealny tutaj, ponieważ kiedy wszystko rozproszyliśmy i udusiliśmy go farszem, wszystko i tak wygląda raczej oszałamiająco.

Użyłem w sumie 85 diod LED, czyli nieco ponad 2,5 m, po dwukrotnym okrążeniu głównego korpusu i jednym ciągiem diod LED na spodzie.

Krok 7: Schemat połączeń

Okablowanie jest złożone, ale łatwo można je podzielić na sekcje.

Najpierw podłącz zasilanie i zabezpiecz je, najlepiej w osobnej obudowie. Nie zamierzam wykładać o bezpieczeństwie przewodów pod napięciem AC, więc zakładam, że poradzisz sobie z tą częścią i masz z niej linię 5 V i GND.

WAŻNY: podczas programowania i testowania Arduino 5 V od twojego zasilacza powinno pozostać odizolowane od Arduino (jednak wszystkie GND są podłączone) - powinno to tylko zasilać pasek LED, podczas gdy Arduino używa 5 V zasilanego przez USB. Po zakończeniu programowania USB powinien zostać odłączony i nie będzie już dostarczał 5 V do Arduino - w tym momencie powinieneś podłączyć 5 V ze swojego źródła zasilania do szyny 5 V po lewej stronie płyty.

Najpierw podłącz uziemienie i styki 5 V z każdego Arduino do lewej szyny bocznej płyty. Będą dzielić to samo źródło zasilania, bez względu na to, czy jest to zewnętrzny zasilacz, jaki mamy, czy USB podłączony do jednego z nich.

Następnie wypełnij sekcję okablowania I2C - dzięki temu nasze dwa Arduinos mogą się komunikować. Umieść szpilki A4 z obu Arduinos w jednym rzędzie na płycie chleba, a następnie podłącz rezystor 2,2 kz tego rzędu do szyny 5 V. Powtórz dla A5, łącząc je ponownie w osobnym rzędzie z kolejnym rezystorem 2,2k do 5V.

Następnie podłącz odbiornik IR - sprawdź konfigurację pinów, jeśli masz inny model, ale w zasadzie pin sygnałowy powinien przejść do D11 na jednym Arduino. Prześlij thundercloud_ir_receiver.ino naszkicuj ten Arduino (cały kod tutaj), a następnie odłącz USB, ponieważ już go nie potrzebujemy.

Na drugim Arduino podłącz Dane w pin sygnałowy od początku paska LED do D6. GND z twoich diod LED powinien być wspólny ze wszystkimi Arduinos, ale w tym momencie 5V będzie pochodzić bezpośrednio z zasilacza.

Również w tym Arduino podłącz moduł mikrofonu do A0. Prześlij drugi thundercloud.ino naszkicuj i trzymaj USB podłączony do gniazdka podczas debugowania. Zacznij od zmiany NUM_LEDS odpowiednio zmienna.

Krok 8: Przyklej farsz

Na koniec przyklej farsz. Nie ma tu żadnej szczególnej techniki - wystarczy spryskać chmurę warstwą kleju i chwycić garść farszu. Jednak łatwiej jest pracować z farszem, jeśli już go wypróbowałeś, aby zwiększyć powierzchnię.

Jeśli używałeś tego samego pilota co ja, przycisk STROBE przełącza go w tryb reaktywnej chmury; FLASH jest trybem trippy kolorów, a FADE to wolno nastrojowa lampa kolorów.

Krok 9: Objaśnienie kodu

Dlaczego dwa Arduinos? Zarówno programowanie odbiornika podczerwieni, jak i biblioteka sterowników pikseli WS2818B są bardzo wrażliwe na taktowanie - jeśli taktowanie jest opóźnione, sygnał IR jest uszkodzony. Dając każdemu obwodowi własny mikrokontroler i pozwalając mu rozmawiać przez protokół I2C, możemy zapewnić, że czas jest idealny na każdym z nich. Możesz również znaleźć osobne moduły IR z wbudowanym własnym mikrokontrolerem, ale moje badania wykazały, że kosztują one więcej niż zwykły klon Arduino i dioda LED IR. Odbiornik thundercloud_ir_receiever nie powinien wymagać wyjaśnień, chociaż możesz najpierw przeczytać o podstawach I2C.

Na głównym kontrolerze chmur burzowych definiujemy różne tryby działania, takie jak WŁĄCZONY (efekty błyskawicy nie są aktywowane dźwiękiem), CHMURĘ (tylko błyskawica jest aktywowana dźwiękiem), ACID (chmura pokazuje trippy kolory) lub proste tryby jednokolorowe. Aby zdefiniować nowy tryb, dodaj do wyliczanie najpierw otwórz konsolę i znajdź przycisk zdalnego sterowania, na który ma być mapowany - każde zdalne naciśnięcie powinno wydrukować linię debugowania. w receiveEvent () Metoda mapujemy te naciśnięcia klawiszy na tryb, więc dodaj tam dodatkową instrukcję switch. Wreszcie w zasadzie pętla() Metoda kierujemy wybrane tryby do różnych funkcji wyświetlania.

Kod wygładzania mikrofonu pochodzi z Adafruita - uprościłem go dla naszych potrzeb i dodałem wyzwalacz, gdy słychać głośniejszy niż średni hałas.

Krok 10: Tryby błyskawicy

Wyświetlacze błyskawicy łączą trzy różne “typy” błyskawicy, by osiągnąć coś wystarczająco realistycznego lub przynajmniej przyjemnego dla oka. Pierwszy typ to pęknięcie(), gdzie każda dioda LED jest krótko włączana na 10-100 ms. Drugi typ to walcowanie() - gdzie każda dioda LED ma 10% szansy na aktywację, a cała pętla jest powtarzana 2-10 razy, z opóźnieniem 5-100 ms między każdym cyklem. Trzeci typ to thunderburst (), który wybiera dwie różne sekcje paska, każda między 10-20 diodami LED, miga te sekcje krótko 3-6 razy. Dokładnie sprawdź te metody, aby zobaczyć, w jaki sposób aktywowane są poszczególne diody LED - koło kolorów HSV jest używane przez cały czas (więc biały to H = 0, S = 0, V = 255). Zachęcam do poprawiania lub pisania nowych wyświetlaczy błyskawicy, a następnie udostępniania ich w komentarzach, jeśli stworzysz taki, który Ci się spodoba.

Za każdym razem, gdy wyzwolona zostanie błyskawica lub uruchomiona zostanie pętla, chmura losowo wybiera jeden z trzech rodzajów błyskawicy. Wreszcie: nastawić() Metoda wyłącza wszystkie światła, w przeciwnym razie będą “Zapamiętaj” ich poprzedni stan.

Pytania lub problemy - prosimy o kontakt w komentarzach, a ja postaram się pomóc. Jeśli masz konto Github, możesz zamiast tego publikować błędy lub problemy w narzędziu do śledzenia problemów. Jeśli dokonałeś jakichkolwiek modyfikacji lub napisałeś nowe funkcje oświetlenia, udostępnij link do swojego kodu na Gist lub Pastebin.




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.