Агуулгын хүснэгт:

Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор): 4 алхам (зурагтай)
Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор): 4 алхам (зурагтай)

Видео: Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор): 4 алхам (зурагтай)

Видео: Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор): 4 алхам (зурагтай)
Видео: The Lemons - Tsag agaar 2024, Долдугаар сарын
Anonim
Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор)
Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор)
Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор)
Цаг агаарын хөгжим үүсгэгч (ESP8266 дээр суурилсан Midi генератор)

Сайн байна уу, өнөөдөр би цаг агаар дээр суурилсан хөгжмийн генераторыг хэрхэн яаж хийхийг тайлбарлах болно.

Энэ нь ESP8266 дээр суурилсан бөгөөд энэ нь Arduino шиг, температур, бороо, гэрлийн эрч хүчэнд хариу үйлдэл үзүүлдэг.

Энэ нь бүхэл бүтэн дуу, хөвч хөгжим хийнэ гэж бүү бодоорой. Хүмүүс заримдаа модуль синтезатор ашиглан хийдэг Generative Music -тэй адил юм. Гэхдээ энэ нь жаахан тодорхой хэмжигдэхүүнтэй нийцдэг.

Хангамж

ESP8266 (Би Adafruit -ийн Feather Huzzah ESP8266 -ийг ашиглаж байна)

BME280 Температур, чийгшил ба барометрийн даралт мэдрэгч (I2C хувилбар)

Arduino борооны мэдрэгч

25K LDR (Хөнгөн хамааралтай эсэргүүцэл)

Зарим эсэргүүцэл (хоёр 47, нэг нь 100, нэг нь 220, нэг нь 1к Ом)

ПХБ -ийг холбоход тохиромжтой эмэгтэй Midi холбогч (5 Pin Din)

Холбогч утас

Breadboard эсвэл ямар нэгэн төрлийн прототип хийх самбар

Компьютер, би Windows 8.1 дээр ажилладаг нэгийг ашиглах болно, гэхдээ энэ нь миний мэдэж байгаагаар ямар ч OS дээр ажиллах ёстой.

Нэмэлт: Adafruit -ийн JST холбогчтой 1250 мАч LiPo зай (зөвхөн зарим ESP -тэй нийцдэг)

Алхам 1: Алхам 1: Програм хангамж

Юуны өмнө танд Arduino IDE хэрэгтэй болно.

Дараа нь танд SiLabs CP2104 драйвер болон ESP8266 самбарын багц хэрэгтэй болно.

Энэ нь таны компьютерт ESP -ийг UART -д суулгаж, Arduino IDE -д ESP програмчлах боломжийг олгодог.

Adafruit вэбсайтаас IDE, Жолооч, Удирдах Зөвлөлийн багцын талаархи бүх мэдээллийг энэ хуудаснаас авах боломжтой.

Midi өгөгдлийг илгээх боломжтой байхын тулд танд Arduino Midi номын сан хэрэгтэй болно. Үүнийг хийхгүйгээр хийж болно, гэхдээ энэ нь бүх зүйлийг ихээхэн хөнгөвчилдөг.

BME280-тай холбогдохын тулд би энэхүү BME280-I2C-ESP32 номын санг ашигласан. (Энэ нь BME280 -ийн I2C хувилбарт зориулагдсан болно)

Энэ номын сан нь эргээд Adafruit Unified Sensor Driver -ийг шаарддаг. Энэ нь өөр номын санг асуудалгүй ашиглахын тулд надад энэ номын сан хэрэгтэй байсан анхны тохиолдол биш тул би үргэлж энэ номын санг хаа нэг газар хавчуургатай байлгадаг.

Алхам 2: Алхам 2: Техник хангамж

Алхам 2: Техник хангамж
Алхам 2: Техник хангамж
Алхам 2: Техник хангамж
Алхам 2: Техник хангамж
Алхам 2: Техник хангамж
Алхам 2: Техник хангамж

Зөв, бид эцэст нь сайн зүйл болох техник хангамж руу ордог.

Дээр дурдсанчлан би энэ Adafruit ESP -ийг ашигласан боловч энэ нь NodeMCU -тай сайн ажиллах ёстой. Би V2 хувилбарыг санал болгож байна, учир нь энэ нь талхны тавцан дээр илүү тохиромжтой бөгөөд та eBay эсвэл AliExpress -аас маш хямд үнээр авах боломжтой. Adafruit ESP нь илүү хурдан процессортой, LiPo -ийн эмэгтэй JST холбогчтой, цэнэгийн хэлхээтэй байдаг нь надад таалагддаг. Мөн ямар Pin ашиглаж байгаагаа олж мэдэх нь арай хялбар байдаг. NodeMCU дээр шошготой D1 нь GPIO5 гэж тооцогддог тул танд Pinout диаграм үргэлж хэрэгтэй байдаг. Энэ нь тийм ч том асуудал биш, гэхдээ шинээр ирсэн хүмүүст тохиромжтой байсан бөгөөд тэд Адафрутын нэрийг маш тодорхой бичсэн байв.

Эхлээд BME280 -ийг холбож үзье, учир нь энэ загварт өөр өөр хувилбарууд байдаг. Зураг дээрээс харахад миний уурхай ганц том нүхтэй боловч 2 нүхтэй цоорхой бас бий. Та 4 оролт, гаралттай, 1 нь тэжээлийн, нэг нь газардуулгатай, SCL ба SDA -тай болохыг харж болно. Энэ нь I2C -ээр дамжуулан харилцдаг гэсэн үг юм. Бусад загварууд SPI -ээр дамжуулан харилцдаг гэдэгт би итгэдэг. Зарим тохиолдолд та SPI эсвэл I2C -ийг сонгож болно. SPI нь өөр номын сан эсвэл дор хаяж өөр код, өөр утас шаардаж магадгүй юм. Би бас SPI дахь S нь Цуврал гэсэн утгатай гэдэгт би итгэдэг бөгөөд энэ нь төслийн Midi хэсэгт саад болох эсэхийг би хэлж чадахгүй, учир нь энэ нь мөн цуваа холболтоор ажилладаг.

Энэхүү BME -ийг холбох нь маш энгийн зүйл юм. ESP8266 дээр та 4 ба 5 -р зүүг SDA ба SCL гэж тэмдэглэсэн болохыг харж болно. Эдгээр тээглүүрийг BME дээрх SDA ба SCL зүү рүү шууд холбоно уу. Мэдээжийн хэрэг, VIN -ийг Breadboard -ийн эерэг төмөр замд, GND -ийг сөрөг төмөр замд холбоно уу. Эдгээр нь ESP -ийн 3V3 ба GND зүүтэй холбогддог.

Дараагийн удаа бид LDR -ийг холбох болно. Fritzing жишээн дээр 3.3 вольт нь резистороор дамжиж, дараа нь LDR болон өөр резистор руу хуваагдаж байгааг харж болно. Дараа нь LDR -ийн дараа дахин эсэргүүцэл ба ADC руу хуваагдана.

Энэ нь ESP -ийг хэт өндөр хүчдэлээс хамгаалах, уншигдахуйц утгыг авах эсэхийг шалгах зорилготой юм. ADC нь 0-1 вольт ажиллах чадвартай боловч 3V3 нь 3.3 вольт өгдөг. Хэрэв та 1 вольтоос дээш гарвал юу ч дэлбэлэхгүй байх, гэхдээ тийм ч сайн ажиллахгүй байна.

Тиймээс эхлээд хүчдэлийг 3.3 -аас 1.031 вольт хүртэл бууруулахын тулд 220 ба 100 ом эсэргүүцэл ашиглан хүчдэл хуваагч ашигладаг. Дараа нь 25k ом LDR ба 1k ом эсэргүүцэл нь өөр хүчдэлийн төхөөрөмж үүсгэдэг бөгөөд LDR -ийн авах гэрлийн хэмжээнээс хамааран хүчдэлийг 1.031 -ээс 0 вольтын хооронд хаана ч хамаагүй бууруулдаг.

Дараа нь бидэнд борооны мэдрэгч байна. Нэг хэсэгт FC-37, нөгөө хэсэгт HW-103 гэж бичсэн байгаа. Би дөнгөж сая Ebay дээрээс олсон бөгөөд 3.3, 5 вольт ажиллах чадвартай гэж хэлсэн. (Тэд бүгд чадна гэж бодож байна).

Энэ нь маш энгийн, бид аналог гаралтыг ашиглаж болох боловч мэдрэгчийг хүссэн хэмжээгээр мэдрэмтгий болгохын тулд бид жижиг Trimpot -ийг эргүүлж болно (мөн бид аль хэдийн ESP дээр нэг аналог зүүгээ ашигласан). Бусад мэдрэгчийн нэгэн адил бид эерэг төмөр замаас хүч өгч, газрын төмөр замд холбох ёстой. Заримдаа тээглүүрийн дараалал өөр өөр байдаг. Миний хувьд энэ нь VCC, Ground, Digital, Analog, гэхдээ Fritzing зураг дээр өөр байна. Гэхдээ хэрэв та зүгээр л анхаарлаа хандуулбал үүнийг амархан олох болно.

Эцэст нь Миди Жак. Миний Breadboard дээр энэ нь талхны ирмэг дээр сууж чадахгүй, учир нь тээглүүрүүд бүгд хоорондоо нийцдэггүй. Хэрэв энэ нь танд төвөг учруулж байвал би дэлгүүрт талх авахыг хичээх болно. Эсвэл зургийг маш сайн шалгаж үзээрэй.

Схемээс харахад эерэг хүчдэл ба Цуваа дохио хоёулаа 47 ом эсэргүүцэлтэй байдаг.

Жишээлбэл, хэрэв та энэ төслийг Arduino Uno ашиглан хийвэл 220 ом эсэргүүцэл ашиглахаа мартуузай. Эдгээр ESP нь 3.3 В логик дээр ажилладаг боловч ихэнх Arduino 5.0 V ашигладаг тул та Midi кабелиар дамжих гүйдлийг хязгаарлах хэрэгтэй болно.

Эцэст нь дунд зүүг газардуулгатай холбоно уу. 5 Pin Din -ийн бусад 2 тээглүүрийг ашиглаагүй болно.

Алхам 3: Алхам 3: Код

Эцэст нь бидэнд код байна!

Энэ Zip файлд би 2 ноорог оруулсан. 'LightRainTemp' зүгээр л бүх мэдрэгчийг туршиж үзээд утгыг нь буцааж илгээдэг. (Терминал цонхыг нээхээ мартуузай!)

Мэдээжийн хэрэг бидэнд LRTGenerativeMidi (LRT гэдэг нь гэрэл, бороо, температур гэсэн утгатай) ноорог байдаг.

Дотор нь юу болж байгааг тайлбар дээрээс олон тайлбарыг олж болно. Би бүх зүйлийг хэрхэн яаж бичсэнээ оруулахгүй, үүнд хэдэн цаг шаардагдах болно. Хэрэв та ийм зүйлийг хаанаас эхлэхээ мэдэхийг хүсч байвал өөр төслүүдийг санаж байна. Жижиг Random Riff генератор цөөн хэдэн товчлууртай бөгөөд бусад загваруудаас олж чадахгүй олон тооны онцлог шинж чанартай Sequencer.

Гэхдээ би эхлээд дизайн хийж, код бичиж дуусгах ёстой. Хэрэв та бусад төслүүдийн талаар мэдээлэлтэй байхыг хүсч байвал надад мэдэгдээрэй. Илүү их зааварчилгаа өгөх үү эсвэл видео цуврал хийх үү гэдгээ шийдээгүй байна.

Алхам 4: Алхам 4: Залгаад туршиж үзээрэй

Тэгээд одоо үүнийг туршиж үзэх цаг боллоо!

Зүгээр л Midi кабелийг холбоод Synth/Keyboard -ийг 1 -р сувагт хариу өгөх эсвэл Arduino код дахь сувгийг сольж тохируулах эсэхийг шалгаарай!

Та үүнийг юу хийж байгааг харах, сонсох үнэхээр сонирхолтой байна. Хэрэв та өөрчлөлт, шинэчлэлт, тохируулга хийвэл (Гэрлийн мэдрэгч ба Температурын утга гэх мэт. Гадна тал нь доторхоосоо илүү сайн эсвэл муу ажиллаж магадгүй).

Энэ нь бүх синтезатортой сайн ажилладаг эсэхийг би бас сонирхож байна. Миний Volca Bass дээр энэ нь төгс ажилладаг, гэхдээ миний нейтрон дээр LFO нь Midi Note илгээсэн даруйд гацдаг. Би үүнийг дахин ачаалахад зүгээр, гэхдээ энэ нь хачин юм. Midi номын сан эсвэл миний кодонд ямар нэгэн зүйл байгаа эсэхийг би сайн мэдэхгүй байна, удахгүй үүнийг номын сангүйгээр хийхийг оролдож, илүү сайжирч байгаа эсэхийг олж мэдээрэй.

Уншиж, үзсэнд баярлалаа, амжилт хүсье !!

Зөвлөмж болгож буй: