Sisukord:
- Tarvikud
- Samm: idee
- 2. samm: skemaatiline ja helitöötlus
- Samm: LED -ratas
- 4. samm: visualiseerimine
- Samm: puudutage nuppude juhtnuppe
- 6. samm: löökide tuvastamine ja servo "tantsimine"
- Samm: 3D -kujundid
- 8. samm: toiteallikas
- Samm: Bluetoothi juhtimine
- 10. samm: kontrollige rakendust, mis põhineb Blynkil
- 11. samm: visandid ja raamatukogud
- 12. samm: tulevased parandused
Video: Kaasaskantavad peotuled: 12 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Tinkercadi projektid »
Kas saate peole valgust tuua ja selle lõbusamaks muuta?
See oli küsimus. Ja vastus on JAH (muidugi).
See juhend on mõeldud kaasaskantava seadme valmistamiseks, mis kuulab muusikat ja loob Neopixeli LED -ide kontsentrilistest rõngastest muusika visualiseerimise.
Seadet üritati panna "tantsima" ehk liikuma muusika rütmi järgi, kuid löökide tuvastamine osutus keerulisemaks ülesandeks, kui see kõlab (sõnamängu pole ette nähtud), seega on "tantsimine" natuke ebamugav, aga on ikka olemas.
Seade on Bluetooth-toega ja vastab tekstikäsklustele. Mul ei olnud aega kirjutada rakendust Party Lights juhtimiseks (kas Android või iOS). Kui olete oma ülesannete kõrgusel - palun andke mulle teada !!!
Kui teile meeldib see juhend, palun hääletage selle konkursil Make It Glow!
Tarvikud
Peotulede ehitamiseks vajate:
- STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 moodul Arduino jaoks (link siin) - seadme aju. Need suhteliselt odavad seadmed on nii võimsad, on ebaselge, miks te kunagi Arduino juurde tagasi lähete.
- MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (link siin)
- HC-05 või HC-06 Bluetooth-moodul (link siin)
- Adafruit MAX9814 mikrofon (link siin)
- Tavaline servomootor (link siin) on see, et soovite, et teie seade "tantsiks"
- CJMCU 61 -bitine WS2812 5050 RGB LED -draiverite arendusplaat (link siin)
- TTP223 puutetundliku võtmemooduli mahtuvuslik seadistatav iselukustus/lukustamata lülitusplaat (link siin)
-
Ülimalt kompaktne 5000-mAh kahe USB-väljundiga ülikerge toitepank (link siin)
- Takistid, kondensaatorid, juhtmed, liim, kruvid, prototüüpplaadid jne jne
Samm: idee
Idee on kaasaskantav seade, mille saaks paigutada muusikaallika lähedale ja mis looks värvilisi muusika visualisatsioone. Peaksite saama seadme käitumist juhtida nuppude (puudutus) ja Bluetoothi kaudu.
Praegu on Party Lightsil rakendatud 7 visualiseerimist (andke mulle teada, kui teil on rohkem ideid!):
- Kontsentrilised värvilised ringid
- Malta rist
- Pulseerivad tuled
- Kamin (minu isiklik lemmik)
- Jooksvad tuled
- Heledad puud
- Külgmised segmendid
Vaikimisi vaatab seade visualiseeringuid iga minuti järel. Siiski saab kasutaja valida, kas jääda ühe visualiseerimise juurde ja/või neid käsitsi ringi vaadata.
Visualiseerimised, mis muudavad nende värvipaleti, võidakse ka "külmutada", kui kasutajale meeldib konkreetne värvikombinatsioon.
Ja veel paari juhtnupuna saab kasutaja muuta mikrofoni tundlikkust ja lubada/keelata servomootori "tantsu" režiimi.
2. samm: skemaatiline ja helitöötlus
Hirmutav skemaatiline fail on pakendis Githubis alamkaustas "failid".
Põhimõtteliselt teeb MSEQ7 kiip helitöötlust, jagades helisignaali 7 ribaks: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz ja 16 kHz
Mikrokontroller kasutab neid 7 riba erinevate visualiseerimiste loomiseks, põhiliselt kaardistades vastavad riba amplituudid LED -valgustugevuseks ja värvikombinatsioonideks.
Heliallikaks on mikrofon, millel on 3 võimendustaset. Võid võimendusseadeid ühe nupu abil liigutada olenevalt sellest, kui kaugele/valju heliallikas on.
Mikrokontroller üritab ka "löögi" tuvastamist 63Hz "bassi" ribal. Töötan jätkuvalt usaldusväärse viisiga löögi joondamise tuvastamiseks ja säilitamiseks.
"Puute" nuppude kasutamine oli eksperiment. Ma arvan, et need toimivad päris hästi, kuid ajakirjanduse tagasiside puudumine tekitab mõnevõrra segadust.
Samm: LED -ratas
Visualiseerimise tuumaks on 61 LED -ratas.
Pange tähele, et osa tuleb üksikute rõngastena, mis tuleb kokku panna. Kasutasin elektriliinide jaoks pigem vasktraate (mis hoiavad ka rõngaid kenasti koos) ja õhukesi signaaljuhtmeid.
LED -id on nummerdatud 0 kuni 60, alustades alumisest välimisest LED -ist ja liikudes päripäeva sissepoole. Keskmine LED on number 60.
Iga visualiseerimine tugineb kahemõõtmelistele andmemassiividele, mis kaardistavad iga valgusdioodi sihtmärgi visualiseerimise segmendi kindlasse kohta.
Näiteks kontsentriliste ringide puhul on 5 segmenti:
- Välimine ring, valgusdioodid 0 - 23, 24 valgusdioodi
- Teine väline ring, valgusdioodid 24 - 39, 16 valgusdioodi
- Kolmas ring (keskel), valgusdioodid 40 - 51, 12 valgusdioodi
- Teine sisering, valgusdioodid 52 - 59, 8 valgusdioodi
- Sees LED, LED 60, 1 LED pikk
Visualiseerimine kaardistab 5 helikanalit 7 -st ja süttib LED -id järk -järgult vastavalt nende asukohale ringikujulises ribas proportsionaalselt heliriba tasemega.
Teised visualiseerimised kasutavad erinevaid andmestruktuure ja -vorminguid, kuid idee on alati see, et visualiseerimisi juhiksid andmemassiivid, mitte niivõrd kood. Nii sai visualiseeringuid kohandada erineva kujuga (rohkem või vähem LED -e, rohkem EQ -ribasid) ilma koodi muutmata, vaid andmemassiivide väärtused.
Näiteks visand 1 andmestruktuur näeb välja selline:
// Visualiseerimine 1 ja 3 - täis 5 ringi, bait TOTAL_LAYERS1 = 5; const bait 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}};
4. samm: visualiseerimine
Siiani on 7 visualiseerimist ja käivitusanimatsioon:
Käivitamise animatsioon
Seadme sisselülitamisel kuvatakse ilutulestiku imitatsioon. See pidi olema LED- ja Servo -testide järjestus, kuid hiljem kujunes sellise testi animeeritud versiooniks
Kontsentrilised värvilised ringid
Tuled liiguvad ümber ekraani kontsentriliste ringidena, mis on proportsionaalsed vastava ekvivalendi amplituudiga. Juhuslikult kella- ja vastupäeva vahetamine ning värvide aeglane pööramine 256 värviratta kohal
Malta rist
Üks riba on keskmine LED. Teine riba on LED -ide vertikaalsed ja horisontaalsed jooned ning ülejäänud segmendid, mis tähistavad iga EQ -riba. Kõik segmendid on pöörlevad värvid 128 nihkega, et jääda kontrastseks.
Pulseerivad tuled
Iga ring süttib kõik valgusdioodid üheskoos, et luua spetsiaalne ekvivalentriba, samal ajal pöörlevad värvid aeglaselt väikese nihkega. EQ sagedusribasid nihutatakse järk -järgult ühelt ringilt teisele, luues väljapoole liikumise.
Kamin
Bändid on poolringid, mis on valgustatud alt üles, alustades helepunasega ja lisades kollast, tõustes üles kaminas põlevat tuld. Aeg -ajalt tulistab säravvalge "säde" juhuslikult üles. Värvide pöörlemist ei toimu
Jooksvad tuled
Iga kontsentriline ring on eraldi EQ riba. Juhtivad valgusdioodid on need, mis asuvad keskmise LED -i all oleval vertikaalsel joonel. Kui LED süttib proportsionaalselt riba amplituudiga, hakkab see "jooksma" ümber vastava ringi, aeglaselt vähendades intensiivsust. Toetatakse nii päripäeva kui ka vastupäeva pöörlemist, lülitades juhuslikult.
Heledad puud
Segmendid on valgustatud sirgjooneliselt alt LED-ist ülespoole ja seejärel külgsuunas kontsentriliste poolringidena, mis imiteerivad palmipuid. Värvi pöörlemine.
Külgmised segmendid
See on eelmise Malta risti versioon, kus on kasutatud ainult 2 diagonaalset segmenti. Eeldatakse, et see sarnaneb helilainete ikooniga.
Samm: puudutage nuppude juhtnuppe
Puutetundlikke nuppe on 4:
- Vaadake visualiseeringuid ja jätkake praegust, kuni teine on valitud (vaikimisi visualiseerimistsükkel iga 30 sekundi järel)
- "Külmuta" / "tühista" praegune värviskeem - kui sulle meeldib konkreetne värvikombinatsioon, saad selle külmutada - värvide pööramine on keelatud ja visualiseerimine jätkub just selle värvipaletiga
- Reguleerige mikrofoni tundlikkust
- Lülitage tantsurežiim sisse / välja
Tantsurežiimis proovib seade tuvastada parajasti esitatava muusika "lööki" ja pöörata pead vastavalt löögile. Siiani on "tantsimine" ausalt öeldes pigem ebamugav kui ilus.
6. samm: löökide tuvastamine ja servo "tantsimine"
Seade üritab pidevalt tuvastada praeguse viisi "lööki" kaugusena 63 Hz sagedusala järjestikuste tippude vahel. Kui seade on tuvastatud (ja ainult siis, kui tantsurežiim on sisse lülitatud), aktiveerib seade oma servomootori, et pöörata juhuslikult vasakule või paremale vastavalt löögile.
Kõik eredad ideed selle usaldusväärsemaks muutmiseks on teretulnud!
Eskiis „Music_Test_LED” väljastab 7 EQ riba viisil, mis sobib joonistamiseks Arduino IDE abil.
Samm: 3D -kujundid
Kogu pidulaternate komplekt koostati nullist, kasutades Autodeski TinkerCAD -i.
Algne disain asub siin. Github.com kaust "files/3D" sisaldab STL -mudeleid.
See disain näitab, kuidas seade näeb kokkupanduna välja.
Kõik komponendid trükiti ja seejärel monteeriti/liimiti kokku.
"Kuplis" on mikrokontroller, Bluetooth -plaat ja mikrofon. Mikrokontroller asetatakse 40 mm x 60 mm plaadile ja seda toetavad selleks ettenähtud rööpad.
Servo asub kupli "jalas", nupud aga põhjas.
Patareisahtel on trükitud spetsiaalselt patareide jaotises nimetatud patareitüübi jaoks. Kui otsustate kasutada teist akut, tuleb kamber vastavalt ümber kujundada.
8. samm: toiteallikas
Ülimalt kompaktne 5000-mah kahekordne USB-väljund Super Slim Power Bank näib pakkuvat piisavalt energiat tundideks.
Akusahtel on konstrueeritud nii, et see eraldub ülejäänud seadmest ja selle saab asendada teist tüüpi patareidega.
USB-pistik oli paigutatud ja kuumliimitud, et ühendada aku sisse libistades.
Samm: Bluetoothi juhtimine
Lisatud on moodul HC-05, mis võimaldab seadet juhtmevabalt juhtida.
Kui see on sisse lülitatud, loob seade Bluetooth -ühenduse nimega "LEDDANCE", millega saate oma telefoni siduda.
Ideaalis peaks olema rakendus, mis võimaldab PartyLightsi juhtimist (värvipaleti valimine, nupuvajutuste simuleerimine jne). Siiski pole ma seda veel kirjutanud.
Kui olete huvitatud aitama kirjutada Androidi või iOS -i rakendust peotulede jaoks, andke mulle sellest teada!
Seadme juhtimiseks saate praegu kasutada Bluetoothi terminalirakendust ja saata järgmised käsud:
- LEDDBUTT - kus on "1", "2", "3" või "4", simuleerib vastava nupu vajutamist. Näide: LEDDBUTT1
- LEDDCOLRc - kus c on arv vahemikus 0 kuni 255 - soovitud värvi asukoht värvirattal. Seade lülitub määratud LED -värvile.
-
LEDDSTAT - tagastab 3 -tähemärgilise numbri, mis koosneb ainult 0 -st ja 1 -st:
- esimene positsioon: '0' - värvid ei pöörle, '1' - värvid pöörlevad
- teine positsioon: '0' - tantsurežiim on välja lülitatud, '1' - tantsurežiim on sisse lülitatud
- kolmas positsioon: '0' - mikrofon on tavalises võimenduses, '1' - mikrofon on suure võimendusega
10. samm: kontrollige rakendust, mis põhineb Blynkil
Blynk (blynk.io) on riistvara agnostiline IoT platvorm. Kasutasin Blynkit oma IoT automaatse taimede niisutussüsteemi juhendamisel ja muljetas platvormi lihtsusest ja vastupidavusest.
Blynk toetab Bluetoothi kaudu serva seadmetega ühendamist - täpselt seda, mida vajame PartyLightsi jaoks.
Kui te pole seda veel teinud, laadige alla rakendus Blynk, registreeruge ja looge rakendus Blynk PartyLights uuesti, kasutades sellele sammule lisatud ekraanipilte. Veenduge, et virtuaalsed nööpnõelad oleksid samad, mis ekraanipiltidel, vastasel juhul ei tööta rakenduse nupud ettenähtud viisil.
Fail "blynk_settings.h" sisaldab minu isiklikku Blynk UID -d. Projekti loomisel määratakse sellele uus, mida saate kasutada.
Laadige üles PartyLightsBlynk.ino visand, käivitage rakendus. Siduge Bluetooth -seadmega ja nautige pidu.
11. samm: visandid ja raamatukogud
Peamine visand ja toetavad failid asuvad saidil Github.com.
Peotulede visandis kasutati järgmisi raamatukogusid:
- TaskScheduler - ühistöö multitegumtöötlus - siin (minu välja töötatud)
- AverageFilter - malli keskmine filter - siin (minu välja töötatud)
- Servo - Servo juhtimine - on tavaline Arduino raamatukogu
- WS2812B -NEOPixel control - kuulub STM32 komplekti
See Wiki leht selgitab, kuidas kasutada STM32 tahvleid koos Arduino IDE -ga.
12. samm: tulevased parandused
Selles disainis võiks parandada mõnda asja, mida võiksite kaaluda, kui alustate selle projektiga:
- Kasutage Maple Mini plaadi asemel ESP32. ESP32 -l on 2 protsessorit, Bluetooth ja WiFi -pinu ning see võib töötada sagedustel 60 MHz, 120 MHz ja isegi 240 MHz.
- Väiksem disain - saadud seade on suurejooneline. Võiks olla kompaktsem (eriti kui loobute tantsimisideest ja sellega seotud servost)
- Löökide tuvastamist võiks lõpmatult täiustada. See, mis meile inimestele loomulikult tuleb, tundub arvuti jaoks keeruline ülesanne
- Võiks välja mõelda ja rakendada palju rohkem visualiseeringuid.
- Ja muidugi võiks kirjutada ka äpi, et juhtida seadet juhtmeta jaheda kasutajaliidesega.
Soovitan:
Kaasaskantavad Arduino robotkäed: 6 sammu
Kaasaskantavad Arduino robotkäed: Tere kõigile! Täna õpetan teile samm -sammult, kuidas ehitada Arduino robotkäsi. Lihtsalt järgige minu samme ja kindlasti saate selle teha
Kaasaskantavad Bluetooth -kõrvaklapid: 4 sammu
Kaasaskantavad Bluetooth -kõrvaklapid: hiljuti murdsin kogemata oma telefoni helipistiku. See oli nii pettumust valmistav, et kõik poed suleti koroonaviiruse pandeemia tõttu ja ma ei saanud seda parandada. Kuid ma pidin oma õppetunnid Internetis õppima. Ma ei saanud kuidagi häirida
Üle 8 miili esimesed universaalsed magnetilised kaasaskantavad tihvtid!: 5 sammu
Üle 8 miili esimesed universaalsed magnetilised kaasaskantavad tihvtid!: Hei! Minu nimi on Georgina Yeboah ja lõin hiljuti need magnetilised nööpnõelad, mis põhinevad minu veebikoomiksi Üle 8 miili tegelastel! Selle sissejuhatuse ja Tapas lingi alt leiate linki veebikomiksi avalehele. Ma tegin need nööpnõelad
Firefly Jari kaasaskantavad Bluetooth -kõlarid: 8 sammu (piltidega)
Firefly Jari kaasaskantavad Bluetooth -kõlarid: ma ehitan igasuguseid kõlareid lihtsatest tehnilisteni, kuid üks asi, mis enamikul neist on ühine, on mingisugune puidutöötlemine. Mõistan, et kõigil pole suuri puidutöötlemisriistu, näiteks laua- või mitmiksaag, kuid paljudel on puur ja
Kaasaskantavad 2.1 kõlarid: 9 sammu (piltidega)
Kaasaskantavad 2.1 kõlarid: see on minu esimene juhendmaterjalide projekt. Tahaksin näidata, kuidas teisendada AC 2.1 kõlarid 100% kaasaskantavateks. See on lihtne projekt kõigile inimestele, sealhulgas elektroonikasõpradele ja isetegijatele