Sadržaj:

Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)

Video: Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)

Video: Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Lipanj
Anonim
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266)
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266)
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266)
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266)

Bok, danas ću vam objasniti kako napraviti vlastiti mali generator glazbe temeljen na vremenu.

Temelji se na ESP8266, koji je poput Arduina, a reagira na temperaturu, kišu i intenzitet svjetla.

Ne očekujte da će stvarati cijele pjesme ili akorde. Više je nalik na generativnu glazbu koju ljudi ponekad naprave s modularnim sintetizatorima. Ali to je malo manje slučajno nego se, na primjer, drži određenih ljestvica.

Pribor

ESP8266 (koristim Feather Huzzah ESP8266 iz Adafruit -a)

BME280 Senzor temperature, vlažnosti i barometarskog tlaka (verzija I2C)

Arduino senzor za kišu

25K LDR (svjetlo ovisni otpornik)

Neki otpornici (dva 47, jedan 100, jedan 220 i jedan 1k Ohm)

Ženski Midi konektor (5 pin Din) pogodan za montažu na PCB

Žice za kratkospojnike

Oglasna ploča ili neka vrsta ploče za izradu prototipa

Računalo, koristit ću jedan sa sustavom Windows 8.1, ali bi trebao raditi na bilo kojem OS -u koliko ja znam.

Dodatno: LiPo baterija od 1250 mAh s JST priključkom iz Adafruit -a (kompatibilno samo s nekim ESP -ovima)

Korak 1: Korak 1: Softver

Prije svega trebate Arduino IDE.

Zatim su vam potrebni upravljački program SiLabs CP2104 i paket ploča ESP8266.

To omogućuje vašem računalu da programira ESP putem ugrađenog UART -a, a Arduino IDE -u da programira ESP.

Sve informacije o IDE -u, upravljačkom programu i paketu ploča možete pronaći na ovoj stranici na web stranici Adafruit.

Trebat će vam i Arduino Midi knjižnica da biste mogli slati Midi podatke. Može se i bez toga, ali to samo uvelike olakšava sve.

Za komunikaciju s BME280 koristio sam ovu knjižnicu BME280-I2C-ESP32. (Ovo je za I2C verziju BME280)

A ta biblioteka zauzvrat zahtijeva Adafruit Unified Sensor Driver. Ovo nije prvi put da mi je potrebna ova knjižnica kako bih bez problema koristila drugu knjižnicu, pa uvijek tu knjižnicu imam negdje označenu.

Korak 2: Korak 2: Hardver

Korak 2: Hardver
Korak 2: Hardver
Korak 2: Hardver
Korak 2: Hardver
Korak 2: Hardver
Korak 2: Hardver

U redu, napokon dolazimo do dobrih stvari, hardvera.

Kao što je spomenuto, koristio sam ovaj Adafruit ESP, ali bi trebao raditi savršeno s NodeMCU -om. Preporučujem verziju V2 jer vjerujem da puno bolje pristaje na ploču, a možete je nabaviti vrlo jeftino na eBayu ili AliExpressu. Sviđa mi se činjenica da Adafruit ESP ima brži CPU, dolazi sa ženskim JST konektorom za LiPo i krugom punjenja. Također je malo lakše shvatiti koji Pin koristite. Vjerujem da je na NodeMCU pin označen D1 zapravo GPIO5, na primjer, pa vam uvijek treba pri ruci Pinout grafikon. To uopće nije veliki problem, ali samo zgodno za početnike, tako su jasno označili Adafruit.

Prije svega spojimo BME280, jer postoje neke varijacije u ovom modelu. Kao što možete vidjeti na slikama, moja ima jednu veliku rupu, ali postoje i neke s 2 rupe. Možete vidjeti da ima 4 ulaza i izlaza, 1 za napajanje, jedan za uzemljenje te SCL i SDA. To znači da komunicira putem I2C. Vjerujem da drugi modeli komuniciraju putem SPI -ja. U nekim možete odabrati ili SPI ili I2C. SPI može zahtijevati drugu biblioteku ili barem drugačiji kod i drugačije ožičenje. Također vjerujem da S u SPI -u znači Serial i ne mogu reći hoće li to ometati Midi dio ovog projekta jer to također radi putem serijske veze.

Spajanje ovog BME -a prilično je jednostavno. Na ESP8266 možete vidjeti pin 4 i 5 s oznakom SDA odnosno SCL. Samo spojite te pinove izravno na SDA i SCL pin na BME -u. Naravno također spojite VIN na Pozitivnu tračnicu Breadboard -a i GND na Negativnu tračnicu. Oni su pak spojeni na 3V3 i GND pin ESP -a.

Sljedeće ćemo povezati LDR. U primjeru Fritzinga možete vidjeti kako napon od 3,3 V prolazi kroz otpornik, zatim je podijeljen na LDR i drugi otpornik. Zatim se nakon LDR -a ponovno dijeli na otpornik i na ADC.

Ovo služi za zaštitu ESP -a od previsokih napona i za dobivanje čitljivih vrijednosti. ADC može podnijeti 0-1 volti, ali 3V3 daje 3,3 volta. Vjerojatno neće ništa dignuti u zrak ako prijeđete iznad 1 volta, ali neće raditi dobro.

Dakle, prvo koristimo razdjelnik napona pomoću otpornika 220 i 100 ohma za smanjenje napona s 3,3 na 1,031 volti. Zatim LKR od 25 k ohma i otpornik od 1 k ohma tvore još jedan razdjelnik napona koji snižava napon s bilo kojeg mjesta između 1,031 i 0 volti ovisno o količini svjetlosti koju LDR dobije.

Zatim imamo senzor za kišu. Jedan dio kaže FC-37, drugi dio HW-103. Upravo sam kupio prvu koju sam našao na Ebayu i na kojoj je pisalo da može izdržati 3,3 i 5 volti. (Mislim da svi mogu).

Ovo je prilično jednostavno, mogli bismo koristiti analogni izlaz, ali možemo samo okrenuti maleni Trimpot kako bi senzor bio osjetljiv koliko želimo (a već smo koristili naš jedan analogni pin na ESP -u). Kao i kod ostalih senzora, moramo napajati iz pozitivne tračnice i spojiti je na uzemljenu tračnicu. Ponekad se ipak redoslijed iglica razlikuje. Na mom je VCC, Ground, Digital, Analog, ali na slici Fritzing je drugačije. Ali ako samo obratite pažnju, ovo bi trebalo biti lako ispraviti.

I na kraju, Midi Jack. Na mojoj Oglasnoj ploči ne može sjediti na rubu matične ploče jer se igle ne poravnavaju. Ako vam ovo smeta, pokušao bih nabaviti ploču u fizičkoj trgovini. Ili dobro pregledajte slike.

Kao što možete vidjeti sa sheme, pozitivni napon i serijski signal prolaze kroz otpornik od 47 ohma.

Ako ovaj projekt radite na primjer s Arduino Uno, svakako upotrijebite otpornike od 220 ohma !! Ovi ESP -ovi rade na 3,3 V logici, ali većina Arduina koristi 5,0 V pa morate više ograničiti struju koja prolazi kroz Midi kabel.

I na kraju spojite srednji zatik s uzemljenjem. Ostala 2 pina s 5 -pin Din -a se ne koriste.

Korak 3: Korak 3: Kodirajte

I konačno imamo šifru!

U ovu Zip datoteku sam stavio 2 skice. 'LightRainTemp' jednostavno testira sve senzore i šalje njihove vrijednosti natrag. (Svakako otvorite terminalni prozor!)

I naravno imamo skicu LRTGenerativeMidi (LRT označava svjetlost, kišu, temperaturu).

Unutra možete pronaći hrpu objašnjenja u komentarima o tome što se događa. Neću ulaziti u to kako sam napisao cijelu stvar, to bi potrajalo satima. Ako želite znati odakle početi s nečim ovakvim, imam na umu neke druge projekte. Mali Random Riff generator s nekoliko gumba i sekvencerom s hrpom značajki koje ne mogu pronaći na drugim modelima.

Ali one koje ću prvo morati dovršiti projektiranje i kodiranje. Javite mi ako želite biti u tijeku s drugim projektima. Nisam odlučio hoću li napraviti više instrukcija ili napraviti video seriju.

Korak 4: Korak 4: Priključite ga i isprobajte

A sada je vrijeme da ga isprobate!

Jednostavno spojite Midi kabel, svakako postavite svoj Synth/Tipkovnicu da reagira na kanal 1 ili promijenite kanal u Arduino kodu i provjerite radi li!

Zaista sam znatiželjan vidjeti i čuti što radite s tim. Ako napravite izmjene, nadogradnje, dotjerivanja (primjerice vrijednosti svjetlosnog senzora i temperature. Vani bi moglo raditi bolje ili gore nego unutra) bilo što.

Također sam znatiželjan vidjeti radi li dobro sa svim sintetizatorima. Na mom Volca Bass -u radi savršeno, ali na mom neutronu LFO se zaglavi čim pošaljem Midi Note. U redu je kad ga ponovno pokrenem, ali čudno je. Nisam siguran postoji li nešto u Midi knjižnici ili u mom kodu, mogao bih to uskoro pokušati učiniti bez knjižnice i vidjeti hoće li biti bolje.

Hvala na čitanju i gledanju i sretno !!

Preporučeni: