Sisukord:

Kaasaskantavad peotuled: 12 sammu (piltidega)
Kaasaskantavad peotuled: 12 sammu (piltidega)

Video: Kaasaskantavad peotuled: 12 sammu (piltidega)

Video: Kaasaskantavad peotuled: 12 sammu (piltidega)
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №30 2024, November
Anonim
Image
Image
Idee
Idee

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
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!):

  1. Kontsentrilised värvilised ringid
  2. Malta rist
  3. Pulseerivad tuled
  4. Kamin (minu isiklik lemmik)
  5. Jooksvad tuled
  6. Heledad puud
  7. 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

Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem ja helitöötlus
Skeem 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

LED ratas
LED ratas
LED ratas
LED ratas
LED ratas
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

Visualiseerimised
Visualiseerimised
Visualiseerimised
Visualiseerimised
Visualiseerimised
Visualiseerimised
Visualiseerimised
Visualiseerimised

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

Puute nuppude juhtnupud
Puute nuppude juhtnupud

Puutetundlikke nuppe on 4:

  1. Vaadake visualiseeringuid ja jätkake praegust, kuni teine on valitud (vaikimisi visualiseerimistsükkel iga 30 sekundi järel)
  2. "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
  3. Reguleerige mikrofoni tundlikkust
  4. 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"

Peksmise tuvastamine ja servo
Peksmise tuvastamine ja servo

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

3D kujundid
3D kujundid
3D kujundid
3D kujundid
3D kujundid
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

Toiteallikas
Toiteallikas
Toiteallikas
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

Bluetoothi juhtimine
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

Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus põhineb Blynkil
Juhtimisrakendus 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

Visandid ja raamatukogud
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

Tulevased parandused
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: