INHOUDSOPGAWE:

Draagbare partytjie -ligte: 12 stappe (met foto's)
Draagbare partytjie -ligte: 12 stappe (met foto's)

Video: Draagbare partytjie -ligte: 12 stappe (met foto's)

Video: Draagbare partytjie -ligte: 12 stappe (met foto's)
Video: Ze blijven hem verbeteren | GoPro Hero 12 black - Review 2024, November
Anonim
Image
Image
Die idee
Die idee

Tinkercad -projekte »

Kan u lig na 'n partytjie bring en dit nog lekkerder maak?

Dit was die vraag. En die antwoord is JA (natuurlik).

Hierdie instruksie handel oor die maak van 'n draagbare toestel wat na musiek luister en musiekvisualisering skep uit konsentriese ringe van Neopixel LED's.

Daar is probeer om die toestel te laat "dans", dit wil sê op die maat van die musiek, maar dit is 'n meer ingewikkelde taak as wat dit klink (geen woordspeling bedoel), so "dans" is 'n bietjie ongemaklik, maar is nog steeds daar.

Die toestel is Bluetooth-geaktiveer en reageer op teksopdragte. Ek het nie die tyd gehad om 'n app te skryf om Party Lights (Android of iOS) te beheer nie. Laat weet my as u klaar is met die taak !!!

As u van hierdie instruksies hou, stem dan daarvoor in die Make It Glow -wedstryd!

Voorrade

Om partytjie -ligte te bou, benodig u:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 -module vir Arduino (skakel hier) - die brein van die toestel. Hierdie relatief goedkoop toestelle is so kragtig dat dit onduidelik is waarom u ooit na 'n Arduino sou terugkeer.
  • MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (skakel hier)
  • HC-05 of HC-06 Bluetooth-module (skakel hier)
  • Adafruit MAX9814 mikrofoon (skakel hier)
  • 'N Standaard servomotor (skakel hier) is dat u wil hê dat u toestel moet "dans"
  • CJMCU 61 bit WS2812 5050 RGB LED bestuurderontwikkelingskaart (skakel hier)
  • TTP223 aanraaktoetsmodule Kapasitief instelbaar self-sluit/nie-sluit skakelbord (skakel hier)
  • Ultra kompakte 5000 mah dubbele USB-uitsette Super Slim Power Bank (skakel hier)

  • Weerstande, kapasitors, drade, gom, skroewe, prototipe borde, ens.

Stap 1: Die idee

Die idee
Die idee

Die idee is om 'n draagbare toestel te hê wat naby 'n musiekbron geplaas kan word, en wat kleurvolle musiekvisualisasies kan veroorsaak. U moet die toestel se gedrag kan beheer deur middel van knoppies (aanraak) en Bluetooth.

Tans het Party Lights sewe visualisasies geïmplementeer (laat weet my as u meer idees het!):

  1. Konsentrieke kleurvolle sirkels
  2. Maltese kruis
  3. Pulserende ligte
  4. Kaggel (my persoonlike gunsteling)
  5. Lopende ligte
  6. Ligte bome
  7. Sywaarts segmente

Die toestel gaan standaard elke minuut deur die visualisering. 'N Gebruiker kan egter kies om by een visualisering te bly en/of handmatig daardeur te blaai.

Visualisasies wat hul kleurpalet draai, kan ook 'gevries' word as 'n gebruiker van 'n spesifieke kleurkombinasie hou.

En as 'n paar meer kontroles, kan die gebruiker die mikrofoongevoeligheid verander en die servomotoriese "dans" -modus in/uitskakel.

Stap 2: Skematiese en klankverwerking

Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking
Skematiese en klankverwerking

'N Skitterende skematiese lêer is ingesluit in die pakket op Github in die' lêers 'submap.

Eintlik verwerk 'n MSEQ7 -chip die klankverwerking en verdeel 'n klanksignaal in 7 bande: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz en 16kHz

Die mikrobeheerder gebruik die 7 bande om verskillende visualisasies te skep, en basies die onderskeie bandamplituden in LED -ligintensiteit en kleurkombinasies in kaart te bring.

Die klankbron is 'n mikrofoon met 3 vlakke van versterkingsbeheer. U kan deur die versterkingsinstellings blaai met een van die knoppies, afhangende van hoe ver/hard die klankbron is.

Die mikrobeheerder poog ook om 'klop' -opsporing uit te voer op die 63Hz' bas' -band. Ek werk nog steeds aan 'n betroubare manier om maatlynbelyning op te spoor en te handhaaf.

Die gebruik van 'aanraak' knoppies was 'n eksperiment. Ek dink hulle werk redelik goed, maar 'n gebrek aan persterugvoer is ietwat verwarrend.

Stap 3: LED -wiel

LED wiel
LED wiel
LED wiel
LED wiel
LED wiel
LED wiel

Die kern van visualisering is 'n 61 LED -wiel.

Let daarop dat die onderdeel afsonderlike ringe is wat u aanmekaar moet sit. Ek gebruik eerder koperdrade vir kragdrade (wat ook die ringe mooi bymekaar hou) en dun seindrade.

Die LED's is 0 tot 60 genommer, vanaf die onderste buitenste LED en met die kloksgewys na binne. Die middelste LED is nommer 60.

Elke visualisering maak staat op tweedimensionele data-skikkings, wat elke LED in 'n spesifieke posisie vir die doelvisualisasiesegment in kaart bring.

Byvoorbeeld, vir konsentriese sirkels is daar 5 segmente:

  • Buitekring, LED's 0 - 23, 24 LED's lank
  • Tweede buitenste sirkel, LED's 24 - 39, 16 LED's lank
  • Derde sirkel (middel), LED's 40 - 51, 12 LED's lank
  • Tweede binnekring, LED's 52 - 59, 8 LED's lank
  • Binne LED, LED 60, 1 LED lank

Die visualisering karteer 5 uit 7 klankkanale en brand LED's geleidelik volgens hul posisie in die sirkelvormige band wat in verhouding is tot die klankvlak in die band.

Ander visualisasies gebruik verskillende datastrukture en -formate, maar die idee is altyd om visualisasies te laat dryf deur die data -skikkings, nie soseer deur die kode nie. Op hierdie manier kan visualisasies in verskillende vorms aangepas word (meer of minder LED's, meer EQ -bande) sonder om die kode te verander, net die waardes in die data -skikkings.

So lyk die datastruktuur vir visualisering 1 byvoorbeeld in die skets:

// Visualisering 1 & 3 - volle 5 sirkels konstante greep 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}};

Stap 4: Visualisasies

Visualisasies
Visualisasies
Visualisasies
Visualisasies
Visualisasies
Visualisasies
Visualisasies
Visualisasies

Tot dusver is daar 7 visualisasies en 'n aanvangsanimasie:

Begin-animasie

As die toestel aangeskakel word, word 'n nabootsing van 'n vuurwerk vertoon. Dit was veronderstel om 'n LED- en Servo -toetsreeks te wees, maar het later ontwikkel tot 'n geanimeerde weergawe van so 'n toets

Konsentrieke kleurvolle sirkels

Die ligte gaan rondom die skerm in konsentriese sirkels in verhouding tot die amplitude van die onderskeie eq -band. Willekeurig om tussen klok- en teen-kloksgewys te skakel en die kleure stadig oor die 256-kleurwiel te draai

Maltese kruis

Een band is die middelste LED. 'N Ander band is die vertikale en horisontale lyne van LED's, en die oorblywende segmente wat elk 'n EQ -band verteenwoordig. Alle segmente draai in kleure in 128 verreken om kontras te bly.

Pulserende ligte

Elke sirkel verlig alle LED's in eenstemmigheid vir 'n spesiale eq -band, terwyl die kleure stadig draai met 'n effense offset. EQ -bande word geleidelik van een sirkel na die volgende verskuif, wat uiterlike vordering veroorsaak.

Kaggel

Die bande is halfsirkels verlig van onder na bo, begin met 'n helderrooi en geel toevoeging op die pad na bo, wat 'n brandende vuur in 'n kaggel simuleer. Af en toe skiet helder wit "vonk" lukraak op. Daar is geen kleurrotasie nie

Werkligte

Elke konsentriese sirkel is 'n aparte EQ -band. Die voorste LED's is die op die vertikale lyn onder die middelste LED. Sodra die LED in verhouding tot die bandamplitude aangesteek is, begin dit "hardloop" om die onderskeie sirkel en neem die intensiteit stadig af. Beide rotasies met die kloksgewys en teen die kloksgewys word ondersteun, en willekeurig verander.

Ligte bome

Die segmente word reguit van die onderste LED tot bo en dan sywaarts verlig in konsentriese halfsirkels wat palmbome naboots. Kleur rotasie.

Sywaartse segmente

Dit is 'n weergawe van die vorige Maltese kruis met slegs 2 diagonale segmente. Dit lyk asof dit lyk soos die ikoon vir klankgolwe.

Stap 5: aanraakknoppies

Raakknoppie -kontroles
Raakknoppie -kontroles

Daar is 4 aanraakgevoelige knoppies:

  1. Blaai deur visualisasies en hou die huidige aan totdat 'n ander gekies is (standaard visualiseer elke 30 sekondes)
  2. Die huidige kleurskema "vries" / "ontvries" - as u van 'n spesifieke kleurkombinasie hou, kan u dit vries - die kleurrotasie is uitgeskakel en die visualisering gaan voort met net hierdie kleurpalet
  3. Pas die mikrofoongevoeligheid aan
  4. Skakel die "dansmodus" aan / uit

In die dansmodus sal die toestel probeer om die "maat" van die musiek wat tans speel, op te spoor en sy kop te draai volgens die maat. Tot dusver is die "dans" eerder ongemaklik as mooi, om eerlik te wees.

Stap 6: Beat Detection en servo "dans"

Klop opsporing en servo
Klop opsporing en servo

Die toestel probeer voortdurend die 'maat' van die huidige deuntjie opspoor as 'n afstand tussen opeenvolgende pieke van die 63Hz -band. Sodra dit opgespoor is (en slegs as die dansmodus AAN is), sal die toestel sy servomotor aktiveer om willekeurig links of regs te draai volgens die maat.

Enige helder idees oor hoe om dit meer betroubaar te maak, is welkom!

'Music_Test_LED' skets lewer 7 EQ -bande uit op 'n manier wat geskik is vir plotte met behulp van Arduino IDE.

Stap 7: 3D -vorms

3D -vorms
3D -vorms
3D -vorms
3D -vorms
3D -vorms
3D -vorms

Die hele Party Lights -vergadering is van nuuts af ontwerp met Autodesk TinkerCAD.

Die oorspronklike ontwerp is hier geleë. Die gids "files/3D" op github.com bevat die STL -modelle.

Hierdie ontwerp illustreer hoe die toestel saamgestel lyk.

Al die komponente is gedruk en dan aanmekaar geplak/vasgeplak.

Die "koepel" huisves die mikrokontroleerder, Bluetooth -bord en 'n mikrofoon. Die mikrokontroleerder word op 'n 40 mm x 60 mm bord geplaas en word ondersteun deur aangewese relings.

Die servo is in die "been" van die koepel geleë, terwyl knoppies in die basis is.

Die batterykompartement word spesifiek gedruk vir die tipe battery wat in die afdeling benodigdhede genoem word. As u kies om 'n ander battery te gebruik, moet die kompartement dienooreenkomstig herontwerp word.

Stap 8: Kragtoevoer

Kragtoevoer
Kragtoevoer
Kragtoevoer
Kragtoevoer

Dit lyk asof 'n ultra-kompakte 5000-mah dubbele USB-uitsette, 'n Super Slim Power Bank, genoeg krag bied vir ure se werking.

Die batterykompartement is so ontwerp dat dit loskom van die res van die toestel en vervang kan word met die wat ontwerp is vir 'n ander tipe battery.

Die USB-prop is geplaas en warm vasgeplak om die battery aan te sluit terwyl dit ingeskuif word.

Stap 9: Bluetooth -beheer

Bluetooth -beheer
Bluetooth -beheer

'N HC-05-module word bygevoeg om die toestel draadloos te beheer.

As dit aan is, skep die toestel 'n Bluetooth -verbinding genaamd "LEDDANCE" waarmee u u telefoon kan koppel.

Ideaal gesproke moet daar 'n app wees waarmee PartyLights beheer kan word ('n kleurpalet kies, knoppies druk, ens.). Ek het egter nog nie een geskryf nie.

Laat weet my as u belangstel om 'n Android- of iOS -app vir partytjie -ligte te skryf!

Om die toestel te beheer, kan u tans die Bluetooth -terminale -app gebruik en die volgende opdragte stuur:

  • LEDDBUTT - waar '1', '2', '3' of '4' simuleer, druk op 'n onderskeie knoppie. Byvoorbeeld: LEDDBUTT1
  • LEDDCOLRc - waar c 'n getal is van 0 tot 255 - posisie van die gewenste kleur op 'n kleurwiel. Die toestel skakel oor na die gespesifiseerde LED -kleur.
  • LEDDSTAT - gee 'n nommer van 3 tekens wat slegs uit '0's en' 1's bestaan:

    • eerste posisie: '0' - kleure draai nie, '1' - kleure draai
    • tweede posisie: '0' - dansmodus is af, '1' - dansmodus is aan
    • derde posisie: '0' - mikrofoon is in normale versterking, '1' - mikrofoon is in hoë wins

Stap 10: Beheer -app gebaseer op Blynk

Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk
Beheer -app gebaseer op Blynk

Blynk (blynk.io) is 'n hardeware-agnostiese IoT-platform. Ek het Blynk in my IoT -outomatiese plantbesproeiingstelsel gebruik en was onder die indruk van die gemak en robuustheid van die platform.

Blynk ondersteun die verbinding met randtoestelle via Bluetooth - presies wat ons nodig het vir PartyLights.

As u dit nog nie gedoen het nie, laai die Blynk -app af, registreer en herskep die Blynk PartyLights -app met behulp van die skermkiekies wat by hierdie stap aangeheg is. Maak seker dat die virtuele penopdragte dieselfde is as op die kiekies, anders werk die knoppies op die app nie soos bedoel nie.

Die lêer "blynk_settings.h" bevat my persoonlike Blynk UID. As u u projek skep, word 'n nuwe een aan u toegewys.

Laai die PartyLightsBlynk.ino -skets op, maak die app aan. Kombineer met 'n Bluetooth -toestel en geniet die partytjie.

Stap 11: Sketse en biblioteke

Sketse en biblioteke
Sketse en biblioteke

Die belangrikste skets- en ondersteuningslêers is hier op Github.com.

Die volgende biblioteke is gebruik in die Party Lights -skets:

  • TaskScheduler - koöperatiewe multitasking - hier (ontwikkel deur my)
  • AverageFilter - sjabloon gemiddelde filter - hier (ontwikkel deur my)
  • Servo - Servo control - is 'n standaard Arduino -biblioteek
  • WS2812B -NEOPixel -beheer - kom as deel van die STM32 -pakket

Hierdie Wiki -bladsy verduidelik hoe u STM32 -borde met Arduino IDE kan gebruik.

Stap 12: Toekomstige verbeterings

Toekomstige verbeterings
Toekomstige verbeterings

'N Paar dinge kan verbeter word in hierdie ontwerp, wat u kan oorweeg as u met hierdie projek begin:

  • Gebruik ESP32 in plaas van Maple Mini -bord. ESP32 het 2 CPU's, Bluetooth- en WiFi -stapels en kan op 60MHz, 120MHz en selfs 240MHz werk.
  • Kleiner ontwerp - die gevolglike toestel is groot. Kan meer kompak wees (veral as u die dansidee en die verwante servo laat val)
  • Klitsopsporing kan oneindig verbeter word. Wat natuurlik vir ons mense voorkom, blyk 'n moeilike taak vir 'n rekenaar te wees
  • Baie meer visualisasies kan bedink en geïmplementeer word.
  • En natuurlik kan 'n app geskryf word om die toestel draadloos te beheer met 'n koel UI.

Aanbeveel: