Përmbajtje:

Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)
Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)

Video: Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)

Video: Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)
Video: Как сделать 4-канальное реле Wi-Fi ESP8266 ESP01 | ESP01 Домашняя автоматизация | УдаленныйXY 2024, Korrik
Anonim
Gjenerator muzikor i bazuar në mot (Gjenerator Midi i bazuar në ESP8266)
Gjenerator muzikor i bazuar në mot (Gjenerator Midi i bazuar në ESP8266)
Gjenerator muzikor i bazuar në mot (Midi Generator i bazuar në ESP8266)
Gjenerator muzikor i bazuar në mot (Midi Generator i bazuar në ESP8266)

Përshëndetje, sot unë do t'ju shpjegoj se si të krijoni një krijues të vogël të muzikës tuaj të bazuar në mot.

Bazohet në një ESP8266, i cili është si një Arduino, dhe i përgjigjet temperaturës, shiut dhe intensitetit të dritës.

Mos prisni që ajo të bëjë këngë të tëra ose progres akordi. Moreshtë më shumë si njerëzit e Muzikës Gjenerative ndonjëherë që bëjnë me Sintetizues Modular. Por është pak më pak e rastësishme se ajo, ajo i përmbahet disa shkallëve për shembull.

Furnizimet

ESP8266 (Unë jam duke përdorur Feather Huzzah ESP8266 nga Adafruit)

BME280 Sensori i temperaturës, lagështisë dhe presionit barometrik (Versioni I2C)

Sensori i shiut Arduino

25K LDR (Rezistencë e varur nga drita)

Disa rezistencë (dy 47, një 100, një 220 dhe një 1k Ohm)

Lidhës Femër Midi (5 Pin Din) i përshtatshëm për montim të PCB

Telat Jumper

Breadboard ose një lloj bordi Prototyping

Kompjuter, do të përdor një që funksionon me Windows 8.1, por duhet të funksionojë në çdo OS me sa di unë.

Opsionale: Bateri LiPo 1250 mAh me lidhës JST nga Adafruit (në përputhje vetëm me disa ESP)

Hapi 1: Hapi 1: Softuer

Para së gjithash ju nevojitet Arduino IDE.

Atëherë keni nevojë për drejtuesin SiLabs CP2104 dhe Paketën e Bordit ESP8266.

Kjo lejon kompjuterin tuaj të programojë ESP përmes UART -it të integruar dhe lejon që Arduino IDE të programojë ESP.

Ju mund t'i gjeni të gjitha informacionet në lidhje me Paketën IDE, Driver dhe Board në këtë faqe në faqen e internetit të Adafruit.

Ju gjithashtu do të keni nevojë për Bibliotekën Arduino Midi për të qenë në gjendje të dërgoni të dhëna Midi. Mund të bëhet pa, por kjo thjesht e bën gjithçka shumë më të lehtë.

Për të komunikuar me BME280 kam përdorur këtë bibliotekë BME280-I2C-ESP32. (Kjo është për versionin I2C të BME280)

Dhe ajo bibliotekë nga ana tjetër kërkon Shofer të Unifikuar të Sensorit Adafruit. Kjo nuk është hera e parë që kam nevojë për këtë bibliotekë për të përdorur një bibliotekë tjetër pa probleme, kështu që unë gjithmonë e kam këtë Bibliotekë të shënuar diku.

Hapi 2: Hapi 2: Pajisje kompjuterike

Hapi 2: Pajisje kompjuterike
Hapi 2: Pajisje kompjuterike
Hapi 2: Pajisje kompjuterike
Hapi 2: Pajisje kompjuterike
Hapi 2: Pajisje kompjuterike
Hapi 2: Pajisje kompjuterike

Në rregull, kështu që më në fund arrijmë te gjërat e mira, pajisjet.

Siç u përmend, kam përdorur këtë ESP Adafruit, por thjesht duhet të funksionojë mirë me një NodeMCU. Unë rekomandoj versionin V2 pasi besoj se përshtatet shumë më mirë në një dërrasë buke dhe mund t’i blini shumë lirë nga eBay ose AliExpress. Më pëlqen fakti që Adafruit ESP ka një CPU më të shpejtë, vjen me një lidhës femër JST për një LiPo dhe një qark ngarkimi. Alsoshtë gjithashtu pak më e lehtë të kuptoni se çfarë Pin po përdorni. Unë besoj se në një NodeMCU kunja e etiketuar D1 është në të vërtetë GPIO5 për shembull, kështu që gjithmonë keni nevojë për një tabelë Pinout të dobishme. Nuk është aspak një çështje e madhe, por thjesht e përshtatshme për fillestarët ata e etiketuan atë Adafruit aq qartë.

Së pari le të lidhim BME280, sepse ka disa ndryshime në këtë model. Siç mund ta shihni nga fotografitë, imja ka një vrimë të madhe, por ka edhe disa me 2 vrima. Mund të shihni që ka 4 In dhe Outputs, 1 për energji, një për tokë dhe një SCL dhe SDA. Kjo do të thotë se komunikon përmes I2C. Unë besoj se modelet e tjera komunikojnë përmes SPI. Dhe në disa ju mund të zgjidhni ose SPI ose I2C. SPI mund të kërkojë një Bibliotekë të ndryshme ose të paktën kod të ndryshëm dhe instalime elektrike të ndryshme. Unë gjithashtu besoj se S në SPI qëndron për Serial dhe nuk mund të them nëse kjo do të ndërhyjë në pjesën Midi të këtij projekti pasi po funksionon edhe përmes lidhjes Seriale.

Lidhja e këtij BME është shumë e drejtë përpara. Në ESP8266 ju mund të shihni pin 4 dhe 5 të etiketuar respektivisht SDA dhe SCL. Thjesht lidhni ato kunjat drejtpërdrejt me kunjin SDA dhe SCL në BME. Sigurisht gjithashtu lidhni VIN me Hekurudhën Pozitive të Breadboard dhe GND me Hekurudhën Negative. Ato lidhen nga ana tjetër me kunjin 3V3 dhe GND të ESP.

Tjetra ne do të lidhim LDR. Në shembullin Fritzing ju mund të shihni 3.3 volt që kalojnë përmes një rezistori, pastaj ndahet në LDR dhe një rezistencë tjetër. Pastaj pas LDR ajo ndahet përsëri në një rezistencë dhe në ADC.

Kjo është për të mbrojtur ESP nga marrja e tensioneve shumë të larta dhe për t'u siguruar që po merr vlera të lexueshme. ADC mund të trajtojë 0-1 volt, por 3V3 jep 3.3 volt. Ndoshta nuk do të shpërthejë asgjë nëse kaloni mbi 1 volt, por nuk do të funksionojë mirë.

Pra, së pari ne përdorim një ndarës të tensionit duke përdorur rezistorë 220 dhe 100 ohm për të ulur tensionin nga 3.3 në 1.031 volt. Pastaj LDR 25k Ohm dhe rezistenca 1k Oh formojnë një Tregues të Tensionit që ul tensionin nga kudo midis 1.031 dhe 0 volt në varësi të sasisë së dritës që merr LDR.

Pastaj kemi sensorin e shiut. Njëra pjesë thotë FC-37, pjesa tjetër thotë HW-103. Sapo bleva të parën që gjeta në Ebay që tha se mund të përballojë 3.3 dhe 5 volt. (Unë mendoj se të gjithë munden).

Kjo është mjaft e drejtpërdrejtë, ne mund të përdorim një dalje analoge, por thjesht mund ta kthejmë Trimpotin e vogël për ta bërë sensorin të jetë aq i ndjeshëm sa të duam (dhe ne kemi përdorur tashmë një kunj Analog në ESP). Ashtu si me sensorët e tjerë, ne duhet të furnizojmë energji nga hekurudha pozitive dhe ta lidhim atë me hekurudhën tokësore. Ndonjëherë rendi i kunjave ndryshon. Në timen është VCC, Ground, Digital, Analog, por në foton Fritzing është ndryshe. Por nëse thjesht i kushtoni vëmendje, kjo duhet të jetë e lehtë për tu bërë e drejtë.

Dhe së fundi, Midi Jack. Në Breadboard tim nuk mund të ulet në buzë të bukës, pasi kunjat nuk përputhen të gjitha. Nëse kjo ju shqetëson, do të përpiqesha të merrja një dërrasë buke në një dyqan fizik. Ose inspektoni fotografitë shumë mirë.

Siç mund ta shihni nga skema, tensioni pozitiv dhe sinjali Serial kalojnë të dy përmes një rezistence 47 ohm.

Nëse e bëni këtë projekt me një Arduino Uno për shembull sigurohuni që të përdorni rezistorë 220 ohm !! Këto ESP punojnë në logjikën 3.3 V, por shumica e Arduino përdorin 5.0 V kështu që ju duhet të kufizoni më shumë rrymën që kalon përmes kabllit Midi.

Dhe së fundi lidhni kunjin e mesëm me hekurudhën Ground. 2 kunjat e tjerë nga 5 Pin Din nuk përdoren.

Hapi 3: Hapi 3: Kodi

Dhe së fundi kemi kodin!

Në këtë skedar Zip vendos 2 skica. 'LightRainTemp' thjesht teston të gjithë sensorët dhe i kthen vlerat e tyre. (Sigurohuni që të hapni Dritaren e Terminalit!)

Dhe sigurisht që kemi skicën LRTGenerativeMidi (LRT qëndron për Dritë, Shi, Temperaturë).

Brenda mund të gjeni një mori shpjegimesh në komente për atë që po ndodh. Unë nuk do të hyj në mënyrën sesi e kam shkruar të gjithë këtë, do të duheshin orë të tëra. Nëse doni të dini se ku të filloni me diçka të tillë kam disa projekte të tjera në mendje. Një gjenerator i vogël Random Riff me disa butona dhe një Sequencer me një mori karakteristikash që nuk mund t'i gjej në modelet e tjera.

Por ata që do të më duhet të përfundoj së pari të hartoj dhe kodoj. Më tregoni nëse doni të jeni të azhurnuar në lidhje me projektet e tjera. Unë nuk kam vendosur nëse do të bëj më shumë udhëzime ose do të bëj një seri video.

Hapi 4: Hapi 4: Lidheni dhe Provojeni

Dhe tani është koha për ta provuar atë!

Thjesht lidhni një kabllo Midi, sigurohuni që të vendosni Synth/Keyboard tuaj që t'i përgjigjet kanalit 1 ose ndryshoni kanalin në kodin Arduino dhe shikoni nëse funksionon!

Jam vërtet kurioz të shoh dhe të dëgjoj se çfarë bëni me të. Nëse bëni ndryshime, azhurnime, ndryshime (si në sensorin e Dritës dhe vlerat e Temperaturës. Jashtë mund të funksionojë më mirë ose më keq se brenda) çdo gjë.

Jam gjithashtu kurioz të shoh nëse funksionon mirë me të gjithë sintetizuesit. Në Volca Bass tim punon në mënyrë perfekte, por në Neutron tim LFO ngec sapo dërgoj një Midi Shënim. Fineshtë mirë kur e rindez, por është e çuditshme. Nuk jam i sigurt nëse ka diçka në Bibliotekën Midi ose në kodin tim, mund të përpiqem ta bëj pa Bibliotekë së shpejti dhe të shoh nëse do të bëhet më mirë.

Faleminderit për leximin dhe shikimin dhe fat të mbarë !!

Recommended: