Isi kandungan:

Piano Pemain Synesthesia: 4 Langkah
Piano Pemain Synesthesia: 4 Langkah

Video: Piano Pemain Synesthesia: 4 Langkah

Video: Piano Pemain Synesthesia: 4 Langkah
Video: FILDABEAT AUDISI GURU PIANO?!🤯 2024, Julai
Anonim
Image
Image
Piano Pemain Synesthesia
Piano Pemain Synesthesia
Piano Pemain Synesthesia
Piano Pemain Synesthesia

Piano pemain ini memainkan muzik menggunakan roda warna dan kamera! Gambar dirakam oleh kamera, diproses, dan ditafsirkan sebagai nota muzik. Sekarang ini diprogramkan untuk memainkan sajak anak-anak yang dapat diubah dengan memuat naik sketsa arduino baru yang menentukan nota mana yang harus dimainkan (Warna mana yang harus ditunjukkan ke kamera).

PC Linux onboard memulakan perkhidmatan pada boot yang mengambil gambar dengan kamera, menghitung fungsi nilai RGB dalam gambar, dan mengeluarkan suara berdasarkan nilai kembali fungsi. Sebelum memainkan suaranya, ia akan mengirimkan isyarat yang memberitahu Arduino untuk memutar servo, menunjukkan warna yang sesuai dengan nota seterusnya yang akan dimainkan. Kemudian gelung dimulakan semula, gambar diambil, roda warna diputar, dan bunyi dimainkan secara infinitum.

Projek ini adalah cara yang menyeronokkan untuk mengintegrasikan muzik, pengaturcaraan sistem Linux moden, pengaturcaraan mikro-pengawal, coretan inkscape, pemotongan laser, dan penentuan semula beberapa kotak kadbod sampah.

Semua kod dan SVG inkscape boleh didapati di github di:

github.com/melvyniandrag/pyMusik

Bahan yang Digunakan:

  1. Label putih kosong
  2. Kotak kadbod
  3. Kamera Web
  4. Krayon
  5. Arduino
  6. Beagleboard-xM
  7. Wayar
  8. Kabel Bersiri
  9. Pengetahuan asas mengenai pemprosesan gambar dan muzik

Langkah 1: Bahan Komputer

Bahan Komputer
Bahan Komputer
Bahan Komputer
Bahan Komputer
Bahan Komputer
Bahan Komputer

Dalam perjalanan anda memerlukan komputer berkemampuan Linux kecil seperti Raspberry Pi. Saya menggunakan BeagleBoard-xM lama kerana saya kebetulan meletakkannya dan saya sudah mempunyai sistem operasi pada kad SD. Anda boleh menggunakan apa sahaja, asalkan dapat mengendalikan kamera web, dapat menjalankan OpenCV (perpustakaan penglihatan komputer yang digunakan untuk mengambil dan memproses gambar roda warna), dan mempunyai soket keluar audio.

Saya menyediakan sistem operasi untuk menjalankan kod python yang menangkap gambar semasa boot mengikuti tutorial systemd. Untuk menjalankan skrip, anda perlu sudo apt-get install python-pyaudio python-opencv untuk mendapatkan perpustakaan yang ditunjukkan. Anda juga perlu memasang pyserial numpy untuk mendapatkan perpustakaan tersebut. pyaudio digunakan untuk memainkan suara, opencv digunakan untuk pengambilan gambar dan pemrosesan, numpy juga digunakan untuk pemprosesan gambar, dan pyserial diperlukan untuk berkomunikasi dengan Arduino.

Arduino digunakan untuk memutar motor servo di mana roda warna dipasang. Sekiranya anda mempunyai Raspberry Pi, anda boleh menggunakan pin GPIO di sana dan meninggalkan Arduino, tetapi anda perlu mengubah kod Python.

Dalam gambar anda dapat melihat keberanian teknologi operasi dan beberapa coretan kod.

Langkah 2: Piano

Piano
Piano
Piano
Piano
Piano
Piano

Saya mengeluarkan piano dari kadbod dari beberapa kotak lama yang saya ada. Saya mempunyai nasib baik untuk tinggal di dekat ruang pembuat yang mempunyai pemotong laser. Selama setahun saya tertanya-tanya apa yang diinginkan oleh pemotong laser, dan akhirnya saya dapat menggunakannya.

Saya mengukur komputer, arduino, dan servo sehingga saya tahu berapa banyak ruang yang saya perlukan, menarik bahagian piano di inkscape, dan memotongnya di pemotong laser. (Sunting: Saya kehabisan kadbod untuk membuat kandang memegang komputer dan arduino dan jadi saya tidak memasukkannya. Mereka berada di luar casing. Tidak mengapa, mungkin ada kotak lain dari suatu tempat, tetapi tidak Tidak penting pada akhirnya.)

Kepingan itu disatukan dengan epoksi.

Langkah 3: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan

Berikut adalah beberapa gambar piano yang dipasang dan diwarnai. Pencetak kehabisan dakwat jadi saya tidak dapat mencetak warna pada label putih seperti yang saya rancangkan. Oleh itu, saya menggunakan krayon anak perempuan saya. Dan saya tidak dapat mencari pisau xacto untuk memotong label pada bentuk kadbod, jadi saya hanya menggunakan pisau stik dan meletakkan sesuatu pelindung di kaunter dapur. Gunakan apa yang anda dapat!

Langkah 4: Cabaran Teknikal dan Pertimbangan Masa Depan

Cabaran Teknikal dan Pertimbangan Masa Depan
Cabaran Teknikal dan Pertimbangan Masa Depan
Cabaran Teknikal dan Pertimbangan Masa Depan
Cabaran Teknikal dan Pertimbangan Masa Depan

Bahagian yang mencabar dari projek ini adalah mendapatkan nilai RGB yang sesuai untuk dibaca oleh kamera. Kamera web yang saya miliki mempunyai beberapa LED yang sangat terang dan saya tidak tahu cara mematikannya di Linux. Saya rasa ada pemacu Windows yang membolehkan anda menghidupkan dan mematikannya. Saya bereksperimen dengan mengetuk LED dengan pita elektrik dan membiarkannya menyala. Saya juga menguji ketahanan perisian dengan bukan hanya menunjukkan kertas berwarna, tetapi juga menulis sedikit laman web yang menunjukkan warna.

Bunyi yang dihasilkan oleh komputer kadang-kadang muncul dan berderak di dalamnya, dan ini berasal dari kenyataan bahawa saya mempunyai sedikit pengalaman dalam pengaturcaraan audio Linux. Perpustakaan pyaudio memancarkan banyak aduan mengenai JACK tidak dipasang di PC, tetapi secara lalai JACK tidak mahu berjalan tanpa kepala (tanpa desktop dan monitor gui). Ini adalah tugas pengaturcaraan yang saya fikir adalah penyempurnaan, tetapi tidak perlu untuk menyatakan inti pati pemain piano yang saya fikirkan.

Saya telah mempertimbangkan untuk menggunakan engkol tangan untuk mengubah warnanya, dan mungkin memilikinya pada jenis alat penggulung, tetapi itu menimbulkan komplikasinya sendiri. Servo agak bising, tetapi berfungsi dengan baik buat masa ini.

Piano pemain pada masa ini hanya diprogramkan untuk memainkan 4 nota. Ini kerana servo hanya bergerak 180 darjah, kebanyakan sajak kanak-kanak dapat dimainkan dengan hanya 3-4 nota, dan saya tidak mahu roda warna berantakan dengan kawasan warna, mungkin membingungkan kamera. Oleh itu, melalui gabungan keberuntungan muzik dan kekangan teknikal, 4 nota baik-baik saja.

Disyorkan: