Sadržaj:

Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266): 4 koraka (sa slikama)
Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266): 4 koraka (sa slikama)

Video: Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266): 4 koraka (sa slikama)

Video: Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266): 4 koraka (sa slikama)
Video: Какая медлительная женщина ► 9 Прохождение Silent Hill 4: The Room ( PS2 ) 2024, Novembar
Anonim
Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266)
Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266)
Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266)
Muzički generator temeljen na vremenu (Midi generator zasnovan na ESP8266)

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

Zasnovan je 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 liči na generativnu muziku koju ljudi ponekad prave pomoću modularnih sintetizatora. Ali to je malo manje slučajno nego se, na primjer, drži određenih ljestvica.

Supplies

ESP8266 (Koristim Feather Huzzah ESP8266 iz Adafruit -a)

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

Arduino senzor za kišu

25K LDR (svjetlozavisni 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

Džemper žice

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

Računar, koristiću jedan sa operativnim sistemom Windows 8.1, ali bi trebao raditi na bilo kom OS koliko ja znam.

Opciono: LiPo baterija od 1250 mAh sa JST konektorom iz Adafruit -a (kompatibilno samo sa 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.

Ovo omogućava vašem računaru da programira ESP preko ugrađenog UART -a i omogućava Arduino IDE -u da programira ESP.

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

Trebat će vam i Arduino Midi biblioteka da biste mogli slati Midi podatke. Može se i bez toga, ali ovo samo čini sve mnogo lakšim.

Za komunikaciju s BME280 koristio sam ovu biblioteku 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 biblioteka da bih bez problema koristila drugu biblioteku, pa je ova biblioteka uvijek negdje označena.

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, konačno 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 V2 verziju jer vjerujem da puno bolje pristaje na ploču, a možete ih 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 jasno su označili Adafruit.

Prvo povežimo 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 i SCL i SDA. To znači da komunicira putem I2C. Vjerujem da drugi modeli komuniciraju putem SPI -ja. A u nekima možete izabrati 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 radi i preko serijske veze.

Povezivanje ovog BME -a je prilično jednostavno. Na ESP8266 možete vidjeti pin 4 i 5 sa oznakom SDA odnosno SCL. Samo spojite ove pinove direktno na SDA i SCL pin na BME -u. Naravno također spojite VIN na pozitivnu šinu Breadboard -a i GND na negativnu šinu. Oni su zauzvrat spojeni na 3V3 i GND pin ESP -a.

Sledeće ćemo povezati LDR. U primjeru Fritzinga možete vidjeti kako napon od 3,3 V prolazi kroz otpornik, a zatim se dijeli 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 osiguravanje čitljivih vrijednosti. ADC može podnijeti 0-1 volti, ali 3V3 daje 3,3 volta. Vjerovatno neće ništa eksplodirati 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 šine i spojiti je na uzemljenu šinu. Ponekad se ipak redoslijed igle 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 srednju iglu sa uzemljenjem. Ostala 2 pina sa 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. (Obavezno otvorite terminalni prozor!)

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

Unutra možete pronaći gomilu objašnjenja u komentarima o tome šta se dešava. 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 tipki i sekvencerom s hrpom funkcija koje ne mogu pronaći na drugim modelima.

Ali one koje ću morati prvo dovršiti dizajniranje i kodiranje. Javite mi ako želite biti u toku 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 povežite Midi kabel, obavezno postavite Synth/Tastaturu 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 unesete promjene, nadogradnje, dotjerivanja (na primjer 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 ponovo pokrenem, ali je čudno. Nisam siguran postoji li nešto u Midi biblioteci ili u mom kodu, mogao bih to uskoro pokušati učiniti bez biblioteke i vidjeti hoće li biti bolje.

Hvala na čitanju i gledanju i sretno !!

Preporučuje se: