Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Idéen
- Trin 2: Skematisk og lydbehandling
- Trin 3: LED -hjul
- Trin 4: Visualiseringer
- Trin 5: Touch -knapper
- Trin 6: Beat Detection og servo "dans"
- Trin 7: 3D -former
- Trin 8: Strømforsyning
- Trin 9: Bluetooth -kontrol
- Trin 10: Styr app baseret på Blynk
- Trin 11: Skitser og biblioteker
- Trin 12: Fremtidige forbedringer
Video: Bærbare festlys: 12 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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 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!):
- Koncentriske farverige cirkler
- Maltesisk kors
- Pulserende lys
- Pejs (min personlige favorit)
- Kørelys
- Lys træer
- 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
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
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
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
Der er 4 berøringsfølsomme knapper:
- Gennemgå visualiseringer, og hold den aktuelle i gang, indtil en anden er valgt (som standard cykler visualiseringer hvert 30. sekund)
- "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
- Juster mikrofonfølsomheden
- 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"
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
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
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
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
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
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
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:
Sådan får du 18650 celler fra døde bærbare batterier !: 7 trin (med billeder)
Sådan får du 18650 celler fra døde bærbare batterier !: Når det kommer til byggeprojekter, bruger vi generelt en strømforsyning til prototyper, men hvis det er et bærbart projekt, har vi brug for en strømkilde som 18650 li-ion-celler, men disse celler er nogle gange dyrt eller de fleste af sælgerne sælger ikke
Bærbare Disco V2 -lydstyrede lysdioder: 11 trin (med billeder)
Bærbare Disco V2 -Sound Controlled LED'er: Jeg er nået langt med min elektroniske rejse, siden jeg lavede mit første bærbare diskotek. I den originale konstruktion hackede jeg et kredsløb sammen på prototypebord og formåede at bygge et pænt, lille lommediskotek. Denne gang designede jeg mit eget printkort og
Enkle og modulære bærbare lys !: 5 trin (med billeder)
Enkle og modulære bærbare lys !: Byg fabelagtige, futuristiske og justerbare bærbare lys med kun få billige (og leverbare) dele! Vedhæft alle former for tilbehør og skift farver ud for at matche outfits/følelser/ferier/alle tingene! Vanskelighed: Begynder+ (lodning
Den tyndeste og smalleste bærbare Nes ?: 14 trin (med billeder)
Den tyndeste og smalleste bærbare Nes ?: Dette er en 3D -trykt NES -bærbar bygget ved hjælp af en NES på en chip -retrobit -NES. Det er 129*40*200 mm. den har 8 timers batterilevetid, digital lydstyrkekontrol og stilfuld (måske) grøn sag. Det er ikke efterlignet, det er hardware, der kører fra en original patron, så y
Ekstern VGA / GPU til bærbare computere, der bruger EXP GDC Beast: 15 trin (med billeder)
Ekstern VGA / GPU til bærbare computere ved hjælp af EXP GDC Beast: Hej Guys .. Dette er min første tutorial om instruktører. Engelsk er ikke mit første sprog, så tilgiv mine grammatiske fejl. Jeg lavede dette baseret på min erfaring med at opgradere min bærbare computer. Og jeg vil ikke kede dig med lang introduktion, da jeg ikke ved noget