Sisällysluettelo:

Kannettavat juhlavalot: 12 vaihetta (kuvilla)
Kannettavat juhlavalot: 12 vaihetta (kuvilla)

Video: Kannettavat juhlavalot: 12 vaihetta (kuvilla)

Video: Kannettavat juhlavalot: 12 vaihetta (kuvilla)
Video: PureFlare LED (Green) 2024, Marraskuu
Anonim
Image
Image
Ajatus
Ajatus

Tinkercad -projektit »

Voitko tuoda juhliin valoa ja tehdä siitä hauskempaa?

Se oli kysymys. Ja vastaus on KYLLÄ (tietysti).

Tässä ohjeessa on kyse kannettavan laitteen tekemisestä, joka kuuntelee musiikkia ja luo musiikkivisualisoinnin Neopixel -LEDien samankeskisistä renkaista.

Laite yritettiin "tanssia", eli siirtyä musiikin tahtiin, mutta lyönnin havaitseminen osoittautui monimutkaisemmaksi tehtäväksi kuin miltä se kuulostaa (ei sanaleikkiä), joten "tanssi" on hieman hankalaa, mutta silti siellä on.

Laite on Bluetooth-yhteensopiva ja vastaa tekstikomentoihin. Minulla ei ollut aikaa kirjoittaa sovellusta Party Lightsin ohjaamiseen (joko Android tai iOS). Jos olet tehtävän tasalla - kerro minulle !!!

Jos pidät tästä ohjeesta, äänestä sitä Make It Glow -kilpailussa!

Tarvikkeet

Juhlavalojen rakentamiseen tarvitset:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex -M3 Module for Arduino (linkki tähän) - laitteen aivot. Nämä suhteellisen halvat laitteet ovat niin tehokkaita, on epäselvää, miksi palaisit koskaan Arduinoon.
  • MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (linkki tähän)
  • HC-05 tai HC-06 Bluetooth-moduuli (linkki tähän)
  • Adafruit MAX9814 -mikrofoni (linkki tästä)
  • Tavallinen servomoottori (linkki tähän) on, että haluat laitteen "tanssivan"
  • CJMCU 61 -bittinen WS2812 5050 RGB LED -ohjaimen kehityskortti (linkki tähän)
  • TTP223 Kosketusnäppäinmoduuli Kapasitiivinen asetettavissa oleva itselukittuva/lukitsematon kytkinlevy (linkki tähän)
  • Erittäin pienikokoinen 5000 mAh: n kaksi USB-lähtöä Super Slim Power Bank (linkki tähän)

  • Vastukset, kondensaattorit, johdot, liima, ruuvit, prototyyppilevyt jne. Jne.

Vaihe 1: Idea

Ajatus
Ajatus

Ajatuksena on saada kannettava laite, joka voidaan sijoittaa lähelle musiikkilähdettä ja joka luo värikkäitä musiikkivisualisointeja. Sinun pitäisi pystyä hallitsemaan laitteen toimintaa painikkeilla (kosketus) ja Bluetoothilla.

Party Lightsilla on tällä hetkellä 7 visualisointia (kerro minulle, jos sinulla on enemmän ideoita!):

  1. Samankeskiset värikkäät ympyrät
  2. Maltan risti
  3. Pulssoivat valot
  4. Takka (henkilökohtainen suosikkini)
  5. Juoksuvalot
  6. Vaaleat puut
  7. Sivuttaiset segmentit

Oletuksena laite selaa visualisointeja minuutin välein. Käyttäjä voi kuitenkin valita yhden visualisoinnin ja/tai selata niitä manuaalisesti.

Visualisaatiot, jotka kiertävät värivalikoimaansa, voidaan myös "jäädyttää", jos käyttäjä pitää tietystä väriyhdistelmästä.

Ja parina lisäohjaimena käyttäjä voi muuttaa mikrofonin herkkyyttä ja ottaa käyttöön/poistaa käytöstä servomoottorin "tanssitilan".

Vaihe 2: Kaavio ja äänen käsittely

Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely
Kaavio ja äänen käsittely

Fritzing kaavamainen tiedosto sisältyy Githubin pakettiin "files" -alikansioon.

Pohjimmiltaan MSEQ7 -siru käsittelee äänen ja jakaa äänisignaalin 7 kaistaan: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz ja 16 kHz

Mikro -ohjain käyttää näitä 7 kaistaa luodakseen erilaisia visualisointeja, jotka pohjimmiltaan kartoittavat vastaavat kaistan amplitudit LED -valon voimakkuudeksi ja väriyhdistelmiksi.

Äänilähde on mikrofoni, jossa on 3 vahvistustasoa. Voit selata vahvistusasetuksia yhdellä painikkeella sen mukaan, kuinka kaukana/voimakas äänilähde on.

Mikro -ohjain yrittää myös suorittaa "beat" -tunnistuksen 63 Hz: n "basso" -kaistalla. Työskentelen edelleen luotettavan tavan havaita ja ylläpitää lyönnin kohdistusta.

Kosketuspainikkeiden käyttö oli kokeilu. Mielestäni ne toimivat melko hyvin, mutta lehdistön palautteen puute on hieman hämmentävää.

Vaihe 3: LED -pyörä

LED -pyörä
LED -pyörä
LED -pyörä
LED -pyörä
LED -pyörä
LED -pyörä

Visualisoinnin ydin on 61 LED -pyörä.

Huomaa, että osa tulee yksittäisinä renkaina, jotka sinun on koottava yhteen. Käytin mieluummin kuparijohtimia voimalinjoille (jotka myös pitävät renkaat kauniisti yhdessä) ja ohuita signaalijohtoja.

LEDit on numeroitu 0 - 60 alkaen alimmasta ulkoisesta LEDistä ja kulkevat myötäpäivään sisäänpäin. Keskimmäinen LED on numero 60.

Jokainen visualisointi perustuu kaksiulotteisiin tietojärjestelmiin, jotka yhdistävät kunkin LEDin tiettyyn paikkaan kohdevisualisointisegmentille.

Esimerkiksi samankeskisille ympyröille on viisi segmenttiä:

  • Ulompi ympyrä, LEDit 0-23, 24 LEDiä pitkiä
  • Toinen ulompi ympyrä, LEDit 24 - 39, 16 LEDiä pitkiä
  • Kolmas ympyrä (keskellä), LEDit 40-51, 12 LEDiä pitkiä
  • Toinen sisäpiiri, LEDit 52-59, 8 LEDiä pitkiä
  • Sisällä LED, LED 60, 1 LED pitkä

Visualisointi kartoittaa 5/7 äänikanavaa ja sytyttää LEDit asteittain niiden sijainnin mukaan ympyränmuotoisella kaistalla suhteessa kaistan äänitasoon.

Muut visualisoinnit käyttävät erilaisia tietorakenteita ja -muotoja, mutta ajatuksena on aina, että visualisointeja ohjaavat tietojärjestelmät, ei niinkään koodi. Tällä tavalla visualisoinnit voidaan säätää eri muotoihin (enemmän tai vähemmän LED -valoja, enemmän taajuuskorjainkaistoja) muuttamatta koodia, vain arvot tietojärjestelmissä.

Esimerkiksi visualisoinnin 1 tietorakenne näyttää esimerkiksi luonnokselta:

// Visualisointi 1 ja 3 - täydet 5 ympyrää, jotka koostuvat tavusta TOTAL_LAYERS1 = 5; const tavu 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}};

Vaihe 4: Visualisoinnit

Visualisaatiot
Visualisaatiot
Visualisaatiot
Visualisaatiot
Visualisaatiot
Visualisaatiot
Visualisaatiot
Visualisaatiot

Tähän mennessä on 7 visualisointia ja aloitusanimaatio:

Aloitusanimaatio

Kun laitteeseen kytketään virta, näytöllä näkyy ilotulituksen jäljitelmä. Tämän piti olla LED- ja Servo -testisekvenssi, mutta myöhemmin siitä kehittyi animoitu versio tällaisesta testistä

Samankeskiset värikkäät ympyrät

Valot kiertävät näyttöä samankeskisinä ympyröinä suhteessa vastaavan ekvivalenttikaistan amplitudiin. Vaihtaa satunnaisesti kello- ja vastapäivään ja kääntää hitaasti värejä 256-väripyörän yli

Maltan risti

Yksi nauha on keskimmäinen LED. Toinen kaista on LEDien pysty- ja vaakasuorat viivat ja loput segmentit edustavat kutakin taajuuskorjain -kaistaa. Kaikki segmentit ovat pyöriviä värejä 128 offsetissa kontrastin säilyttämiseksi.

Pulssoivat valot

Kukin ympyrä sytyttää kaikki LED -valot samanaikaisesti omaa eq -kaistaa varten, samalla kun värit pyörivät hitaasti pienellä siirtymällä. Taajuuskorjainalueet siirtyvät asteittain ympyrästä seuraavaan luoden ulospäin suuntautuvan etenemisen.

Takka

Bändit ovat puoliympyröitä, jotka valaisevat alhaalta ylöspäin ja alkavat kirkkaan punaisesta ja lisäävät keltaista ylöspäin simuloiden takan palavaa tulta. Satunnaisesti kirkas valkoinen "kipinä" ampuu satunnaisesti ylös. Ei ole värin kiertoa

Juoksuvalot

Jokainen samankeskinen ympyrä on erillinen taajuuskorjain. Johtavat LEDit ovat keskilinjan alapuolella olevalla pystyviivalla. Kun LED -valo syttyy suhteessa kaistan amplitudiin, se alkaa "kulkea" vastaavan ympyrän ympäri hitaasti vähentäen voimakkuutta. Sekä myötä- että vastapäivään suuntautuvaa kiertoa tuetaan vaihtamalla satunnaisesti.

Vaaleat puut

Segmentit valaistaan suorassa linjassa alhaalta LED-valosta ylöspäin ja sitten sivuttain samankeskisin puolipyörein, jotka jäljittelevät palmuja. Värin kierto.

Sivuttaiset segmentit

Tämä on versio edellisestä Maltan rististä, jossa on käytetty vain kahta diagonaalista segmenttiä. Oletetaan muistuttavan ääniaaltojen kuvaketta.

Vaihe 5: Kosketuspainikkeiden säätimet

Kosketa painiketta
Kosketa painiketta

Kosketusherkkiä painikkeita on 4:

  1. Selaa visualisointeja ja pidä nykyistä käynnissä, kunnes toinen on valittu (oletuksena visualisointijakso 30 sekunnin välein)
  2. "Jäädytä" / "vapauta" nykyinen värimalli - jos pidät tietystä väriyhdistelmästä, voit jäädyttää sen - värin kierto on poistettu käytöstä ja visualisointi jatkuu tällä väripaletilla
  3. Säädä mikrofonin herkkyyttä
  4. Kytke "tanssitila" päälle / pois päältä

Tanssitilassa laite yrittää havaita parhaillaan toistettavan musiikin "sykkeen" ja kääntää päänsä tahdin mukaan. Toistaiseksi "tanssi" on rehellisesti sanottuna melko hankalaa kuin kaunista.

Vaihe 6: Beat Detection ja servotanssi

Beat Detection ja Servo
Beat Detection ja Servo

Laite yrittää jatkuvasti havaita nykyisen virityksen "lyönnin" 63 Hz: n kaistan peräkkäisten huippujen välisenä etäisyytenä. Kun laite on havaittu (ja vain jos tanssitila on PÄÄLLÄ), se aktivoi servomoottorin kääntyäkseen satunnaisesti vasemmalle tai oikealle tahdin mukaan.

Kaikki kirkkaat ideat siitä, kuinka tehdä tästä luotettavampi, ovat tervetulleita!

'Music_Test_LED' -luonnos tuottaa 7 taajuuskorjainkaistaa tavalla, joka sopii piirtämiseen Arduino IDE: n avulla.

Vaihe 7: 3D -muodot

3D -muodot
3D -muodot
3D -muodot
3D -muodot
3D -muodot
3D -muodot

Koko Party Lights -kokoonpano on suunniteltu alusta alkaen Autodesk TinkerCAD -ohjelmalla.

Alkuperäinen muotoilu löytyy täältä. Github.com -tiedoston "files/3D" -kansio sisältää STL -mallit.

Tämä malli kuvaa, miltä laite näyttää koottuna.

Kaikki komponentit painettiin ja koottiin/liimattiin yhteen.

"Kupoli" isännöi mikro -ohjainta, Bluetooth -korttia ja mikrofonia. Mikro -ohjain on sijoitettu 40 mm x 60 mm levylle, ja sitä tukevat nimetyt kiskot.

Servo sijaitsee kupolin "jalassa", kun taas painikkeet sijaitsevat pohjassa.

Paristolokero on painettu erityisesti tarvikkeita koskevassa osassa mainitulle akkutyypille. Jos päätät käyttää toista akkua, osasto on suunniteltava uudelleen vastaavasti.

Vaihe 8: Virtalähde

Virtalähde
Virtalähde
Virtalähde
Virtalähde

Erittäin pienikokoinen 5000 mAh: n kaksois-USB-lähtö Super Slim Power Bank näyttää tarjoavan tarpeeksi virtaa tuntikausia.

Paristokotelo on suunniteltu siten, että se irtoaa muusta laitteesta ja voidaan korvata erityyppiselle paristolle suunnitellulla.

USB-pistoke asetettiin paikalleen ja liimattiin paikalleen akun liittämiseksi sisään, kun se liukuu sisään.

Vaihe 9: Bluetooth -ohjaus

Bluetooth -ohjaus
Bluetooth -ohjaus

Laitteeseen on lisätty HC-05-moduuli, joka mahdollistaa tavan ohjata laitetta langattomasti.

Kun laite on päällä, laite luo Bluetooth -yhteyden nimeltä "LEDDANCE", jonka kanssa voit yhdistää puhelimesi.

Ihannetapauksessa pitäisi olla sovellus, joka sallii PartyLights -ohjauksen (värivalikoiman valitseminen, painikkeiden simulointi jne.). En ole kuitenkaan vielä kirjoittanut yhtäkään.

Jos olet kiinnostunut auttamaan Android- tai iOS -sovelluksen kirjoittamisessa Party Lightsille, ilmoita siitä minulle!

Voit ohjata laitetta tällä hetkellä Bluetooth -päätelaitesovelluksella ja lähettää seuraavat komennot:

  • LEDDBUTT - missä "1", "2", "3" tai "4" simuloi vastaavan painikkeen painamista. Esimerkki: LEDDBUTT1
  • LEDDCOLRc - jossa c on luku 0–255 - halutun värin sijainti väripyörällä. Laite vaihtaa määritettyyn LED -väriin.
  • LEDDSTAT - palauttaa kolmen merkin numeron, joka koostuu vain 0: sta ja 1: stä:

    • ensimmäinen asento: '0' - värit eivät pyöri, '1' - värit pyörivät
    • toinen asento: '0' - tanssitila on pois päältä, '1' - tanssitila on päällä
    • kolmas asema: '0' - mikrofoni on normaalivahvistuksessa, '1' - mikrofoni on suuressa vahvistuksessa

Vaihe 10: Ohjaussovellus perustuu Blynkiin

Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin
Ohjaussovellus perustuu Blynkiin

Blynk (blynk.io) on laitteisto-agnostinen IoT-alusta. Käytin Blynkia IoT: n automaattisessa kasvien kastelujärjestelmässä, joka oli ohjattavissa, ja olin vaikuttunut alustan helppoutta ja kestävyydestä.

Blynk tukee yhdistämistä reunalaitteisiin Bluetoothin kautta - juuri sitä, mitä tarvitsemme PartyLightsille.

Jos et ole jo tehnyt sitä, lataa Blynk -sovellus, rekisteröidy ja luo Blynk PartyLights -sovellus uudelleen käyttämällä tähän vaiheeseen liitettyjä kuvakaappauksia. Varmista, että virtuaaliset nastamääritykset ovat samat kuin kuvakaappauksissa, muuten sovelluksen painikkeet eivät toimi tarkoitetulla tavalla.

Tiedosto "blynk_settings.h" sisältää henkilökohtaisen Blynk UID -tunnukseni. Kun luot projektisi, sille määritetään uusi käytettäväksi.

Lataa PartyLightsBlynk.ino -luonnos, käynnistä sovellus. Muodosta laitepari Bluetooth -laitteen kanssa ja nauti juhlista.

Vaihe 11: Luonnokset ja kirjastot

Luonnokset ja kirjastot
Luonnokset ja kirjastot

Pääluonnos ja tukitiedostot ovat täällä Github.comissa.

Party Lights -luonnoksessa käytettiin seuraavia kirjastoja:

  • TaskScheduler - yhteistoiminnallinen moniajo - täällä (kehittämä)
  • AverageFilter - mallipohjainen keskisuodatin - täällä (kehittämäni)
  • Servo - Servo control - on vakio Arduino -kirjasto
  • WS2812B -NEOPixel -ohjaus - kuuluu STM32 -pakettiin

Tämä Wiki -sivu selittää STM32 -levyjen käyttämisen Arduino IDE: n kanssa.

Vaihe 12: Tulevia parannuksia

Tulevat parannukset
Tulevat parannukset

Tässä suunnittelussa voitaisiin parantaa joitain asioita, joita voit harkita, jos aloitat tämän projektin:

  • Käytä ESP32: ta Maple Mini -levyn sijaan. ESP32: ssa on 2 prosessoria, Bluetooth- ja WiFi -pinot, ja se voi toimia taajuudella 60 MHz, 120 MHz ja jopa 240 MHz.
  • Pienempi muotoilu - tuloksena oleva laite on iso. Voisi olla pienempi (varsinkin jos hylkäät tanssi -idean ja siihen liittyvän servon)
  • Lyönnintunnistusta voitaisiin parantaa loputtomasti. Se, mikä tulee meille ihmisille luonnostaan, näyttää olevan vaikea tehtävä tietokoneelle
  • Paljon enemmän visualisointeja voitaisiin kehittää ja toteuttaa.
  • Ja tietysti voidaan kirjoittaa sovellus ohjaamaan laitetta langattomasti viileällä käyttöliittymällä.

Suositeltava: