Daftar Isi:
- Langkah 1: Barang Komputer
- Langkah 2: Piano
- Langkah 3: Perakitan
- Langkah 4: Tantangan Teknis dan Pertimbangan Masa Depan
Video: Piano Pemain Sinestesia: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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:
- Label putih kosong
- Kotak kardus
- Kamera web
- Krayon
- Arduino
- Beagleboard-xM
- kabel
- Kabel Serial
- Pengetahuan dasar tentang pemrosesan gambar dan musik
Langkah 1: 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
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
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
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:
Pilih-a-Pemain: 4 Langkah
Pick-a-Player: Instruksi ini akan memandu Anda melalui cara membuat pembuat keputusan Arduino. Dengan menekan tombol, LED akan menyala dalam pola acak. Setelah beberapa detik, satu LED akan menyala. Ini adalah keputusan akhir yang dibuat oleh Arduino
2-Pemain Stand-Up Retro Arcade oleh Micro Center: 20 Langkah
2-Player Stand-Up Retro Arcade oleh Micro Center: Micro Center lokal Anda sekarang membawa semua yang Anda butuhkan untuk membuat kabinet Retro Arcade berbasis Raspberry Pi Anda sendiri. Kit sepenuhnya dapat disesuaikan, termasuk kabinet, Raspberry Pi, tombol, joystick, aksesori audio dan video, dan banyak lagi. Dia
2 Pemain Pong PCB: 3 Langkah
2 Player Pong PCB: Dalam panduan ini Anda dapat membuat game pong 2 pemain portabel. Desain ini dibuat berdasarkan kode yang diposting di GitHub oleh Onur Avun. Saya menikmati membuat proyek ini, saya harap Anda menikmati membangunnya
Pemain Piano Makey Makey: 7 Langkah
Makey Makey Piano Player: Jadi mari kita mulai. secara keseluruhan ide ini akan memakan waktu sekitar 30 menit untuk membuat keseluruhan proyek tetapi ketika sampai pada proses pembangunan Anda harus memastikan bahwa Anda membaca langkah-langkahnya dengan hati-hati jadi mari kita mulai
Pemain Piano: 10 Langkah (dengan Gambar)
Pemain Piano: El objetivo del proyecto es elaborar un sistema que pueda tocar música preprogramada en las teclas digitales de una aplicación de piano para el iPad 2.Nuestro proyecto consta de un sistema con un grado de libertad de desplazamiento