Spisu treści:

Przenośne oświetlenie imprezowe: 12 kroków (ze zdjęciami)
Przenośne oświetlenie imprezowe: 12 kroków (ze zdjęciami)

Wideo: Przenośne oświetlenie imprezowe: 12 kroków (ze zdjęciami)

Wideo: Przenośne oświetlenie imprezowe: 12 kroków (ze zdjęciami)
Wideo: Doda i jej miny podczas przemówienia Górniak (oryg. cezarywisniewski_) 2024, Listopad
Anonim
Image
Image
Pomysł
Pomysł

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ł

Pomysł
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!):

  1. Koncentryczne kolorowe koła
  2. Krzyż maltański
  3. Pulsujące światła
  4. Kominek (mój osobisty faworyt)
  5. Światła do jazdy
  6. Jasne drzewa
  7. 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

Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i dźwięku
Przetwarzanie schematów i 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

Koło LED
Koło LED
Koło LED
Koło LED
Koło LED
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

Wizualizacje
Wizualizacje
Wizualizacje
Wizualizacje
Wizualizacje
Wizualizacje
Wizualizacje
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

Sterowanie przyciskami dotykowymi
Sterowanie przyciskami dotykowymi

Dostępne są 4 przyciski dotykowe:

  1. Przechodź między wizualizacjami i utrzymuj bieżącą, dopóki nie zostanie wybrana inna (domyślnie wizualizacje są przełączane co 30 sekund)
  2. "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
  3. Dostosuj czułość mikrofonu
  4. 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

Wykrywanie rytmu i serwo
Wykrywanie rytmu i serwo

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

Kształty 3D
Kształty 3D
Kształty 3D
Kształty 3D
Kształty 3D
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

Zasilacz
Zasilacz
Zasilacz
Zasilacz

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

Sterowanie Bluetooth
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

Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na Blynk
Aplikacja kontrolna oparta na 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

Szkice i biblioteki
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

Przyszłe ulepszenia
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: