INHOUDSOPGAWE:

Weer -gebaseerde musiekgenerator (ESP8266 -gebaseerde midi -generator): 4 stappe (met foto's)
Weer -gebaseerde musiekgenerator (ESP8266 -gebaseerde midi -generator): 4 stappe (met foto's)

Video: Weer -gebaseerde musiekgenerator (ESP8266 -gebaseerde midi -generator): 4 stappe (met foto's)

Video: Weer -gebaseerde musiekgenerator (ESP8266 -gebaseerde midi -generator): 4 stappe (met foto's)
Video: tutorial install home assistant on stb 2024, Julie
Anonim
Weer -gebaseerde musiekopwekker (ESP8266 -gebaseerde midi -opwekker)
Weer -gebaseerde musiekopwekker (ESP8266 -gebaseerde midi -opwekker)
Weer -gebaseerde musiekopwekker (ESP8266 -gebaseerde midi -opwekker)
Weer -gebaseerde musiekopwekker (ESP8266 -gebaseerde midi -opwekker)

Hallo, vandag sal ek verduidelik hoe u u eie weergawe op musiek gebaseer kan maak.

Dit is gebaseer op 'n ESP8266, wat soortgelyk is aan 'n Arduino, en dit reageer op temperatuur, reën en ligintensiteit.

Moenie verwag dat dit hele liedjies of akkoordprogressies sal maak nie. Dit is meer soos mense van generatiewe musiek wat soms met modulêre sintetiseerders maak. Maar dit is 'n bietjie minder ewekansig, dit hou byvoorbeeld by sekere skale.

Voorrade

ESP8266 (ek gebruik die Feather Huzzah ESP8266 van Adafruit)

BME280 Temperatuur-, humiditeits- en barometriese druksensor (Die I2C -weergawe)

Arduino reën sensor

25K LDR (ligafhanklike weerstand)

Sommige weerstande (twee 47, een 100, een 220 en een 1k Ohm)

Vroulike Midi -aansluiting (5 -pins Din) wat geskik is vir die montering van PCB

Jumper Wires

Broodbord of 'n soort prototipe bord

Rekenaar, ek sal een met Windows 8.1 gebruik, maar dit moet op enige bedryfstelsel werk sover ek weet.

Opsioneel: 1250 mAh LiPo -battery met JST -aansluiting van Adafruit (slegs versoenbaar met sommige ESP's)

Stap 1: Stap 1: sagteware

In die eerste plek het u die Arduino IDE nodig.

Dan benodig u die SiLabs CP2104 -bestuurder en die ESP8266 -raadspakket.

Hierdeur kan u rekenaar die ESP programmeer via die ingeboude UART en kan die Arduino IDE die ESP programmeer.

U kan al die inligting oor die IDE-, bestuurder- en bordpakket op hierdie bladsy op die Adafruit -webwerf vind.

U benodig ook die Arduino Midi -biblioteek om Midi -data te kan stuur. Dit kan sonder gedoen word, maar dit maak alles baie makliker.

Om met die BME280 te kommunikeer, het ek hierdie BME280-I2C-ESP32 biblioteek gebruik. (Dit is vir die I2C weergawe van die BME280)

En die biblioteek benodig op sy beurt Adafruit Unified Sensor Driver. Dit is nie die eerste keer dat ek hierdie biblioteek nodig het om 'n ander biblioteek sonder probleme te gebruik nie, en ek het altyd 'n boekmerk van hierdie biblioteek.

Stap 2: Stap 2: Hardeware

Stap 2: Hardeware
Stap 2: Hardeware
Stap 2: Hardeware
Stap 2: Hardeware
Stap 2: Hardeware
Stap 2: Hardeware

Goed, sodat ons uiteindelik by die goeie dinge, die hardeware, uitkom.

Soos genoem, het ek hierdie Adafruit ESP gebruik, maar dit moet net goed werk met 'n NodeMCU. Ek beveel die V2 -weergawe aan, want ek dink dit pas baie beter op 'n broodbord en u kan dit baie goedkoop kry op eBay of AliExpress. Ek hou daarvan dat die Adafruit ESP 'n vinniger SVE het, 'n vroulike JST -aansluiting vir 'n LiPo en 'n laaikring. Dit is ook 'n bietjie makliker om uit te vind watter pin u gebruik. Ek glo op 'n NodeMCU is die pen gemerk D1 byvoorbeeld GPIO5, dus u het altyd 'n Pinout -kaart byderhand. Glad nie 'n groot probleem nie, maar net vir beginners was dit 'n duidelike naam vir die Adafruit -een.

Laat ons eers die BME280 koppel, want daar is 'n paar variasies in hierdie model. Soos u op die foto's kan sien, het myne die een groot gat, maar daar is ook 'n paar met 2 gate. U kan sien dat dit 4 in- en uitsette het, 1 vir krag, een vir grond en 'n SCL en SDA. Dit beteken dat dit via I2C kommunikeer. Ek glo dat ander modelle via SPI kommunikeer. En in sommige kan u SPI of I2C kies. SPI benodig moontlik 'n ander biblioteek of ten minste 'n ander kode en ander bedrading. Ek glo ook dat die S in SPI staan vir Serial, en ek kan nie sê of dit die Midi -deel van hierdie projek sal belemmer nie, aangesien dit ook via Serial -verbinding werk.

Dit is redelik eenvoudig om hierdie BME aan te sluit. Op die ESP8266 kan u sien dat pen 4 en 5 onderskeidelik SDA en SCL gemerk is. Koppel die penne direk aan die SDA- en SCL -pen op die BME. Koppel natuurlik ook VIN aan die Positive Rail of the Breadboard en GND aan die Negative Rail. Dit is op hul beurt verbind met die 3V3- en GND -pen van die ESP.

Vervolgens sal ons die LDR verbind. In die voorbeeld van Fritzing kan u die 3.3 volt sien wat deur 'n weerstand gaan, dan word dit verdeel na die LDR en 'n ander weerstand. Na die LDR word dit weer verdeel in 'n weerstand en na die ADC.

Dit is om die ESP te beskerm teen te hoë spanning en om seker te maak dat dit leesbare waardes kry. Die ADC kan 0-1 Volt hanteer, maar die 3V3 lewer 3,3 volt. Dit sal waarskynlik niks opblaas as u bo 1 volt gaan nie, maar dit gaan nie goed werk nie.

Dus gebruik ons eers 'n spanningsverdeler met weerstand van 220 en 100 ohm om die spanning van 3,3 tot 1,031 volt te verlaag. Dan vorm die 25k ohm LDR en die 1k ohm weerstand 'n ander spanningsverdeler wat die spanning van oral tussen 1.031 en 0 volt laat daal, afhangende van die hoeveelheid lig wat die LDR kry.

Dan het ons die reënsensor. Die een deel sê FC-37, die ander deel sê HW-103. Ek het pas die eerste een gekoop wat ek op Ebay gevind het, wat sê dat dit 3,3 en 5 volt kan hanteer. (Ek dink almal kan).

Dit is redelik eenvoudig, ons kan 'n analoog uitset gebruik, maar ons kan die klein Trimpot draai om die sensor so sensitief te maak as wat ons wil (en ons het reeds ons een analoog pen op die ESP gebruik). Net soos met die ander sensors, moet ons ook krag van die positiewe spoor voorsien en dit met die grondrail verbind. Soms wissel die volgorde van die penne egter. Op myne is dit VCC, Ground, Digital, Analog, maar op die Fritzing -prentjie is dit anders. Maar as u net aandag gee, moet dit maklik wees om dit reg te stel.

En laastens, die Midi Jack. Op my Breadboard kan dit nie op die rand van die broodbord sit nie, aangesien die penne nie almal in lyn is nie. As dit u pla, sou ek probeer om 'n broodbord in 'n fisiese winkel te kry. Of kyk baie goed na die foto's.

Soos u uit die skema kan sien, gaan die positiewe spanning en die seriële sein beide deur 'n weerstand van 47 ohm.

As u hierdie projek byvoorbeeld met 'n Arduino Uno doen, moet u weerstands van 220 ohm gebruik! Hierdie ESP werk op 3.3 V -logika, maar die meeste Arduino's gebruik 5.0 V, sodat u die stroom wat deur die Midi -kabel gaan, meer moet beperk.

En sluit uiteindelik die middelste pen aan die grondrail. Die ander 2 penne van die 5 Pin Din word nie gebruik nie.

Stap 3: Stap 3: Kode

En uiteindelik het ons die kode!

In hierdie zip -lêer sit ek 2 sketse. 'LightRainTemp' toets net al die sensors en stuur hul waardes terug. (Maak seker dat u die Terminal -venster oopmaak!)

En natuurlik het ons die LRTGenerativeMidi (LRT staan vir lig, reën, temperatuur) skets.

Binne kan u 'n klomp verduidelikings vind in opmerkings oor wat aan die gang is. Ek gaan nie ingaan op hoe ek die hele saak geskryf het nie, dit sal ure neem. As u wil weet waar u met so iets moet begin, het ek 'n paar ander projekte in gedagte. 'N Klein Random Riff -kragopwekker met 'n paar knoppies en 'n Sequencer met 'n klomp funksies wat ek nie op ander modelle kan vind nie.

Maar diegene wat ek eers sal moet ontwerp en kodeer. Laat weet my as u op hoogte wil bly van ander projekte. Ek het nie besluit of ek meer instruksies gaan maak of 'n video -reeks gaan maak nie.

Stap 4: Stap 4: Sluit dit aan en toets dit

En nou is dit tyd om dit te toets!

Koppel eenvoudig 'n Midi -kabel, maak seker dat u Synth/Keyboard op kanaal 1 reageer of die kanaal in die Arduino -kode verander en kyk of dit werk!

Ek is regtig nuuskierig om te sien en te hoor wat jy daarmee doen. As u veranderinge, opgraderings, aanpassings (soos die ligsensor en temperatuurwaardes aanbring. Buite kan dit beter of slegter werk as binne).

Ek is ook nuuskierig om te sien of dit goed werk met alle sintetiseerders. Op my Volca Bass werk dit perfek, maar op my Neutron val die LFO vas sodra ek 'n Midi Note stuur. Dit is goed as ek dit herlaai, maar dit is vreemd. Ek is nie seker of daar iets in die Midi -biblioteek of in my kode is nie; ek kan dit binnekort sonder 'n biblioteek probeer doen en kyk of dit beter word.

Dankie dat u gelees en gekyk het en sterkte !!

Aanbeveel: