Turinys:

Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)

Video: Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)

Video: Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)
Video: ORAI . Labai stiprus bandymas daryti betkokį lietų. 6.11. vidurnaktis. 2024, Liepa
Anonim
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius)

Sveiki, šiandien paaiškinsiu, kaip susikurti savo mažą orų muzikos generatorių.

Jis pagrįstas ESP8266, kuris yra panašus į „Arduino“, ir reaguoja į temperatūrą, lietų ir šviesos intensyvumą.

Nesitikėkite, kad tai sukels visas dainas ar akordus. Tai labiau panašu į generacinę muziką, kurią žmonės kartais kuria naudodami modulinius sintezatorius. Tačiau tai yra šiek tiek mažiau atsitiktinė, pavyzdžiui, ji laikosi tam tikrų skalių.

Prekės

ESP8266 (aš naudoju „Feather Huzzah ESP8266“iš „Adafruit“)

BME280 temperatūros, drėgmės ir barometrinio slėgio jutiklis (I2C versija)

Arduino lietaus jutiklis

25K LDR (nuo šviesos priklausomas rezistorius)

Kai kurie rezistoriai (du 47, vienas 100, vienas 220 ir vienas 1 kΩ)

Moteriška midi jungtis (5 kontaktų Din), tinkama montuoti PCB

Trumpieji laidai

Duonos lenta arba kokia nors prototipų lenta

Kompiuteris, aš naudoju vieną, kuriame veikia „Windows 8.1“, bet, kiek žinau, jis turėtų veikti bet kurioje OS.

Neprivaloma: 1250 mAh LiPo baterija su JST jungtimi iš „Adafruit“(suderinama tik su kai kuriais ESP)

1 žingsnis: 1 žingsnis: programinė įranga

Pirmiausia jums reikia „Arduino IDE“.

Tada jums reikia „SiLabs CP2104“tvarkyklės ir ESP8266 plokštės paketo.

Tai leidžia jūsų kompiuteriui programuoti ESP per įmontuotą UART ir leidžia „Arduino IDE“programuoti ESP.

Visą informaciją apie IDE, vairuotojo ir valdybos paketą rasite šiame „Adafruit“svetainės puslapyje.

Jums taip pat reikės „Arduino Midi“bibliotekos, kad galėtumėte siųsti „Midi“duomenis. Tai galima padaryti be jo, tačiau tai tik labai palengvina.

Norėdami bendrauti su BME280, naudoju šią BME280-I2C-ESP32 biblioteką. (Tai skirta BME280 I2C versijai)

O šiai bibliotekai savo ruožtu reikia „Adafruit Unified Sensor Driver“. Tai ne pirmas kartas, kai man reikia šios bibliotekos, kad galėčiau naudoti kitą biblioteką be problemų, todėl šią biblioteką visada turiu kur nors pažymėtą.

2 veiksmas: 2 žingsnis: aparatinė įranga

2 žingsnis: Aparatūra
2 žingsnis: Aparatūra
2 žingsnis: Aparatūra
2 žingsnis: Aparatūra
2 žingsnis: Aparatūra
2 žingsnis: Aparatūra

Gerai, kad pagaliau pasiektume gerus dalykus, aparatūrą.

Kaip minėta, aš naudoju šį „Adafruit ESP“, tačiau jis turėtų tik gerai veikti su „NodeMCU“. Aš rekomenduoju V2 versiją, nes manau, kad ji daug geriau tinka ant duonos lentos, ir jūs galite juos labai pigiai įsigyti iš „eBay“arba „AliExpress“. Man patinka tai, kad „Adafruit ESP“turi spartesnį procesorių, su moteriška JST jungtimi, skirta „LiPo“, ir įkrovimo grandine. Taip pat šiek tiek lengviau išsiaiškinti, kokį „Pin“naudojate. Manau, kad „NodeMCU“smeigtukas, pažymėtas D1, iš tikrųjų yra, pavyzdžiui, GPIO5, todėl jums visada reikia „Pinout“diagramos. Tai nėra didelė problema, tačiau naujokams patogu, kad jie taip aiškiai pažymėjo „Adafruit“.

Pirmiausia prijunkime BME280, nes šiame modelyje yra keletas variantų. Kaip matote iš nuotraukų, mano kasykloje yra viena didelė skylė, tačiau yra ir tokių, kuriose yra 2 skylės. Matote, kad jame yra 4 įėjimai ir išėjimai, 1 - maitinimui, vienas - įžeminimui, SCL ir SDA. Tai reiškia, kad jis bendrauja per I2C. Manau, kad kiti modeliai bendrauja per SPI. Kai kuriuose galite pasirinkti SPI arba I2C. SPI gali prireikti kitos bibliotekos arba bent kitokio kodo ir skirtingų laidų. Aš taip pat manau, kad S in SPI reiškia „Serial“ir negaliu pasakyti, ar tai trukdys šio projekto „Midi“daliai, nes tai taip pat veikia naudojant serijinį ryšį.

Prijungti šį BME yra gana paprasta. ESP8266 matote 4 ir 5 kaiščius, atitinkamai pažymėtus SDA ir SCL. Tiesiog prijunkite tuos kaiščius tiesiai prie BME SDA ir SCL kaiščio. Žinoma, taip pat prijunkite VIN prie „Breadboard“teigiamo bėgelio ir GND prie neigiamo bėgio. Jie savo ruožtu yra prijungti prie ESP 3V3 ir GND kaiščio.

Toliau prijungsime LDR. Fritzing pavyzdyje galite pamatyti, kaip 3,3 voltai eina per rezistorių, tada jis yra padalintas į LDR ir kitą rezistorių. Tada po LDR jis vėl padalijamas į rezistorių ir į ADC.

Taip siekiama apsaugoti ESP nuo per didelės įtampos ir įsitikinti, kad ji gauna įskaitomas vertes. ADC gali valdyti 0-1 voltų, tačiau 3V3 tiekia 3,3 voltų. Tikriausiai nieko nesprogs, jei pakilsite virš 1 volto, tačiau tai neveiks gerai.

Taigi pirmiausia mes naudojame įtampos skirstytuvą, naudojant 220 ir 100 omų rezistorius, kad įtampa sumažėtų nuo 3,3 iki 1,031 volto. Tada 25k omų LDR ir 1k omų rezistorius sudaro kitą įtampos skirstytuvą, kuris sumažina įtampą nuo 1,031 iki 0 voltų, priklausomai nuo šviesos kiekio, kurį gauna LDR.

Tada mes turime lietaus jutiklį. Viena dalis sako FC-37, kita-HW-103. Aš ką tik nusipirkau pirmąjį, kurį radau „Ebay“ir kuriame rašoma, kad jis gali valdyti 3,3 ir 5 voltų įtampą. (Manau, kad jie visi gali).

Tai gana paprasta, galėtume naudoti analoginę išvestį, tačiau galime tiesiog pasukti mažytį „Trimpot“, kad jutiklis būtų toks jautrus, kokio norime (ir mes jau naudojome vieną analoginį kaištį ESP). Kaip ir kiti jutikliai, mes turime tiekti energiją iš teigiamo bėgio ir prijungti prie antžeminio bėgelio. Kartais kaiščių tvarka skiriasi. Mano atveju tai VCC, Ground, Digital, Analog, bet Fritzing paveikslėlyje viskas kitaip. Bet jei tik atkreipsite dėmesį, tai turėtų būti lengva ištaisyti.

Ir galiausiai, Midi Jack. Mano „Breadboard“jis negali sėdėti ant duonos lentos krašto, nes kaiščiai ne visi sutampa. Jei tai jums trukdo, bandyčiau nusipirkti duonos lentą fizinėje parduotuvėje. Arba labai gerai apžiūrėkite nuotraukas.

Kaip matote iš schemos, teigiama įtampa ir nuoseklusis signalas eina per 47 omų rezistorių.

Pavyzdžiui, jei atliksite šį projektą su „Arduino Uno“, būtinai naudokite 220 omų rezistorius! Šie ESP veikia su 3,3 V logika, tačiau dauguma „Arduino“naudoja 5,0 V, todėl turite labiau apriboti srovę, einančią per „Midi“kabelį.

Ir galiausiai prijunkite vidurinį kaištį prie įžeminimo bėgio. Kiti 2 kaiščiai iš 5 kontaktų Din nenaudojami.

3 žingsnis: 3 žingsnis: kodas

Ir pagaliau mes turime kodą!

Į šį ZIP failą įdėjau 2 eskizus. „LightRainTemp“tiesiog išbando visus jutiklius ir grąžina jų vertes. (Būtinai atidarykite terminalo langą!)

Ir, žinoma, turime eskizą LRTGenerativeMidi (LRT reiškia šviesa, lietus, temperatūra).

Viduje komentaruose galite rasti daugybę paaiškinimų, kas vyksta. Aš nesiruošiu gilintis į tai, kaip aš viską parašiau, tai užtruktų valandas. Jei norite sužinoti, kur pradėti kažką panašaus, turiu omenyje kitus projektus. Mažas „Random Riff“generatorius su keliais mygtukais ir „Sequencer“su daugybe funkcijų, kurių nerandu kituose modeliuose.

Bet tuos, kuriuos pirmiausia turėsiu baigti kurti ir koduoti. Praneškite man, jei norite būti informuoti apie kitus projektus. Aš nenusprendžiau, ar darysiu daugiau pamokymų, ar kuriu vaizdo įrašų seriją.

4 žingsnis: 4 žingsnis: prijunkite ir išbandykite

Ir dabar atėjo laikas tai išbandyti!

Tiesiog prijunkite „Midi“kabelį, būtinai nustatykite „Synth“/klaviatūrą, kad ji reaguotų į 1 kanalą, arba pakeiskite „Arduino“kodo kanalą ir pažiūrėkite, ar jis veikia!

Man labai įdomu pamatyti ir išgirsti, ką su juo darote. Jei atliksite pakeitimus, atnaujinimus, pakeitimus (pvz., Šviesos jutiklio ir temperatūros vertes. Išorėje jis gali veikti geriau ar blogiau nei viduje), bet ką.

Man taip pat įdomu sužinoti, ar jis gerai veikia su visais sintezatoriais. Mano „Volca Bass“jis veikia puikiai, bet mano „Neutron“LFO įstringa, kai tik išsiunčiu „Midi Note“. Gerai, kai iš naujo paleidžiu, bet keista. Nesu tikras, ar „Midi“bibliotekoje ar mano kode yra kažkas, galbūt netrukus bandysiu tai padaryti be bibliotekos ir pažiūrėsiu, ar viskas pagerės.

Ačiū, kad skaitote ir žiūrite, ir sėkmės !!

Rekomenduojamas: