Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Pomysł
- Krok 2: Schemat i przetwarzanie dźwięku
- Krok 3: Koło LED
- Krok 4: Wizualizacje
- Krok 5: Sterowanie przyciskami dotykowymi
- Krok 6: Wykrywanie rytmu i „taniec” Servo
- Krok 7: Kształty 3D
- Krok 8: Zasilanie
- Krok 9: Sterowanie Bluetooth
- Krok 10: Kontroluj aplikację na podstawie Blynk
- Krok 11: Szkice i biblioteki
- Krok 12: Przyszłe ulepszenia
Wideo: Przenośne oświetlenie imprezowe: 12 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Projekty Tinkercad »
Czy możesz oświetlić imprezę i sprawić, by była przyjemniejsza?
To było pytanie. A odpowiedź brzmi TAK (oczywiście).
Ta instrukcja dotyczy stworzenia przenośnego urządzenia, które słucha muzyki i tworzy wizualizację muzyki z koncentrycznych pierścieni diod LED Neopixel.
Próbowano sprawić, by urządzenie „tańczyło”, czyli poruszało się w rytm muzyki, ale wykrywanie rytmu okazało się bardziej skomplikowanym zadaniem niż się wydaje (gra słów niezamierzona), więc „taniec” jest trochę niezręczny, ale nadal tam jest.
Urządzenie obsługuje technologię Bluetooth i będzie reagować na polecenia tekstowe. Nie miałem czasu na napisanie aplikacji do sterowania Party Lights (zarówno na Androida, jak i iOS). Jeśli podołasz zadaniu - daj mi znać!!!
Jeśli podoba Ci się ta instrukcja, zagłosuj na nią w konkursie Make It Glow!
Kieszonkowe dzieci
Aby zbudować Party Lights, będziesz potrzebować:
- STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Moduł dla Arduino (link tutaj) - mózg urządzenia. Te stosunkowo tanie urządzenia są tak potężne, że nie jest jasne, dlaczego miałbyś kiedykolwiek wrócić do Arduino.
- MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (link tutaj)
- Moduł Bluetooth HC-05 lub HC-06 (link tutaj)
- Mikrofon Adafruit MAX9814 (link tutaj)
- Standardowy serwomotor (link tutaj) to chcesz, aby Twoje urządzenie "tańczyło"
- CJMCU 61-bitowa płytka rozwojowa sterownika LED WS2812 5050 RGB (link tutaj)
- Moduł klawiatury dotykowej TTP223 z możliwością ustawienia pojemnościowego, samoblokujący/bez blokady (link tutaj)
-
Ultrakompaktowe podwójne wyjścia USB 5000 mAh Super Slim Power Bank (link tutaj)
- Rezystory, kondensatory, przewody, klej, śruby, płytki prototypowe itp. itp.
Krok 1: Pomysł
Chodzi o to, aby mieć przenośne urządzenie, które można by umieścić blisko źródła muzyki i które tworzyłoby kolorowe wizualizacje muzyczne. Powinieneś być w stanie kontrolować zachowanie urządzenia za pomocą przycisków (dotyk) i Bluetooth.
Obecnie Party Lights ma zaimplementowanych 7 wizualizacji (daj mi znać, jeśli masz więcej pomysłów!):
- Koncentryczne kolorowe koła
- Krzyż maltański
- Pulsujące światła
- Kominek (mój osobisty faworyt)
- Światła do jazdy
- Jasne drzewa
- Segmenty boczne
Domyślnie urządzenie będzie co minutę przeglądać wizualizacje. Użytkownik może jednak zdecydować się na pozostanie przy jednej wizualizacji i/lub ręcznie je przeglądać.
Wizualizacje, które obracają paletę kolorów, mogą również zostać „zamrożone”, jeśli użytkownik lubi określoną kombinację kolorów.
A jako kilka innych elementów sterujących, użytkownik może zmienić czułość mikrofonu i włączyć/wyłączyć tryb „tańczenia” serwomotoru.
Krok 2: Schemat i przetwarzanie dźwięku
Plik schematu fritzowego jest zawarty w pakiecie na Github w podfolderze "files".
Zasadniczo chip MSEQ7 przetwarza dźwięk, dzieląc sygnał audio na 7 pasm: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz i 16 kHz
Mikrokontroler wykorzystuje te 7 pasm do tworzenia różnych wizualizacji, w zasadzie mapując amplitudy poszczególnych pasm na intensywność światła LED i kombinacje kolorów.
Źródłem dźwięku jest mikrofon z 3 poziomami regulacji wzmocnienia. Możesz przełączać ustawienia wzmocnienia za pomocą jednego z przycisków w zależności od tego, jak daleko/głośno jest źródło dźwięku.
Mikrokontroler próbuje również wykonać detekcję „dudnień” w paśmie „basu” 63 Hz. Nadal pracuję nad niezawodnym sposobem wykrywania i utrzymywania wyrównania rytmu.
Eksperymentem było użycie przycisków „dotykowych”. Myślę, że działają całkiem nieźle, jednak brak opinii prasowej jest nieco mylący.
Krok 3: Koło LED
Sercem wizualizacji jest koło 61 LED.
Należy pamiętać, że część jest dostarczana jako pojedyncze pierścienie, które należy złożyć. Do linii energetycznych użyłem raczej przemyślanych przewodów miedzianych (które również ładnie trzymają razem pierścienie) i cienkich przewodów sygnałowych.
Diody LED są ponumerowane od 0 do 60, zaczynając od dolnej zewnętrznej diody LED i idąc zgodnie z ruchem wskazówek zegara do wewnątrz. Środkowa dioda LED to numer 60.
Każda wizualizacja opiera się na dwuwymiarowych tablicach danych, które mapują każdą diodę LED w określonej pozycji dla docelowego segmentu wizualizacji.
Na przykład dla okręgów koncentrycznych istnieje 5 segmentów:
- Okrąg zewnętrzny, diody LED 0 - 23, 24 diody LED długości
- Drugi okrąg zewnętrzny, diody LED 24-39, długość 16 diod LED
- Trzecie koło (środek), diody LED 40 - 51, 12 diod LED długości
- Drugi wewnętrzny krąg, diody LED 52 - 59, 8 diod LED długości
- LED wewnętrzna, LED 60, 1 LED długa
Wizualizacja mapuje 5 z 7 kanałów audio i zapala diody LED progresywnie zgodnie z ich położeniem w okrągłym paśmie proporcjonalnie do poziomu dźwięku w paśmie.
Inne wizualizacje wykorzystują różne struktury i formaty danych, ale zawsze chodzi o wizualizacje sterowane tablicami danych, a nie kodem. W ten sposób wizualizacje można dostosować do różnych kształtów (więcej lub mniej diod LED, więcej pasm korektora) bez zmiany kodu, tylko wartości w tablicach danych.
Na przykład tak wygląda struktura danych dla wizualizacji 1 na szkicu:
// Wizualizacja 1 i 3 - pełne 5 circlesconst byte TOTAL_LAYERS1 = 5; stały bajt WARSTWY1[TOTAL_WARSTWY1][25] = { //00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 { 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }, { 16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, { 12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }, { 8, 52, 53, 54, 55, 56, 57, 58, 59 }, { 1, 60 } };
Krok 4: Wizualizacje
Do tej pory jest 7 wizualizacji i animacja startowa:
Animacja startowa
Gdy urządzenie jest włączone, wyświetla się imitacja fajerwerku. Miała to być sekwencja testowa LED i Servo, ale później przekształciła się w animowaną wersję takiego testu
Koncentryczne kolorowe koła
Światła krążą wokół wyświetlacza w koncentrycznych kręgach proporcjonalnych do amplitudy odpowiedniego pasma eq. Losowe przełączanie między zegarem i przeciwnie do zegara oraz powolne obracanie kolorów na kole 256 kolorów
Krzyż maltański
Jedno pasmo to środkowa dioda LED. Kolejnym pasmem są pionowe i poziome linie diod LED, a pozostałe segmenty reprezentują każdy pasmo korektora. Wszystkie segmenty mają obracające się kolory w 128 przesunięciu, aby zachować kontrast.
Pulsujące światła
Każde koło zapala jednocześnie wszystkie diody LED dla dedykowanego pasma korektora, podczas gdy kolory powoli zmieniają się z lekkim przesunięciem. Pasma EQ są stopniowo przesuwane z jednego kręgu do drugiego, tworząc progresję na zewnątrz.
Kominek
Wstęgi są półokręgami podświetlanymi od dołu do góry zaczynając od jaskrawej czerwieni i dodając żółty w górę, symulując płonący ogień w kominku. Sporadycznie wystrzeliwuje jasna biała „iskra”. Nie ma rotacji kolorów
Światła do jazdy
Każde koncentryczne koło to osobne pasmo EQ. Wiodące diody LED to te na linii pionowej poniżej środkowej diody LED. Gdy dioda LED zaświeci się proporcjonalnie do amplitudy pasma, zaczyna „biegać” wokół odpowiedniego okręgu, powoli zmniejszając intensywność. Obsługiwane są zarówno obroty zgodnie z ruchem wskazówek zegara, jak i przeciwnie do ruchu wskazówek zegara, przełączane losowo.
Jasne drzewa
Segmenty są oświetlone w linii prostej od dołu w górę, a następnie na boki w koncentrycznych półokręgach imitujących palmy. Rotacja kolorów.
Segmenty boczne
Jest to wersja poprzedniego krzyża maltańskiego, w której zastosowano tylko 2 ukośne segmenty. Ma przypominać ikonę fal dźwiękowych.
Krok 5: Sterowanie przyciskami dotykowymi
Dostępne są 4 przyciski dotykowe:
- Przechodź między wizualizacjami i utrzymuj bieżącą, dopóki nie zostanie wybrana inna (domyślnie wizualizacje są przełączane co 30 sekund)
- "Freeze" / "unfreeze" aktualny schemat kolorów - jeśli podoba Ci się konkretna kombinacja kolorów, możesz ją zamrozić - rotacja kolorów jest wyłączona i wizualizacja będzie kontynuowana tylko z tą paletą kolorów
- Dostosuj czułość mikrofonu
- Włącz / wyłącz "tryb tańca"
W trybie tanecznym urządzenie spróbuje wykryć „beat” aktualnie odtwarzanej muzyki i odwrócić głowę zgodnie z rytmem. Szczerze mówiąc, na razie "taniec" jest raczej niezręczny niż piękny.
Krok 6: Wykrywanie rytmu i „taniec” Servo
Urządzenie nieustannie stara się wykryć „beat” aktualnej melodii jako odległość pomiędzy kolejnymi szczytami pasma 63Hz. Po wykryciu (i tylko wtedy, gdy tryb tańca jest WŁĄCZONY), urządzenie uruchomi swój serwomotor, aby losowo skręcić w lewo lub w prawo zgodnie z rytmem.
Wszelkie błyskotliwe pomysły na zwiększenie niezawodności są mile widziane!
Szkic „Music_Test_LED” generuje 7 pasm EQ w sposób odpowiedni do kreślenia za pomocą Arduino IDE.
Krok 7: Kształty 3D
Cały zespół Party Lights został zaprojektowany od podstaw przy użyciu Autodesk TinkerCAD.
Tutaj znajduje się oryginalny projekt. Folder "files/3D" na github.com zawiera modele STL.
Ten projekt ilustruje, jak urządzenie wygląda zmontowane.
Wszystkie elementy zostały wydrukowane, a następnie zmontowane/sklejone.
W „kopułce” znajduje się mikrokontroler, płytka Bluetooth i mikrofon. Mikrokontroler umieszczony jest na płytce 40mm x 60mm i jest wsparty na wyznaczonych szynach.
Serwo znajduje się w „nodze” kopuły, natomiast przyciski znajdują się w podstawie.
Komora baterii jest wydrukowana specjalnie dla typu baterii wymienionego w sekcji Materiały eksploatacyjne. Jeśli zdecydujesz się na użycie innej baterii, komora będzie musiała zostać odpowiednio przeprojektowana.
Krok 8: Zasilanie
Ultra-kompaktowe podwójne wyjścia USB o pojemności 5000 mAh Super Slim Power Bank wydaje się zapewniać wystarczającą moc na wiele godzin pracy.
Komora baterii została zaprojektowana w taki sposób, że odrywa się od reszty urządzenia i można ją zastąpić tą przeznaczoną na inny typ baterii.
Wtyczka USB została umieszczona i przyklejona na gorąco, aby podłączyć baterię podczas wsuwania.
Krok 9: Sterowanie Bluetooth
Moduł HC-05 jest dodany, aby umożliwić bezprzewodowe sterowanie urządzeniem.
Po włączeniu urządzenie tworzy połączenie Bluetooth o nazwie „LEDDANCE”, z którym można sparować telefon.
W idealnym przypadku powinna istnieć aplikacja umożliwiająca sterowanie PartyLights (wybór palety kolorów, symulowanie naciśnięć przycisków itp.). Jednak jeszcze go nie napisałem.
Jeśli chcesz pomóc w pisaniu aplikacji Party Lights na Androida lub iOS, daj mi znać!
Aby sterować urządzeniem, możesz obecnie korzystać z aplikacji terminala Bluetooth i wysyłać następujące polecenia:
- LEDDBUTT - gdzie jest '1', '2', '3' lub '4' symuluje naciśnięcie odpowiedniego przycisku. Np.: LEDDBUT1
- LEDDCOLRc - gdzie c jest liczbą od 0 do 255 - pozycja żądanego koloru na kole kolorów. Urządzenie przełączy się na określony kolor LED.
-
LEDDSTAT - zwraca 3 znakowy numer składający się tylko z „0” i „1”:
- pierwsza pozycja: '0' - kolory się nie obracają, '1' - kolory się obracają
- pozycja druga: '0' - tryb taneczny wyłączony, '1' - tryb taneczny włączony
- trzecia pozycja: '0' - mikrofon ma normalne wzmocnienie, '1' - mikrofon ma duże wzmocnienie
Krok 10: Kontroluj aplikację na podstawie Blynk
Blynk (blynk.io) to niezależna od sprzętu platforma IoT. Użyłem Blynk w moim automatycznym systemie nawadniania roślin IoT zgodnie z instrukcją i byłem pod wrażeniem łatwości i solidności platformy.
Blynk obsługuje łączenie się z urządzeniami brzegowymi przez Bluetooth - dokładnie to, czego potrzebujemy do PartyLights.
Jeśli jeszcze tego nie zrobiłeś, pobierz aplikację Blynk, zarejestruj się i odtwórz aplikację Blynk PartyLights, korzystając ze zrzutów ekranu dołączonych do tego kroku. Upewnij się, że przypisania wirtualnych pinów są takie same jak na zrzutach ekranu, w przeciwnym razie przyciski w aplikacji nie będą działać zgodnie z przeznaczeniem.
Plik „blynk_settings.h” zawiera mój osobisty UID Blynk. Kiedy utworzysz swój projekt, zostanie mu przydzielony nowy do wykorzystania.
Prześlij szkic PartyLightsBlynk.ino, uruchom aplikację. Sparuj z urządzeniem Bluetooth i ciesz się imprezą.
Krok 11: Szkice i biblioteki
Główny szkic i pliki pomocnicze znajdują się na Github.com tutaj.
W szkicu Party Lights zostały użyte następujące biblioteki:
- TaskScheduler - wielozadaniowość kooperacyjna - tutaj (opracowany przeze mnie)
- AverageFilter - szablonowy filtr średni - tutaj (opracowany przeze mnie)
- Servo - Servo control - to standardowa biblioteka Arduino
- WS2812B - Sterowanie NEOPixel - wchodzi w skład pakietu STM32
Ta strona Wiki wyjaśnia, jak używać płyt STM32 z Arduino IDE.
Krok 12: Przyszłe ulepszenia
W tym projekcie można by ulepszyć kilka rzeczy, które warto rozważyć, rozpoczynając ten projekt:
- Użyj ESP32 zamiast płyty Maple Mini. ESP32 ma 2 procesory, stosy Bluetooth i WiFi i może działać z częstotliwością 60 MHz, 120 MHz, a nawet 240 MHz.
- Mniejsza konstrukcja - powstałe urządzenie jest duże. Mógłby być bardziej kompaktowy (zwłaszcza jeśli porzucisz pomysł na taniec i powiązane serwo)
- Wykrywanie rytmu może być nieskończenie ulepszone. To, co przychodzi nam, ludziom naturalnie, wydaje się trudnym zadaniem dla komputera
- Można by opracować i wdrożyć znacznie więcej wizualizacji.
- I oczywiście można napisać aplikację do bezprzewodowego sterowania urządzeniem za pomocą fajnego interfejsu użytkownika.
Zalecana:
Inteligentne oświetlenie biurkowe LED - Inteligentne oświetlenie z Arduino - Obszar roboczy Neopixels: 10 kroków (ze zdjęciami)
Inteligentne oświetlenie biurkowe LED | Inteligentne oświetlenie z Arduino | Przestrzeń robocza Neopixels: Obecnie spędzamy dużo czasu w domu, ucząc się i pracując wirtualnie, więc dlaczego nie ulepszyć naszej przestrzeni roboczej dzięki niestandardowemu i inteligentnemu systemowi oświetlenia opartemu na Arduino i diodach LED Ws2812b. Tutaj pokażę Ci, jak zbudować Smart Biurkowe oświetlenie LED, które
Zabawki dostosowujące się do przełączników: Oświetlenie imprezowe LED Luditek: 7 kroków
Switch-Adapt Toys: Luditek LED Party Light: Adaptacja zabawek otwiera nowe możliwości i niestandardowe rozwiązania, aby umożliwić dzieciom z ograniczonymi zdolnościami motorycznymi lub niepełnosprawnością rozwojową niezależną interakcję z zabawkami. W wielu przypadkach dzieci, które potrzebują przystosowanych zabawek, nie są w stanie
Przenośne oświetlenie wewnętrzne z chipem LED 100W: 26 kroków (ze zdjęciami)
Przenośne oświetlenie wewnętrzne z chipem LED 100 W: W tym instruktażowym / filmie pokażę, jak zrobiłem przenośne oświetlenie wewnętrzne z chipem LED 100 W, który jest zasilany zasilaczem 19 V 90 W ze starego laptopa. AKTUALIZACJA 2 (FINAL): Temperatura wokół diody LED (stabilność 37C przy 85W po 30 minutach w pomieszczeniu o temperaturze 20C)
Jak kontrolować oświetlenie / oświetlenie domowe za pomocą Arduino i Amazon Alexa: 16 kroków (ze zdjęciami)
Jak kontrolować światło / oświetlenie domowe za pomocą Arduino i Amazon Alexa: Wyjaśniłem, jak sterować światłem podłączonym do UNO i kontrolowanym przez Alexę
Interaktywne oświetlenie stoczni, oświetlenie chodnika: 3 kroki
Interaktywne oświetlenie podwórkowe, oświetlenie chodnika: Chciałem zbudować rodzaj interaktywnych świateł podwórzowych na moim podwórku. Chodziło o to, że gdy ktoś idzie w jedną stronę, uruchamia się animacja w kierunku, w którym idziesz. Zacząłem od świateł słonecznych Dollar General 1,00 USD