Daftar Isi:

Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)

Video: Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)

Video: Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Video: GAWAT! 5 APP A.I INI BISA BIKIN MUSIK??? AUTO PENSIUN! | EGP Music & Tech News 2024, Juni
Anonim
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266)
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266)
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266)
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266)

Hai, hari ini saya akan menjelaskan cara membuat generator Musik berbasis Cuaca kecil Anda sendiri.

Ini didasarkan pada ESP8266, yang seperti Arduino, dan merespons suhu, hujan, dan intensitas cahaya.

Jangan berharap untuk membuat seluruh lagu atau progresi akord. Ini lebih seperti Musik Generatif yang terkadang dibuat orang dengan Modular Synthesizer. Tapi itu sedikit kurang acak dari itu, itu menempel pada Timbangan tertentu misalnya.

Perlengkapan

ESP8266 (Saya menggunakan Feather Huzzah ESP8266 dari Adafruit)

BME280 Sensor Suhu, Kelembaban dan Tekanan Barometrik (Versi I2C)

Sensor Hujan Arduino

25K LDR (Resistor Bergantung Cahaya)

Beberapa Resistor (dua 47, satu 100, satu 220 dan satu 1k Ohm)

Konektor Midi Wanita (5 Pin Din) cocok untuk pemasangan PCB

Kabel Jumper

Papan tempat memotong roti atau semacam papan Prototyping

Komputer, saya akan menggunakan yang menjalankan Windows 8.1, tetapi harus bekerja pada OS apa pun sejauh yang saya tahu.

Opsional: Baterai LiPo 1250 mAh dengan konektor JST dari Adafruit (hanya kompatibel dengan beberapa ESP)

Langkah 1: Langkah 1: Perangkat Lunak

Pertama-tama Anda membutuhkan Arduino IDE.

Maka Anda memerlukan driver SiLabs CP2104 dan Paket Board ESP8266.

Ini memungkinkan komputer Anda untuk memprogram ESP melalui UART bawaan dan memungkinkan Arduino IDE untuk memprogram ESP.

Anda dapat menemukan semua informasi tentang IDE, Driver dan Board Package di halaman ini di website Adafruit.

Anda juga memerlukan Perpustakaan Arduino Midi untuk dapat mengirim data Midi. Itu bisa dilakukan tanpa, tetapi ini membuat segalanya jauh lebih mudah.

Untuk berkomunikasi dengan BME280 saya menggunakan perpustakaan BME280-I2C-ESP32 ini. (Ini untuk versi I2C dari BME280)

Dan perpustakaan itu pada gilirannya membutuhkan Adafruit Unified Sensor Driver. Ini bukan pertama kalinya saya membutuhkan perpustakaan ini untuk menggunakan perpustakaan yang berbeda tanpa masalah, jadi saya selalu mem-bookmark Perpustakaan ini di suatu tempat.

Langkah 2: Langkah 2: Perangkat Keras

Langkah 2: Perangkat Keras
Langkah 2: Perangkat Keras
Langkah 2: Perangkat Keras
Langkah 2: Perangkat Keras
Langkah 2: Perangkat Keras
Langkah 2: Perangkat Keras

Baiklah, jadi akhirnya kita sampai pada hal-hal bagus, perangkat kerasnya.

Seperti yang disebutkan, saya menggunakan Adafruit ESP ini, tetapi seharusnya berfungsi dengan baik dengan NodeMCU. Saya merekomendasikan versi V2 karena saya percaya itu jauh lebih cocok di papan tempat memotong roti dan Anda bisa mendapatkannya dengan sangat murah dari eBay atau AliExpress. Saya suka fakta bahwa Adafruit ESP memiliki CPU yang lebih cepat, dilengkapi dengan konektor JST perempuan untuk LiPo dan sirkuit pengisian daya. Ini juga sedikit lebih mudah untuk mengetahui Pin apa yang Anda gunakan. Saya percaya pada NodeMCU pin Berlabel D1 sebenarnya adalah GPIO5 misalnya, jadi Anda selalu membutuhkan bagan Pinout. Bukan masalah besar sama sekali, tetapi hanya nyaman bagi pemula yang mereka beri label Adafruit dengan sangat jelas.

Pertama mari kita sambungkan BME280, karena ada beberapa variasi dalam model ini. Seperti yang Anda lihat dari gambar tambang memiliki satu lubang besar, tetapi ada juga beberapa dengan 2 lubang. Anda dapat melihatnya memiliki 4 In dan Output, 1 untuk daya, satu untuk ground dan SCL dan SDA. Ini berarti berkomunikasi melalui I2C. Saya percaya model lain berkomunikasi melalui SPI. Dan di beberapa Anda dapat memilih SPI atau I2C. SPI mungkin memerlukan Perpustakaan yang berbeda atau setidaknya kode yang berbeda dan kabel yang berbeda. Saya juga percaya bahwa S dalam SPI adalah singkatan dari Serial dan saya tidak dapat mengatakan apakah ini akan mengganggu bagian Midi dari proyek ini karena itu juga bekerja melalui koneksi Serial.

Menghubungkan BME ini cukup mudah. Pada ESP8266 Anda dapat melihat pin 4 dan 5 masing-masing diberi label SDA dan SCL. Cukup sambungkan pin tersebut langsung ke pin SDA dan SCL pada BME. Tentu saja juga hubungkan VIN ke Rel Positif dari Breadboard dan GND ke Rel Negatif. Mereka pada gilirannya terhubung ke pin 3V3 dan GND dari ESP.

Selanjutnya kita sambung LDR. Dalam contoh Fritzing Anda dapat melihat 3,3 volt melewati resistor, kemudian dibagi ke LDR dan resistor lain. Kemudian setelah LDR dipecah lagi ke resistor dan ke ADC.

Ini untuk melindungi ESP agar tidak mendapatkan tegangan yang terlalu tinggi dan memastikannya mendapatkan nilai yang dapat dibaca. ADC dapat menangani 0-1 Volt tetapi 3V3 menghasilkan 3,3 volt. Mungkin tidak akan meledakkan apa pun jika Anda melebihi 1 volt, tetapi itu tidak akan berfungsi dengan baik.

Jadi pertama-tama kita menggunakan Pembagi Tegangan menggunakan resistor 220 dan 100 ohm untuk menurunkan tegangan dari 3,3 menjadi 1,031 volt. Kemudian LDR 25k ohm dan resistor 1k ohm membentuk Pembagi Tegangan lain yang menurunkan tegangan dari mana saja antara 1,031 dan 0 volt tergantung pada jumlah cahaya yang didapat LDR.

Kemudian kita memiliki Sensor Hujan. Satu bagian bertuliskan FC-37, bagian lainnya bertuliskan HW-103. Saya baru saja membeli yang pertama saya temukan di Ebay yang mengatakan dapat menangani 3,3 dan 5 volt. (Saya pikir mereka semua bisa).

Ini cukup mudah, kita bisa menggunakan output Analog, tapi kita bisa memutar Trimpot kecil untuk membuat sensor menjadi sensitif seperti yang kita inginkan (dan kita sudah menggunakan satu pin Analog kita di ESP). Seperti halnya sensor lainnya, kita harus mensuplai Daya dari Rel Positif dan menghubungkannya ke Rel Tanah. Terkadang urutan pin bervariasi. Di saya itu VCC, Ground, Digital, Analog, tetapi pada gambar Fritzing itu berbeda. Tetapi jika Anda hanya memperhatikan, ini seharusnya mudah dilakukan.

Dan akhirnya, Midi Jack. Di Breadboard saya, itu tidak bisa diletakkan di tepi papan tempat memotong roti, karena pinnya tidak semuanya sejajar. Jika ini mengganggu Anda, saya akan mencoba mendapatkan papan tempat memotong roti di toko fisik. Atau periksa gambar dengan sangat baik.

Seperti yang Anda lihat dari skema, tegangan positif dan sinyal Serial keduanya melewati resistor 47 ohm.

Jika Anda melakukan proyek ini dengan Arduino Uno misalnya, pastikan untuk menggunakan resistor 220 ohm!! ESP ini bekerja pada logika 3,3 V, tetapi kebanyakan Arduino menggunakan 5,0 V sehingga Anda harus membatasi arus yang melewati kabel Midi lebih banyak.

Dan terakhir sambungkan pin tengah ke rel Ground. 2 pin lainnya dari 5 Pin Din tidak digunakan.

Langkah 3: Langkah 3: Kode

Dan akhirnya kita punya kodenya!

Dalam file Zip ini saya menempatkan 2 sketsa. 'LightRainTemp' cukup menguji semua sensor dan mengirim kembali nilainya. (Pastikan untuk membuka Jendela Terminal!)

Dan tentu saja kami memiliki sketsa LRTGenerativeMidi (LRT singkatan dari Light, Rain, Temperature).

Di dalam Anda dapat menemukan banyak penjelasan dalam komentar tentang apa yang terjadi. Saya tidak akan membahas bagaimana saya menulis semuanya, itu akan memakan waktu berjam-jam. Jika Anda ingin tahu di mana untuk memulai dengan sesuatu seperti ini, saya memiliki beberapa proyek lain dalam pikiran. Generator Random Riff kecil dengan beberapa tombol dan Sequencer dengan banyak fitur yang tidak dapat saya temukan di model lain.

Tapi itu saya harus menyelesaikan desain dan pengkodean terlebih dahulu. Beri tahu saya jika Anda ingin mendapatkan informasi terbaru tentang proyek lain. Saya belum memutuskan apakah saya akan membuat lebih banyak instruksi atau membuat seri video.

Langkah 4: Langkah 4: Kaitkan dan Uji

Dan sekarang saatnya untuk mengujinya!

Cukup sambungkan kabel Midi, pastikan untuk mengatur Synth/Keyboard Anda untuk merespons saluran 1 atau ubah saluran dalam kode Arduino dan lihat apakah itu berfungsi!

Saya sangat penasaran untuk melihat dan mendengar apa yang Anda lakukan dengannya. Jika Anda membuat perubahan, peningkatan, penyesuaian (seperti sensor Cahaya dan nilai Suhu. Di luar itu mungkin bekerja lebih baik atau lebih buruk daripada di dalam) apa pun.

Saya juga ingin tahu apakah itu bekerja dengan baik dengan semua Synthesizer. Pada Volca Bass saya berfungsi dengan baik, tetapi pada Neutron saya, LFO macet segera setelah saya mengirim Midi Note. Tidak apa-apa ketika saya reboot, tapi aneh. Saya tidak yakin apakah ada sesuatu di Perpustakaan Midi atau dalam kode saya, saya mungkin mencoba melakukannya tanpa Perpustakaan segera dan melihat apakah itu menjadi lebih baik.

Terima kasih telah membaca dan menonton dan semoga berhasil!!

Direkomendasikan: