Daftar Isi:

Piano Pemain Sinestesia: 4 Langkah
Piano Pemain Sinestesia: 4 Langkah

Video: Piano Pemain Sinestesia: 4 Langkah

Video: Piano Pemain Sinestesia: 4 Langkah
Video: PIANO PRIMA VISTA | Elementary, Lez. #4 - Modalità e sinestesia 2024, November
Anonim
Image
Image
Pemain Piano Sinestesia
Pemain Piano Sinestesia
Pemain Piano Sinestesia
Pemain Piano Sinestesia

Pemain piano ini memainkan musik menggunakan roda warna dan kamera! Gambar ditangkap oleh kamera, diproses, dan diinterpretasikan sebagai not musik. Saat ini diprogram untuk memainkan lagu anak-anak yang dapat diubah dengan mengunggah sketsa arduino baru yang menentukan not mana yang harus dimainkan (Warna mana yang harus ditampilkan ke kamera).

PC Linux onboard memulai layanan saat boot yang mengambil gambar dengan kamera, menghitung fungsi dari nilai RGB pada gambar, dan mengeluarkan suara berdasarkan nilai kembalian fungsi tersebut. Sebelum memainkan suara, ia mengirimkan sinyal yang memberi tahu Arduino untuk memutar servo, menampilkan warna yang sesuai dengan nada berikutnya yang akan dimainkan. Kemudian loop dimulai lagi, gambar diambil, roda warna diputar, dan suara dimainkan tanpa batas.

Proyek ini adalah cara yang menyenangkan untuk mengintegrasikan musik, pemrograman sistem Linux modern, pemrograman mikrokontroler, corat-coret inkscape, pemotongan laser, dan mendesain ulang beberapa kotak kardus sampah.

Semua kode dan SVG inkscape tersedia di github di:

github.com/melvyniandrag/pyMusic

Bahan-bahan yang digunakan:

  1. Label putih kosong
  2. Kotak kardus
  3. Kamera web
  4. Krayon
  5. Arduino
  6. Beagleboard-xM
  7. kabel
  8. Kabel Serial
  9. Pengetahuan dasar tentang pemrosesan gambar dan musik

Langkah 1: Barang Komputer

Barang Komputer
Barang Komputer
Barang Komputer
Barang Komputer
Barang Komputer
Barang Komputer

On-board Anda akan memerlukan komputer kecil berkemampuan Linux seperti Raspberry Pi. Saya menggunakan BeagleBoard-xM lama karena kebetulan saya memilikinya dan saya sudah memiliki sistem operasi di kartu SD. Anda dapat menggunakan apa saja, selama dapat menangani webcam, dapat menjalankan OpenCV (perpustakaan visi komputer yang digunakan untuk mengambil dan memproses gambar roda warna), dan memiliki jack audio out.

Saya mengatur sistem operasi untuk menjalankan kode python yang menangkap gambar saat boot mengikuti tutorial systemd. Agar skrip dapat dijalankan, Anda perlu Sudo apt-get install python-pyaudio python-opencv untuk mendapatkan pustaka yang ditunjukkan. Anda juga harus menginstal pip numpy pyserial untuk mendapatkan pustaka tersebut. pyaudio digunakan untuk memutar suara, opencv digunakan untuk pengambilan dan pemrosesan gambar, numpy juga digunakan untuk pemrosesan gambar, dan pyserial diperlukan untuk berkomunikasi dengan Arduino.

Arduino digunakan untuk memutar motor servo tempat roda warna dipasang. Jika Anda memiliki Raspberry Pi, Anda dapat menggunakan pin GPIO di sana dan tidak menggunakan Arduino, tetapi Anda harus memodifikasi kode Python.

Dalam gambar Anda dapat melihat keberanian teknologi operasi dan beberapa cuplikan kode.

Langkah 2: Piano

Piano
Piano
Piano
Piano
Piano
Piano

Saya membuat piano dari karton dari beberapa kotak tua yang saya miliki. Saya beruntung tinggal di dekat ruang pembuat yang memiliki pemotong laser. Selama setahun penuh saya bertanya-tanya untuk apa orang menginginkan pemotong laser, dan ternyata saya akhirnya menemukan kegunaannya.

Saya mengukur komputer, arduino, dan servo sehingga saya tahu berapa banyak ruang yang saya perlukan, menggambar bagian-bagian piano dalam inkscape, dan memotongnya pada pemotong laser. (Sunting: Saya kehabisan karton untuk membuat enklosur menampung komputer dan arduino dan jadi saya tidak memasukkannya. Mereka berada di luar kasing. Tidak masalah, bisa mendapatkan kotak lain dari suatu tempat, tetapi tidak tidak masalah pada akhirnya.)

Potongan-potongan itu disatukan dengan epoksi.

Langkah 3: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Berikut adalah beberapa gambar piano yang sedang dirakit dan diwarnai. Printer kehabisan tinta jadi saya tidak bisa mencetak warna ke label putih seperti yang saya rencanakan. Jadi saya menggunakan krayon putri saya. Dan saya tidak dapat menemukan pisau xacto untuk memotong label menjadi bentuk karton, jadi saya hanya menggunakan pisau steak dan meletakkan sesuatu pelindung di meja dapur. Gunakan apa yang Anda punya!

Langkah 4: Tantangan Teknis dan Pertimbangan Masa Depan

Tantangan Teknis dan Pertimbangan Masa Depan
Tantangan Teknis dan Pertimbangan Masa Depan
Tantangan Teknis dan Pertimbangan Masa Depan
Tantangan Teknis dan Pertimbangan Masa Depan

Bagian yang menantang dari proyek ini adalah mendapatkan nilai RGB yang tepat untuk dibaca oleh kamera. Webcam yang saya miliki memiliki beberapa LED yang sangat terang sehingga saya tidak tahu cara mematikannya di Linux. Saya pikir ada driver Windows yang memungkinkan Anda untuk mengaktifkan dan menonaktifkannya. Saya bereksperimen dengan merekatkan LED dengan pita listrik dan membiarkannya menyala. Saya juga menguji perangkat lunak untuk ketahanan dengan tidak hanya menunjukkan kertas berwarna, tetapi juga menulis situs web kecil yang menunjukkan warna.

Suara yang dihasilkan oleh komputer terkadang muncul dan berderak, dan ini berasal dari fakta bahwa saya memiliki sedikit pengalaman dalam pemrograman audio Linux. Pustaka pyaudio mengeluarkan banyak keluhan tentang JACK tidak diinstal pada PC, tetapi secara default JACK tidak ingin menjalankan tanpa kepala (tanpa desktop gui dan monitor). Ini adalah tugas pemrograman yang saya pikir merupakan penyempurnaan, tetapi tidak perlu untuk mengungkapkan esensi dari pemain piano yang ada dalam pikiran saya.

Saya telah mempertimbangkan untuk menggunakan engkol tangan untuk mengubah warna, dan mungkin untuk memilikinya pada jenis rolling pin, tetapi itu menimbulkan komplikasinya sendiri. Servonya agak berisik, tetapi berfungsi dengan baik untuk saat ini.

Pemain piano saat ini hanya diprogram untuk memainkan 4 nada. Ini karena servo hanya bergerak 180 derajat, sebagian besar lagu anak-anak dapat dimainkan hanya dengan 3-4 nada, dan saya tidak ingin roda warna menjadi berantakan dengan wilayah warna, mungkin membingungkan kamera. Jadi melalui kombinasi keberuntungan musik dan kendala teknis, 4 nada baik-baik saja.

Direkomendasikan: