Sadržaj:
- Pribor
- Korak 1: Korak 1: Softver
- Korak 2: Korak 2: Hardver
- Korak 3: Korak 3: Kodirajte
- Korak 4: Korak 4: Priključite ga i isprobajte
Video: Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
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:
Juuke - RFID glazbeni player za starije i djecu: 10 koraka (sa slikama)
Juuke - RFID glazbeni player za starije i djecu: Ovo je Juuke kutija. Juuke box je vaš glazbeni prijatelj, napravljen da bude što lakši za korištenje. Posebno je dizajniran za upotrebu od strane starijih osoba i djece, ali naravno da ga mogu koristiti i sve ostale dobi. Razlog zašto smo ovo stvorili je
Glazbeni sastavljač: Integrirani virtualni glazbeni instrument s blok-osjetljivim dodirnim senzorom: 4 koraka
Glazbeni sastavljač: Integrirani virtualni glazbeni instrument s blok-osjetljivim dodirnim senzorom: Postoji mnogo ljudi koji žele naučiti svirati glazbeni instrument. Nažalost, neki od njih to ne započinju zbog visoke cijene instrumenata. Na temelju toga odlučili smo napraviti integrirani sustav virtualnih glazbenih instrumenata kako bismo smanjili proračun početnih ne
Audio u MIDI pretvarač u stvarnom vremenu .: 7 koraka
Audio u MIDI pretvarač u stvarnom vremenu .: Namaste ljudi! Ovo je projekt na kojem sam radio na jednom od svojih kolegija (Obrada digitalnih signala u stvarnom vremenu) na svom prvostupničkom studiju. Cilj projekta je napraviti DSP sustav koji "sluša" audio podaci i izlažu MIDI poruke Corresa
Glazbeni player pokretan senzorom temeljen na pokretu: 3 koraka
Glazbeni player pokretan senzorom temeljen na kretanju: Na mom preddiplomskom fakultetu morali smo stvoriti originalni projekt koji su svi studenti mogli sami izabrati. Za moj projekt, budući da uvijek slušam glazbu i uvijek se osjećam kao da je previše gnjavaže uključiti zvučnik
Glazbeni sintetizator temeljen na DE0-Nano-SoC: 5 koraka (sa slikama)
Glazbeni sintetizator Na temelju DE0-Nano-SoC: Glazbeni sintetizatorOvaj glazbeni sintisajzer je prilično jednostavan: samo morate puhati, pjevati ili čak puštati glazbu ispred mikrofona, a zvuk će se modulirati i slati kroz zvučnik. Njegov spektar pojavit će se i na LCD zaslonu