Mundarija:

Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): 4 qadam (rasmlar bilan)
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): 4 qadam (rasmlar bilan)

Video: Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): 4 qadam (rasmlar bilan)

Video: Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): 4 qadam (rasmlar bilan)
Video: ENG BUYUK IXTIRO: YONIGʻI OLIB SUV! Hidrolizni kuchaytirish uchun HH + birikmasi 2024, Iyul
Anonim
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori)
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori)
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori)
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori)

Salom, bugun men qanday qilib ob -havoga asoslangan musiqa generatorini o'zingiz yasashni tushuntiraman.

U ESP8266 ga asoslangan, u xuddi Arduino -ga o'xshaydi va u harorat, yomg'ir va yorug'lik intensivligiga javob beradi.

Bu butun qo'shiqlarni yoki akkordlarning rivojlanishini kutmang. Bu ko'proq "Generative Music" ga o'xshaydi, ba'zida odamlar modulli sintezatorlardan foydalanadilar. Ammo bu tasodifan bir oz kamroq, masalan, u ma'lum tarozilarga yopishadi.

Ta'minotlar

ESP8266 (Men Adafruit -dan Feather Huzzah ESP8266 dan foydalanaman)

BME280 Harorat, namlik va barometrik bosim sensori (I2C versiyasi)

Arduino yomg'ir sensori

25K LDR (nurga bog'liq qarshilik)

Ba'zi rezistorlar (ikkita 47, biri 100, biri 220 va bittasi 1k Ohm)

Ayol Midi ulagichi (5 pinli Din) PCB o'rnatish uchun mos

Jumper simlari

Non paneli yoki biron bir prototip taxtasi

Kompyuter, men Windows 8.1 bilan ishlayman, lekin men bilganimdek, u har qanday operatsion tizimda ishlashi kerak.

Majburiy emas: Adafruit -dan JST ulagichli 1250 mA / soat LiPo batareyasi (faqat ba'zi ESP bilan mos keladi)

1 -qadam: 1 -qadam: dasturiy ta'minot

Birinchidan, sizga Arduino IDE kerak.

Keyin sizga SiLabs CP2104 drayveri va ESP8266 karta to'plami kerak bo'ladi.

Bu sizning kompyuteringizga ESP -ni o'rnatilgan UART orqali dasturlash imkonini beradi va Arduino IDE -ga ESP -ni dasturlash imkonini beradi.

Adafruit veb -saytidagi IDE, Driver va Board to'plami haqidagi barcha ma'lumotlarni ushbu sahifada topishingiz mumkin.

Midi ma'lumotlarini yuborish uchun sizga Arduino Midi kutubxonasi ham kerak bo'ladi. Buni qilmasdan qilish mumkin, lekin bu hamma narsani ancha osonlashtiradi.

BME280 bilan bog'lanish uchun men BME280-I2C-ESP32 kutubxonasidan foydalandim. (Bu BME280 I2C versiyasi uchun)

Va bu kutubxona o'z navbatida Adafruit Unified Sensor Driver -ni talab qiladi. Bu kutubxonani muammosiz boshqa kutubxonadan foydalanishim uchun birinchi marta kerak emas, shuning uchun men har doim bu kutubxonani biror joyda belgilab qo'yganman.

2 -qadam: 2 -qadam: Uskuna

2 -qadam: Uskuna
2 -qadam: Uskuna
2 -qadam: Uskuna
2 -qadam: Uskuna
2 -qadam: Uskuna
2 -qadam: Uskuna

To'g'ri, biz nihoyat yaxshi narsalarga, uskunalarga o'tamiz.

Aytganimdek, men bu Adafruit ESP -dan foydalandim, lekin u NodeMCU bilan yaxshi ishlashi kerak. Men V2 versiyasini tavsiya qilaman, chunki menimcha, u non paneliga juda mos keladi va siz ularni eBay yoki AliExpress -dan juda arzon narxda sotib olishingiz mumkin. Menga Adafruit ESP tezroq protsessorga ega bo'lishi yoqadi, LiPo uchun ayol JST ulagichi va zaryad zanjiri. Qaysi Pinni ishlatayotganingizni aniqlash ham osonroq. Men ishonamanki, NodeMCU -da, etiketli D1 pin, aslida GPIO5, shuning uchun sizga har doim Pinout diagrammasi kerak bo'ladi. Bu unchalik katta muammo emas, lekin yangi boshlanuvchilar uchun qulay bo'lgani uchun, ular Adafruit -ni aniq belgilab qo'yishdi.

Birinchidan, BME280 -ni ulaymiz, chunki bu modelda ba'zi farqlar mavjud. Rasmlardan ko'rinib turibdiki, menda bitta katta teshik bor, lekin 2 teshiklilari ham bor. Siz ko'rishingiz mumkin, u 4 ta kirish va chiqish, 1 ta quvvat uchun, bittasi er uchun va SCL va SDA. Bu shuni anglatadiki, u I2C orqali muloqot qiladi. Menimcha, boshqa modellar SPI orqali muloqot qiladi. Ba'zilarida siz SPI yoki I2C ni tanlashingiz mumkin. SPI boshqa kutubxonani yoki hech bo'lmaganda boshqa kodni va boshqa simlarni talab qilishi mumkin. Menimcha, SPIdagi S seriyali degan ma'noni anglatadi va bu loyihaning Midi qismiga xalaqit beradimi yoki yo'qligini ayta olmayman, chunki u ham ketma -ket ulanish orqali ishlaydi.

Ushbu BME -ni ulash juda oson. ESP8266 -da siz mos ravishda SDA va SCL bilan belgilangan 4 va 5 -pinlarni ko'rishingiz mumkin. Bu pinlarni to'g'ridan -to'g'ri BME -dagi SDA va SCL pinlariga ulang. Albatta, VIN -ni Breadboard -ning ijobiy relsiga va GND -ni manfiy relsga ulang. Ular o'z navbatida ESPning 3V3 va GND pinlariga ulangan.

Keyingi safar biz LDR -ni ulaymiz. Fritzing misolida siz rezistor orqali o'tadigan 3,3 voltni ko'rishingiz mumkin, keyin u LDR va boshqa rezistorga bo'linadi. Keyin LDRdan keyin u yana rezistor va ADC ga bo'linadi.

Bu ESPni juda yuqori kuchlanishdan himoya qilish va o'qiladigan qiymatlarni olishiga ishonch hosil qilish uchun. ADC 0-1 voltni boshqarishi mumkin, lekin 3V3 3.3 voltni etkazib beradi. Ehtimol, agar siz 1 voltdan oshsangiz, u hech narsani portlatmaydi, lekin u yaxshi ishlamaydi.

Shunday qilib, avval biz 220 va 100 ohmli rezistorlar yordamida kuchlanishni taqsimlagichdan foydalanamiz va 3,3 dan 1,031 voltgacha kuchlanishni tushiramiz. Keyin 25k ohmli LDR va 1k ohmli qarshilik boshqa kuchlanish qurilmasini hosil qiladi, ular LDR keladigan yorug'lik miqdoriga qarab har qanday joydan 1,031 dan 0 voltgacha bo'lgan kuchlanishni pasaytiradi.

Keyin bizda yomg'ir sensori bor. Bir qismida FC-37, boshqa qismida HW-103 yozilgan. Men faqat Ebayda topilgan birinchi voltani sotib oldim, u 3,3 va 5 voltsli quvvatga ega ekanligini aytdi. (Menimcha, ularning hammasi mumkin).

Bu juda aniq, biz analog chiqishni ishlatishimiz mumkin edi, lekin biz sensorni xohlaganimizdek sezgir qilish uchun kichik Trimpot -ni burishimiz mumkin (va biz ESP -dagi bitta analog pinimizni ishlatganmiz). Boshqa datchiklar singari, biz ham ijobiy temirdan quvvat olishimiz va uni er osti temir yo'liga ulashimiz kerak. Ba'zida pimlarning tartibi o'zgaradi. Menda bu VCC, Ground, Digital, Analog, lekin Fritzing rasmida boshqacha. Ammo, agar siz diqqat bilan qarasangiz, uni tuzatish oson bo'lishi kerak.

Va nihoyat, Midi Jek. Mening Breadboard -da u non taxtasining chetida o'tira olmaydi, chunki pinlar bir -biriga mos kelmaydi. Agar bu sizni bezovta qilsa, men jismoniy do'konda non sotib olishga harakat qilardim. Yoki rasmlarni yaxshilab tekshirib ko'ring.

Sxemadan ko'rinib turibdiki, musbat kuchlanish ham, ketma -ket signal ham 47 ohmli rezistordan o'tadi.

Agar siz ushbu loyihani Arduino Uno bilan qilsangiz, 220 ohmli rezistorlardan foydalanganingizga ishonch hosil qiling. Bu ESP 3.3 V mantig'ida ishlaydi, lekin ko'pchilik Arduino 5.0 V dan foydalanadi, shuning uchun siz Midi kabeli orqali o'tadigan tokni ko'proq cheklashingiz kerak.

Va nihoyat, o'rta pinni Ground rayiga ulang. 5 pinli Din -dan qolgan 2 ta pin ishlatilmaydi.

3 -qadam: 3 -qadam: Kod

Va nihoyat bizda kod bor!

Ushbu Zip fayliga men 2 ta eskiz qo'ydim. "LightRainTemp" shunchaki barcha sensorlarni sinab ko'radi va ularning qiymatlarini qaytaradi. (Terminal oynasini ochganingizga ishonch hosil qiling!)

Va, albatta, bizda LRTGenerativeMidi (LRT - yorug'lik, yomg'ir, harorat) degan eskiz bor.

Ichkarida nima bo'layotgani haqida izohlarda ko'plab tushuntirishlarni topishingiz mumkin. Men hamma narsani qanday yozganimga bormayman, buning uchun bir necha soat kerak bo'ladi. Agar siz bunday ishni qaerdan boshlashni bilmoqchi bo'lsangiz, menda boshqa loyihalar bor. Bir nechta tugmachali kichik tasodifiy Riff generatori va boshqa modellarda topa olmaydigan xususiyatlarga ega Sequencer.

Lekin men birinchi bo'lib dizayn va kodlashni tugatishim kerak bo'ladi. Boshqa loyihalar haqida xabardor bo'lishni istasangiz, menga xabar bering. Men ko'proq ko'rsatma bera olamanmi yoki video seriyali qilamanmi, qaror qilmadim.

4 -qadam: 4 -qadam: O'rnatib oling va sinab ko'ring

Va endi buni sinab ko'rish vaqti keldi!

Faqat Midi kabelini ulang, Synth/Keyboard -ni 1 -kanalga javob beradigan qilib sozlang yoki Arduino kodidagi kanalni o'zgartiring va u ishlayaptimi -yo'qmi!

Men u bilan nima qilayotganingizni ko'rish va eshitishni juda qiziqtiraman. Agar siz biror narsani o'zgartirsangiz, yangilansangiz, o'zgartirsangiz (yorug'lik sensori va harorat qiymatlari kabi. Tashqarisi ichkaridan yaxshiroq yoki yomonroq ishlashi mumkin).

Bundan tashqari, u barcha sintezatorlar bilan yaxshi ishlashini bilishga qiziqaman. Mening Volca Bass -da u juda yaxshi ishlaydi, lekin men neytronda LFO Midi Note -ni yuborganimdayoq tiqilib qoladi. Qayta ishga tushirsam yaxshi, lekin g'alati. Midi kutubxonasida yoki mening kodimda biror narsa borligiga ishonchim komil emas, men buni tez orada kutubxonasiz bajarishga urinib ko'rsam yaxshi bo'larmidi.

O'qiganingiz va ko'rganingiz uchun tashakkur va omad tilaymiz !!

Tavsiya: