Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Ideen
- Trinn 2: Skjematisk og lydbehandling
- Trinn 3: LED -hjul
- Trinn 4: Visualiseringer
- Trinn 5: Trykknappkontroller
- Trinn 6: Beat Detection og servo "dans"
- Trinn 7: 3D -former
- Trinn 8: Strømforsyning
- Trinn 9: Bluetooth -kontroll
- Trinn 10: Kontroller appen basert på Blynk
- Trinn 11: Skisser og biblioteker
- Trinn 12: Fremtidige forbedringer
Video: Bærbare festlys: 12 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Tinkercad -prosjekter »
Kan du bringe lys til en fest og gjøre det morsommere?
Det var spørsmålet. Og svaret er JA (selvfølgelig).
Denne instruksen handler om å lage en bærbar enhet som lytter til musikk og lager musikkvisualisering ut fra konsentriske ringer av Neopixel LED.
Det ble gjort et forsøk på å få enheten til å "danse", dvs. bevege seg i takt med musikken, men beatdeteksjon viste seg å være en mer komplisert oppgave enn den høres ut (ingen ordspill ment), så "dans" er litt vanskelig, men er der fortsatt.
Enheten er Bluetooth-aktivert og vil svare på tekstkommandoer. Jeg hadde ikke tid til å skrive en app for å kontrollere Party Lights (enten Android eller iOS). Gi meg beskjed hvis du klarer oppgaven!
Hvis du liker dette instruerbart, kan du stemme på det i Make It Glow -konkurransen!
Rekvisita
For å bygge festlys trenger du:
- STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 -modul for Arduino (lenke her) - hjernen til enheten. Disse relativt billige enhetene er så kraftige, det er uklart hvorfor du noen gang vil gå tilbake til en Arduino.
- MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (lenke her)
- HC-05 eller HC-06 Bluetooth-modul (lenke her)
- Adafruit MAX9814 mikrofon (lenke her)
- En standard servomotor (lenke her) er at du vil at enheten skal "danse"
- CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (lenke her)
- TTP223 berøringsnøkkelmodul Kapasitiv innstillbar selvlåsende/ikke-låsende bryterkort (lenke her)
-
Ultra Compact 5000-mah Dual USB-utganger Super Slim Power Bank (lenke her)
- Motstander, kondensatorer, ledninger, lim, skruer, prototyper, etc. etc.
Trinn 1: Ideen
Tanken er å ha en bærbar enhet som kan plasseres nær en musikkilde, og som ville skape fargerike musikkvisualiseringer. Du bør kunne kontrollere enhetens oppførsel via knapper (berøring) og Bluetooth.
For tiden har Party Lights implementert 7 visualiseringer (gi meg beskjed hvis du har flere ideer!):
- Konsentriske fargerike sirkler
- Maltesisk kors
- Pulserende lys
- Peis (min personlige favoritt)
- Kjørelys
- Lette trær
- Sidelengs segmenter
Som standard vil enheten gå gjennom visualiseringene hvert minutt. Imidlertid kan en bruker velge å holde seg til en visualisering og/eller manuelt bla gjennom dem.
Visualiseringer som roterer fargepaletten deres kan også bli "frosset" hvis en bruker liker en bestemt fargekombinasjon.
Og som et par flere kontroller kan brukeren endre mikrofonfølsomheten og aktivere/deaktivere servomotor "dans" -modus.
Trinn 2: Skjematisk og lydbehandling
En fritt skjematisk fil er inkludert i pakken på Github i undermappen "filer".
I utgangspunktet gjør en MSEQ7 -brikke lydbehandlingen og deler et lydsignal i 7 bånd: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz og 16kHz
Mikrokontrolleren bruker de 7 båndene til å lage forskjellige visualiseringer, i hovedsak kartlegge de respektive båndamplituder til LED -lysintensitet og fargekombinasjoner.
Lydkilden er en mikrofon med 3 nivåer av forsterkningskontroll. Du kan bla gjennom forsterkningsinnstillinger med en av knappene, avhengig av hvor langt/høyt lydkilden er.
Mikrokontrolleren prøver også å utføre "beat" -deteksjon på 63Hz "bass" -båndet. Jeg jobber fremdeles med en pålitelig måte å oppdage og vedlikeholde taktjustering.
Bruken av "berøringsknapper" var et eksperiment. Jeg synes de fungerer ganske bra, men mangel på tilbakemeldinger fra pressen er litt forvirrende.
Trinn 3: LED -hjul
Kjernen i visualiseringen er et 61 LED -hjul.
Vær oppmerksom på at delen kommer som individuelle ringer som du må sette sammen. Jeg brukte heller tror kobbertråder for kraftledninger (som også holder ringene pent sammen), og tynne signaltråder.
Lysdiodene er nummerert 0 til 60 fra den nedre ytre LED og går med klokken innover. Midt -LED -en er nummer 60.
Hver visualisering er avhengig av todimensjonale dataarrays, som kartlegger hver LED til en bestemt posisjon for målvisualiseringssegmentet.
For eksempel, for konsentriske sirkler, er det fem segmenter:
- Ytre sirkel, lysdioder 0 - 23, 24 lysdioder lange
- Andre ytre sirkel, lysdioder 24 - 39, 16 lysdioder lange
- Tredje sirkel (midt), lysdioder 40 - 51, 12 lysdioder lange
- Andre indre sirkel, lysdioder 52 - 59, 8 lysdioder lange
- Innvendig LED, LED 60, 1 LED lang
Visualiseringen kartlegger 5 av 7 lydkanaler og lyser lysdioder gradvis i henhold til posisjonen i det sirkulære båndet i forhold til lydnivået i båndet.
Andre visualiseringer bruker forskjellige datastrukturer og -formater, men tanken er alltid å ha visualiseringer drevet av dataarrayene, ikke så mye av koden. På denne måten kan visualiseringer justeres til forskjellige former (flere eller færre lysdioder, flere EQ -bånd) uten å endre koden, bare verdiene i dataarayene.
Slik ser for eksempel datastrukturen for visualisering 1 ut på skissen:
// Visualisering 1 & 3 - hele 5 sirkler, 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}};
Trinn 4: Visualiseringer
Så langt er det 7 visualiseringer og en oppstartsanimasjon:
Oppstartsanimasjon
Når enheten slås på, vises en etterligning av fyrverkeri. Dette skulle være en LED- og Servo -testsekvens, men utviklet seg senere til en animert versjon av en slik test
Konsentriske fargerike sirkler
Lysene går rundt displayet i konsentriske sirkler som står i forhold til amplituden til det respektive eq -båndet. Tilfeldig bytte mellom klokke- og mot-klokke og sakte rotere fargene over 256 fargehjul
Maltesisk kors
Ett bånd er senter -LED. Et annet bånd er de vertikale og horisontale linjene til lysdioder, og de resterende segmentene representerer hvert et EQ -bånd. Alle segmentene roterer farger i 128 forskyvninger for å forbli kontrast.
Pulserende lys
Hver sirkel lyser sammen alle LED -ene for et dedikert eq -bånd, mens sakte roterende farger med en liten forskyvning. EQ -bånd skiftes gradvis fra en sirkel til den neste og skaper utadgående progresjon.
Peis
Bandene er halvsirkler opplyst fra bunnen til toppen som begynner med en rød rød og gul farge på vei opp, som simulerer en brennende ild i en peis. En og annen lys hvit "gnist" skyter tilfeldig opp. Det er ingen fargerotasjon
Kjørelys
Hver konsentriske sirkel er et eget EQ -bånd. De ledende lysdiodene er de på den vertikale linjen under senterlampen. Når lysdioden lyser proporsjonalt med båndamplituden, begynner den å "løpe" rundt den respektive sirkelen og sakte avtagende intensitet. Både rotasjon med og mot klokken støttes og byttes tilfeldig.
Lette trær
Segmentene er opplyst i en rett linje fra nedre LED opp og deretter sidelengs i konsentriske halvsirkler som etterligner palmer. Fargerotasjon.
Sidelengs segmenter
Dette er en versjon av det forrige malteserkorset med bare 2 diagonale segmenter brukt. Antas å ligne ikonet for lydbølger.
Trinn 5: Trykknappkontroller
Det er 4 berøringsfølsomme knapper:
- Bla gjennom visualiseringer og hold den nåværende i gang til en annen er valgt (som standard sykluser visualiseringer hvert 30. sekund)
- "Frys" / "frigjør" gjeldende fargevalg - hvis du liker en bestemt fargekombinasjon kan du fryse den - fargerotasjonen er deaktivert og visualiseringen fortsetter med bare denne fargepaletten
- Juster mikrofonfølsomheten
- Slå dansemodus på / av
I dansemodus vil enheten prøve å oppdage "rytmen" til musikken som spilles for øyeblikket og snu hodet i henhold til rytmen. Så langt er "dansen" ganske vanskelig enn vakkert, for å være ærlig.
Trinn 6: Beat Detection og servo "dans"
Enheten prøver hele tiden å oppdage "takten" til gjeldende melodi som en avstand mellom påfølgende topper i 63Hz -båndet. Når den er oppdaget (og bare hvis dansemodusen er PÅ), vil enheten aktivere servomotoren for å tilfeldig svinge til venstre eller høyre i henhold til takten.
Eventuelle lyse ideer om hvordan du gjør dette mer pålitelig er velkomne!
'Music_Test_LED' skisserer 7 EQ -bånd på en måte som er egnet for plotting med Arduino IDE.
Trinn 7: 3D -former
Hele Party Lights -forsamlingen ble designet fra bunnen av ved hjelp av Autodesk TinkerCAD.
Det originale designet ligger her. "Filer/3D" -mappen på github.com inneholder STL -modellene.
Denne designen illustrerer hvordan enheten ser montert ut.
Alle komponentene ble skrevet ut og deretter montert/limt sammen.
"Kuppelen" er vert for mikrokontrolleren, Bluetooth -kortet og en mikrofon. Mikrokontrolleren er plassert på et 40 mm x 60 mm bord og støttes av angitte skinner.
Servoen er plassert i "benet" på kuppelen, mens knappene er plassert i basen.
Batterirommet skrives ut spesielt for batteritypen som er nevnt i rekvisita -delen. Hvis du velger å bruke et annet batteri, må rommet omdesignes deretter.
Trinn 8: Strømforsyning
En Ultra-Compact 5000-mah Dual USB-utganger Super Slim Power Bank ser ut til å gi nok strøm til driftstimer.
Batterirommet er utformet på en slik måte at det løsner fra resten av enheten og kan erstattes med det som er designet for en annen type batteri.
USB-kontakten ble plassert og varmlimt på plass for å koble til batteriet mens det glir inn.
Trinn 9: Bluetooth -kontroll
En HC-05-modul er lagt til for å gi en måte å kontrollere enheten trådløst.
Når den er på, oppretter enheten en Bluetooth -tilkobling kalt "LEDDANCE", som du kan koble telefonen til.
Ideelt sett bør det være en app som gjør det mulig å kontrollere PartyLights (velge en fargepalett, simulere knappetrykk, etc.). Imidlertid har jeg ikke skrevet en ennå.
Gi meg beskjed hvis du er interessert i å skrive en Android- eller iOS -app for festlys.
For å kontrollere enheten kan du for øyeblikket bruke Bluetooth -terminalappen og sende følgende kommandoer:
- LEDDBUTT - hvor er '1', '2', '3' eller '4' simulerer å trykke på en respektive knapp. Eks.: LEDDBUTT1
- LEDDCOLRc - der c er et tall fra 0 til 255 - posisjonen til ønsket farge på et fargehjul. Enheten vil bytte til den angitte LED -fargen.
-
LEDDSTAT - returnerer et nummer på 3 tegn bestående av bare 0 og 1:
- første posisjon: '0' - farger roterer ikke, '1' - farger roterer
- andre posisjon: '0' - dansemodus er av, '1' - dansemodus er på
- tredje posisjon: '0' - mikrofon er i normal forsterkning, '1' - mikrofon er i høy forsterkning
Trinn 10: Kontroller appen basert på Blynk
Blynk (blynk.io) er en hardware-agnostisk IoT-plattform. Jeg brukte Blynk i mitt IoT Automatic Plant Irrigation System instruerbart og var imponert over plattformens brukervennlighet og robusthet.
Blynk støtter tilkobling til kantenheter via Bluetooth - akkurat det vi trenger for PartyLights.
Hvis du ikke allerede har det, kan du laste ned Blynk -appen, registrere og gjenskape Blynk PartyLights -appen ved å bruke skjermbildene som er vedlagt dette trinnet. Sørg for at de virtuelle pin -oppgavene er de samme som på skjermbildene, ellers fungerer ikke knappene på appen etter hensikten.
Filen "blynk_settings.h" inneholder min personlige Blynk UID. Når du oppretter prosjektet ditt, vil det bli tildelt et nytt for deg å bruke.
Last opp PartyLightsBlynk.ino -skissen, fyr opp appen. Kombiner med Bluetooth -enhet og nyt festen.
Trinn 11: Skisser og biblioteker
Hovedskissen og støttefilene finnes på Github.com her.
Følgende biblioteker ble brukt i Party Lights -skissen:
- TaskScheduler - kooperativ multitasking - her (utviklet av meg)
- AverageFilter - malet gjennomsnittsfilter - her (utviklet av meg)
- Servo - Servokontroll - er et standard Arduino -bibliotek
- WS2812B -NEOPixel kontroll - kommer som en del av STM32 -pakken
Denne Wiki -siden forklarer hvordan du bruker STM32 -kort med Arduino IDE.
Trinn 12: Fremtidige forbedringer
Noen få ting kan forbedres i dette designet, som du kan vurdere hvis du går i gang med dette prosjektet:
- Bruk ESP32 i stedet for Maple Mini board. ESP32 har 2 CPUer, Bluetooth og WiFi -stabler, og kan kjøre på 60MHz, 120MHz og til og med 240MHz.
- Mindre design - den resulterende enheten er stor. Kan være mer kompakt (spesielt hvis du slipper dansideen og tilhørende servo)
- Beat -gjenkjenning kan forbedres uendelig. Det som faller oss naturlig, synes å være en vanskelig oppgave for en datamaskin
- Mange flere visualiseringer kan tenkes og implementeres.
- Og selvfølgelig kan en app skrives for å styre enheten trådløst med et kult brukergrensesnitt.
Anbefalt:
Hvordan få 18650 celler fra døde bærbare batterier!: 7 trinn (med bilder)
Hvordan få 18650 celler fra døde bærbare batterier !: Når det gjelder byggeprosjekter bruker vi vanligvis en strømforsyning til prototyping, men hvis det er et bærbart prosjekt, trenger vi en strømkilde som 18650 li-ion-celler, men disse cellene er noen ganger dyrt eller de fleste selgerne ikke selger
Bærbare Disco V2 -lydstyrte lysdioder: 11 trinn (med bilder)
Bærbar Disco V2 -lydstyrte lysdioder: Jeg har kommet langt med elektronikkreisen siden jeg lagde mitt første bærbare diskotek. I den opprinnelige bygningen hacket jeg sammen en krets på prototypebrett og klarte å bygge et pent, lite lommedisko. Denne gangen designet jeg min egen PCB og
Enkle og modulære bærbare lys!: 5 trinn (med bilder)
Enkle og modulære bærbare lys !: Bygg fantastiske, futuristiske og justerbare bærbare lys med bare noen få billige (og leverbare) deler! Fest til alle slags utstyr og bytt farger for å matche antrekk/følelser/ferier/alle tingene! Vanskelighetsgrad: Nybegynner+ (lodding
Den tynneste og smaleste bærbare Nes ?: 14 trinn (med bilder)
Den tynneste og smaleste bærbare Nes ?: Dette er en 3D -trykt NES -bærbar bygget med en NES på en chip -retrobit -NES. Det er 129*40*200 mm. den har 8 timers batterilevetid, digital volumkontroll og stilig (kanskje) grønn veske. Det er ikke etterlignet, det er maskinvare som kjører av en original kassett, så du
Lag din egen bærbare/bærbare hud: 8 trinn (med bilder)
Lag din egen bærbare/bærbare hud: En helt individualisert og unik bærbar hud med ubegrensede muligheter