Isi kandungan:

Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266): 4 Langkah (dengan Gambar)
Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266): 4 Langkah (dengan Gambar)

Video: Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266): 4 Langkah (dengan Gambar)

Video: Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266): 4 Langkah (dengan Gambar)
Video: 便携式户外储能 又是一个千亿量级的赛道 2024, November
Anonim
Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266)
Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266)
Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266)
Penjana Muzik Berasaskan Cuaca (Generator Midi Berasaskan ESP8266)

Hai, hari ini saya akan menerangkan cara membuat penjana Muzik berasaskan Cuaca anda sendiri.

Ini berdasarkan ESP8266, yang seperti Arduino, dan ia bertindak balas terhadap suhu, hujan dan intensiti cahaya.

Jangan berharap untuk membuat keseluruhan lagu atau progres kord. Ia lebih mirip seperti Generasi Muzik yang kadang-kadang dibuat oleh Synthesizer Modular. Tetapi agak kurang rawak, misalnya, ia tetap berpegang pada Timbangan tertentu.

Bekalan

ESP8266 (Saya menggunakan Feather Huzzah ESP8266 dari Adafruit)

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

Sensor Hujan Arduino

25K LDR (Perintang Bergantung Cahaya)

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

Penyambung Midi Perempuan (5 Pin Din) sesuai untuk pemasangan PCB

Wayar Pelompat

Papan roti atau sejenis papan Prototaip

Komputer, saya akan menggunakan satu yang menjalankan Windows 8.1, tetapi ia harus berfungsi pada mana-mana OS sejauh yang saya tahu.

Pilihan: Baterai LiPo 1250 mAh dengan penyambung JST dari Adafruit (hanya serasi dengan beberapa ESP)

Langkah 1: Langkah 1: Perisian

Pertama sekali anda memerlukan Arduino IDE.

Maka anda memerlukan pemacu SiLabs CP2104 dan Pakej Papan ESP8266.

Ini membolehkan komputer anda memprogram ESP melalui UART bawaan dan membolehkan Arduino IDE memprogramkan ESP.

Anda boleh mendapatkan semua maklumat mengenai Pakej IDE, Driver dan Board di halaman ini di laman web Adafruit.

Anda juga memerlukan Perpustakaan Arduino Midi untuk dapat menghantar data Midi. Ia boleh dilakukan tanpa, tetapi ini menjadikan semuanya lebih mudah.

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

Perpustakaan itu seterusnya memerlukan Adafruit Unified Sensor Driver. Ini bukan kali pertama saya memerlukan perpustakaan ini untuk menggunakan perpustakaan yang berbeza tanpa masalah, jadi saya selalu menjadikan Perpustakaan ini ditanda buku di suatu tempat.

Langkah 2: Langkah 2: Perkakasan

Langkah 2: Perkakasan
Langkah 2: Perkakasan
Langkah 2: Perkakasan
Langkah 2: Perkakasan
Langkah 2: Perkakasan
Langkah 2: Perkakasan

Baiklah, akhirnya kami sampai pada barangan yang baik, perkakasan.

Seperti yang saya nyatakan, saya menggunakan Adafruit ESP ini, tetapi semestinya berfungsi dengan baik dengan NodeMCU. Saya mengesyorkan versi V2 kerana saya percaya ia lebih sesuai pada papan roti dan anda boleh mendapatkannya sangat murah dari eBay atau AliExpress. Saya suka kenyataan bahawa Adafruit ESP mempunyai CPU yang lebih pantas, dilengkapi dengan penyambung JST wanita untuk LiPo dan litar pengecasan. Juga lebih mudah untuk mengetahui Pin apa yang anda gunakan. Saya percaya pada NodeMCU pin Labeled D1 sebenarnya GPIO5 misalnya, jadi anda selalu memerlukan carta Pinout yang berguna. Bukan masalah besar sama sekali, tetapi hanya senang bagi pemula mereka melabel Adafruit dengan begitu jelas.

Pertama, mari sambungkan BME280, kerana terdapat beberapa variasi dalam model ini. Seperti yang anda lihat dari gambar saya mempunyai satu lubang besar, tetapi ada juga yang mempunyai 2 lubang. Anda dapat melihatnya mempunyai 4 In dan Output, 1 untuk kuasa, satu untuk ground dan SCL dan SDA. Ini bermaksud ia berkomunikasi melalui I2C. Saya percaya model lain berkomunikasi melalui SPI. Dan di beberapa anda boleh memilih SPI atau I2C. SPI mungkin memerlukan Perpustakaan yang berbeza atau sekurang-kurangnya kod yang berbeza dan pendawaian yang berbeza. Saya juga percaya S di SPI bermaksud Serial dan saya tidak dapat mengatakan apakah ini akan mengganggu bahagian Midi projek ini kerana ia juga berfungsi melalui sambungan Serial.

Menghubungkan BME ini agak lurus ke hadapan. Pada ESP8266 anda dapat melihat pin 4 dan 5 masing-masing dilabel SDA dan SCL. Sambungkan pin tersebut terus ke pin SDA dan SCL di BME. Sudah tentu juga menghubungkan VIN ke Rel Positif Breadboard dan GND ke Rel Negatif. Mereka seterusnya disambungkan ke pin 3V3 dan GND ESP.

Seterusnya kita akan menyambungkan LDR. Dalam contoh Fritzing, anda dapat melihat 3.3 volt melalui perintang, kemudian terpecah ke LDR dan perintang lain. Kemudian selepas LDR ia berpecah lagi menjadi perintang dan ADC.

Ini untuk melindungi ESP daripada mendapat voltan yang terlalu tinggi dan memastikannya mendapat nilai yang boleh dibaca. ADC dapat mengendalikan 0-1 Volt tetapi 3V3 memberikan 3.3 volt. Mungkin tidak akan meletupkan apa-apa jika anda melebihi 1 volt, tetapi ia tidak akan berfungsi dengan baik.

Oleh itu, pertama kita menggunakan Voltage Divider menggunakan perintang 220 dan 100 ohm untuk menurunkan voltan dari 3.3 hingga 1.031 volt. Kemudian LDR 25k ohm dan perintang 1k ohm membentuk Voltage Devider lain yang menurunkan voltan dari mana sahaja antara 1.031 dan 0 volt bergantung pada jumlah cahaya yang LDR dapat.

Kemudian kita mempunyai Sensor Hujan. Satu bahagian mengatakan FC-37, yang lain mengatakan HW-103. Saya baru sahaja membeli yang pertama yang saya dapati di Ebay yang mengatakan ia mampu mengatasi 3.3 dan 5 volt. (Saya rasa mereka semua boleh).

Ini cukup lurus ke depan, kita boleh menggunakan output Analog, tetapi kita hanya boleh mengubah Trimpot kecil untuk menjadikan sensor sensitif seperti yang kita mahukan (dan kita sudah menggunakan satu pin Analog kita pada ESP). Seperti sensor lain, kita harus membekalkan Daya dari Rel Positif dan menghubungkannya ke landasan Rel. Kadang kala urutan pin berbeza. Pada saya, VCC, Ground, Digital, Analog, tetapi pada gambar Fritzing berbeza. Tetapi jika anda hanya memperhatikan perkara ini semestinya mudah dilakukan.

Dan akhirnya, Jack Midi. Di Papan Roti saya, ia tidak boleh duduk di tepi papan roti, kerana pin tidak semuanya sejajar. Sekiranya ini mengganggu anda, saya akan cuba mendapatkan papan roti di kedai fizikal. Atau periksa gambar dengan baik.

Seperti yang anda lihat dari skema, voltan positif dan isyarat Serial melalui perintang 47 ohm.

Sekiranya anda melakukan projek ini dengan Arduino Uno misalnya, pastikan menggunakan perintang 220 ohm !! Ini berfungsi dengan logik 3.3 V, tetapi kebanyakan penggunaan Arduino 5.0 V, jadi anda harus menghadkan arus yang lebih banyak melalui kabel Midi.

Dan akhirnya sambungkan pin tengah ke landasan rel. 2 pin lain dari 5 Pin Din tidak digunakan.

Langkah 3: Langkah 3: Kod

Dan akhirnya kita mempunyai kod!

Dalam fail Zip ini saya meletakkan 2 lakaran. 'LightRainTemp' hanya menguji semua sensor dan menghantar kembali nilainya. (Pastikan untuk membuka Window Terminal!)

Dan tentu saja kita mempunyai lakaran LRTGenerativeMidi (LRT bermaksud Cahaya, Hujan, Suhu).

Di dalamnya anda boleh mendapatkan banyak penjelasan dalam komen mengenai apa yang berlaku. Saya tidak akan menerangkan bagaimana saya menulis keseluruhannya, yang akan memakan masa berjam-jam. Sekiranya anda ingin mengetahui di mana untuk memulakan dengan perkara seperti ini, saya mempunyai beberapa projek lain dalam fikiran. Penjana Random Riff kecil dengan beberapa butang dan Sequencer dengan sekumpulan ciri yang tidak dapat saya temui pada model lain.

Tetapi saya mesti menyelesaikan reka bentuk dan pengekodan terlebih dahulu. Beritahu saya jika anda ingin mengetahui mengenai projek lain. Saya belum memutuskan sama ada saya akan membuat lebih banyak arahan atau membuat siri video.

Langkah 4: Langkah 4: Sambungkannya dan Uji

Dan sekarang masanya untuk mengujinya!

Cukup sambungkan kabel Midi, pastikan untuk mengatur Synth / Keyboard anda untuk bertindak balas pada saluran 1 atau menukar saluran dalam kod Arduino dan melihat apakah ia berfungsi!

Saya sangat ingin melihat dan mendengar apa yang anda lakukan dengannya. Sekiranya anda membuat perubahan, peningkatan, penyesuaian (seperti nilai cahaya dan suhu Suhu. Di luar mungkin berfungsi lebih baik atau lebih buruk daripada di dalam) apa sahaja.

Saya juga ingin tahu sama ada ia berfungsi dengan baik dengan semua Synthesizer. Pada Volca Bass saya berfungsi dengan sempurna, tetapi pada Neutron saya LFO tersekat sebaik sahaja saya menghantar Midi Note. Tidak apa-apa ketika saya menghidupkannya semula, tetapi ia pelik. Saya tidak pasti sama ada terdapat sesuatu di Perpustakaan Midi atau dalam kod saya, saya mungkin akan segera melakukannya tanpa Perpustakaan dan melihat apakah ia bertambah baik.

Terima kasih kerana membaca dan menonton dan semoga berjaya !!

Disyorkan: