Indholdsfortegnelse:

Bærbare festlys: 12 trin (med billeder)
Bærbare festlys: 12 trin (med billeder)

Video: Bærbare festlys: 12 trin (med billeder)

Video: Bærbare festlys: 12 trin (med billeder)
Video: Пять вкусных рецептов на ужин в горах. Volloha kitchen с друзьями. 2024, November
Anonim
Image
Image
Ideen
Ideen

Tinkercad -projekter »

Kan du bringe lys til en fest og gøre det sjovere?

Det var spørgsmålet. Og svaret er JA (selvfølgelig).

Denne instruktive handler om at lave en bærbar enhed, der lytter til musik og skaber musikvisualisering ud af koncentriske ringe af Neopixel LED'er.

Der blev gjort et forsøg på at få enheden til at "danse", det vil sige flytte til musikens takt, men beatdetektering viste sig at være en mere kompliceret opgave, end den lyder (ingen ordspil tilsigtet), så "dans" er lidt akavet, men er der stadig.

Enheden er Bluetooth-aktiveret og reagerer på tekstkommandoer. Jeg havde ikke tid til at skrive en app til at styre Party Lights (enten Android eller iOS). Hvis du er klar til opgaven - lad mig det vide !!!

Hvis du kan lide dette instruerbart, skal du stemme på det i Make It Glow -konkurrencen!

Forbrugsvarer

For at bygge festlys skal du bruge:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 -modul til Arduino (link her) - enhedens hjerne. Disse relativt billige enheder er så kraftfulde, det er uklart, hvorfor du nogensinde ville gå tilbage til en Arduino.
  • MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (link her)
  • HC-05 eller HC-06 Bluetooth-modul (link her)
  • Adafruit MAX9814 mikrofon (link her)
  • En standard servomotor (link her) er, at din enhed skal "danse"
  • CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (link her)
  • TTP223 Touch Key Module Kapacitiv Indstillelig Self-Lock/No-Lock Switch Board (link her)
  • Ultra Compact 5000-mah Dual USB Outputs Super Slim Power Bank (link her)

  • Modstande, kondensatorer, ledninger, lim, skruer, prototyper, osv. Osv.

Trin 1: Idéen

Ideen
Ideen

Ideen er at have en bærbar enhed, der kan placeres tæt på en musikkilde, og som ville skabe farverige musikvisualiseringer. Du bør kunne styre enhedens adfærd via knapper (berøring) og Bluetooth.

I øjeblikket har Party Lights 7 visualiseringer implementeret (lad mig vide, hvis du har flere ideer!):

  1. Koncentriske farverige cirkler
  2. Maltesisk kors
  3. Pulserende lys
  4. Pejs (min personlige favorit)
  5. Kørelys
  6. Lys træer
  7. Segmenter sidelæns

Som standard vil enheden gennemgå visualiseringerne hvert minut. En bruger kan dog vælge at blive ved med en visualisering og/eller manuelt cykle igennem dem.

Visualiseringer, der roterer deres farvepalet, kan også blive "frosset", hvis en bruger kan lide en bestemt farvekombination.

Og som et par flere kontroller kan brugeren ændre mikrofonfølsomheden og aktivere/deaktivere servomotorens "dans" -tilstand.

Trin 2: Skematisk og lydbehandling

Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling
Skematisk og lydbehandling

En fritzing skematisk fil er inkluderet i pakken på Github i undermappen "filer".

Grundlæggende udfører en MSEQ7 -chip lydbehandlingen og opdeler et lydsignal i 7 bånd: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz og 16kHz

Mikrocontrolleren bruger de 7 bånd til at oprette forskellige visualiseringer, som i bund og grund kortlægger de respektive båndamplituder til LED -lysintensitet og farvekombinationer.

Lydkilden er en mikrofon med 3 niveauer af forstærkningskontrol. Du kan gennemgå forstærkningsindstillinger ved hjælp af en af knapperne afhængigt af hvor langt/højt lydkilden er.

Mikrocontrolleren forsøger også at udføre "beat" -detektering på 63Hz "bas" -båndet. Jeg arbejder stadig på en pålidelig måde at opdage og vedligeholde slagjustering.

Brugen af "touch" -knapper var et eksperiment. Jeg synes, de fungerer ganske godt, men mangel på feedback fra pressen er noget forvirrende.

Trin 3: LED -hjul

LED hjul
LED hjul
LED hjul
LED hjul
LED hjul
LED hjul

Kernen i visualiseringen er et 61 LED -hjul.

Bemærk, at delen kommer som individuelle ringe, som du skal sammensætte. Jeg plejede at tænke kobbertråde til kraftledninger (som også holder ringene pænt sammen) og tynde signaltråde.

Lysdioderne er nummereret 0 til 60 startende fra den nederste ydre LED og går med uret indad. Den midterste LED er nummer 60.

Hver visualisering er afhængig af todimensionale dataarays, der kortlægger hver LED til en bestemt position for målvisualiseringssegmentet.

For koncentriske cirkler er der f.eks. 5 segmenter:

  • Ydre cirkel, lysdioder 0 - 23, 24 lysdioder lange
  • Anden ydre cirkel, lysdioder 24 - 39, 16 lysdioder lange
  • Tredje cirkel (i midten), lysdioder 40 - 51, 12 lysdioder lange
  • Anden indre cirkel, lysdioder 52 - 59, 8 lysdioder lange
  • Indvendig LED, LED 60, 1 LED lang

Visualiseringen kortlægger 5 ud af 7 lydkanaler og lyser lysdioder gradvist i henhold til deres position i det cirkulære bånd, der står i forhold til lydniveauet i båndet.

Andre visualiseringer bruger forskellige datastrukturer og -formater, men tanken er altid at få visualiseringer drevet af datarrayene, ikke så meget af koden. På denne måde kunne visualiseringer justeres til forskellige former (flere eller færre lysdioder, flere EQ -bånd) uden at ændre koden, kun værdierne i dataarayerne.

Sådan ser f.eks. Datastrukturen for visualisering 1 ud på skitsen:

// Visualisering 1 & 3 - hele 5 cirkler, konstant byte TOTAL_LAYERS1 = 5; const byte LAYERS1 [TOTAL_LAYERS1] [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}};

Trin 4: Visualiseringer

Visualiseringer
Visualiseringer
Visualiseringer
Visualiseringer
Visualiseringer
Visualiseringer
Visualiseringer
Visualiseringer

Indtil videre er der 7 visualiseringer og en opstartsanimation:

Start animation

Når enheden tændes, vises en efterligning af et fyrværkeri. Dette skulle være en LED- og Servo -testsekvens, men udviklede sig senere til en animeret version af en sådan test

Koncentriske farverige cirkler

Lysene går rundt i displayet i koncentriske cirkler, der står i forhold til amplituden af det respektive eq -bånd. Skifter tilfældigt mellem uret og mod uret og langsomt roterer farverne over 256 farvehjul

Maltesisk kors

Et bånd er midter -LED. Et andet bånd er de lodrette og vandrette linjer af LED'er, og de resterende segmenter repræsenterer hver et EQ -bånd. Alle segmenter roterer farver i 128 forskydninger for at forblive kontrast.

Pulserende lys

Hver cirkel tænder alle LED'er i fællesskab for et dedikeret eq -bånd, mens de langsomt roterer farver med en lille forskydning. EQ -bånd skiftes gradvist fra en cirkel til den næste, hvilket skaber fremadrettet progression.

Ildsted

Båndene er halvcirkler, der lyser op fra bunden til toppen, der starter med en lys rød og tilføjer gul på vej op og simulerer en brændende ild i en pejs. Lejlighedsvis lyshvid "gnist" skyder tilfældigt op. Der er ingen farve rotation

Kørelys

Hver koncentriske cirkel er et separat EQ -bånd. De førende lysdioder er dem på den lodrette linje under den midterste LED. Når lysdioden er tændt i forhold til båndamplituden, begynder den at "køre" rundt i den respektive cirkel, langsomt faldende intensitet. Både rotation med og mod uret understøttes og skifter tilfældigt.

Lys træer

Segmenterne lyser i en lige linje fra bunden LED op og derefter sidelæns i koncentriske halvcirkler, der efterligner palmer. Farverotation.

Segmenter sidelæns

Dette er en version af det tidligere maltesiske kors med kun 2 diagonale segmenter brugt. Formodes at ligne ikonet for lydbølger.

Trin 5: Touch -knapper

Betjening af berøringsknap
Betjening af berøringsknap

Der er 4 berøringsfølsomme knapper:

  1. Gennemgå visualiseringer, og hold den aktuelle i gang, indtil en anden er valgt (som standard cykler visualiseringer hvert 30. sekund)
  2. "Frys" / "frigør" det nuværende farveskema - hvis du kan lide en bestemt farvekombination, kan du fryse det - farvedrejningen er deaktiveret, og visualiseringen fortsætter med netop denne farvepalet
  3. Juster mikrofonfølsomheden
  4. Slå "dansetilstand" til / fra

I dansemodus vil enheden forsøge at registrere "beat" for den musik, der afspilles i øjeblikket, og dreje hovedet i henhold til beatet. Indtil videre er "dansen" temmelig akavet end smuk, for at være ærlig.

Trin 6: Beat Detection og servo "dans"

Beat Detection og Servo
Beat Detection og Servo

Enheden forsøger konstant at registrere "beat" for den aktuelle melodi som en afstand mellem på hinanden følgende toppe i 63Hz -båndet. Når det er registreret (og kun hvis dansemodus er ON), aktiverer enheden sin servomotor for tilfældigt at dreje til venstre eller højre i henhold til beatet.

Eventuelle lyse ideer til, hvordan man gør dette mere pålideligt, er velkomne!

'Music_Test_LED' sketch udsender 7 EQ -bånd på en måde, der er egnet til plotting ved hjælp af Arduino IDE.

Trin 7: 3D -former

3D -former
3D -former
3D -former
3D -former
3D -former
3D -former

Hele Party Lights -samlingen blev designet fra bunden ved hjælp af Autodesk TinkerCAD.

Det originale design er placeret her. "Filerne/3D" -mappen på github.com indeholder STL -modellerne.

Dette design illustrerer, hvordan enheden ser samlet ud.

Alle komponenter blev udskrevet og derefter samlet/limet sammen.

"Kuppelen" er vært for mikrocontrolleren, Bluetooth -kortet og en mikrofon. Mikrocontrolleren er placeret på et 40 mm x 60 mm bord og understøttes af bestemte skinner.

Servoen er placeret i kuppelens "ben", mens knapper er placeret i basen.

Batterirummet udskrives specifikt til den batteritype, der er nævnt i afsnittet forbrugsvarer. Hvis du vælger at bruge et andet batteri, skal rummet omdesignes i overensstemmelse hermed.

Trin 8: Strømforsyning

Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning

En Ultra-Compact 5000-mah Dual USB Outputs Super Slim Power Bank ser ud til at levere strøm nok til timers drift.

Batterirummet er designet på en sådan måde, at det løsnes fra resten af enheden og kan udskiftes med det, der er designet til en anden type batteri.

USB-stikket var placeret og varmlimet på plads for at tilslutte batteriet, mens det glider ind.

Trin 9: Bluetooth -kontrol

Bluetooth -kontrol
Bluetooth -kontrol

Et HC-05-modul tilføjes for at give en måde at styre enheden trådløst.

Når den er tændt, opretter enheden en Bluetooth -forbindelse kaldet "LEDDANCE", som du kan parre din telefon med.

Ideelt set bør der være en app, der gør det muligt at styre PartyLights (vælge en farvepalet, simulere knap tryk osv.). Jeg har dog ikke skrevet en endnu.

Hvis du er interesseret i at hjælpe med at skrive en Android- eller iOS -app til festlys, så lad mig det vide!

For at styre enheden kan du i øjeblikket bruge Bluetooth -terminalappen og sende følgende kommandoer:

  • LEDDBUTT - hvor er '1', '2', '3' eller '4' simulerer tryk på en respektive knap. Eks.: LEDDBUTT1
  • LEDDCOLRc - hvor c er et tal fra 0 til 255 - placering af den ønskede farve på et farvehjul. Enheden skifter til den angivne LED -farve.
  • LEDDSTAT - returnerer et 3 tegn nummer, der kun består af '0'er og' 1'er:

    • første position: '0' - farverne roterer ikke, '1' - farverne roterer
    • anden position: '0' - dansemodus er deaktiveret, '1' - dansemodus er slået til
    • tredje position: '0' - mikrofon er i normal forstærkning, '1' - mikrofon er i høj forstærkning

Trin 10: Styr app baseret på Blynk

Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk
Kontrol -app baseret på Blynk

Blynk (blynk.io) er en hardware-agnostisk IoT-platform. Jeg brugte Blynk i mit IoT Automatic Plant Irrigation System instruerbart og var imponeret over platformens lethed og robusthed.

Blynk understøtter forbindelse til kant -enheder via Bluetooth - præcis hvad vi har brug for til PartyLights.

Hvis du ikke allerede har det, skal du downloade Blynk App, registrere og genskabe Blynk PartyLights App ved hjælp af skærmbillederne vedhæftet dette trin. Sørg for, at de virtuelle pin -tildelinger er de samme som på skærmbillederne, ellers fungerer knapperne på appen ikke efter hensigten.

Filen "blynk_settings.h" indeholder mit personlige Blynk UID. Når du opretter dit projekt, får det tildelt et nyt, du kan bruge.

Upload PartyLightsBlynk.ino -skitsen, tænd for appen. Par med Bluetooth -enhed og nyd festen.

Trin 11: Skitser og biblioteker

Skitser og biblioteker
Skitser og biblioteker

Hovedskitsen og understøttende filer findes på Github.com her.

Følgende biblioteker blev brugt i Party Lights -skitsen:

  • TaskScheduler - kooperativ multitasking - her (udviklet af mig)
  • AverageFilter - skabeloniseret gennemsnitligt filter - her (udviklet af mig)
  • Servo - Servokontrol - er et standard Arduino -bibliotek
  • WS2812B -NEOPixel kontrol - kommer som en del af STM32 -pakken

Denne Wiki -side forklarer, hvordan du bruger STM32 -tavler med Arduino IDE.

Trin 12: Fremtidige forbedringer

Fremtidige forbedringer
Fremtidige forbedringer

Et par ting kan forbedres i dette design, som du måske overvejer, hvis du går i gang med dette projekt:

  • Brug ESP32 i stedet for Maple Mini board. ESP32 har 2 CPU'er, Bluetooth og WiFi -stakke og kan køre ved 60MHz, 120MHz og endda 240MHz.
  • Mindre design - den resulterende enhed er stor. Kunne være mere kompakt (især hvis du dropper danseideen og tilhørende servo)
  • Beat -detektering kan forbedres uendeligt. Det, der falder os naturligt, synes at være en vanskelig opgave for en computer
  • Meget flere visualiseringer kunne udtænkes og implementeres.
  • Og selvfølgelig kunne der skrives en app til at styre enheden trådløst med et køligt brugergrænseflade.

Anbefalede: