Daftar Isi:
- Langkah 1: Bahan
- Langkah 2: Hubungkan Sensor Ultrasonik ke Papan Octasonic
- Langkah 3: Hubungkan Konverter Level Logika ke Papan Octasonic
- Langkah 4: Hubungkan Konverter Level Logika ke Raspberry Pi
- Langkah 5: Hubungkan Raspberry Pi 5V ke Octasonic 5V
- Langkah 6: Instal Perangkat Lunak
- Langkah 7: Buat Musik
- Langkah 8: Kontrol Gerakan
- Langkah 9: Membuat Enklosur
- Langkah 10: Pemecahan Masalah dan Langkah Selanjutnya
Video: Piano Ultrasonic Pi Dengan Kontrol Gerakan!: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Proyek ini menggunakan sensor ultrasonik HC-SR04 yang murah sebagai input dan menghasilkan nada MIDI yang dapat dimainkan melalui synthesizer pada Raspberry Pi untuk menghasilkan suara berkualitas tinggi.
Proyek ini juga menggunakan bentuk dasar kontrol gerakan, di mana alat musik dapat diubah dengan memegang tangan Anda di atas dua sensor terluar selama beberapa detik. Gerakan lain dapat digunakan untuk mematikan Raspberry Pi setelah Anda selesai.
Video di atas menunjukkan produk jadi dalam selungkup laser-cut sederhana. Ada video yang lebih mendalam nanti dalam instruksi ini yang menjelaskan cara kerja proyek.
Saya membuat proyek ini bersama dengan The Gizmo Dojo (ruang pembuat lokal saya di Broomfield, CO) untuk membuat beberapa pameran interaktif yang dapat kami bawa ke acara STEM/STEAM lokal dan Pameran Pembuat.
Silakan lihat juga dokumentasi dan tutorial terbaru di https://theotherandygrove.com/octasonic/ yang sekarang menyertakan informasi tentang versi Python dari proyek ini (instruksi ini ditulis untuk versi Rust).
Langkah 1: Bahan
Untuk instruksi ini, Anda membutuhkan bahan-bahan berikut:
- Raspberry Pi (2 atau 3) dengan kartu SD
- 8 sensor ultrasonik HC-SR04
- Papan Breakout Octasonic
- Konverter Level Logika Dua Arah
- 32 x 12 "Kabel Jumper Wanita-Wanita untuk menghubungkan sensor ultrasonik
- 13 x 6" Kabel Jumper Wanita-Wanita untuk menghubungkan Raspberry Pi, Octasonic, dan Konverter Level Logika
- Catu daya yang cocok untuk Raspberry Pi
- Speaker PC atau sejenisnya
Saya akan merekomendasikan menggunakan Raspberry Pi 3 jika memungkinkan karena memiliki daya komputasi yang lebih besar, menghasilkan suara yang lebih responsif dan menyenangkan. Ini dapat bekerja dengan baik dengan Raspberry Pi 2 dengan sedikit penyesuaian tetapi saya tidak akan mencoba menggunakan Raspberry Pi asli untuk proyek ini.
Sensor ultrasonik HC-SR04 memiliki 4 koneksi - 5V, GND, Trigger, dan Echo. Biasanya, Trigger dan Echo terhubung ke pin terpisah pada mikrokontroler atau Raspberry Pi tetapi itu berarti Anda perlu menggunakan 16 pin untuk menghubungkan 8 sensor, dan ini tidak praktis. Di sinilah papan breakout Octasonic masuk. Papan ini terhubung ke semua sensor dan memiliki mikrokontroler khusus yang memantau sensor dan kemudian berkomunikasi dengan Raspberry Pi melalui SPI.
HC-SR04 membutuhkan 5V dan Raspberry Pi hanya 3.3V, jadi inilah mengapa kami juga membutuhkan konverter level logika yang akan menghubungkan Raspberry Pi ke papan breakout Octasonic.
Langkah 2: Hubungkan Sensor Ultrasonik ke Papan Octasonic
Gunakan 4 kabel jumper wanita-wanita untuk menghubungkan setiap sensor ultrasonik ke papan, berhati-hatilah untuk menghubungkannya dengan cara yang benar. Papan dirancang agar pin berada dalam urutan yang sama dengan pin pada sensor ultrasonik. Dari kiri ke kanan di papan, pinnya adalah GND, Trigger, Echo, 5V.
Langkah 3: Hubungkan Konverter Level Logika ke Papan Octasonic
Raspberry Pi dan Octasonic Board berkomunikasi melalui SPI. SPI menggunakan 4 kabel:
- Master Masuk, Budak Keluar (MISO)
- Master Keluar, Budak Masuk (MOSI)
- Jam Serial (SCK)
- Pilihan Budak (SS)
Selain itu, kita perlu menghubungkan daya (5V dan GND).
Konverter level logika memiliki dua sisi - tegangan rendah (LV) dan tegangan tinggi (HV). Raspberry akan terhubung ke sisi LV karena 3.3V. Octasonic akan terhubung ke sisi HV karena 5V.
Langkah ini untuk menghubungkan Octasonic ke sisi HV dari konverter level logika
Lihat foto yang terlampir pada langkah ini yang menunjukkan pin mana yang harus dihubungkan ke konverter level logika.
Koneksi dari konverter Octasonic ke Level Logika harus sebagai berikut:
- 5V ke HV
- SCK ke HV4
- MISO ke HV3
- MOSI ke HV2
- SS ke HV1
- GND ke GND
Langkah 4: Hubungkan Konverter Level Logika ke Raspberry Pi
Raspberry Pi dan Octasonic Board berkomunikasi melalui SPI. SPI menggunakan 4 kabel:
- Master Masuk, Budak Keluar (MISO)
- Master Keluar, Budak Masuk (MOSI)
- Jam Serial (SCK)
- Pilihan Budak (SS)
Selain itu, kita perlu menghubungkan daya (3.3V dan GND). Konverter level logika memiliki dua sisi - tegangan rendah (LV) dan tegangan tinggi (HV). Raspberry akan terhubung ke sisi LV karena 3.3V. Octasonic akan terhubung ke sisi HV karena 5V.
Langkah ini untuk menghubungkan Raspberry Pi ke sisi LV dari konverter level logika
Koneksi dari Raspbery Pi ke konverter Level Logika harus sebagai berikut:
- 3.3V ke LV
- GPIO11 (SPI_SCLK) ke LV4
- GPIO09 (SPI_MISO) ke LV3
- GPIO10 (SPI_MOSI) ke LV2
- GPIO08 (SPI_CE0_N) SS ke LV1
- GND ke GND
Gunakan diagram yang terlampir pada langkah ini untuk menemukan pin yang benar pada Raspberry Pi!
Langkah 5: Hubungkan Raspberry Pi 5V ke Octasonic 5V
Ada satu kawat terakhir untuk ditambahkan. Kita harus benar-benar memberi daya pada papan Octasonic dengan 5V, jadi kita melakukannya dengan menghubungkan salah satu pin Raspberry Pi 5V ke pin 5V pada header Octasonic AVR. Ini adalah pin kiri bawah di blok header AVR (ini adalah blok 2 x 3 di kanan atas papan). Lihat foto terlampir yang menunjukkan di mana blok AVR berada.
Lihat diagram terlampir lainnya untuk menemukan pin 5V pada Raspberry Pi.
Langkah 6: Instal Perangkat Lunak
Instal Raspian
Mulailah dengan instalasi Raspbian Jessie yang bersih, lalu perbarui ke versi terbaru:
sudo apt-get update
sudo apt-get upgrade
Aktifkan SPI
Anda harus mengaktifkan SPI di Raspberry Pi agar proyek ini berfungsi! Gunakan utilitas Konfigurasi Raspberry Pi untuk melakukan ini.
Penting juga untuk me-reboot Pi setelah mengaktifkan SPI agar berlaku
Instal FluidSynth
Fluidsynth adalah software MIDI synth gratis yang luar biasa. Anda dapat menginstalnya dari baris perintah dengan perintah ini:
sudo apt-get install fluidynth
Instal Bahasa Pemrograman Rust
Piano Ultrasonic Pi diimplementasikan dalam Bahasa Pemrograman Rust dari Mozilla (seperti C++ tetapi tanpa bit buruk). Itu yang digunakan semua anak keren akhir-akhir ini.
Ikuti petunjuk di https://rustup.rs/ untuk menginstal Rust. Untuk menghemat waktu Anda, petunjuknya adalah menjalankan perintah yang satu ini. Anda dapat menerima jawaban default untuk pertanyaan apa pun selama penginstalan.
CATATAN: Sejak memposting instruksi ini, ada beberapa masalah dengan menginstal Rust pada Raspberry Pi. Waktu yang buruk:-/ tetapi saya telah memodifikasi perintah di bawah ini untuk mengatasi masalah tersebut. Semoga mereka akan segera memperbaikinya. Saya sedang berusaha membuat gambar yang dapat diunduh dan dibakar orang ke kartu SD. Jika Anda menginginkannya, silakan hubungi saya.
ekspor RUSTUP_USE_HYPER=1curl https://sh.rustup.rs -sSf | NS
Unduh kode sumber Ultrasonic Pi Piano
Kode sumber untuk kode sumber Ultrasonic Pi Piano di-host di github. Ada dua opsi untuk mendapatkan kode. Jika Anda terbiasa dengan git dan github, Anda dapat mengkloning repo:
git clone [email protected]:TheGizmoDojo/UltrasonicPiPiano.git
Atau, Anda dapat mengunduh file zip dari kode terbaru.
Kompilasi kode sumber
cd UltrasonicPiPiano
pembuatan kargo --release
Uji kodenya
Sebelum kita beralih ke pembuatan musik pada langkah berikutnya, mari pastikan bahwa perangkat lunak berjalan dan kita dapat membaca data yang valid dari sensor.
Gunakan perintah berikut untuk menjalankan aplikasi. Ini akan membaca data dari sensor dan menerjemahkannya ke dalam catatan MIDI yang kemudian dicetak di konsol. Saat Anda menggerakkan tangan di atas sensor, Anda akan melihat data dihasilkan. Jika tidak, lewati bagian pemecahan masalah di akhir instruksi ini.
pengiriman kargo --release
Jika Anda penasaran, tanda "--release" memberi tahu Rust untuk mengkompilasi kode seefisien mungkin, berbeda dengan pengaturan default "--debug".
Langkah 7: Buat Musik
Pastikan Anda masih berada di direktori tempat Anda mengunduh kode sumber dan jalankan perintah berikut.
Skrip "run.sh" ini memastikan bahwa kode telah dikompilasi dan kemudian menjalankan kode, menyalurkan output ke fluidynth.
./run.sh
Pastikan Anda memiliki pengeras suara yang terhubung ke jack audio 3,5 mm pada Raspberry Pi dan Anda akan mendengar musik saat Anda menggerakkan tangan di atas sensor.
Jika Anda tidak mendengar musik dan Anda memiliki monitor HDMI yang terpasang, maka output audio mungkin ada di sana. Untuk memperbaikinya, cukup jalankan perintah ini lalu mulai ulang Pi Piano:
sudo amixer cset numid=3 1
Mengubah volume
Volume (atau "gain") ditentukan dengan parameter "-g" ke fluidynth. Anda dapat memodifikasi skrip run.sh dan mengubah nilai ini. Harap dicatat bahwa perubahan kecil pada parameter ini menghasilkan perubahan volume yang besar, jadi cobalah meningkatkannya dengan jumlah kecil (seperti 0,1 atau 0,2).
Langkah 8: Kontrol Gerakan
Lihat video yang dilampirkan pada langkah ini untuk demonstrasi penuh proyek, termasuk cara kerja kontrol gerakan.
Konsepnya sangat sederhana. Perangkat lunak melacak sensor mana yang tercakup (dalam jarak 10cm) dan mana yang tidak. Ini diterjemahkan menjadi 8 bilangan biner (1 atau 0). Ini sangat nyaman, karena urutan 8 angka biner membuat "byte" yang dapat mewakili angka antara 0 dan 255. Jika Anda belum tahu tentang angka biner maka saya sangat menyarankan mencari tutorial. Bilangan biner adalah keterampilan dasar untuk dipelajari jika Anda ingin mempelajari lebih lanjut tentang pemrograman.
Perangkat lunak memetakan status sensor saat ini ke satu byte yang mewakili gerakan saat ini. Jika angka itu tetap sama untuk beberapa siklus, maka perangkat lunak akan bertindak berdasarkan gerakan itu.
Karena sensor ultrasonik tidak terlalu andal dan dapat terjadi gangguan antar sensor, Anda perlu bersabar saat menggunakan gerakan. Cobalah memvariasikan jarak yang Anda pegang tangan dari sensor serta sudut yang Anda pegang tangan Anda. Anda juga mencoba memegang sesuatu yang datar dan kokoh di atas sensor untuk memantulkan suara dengan lebih baik.
Langkah 9: Membuat Enklosur
Jika Anda ingin menjadikan ini pameran permanen dan dapat memamerkannya kepada orang-orang, Anda mungkin ingin membuat semacam kandang. Ini bisa dibuat dari kayu, karton, atau banyak bahan lainnya. Berikut adalah video yang menunjukkan enklosur yang sedang kami kerjakan untuk proyek ini. Ini terbuat dari kayu, dengan lubang yang dibor untuk menahan sensor ultrasonik di tempatnya.
Langkah 10: Pemecahan Masalah dan Langkah Selanjutnya
Penyelesaian masalah
Jika proyek tidak berfungsi, biasanya karena kesalahan pengkabelan. Luangkan waktu Anda untuk memeriksa ulang semua koneksi.
Masalah umum lainnya adalah gagal mengaktifkan SPI dan me-reboot pi.
Silakan kunjungi https://theotherandygrove.com/octasonic/ untuk dokumentasi lengkap termasuk tips pemecahan masalah, dengan artikel khusus Rust dan Python, dan juga informasi tentang cara mendapatkan dukungan.
Langkah selanjutnya
Setelah proyek Anda berhasil, saya sarankan untuk bereksperimen dengan kode dan mencoba berbagai alat musik. Kode instrumen MIDI antara 1 dan 127 dan didokumentasikan di sini.
Apakah Anda ingin alat musik tunggal dengan masing-masing sensor memainkan oktaf yang berbeda? Mungkin Anda ingin setiap sensor menjadi instrumen yang terpisah? Kemungkinannya hampir tidak terbatas!
Saya harap Anda menikmati instruksi ini. Silakan suka jika Anda melakukannya, dan pastikan untuk berlangganan saya di sini dan saluran YouTube saya untuk melihat proyek masa depan.
Direkomendasikan:
Kontrol Gerakan Sederhana - Kontrol Mainan RC Anda Dengan Gerakan Lengan Anda: 4 Langkah (dengan Gambar)
Kontrol Gerakan Sederhana - Kontrol Mainan RC Anda Dengan Gerakan Lengan Anda: Selamat datang di 'ible' saya #45. Beberapa waktu yang lalu saya membuat BB8 versi RC yang berfungsi penuh menggunakan bagian Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R…Ketika saya melihat betapa kerennya itu Force Band yang dibuat oleh Sphero, saya berpikir: "Ok, saya c
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: 5 Langkah (dengan Gambar)
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: Dalam Instruksi ini saya menunjukkan kepada Anda bagaimana saya menambahkan otomatisasi ke tirai saya. Saya ingin dapat menambah dan menghapus otomatisasi itu, jadi semua instalasi adalah clip on. Bagian utama adalah: Motor stepper Driver stepper dikendalikan bij ESP-01 Gear dan pemasangan
Kontrol Gerakan Dengan Raspberry Pi dan LIS3DHTR, Akselerometer 3-Axis, Menggunakan Python: 6 Langkah
Kontrol Gerakan Dengan Raspberry Pi dan LIS3DHTR, Akselerometer 3-Axis, Menggunakan Python: Keindahan mengelilingi kita, tetapi biasanya, kita perlu berjalan di taman untuk mengetahuinya. - RumiSebagai kelompok terpelajar seperti yang kita lihat, kita menginvestasikan sebagian besar energi kita bekerja sebelum PC dan ponsel kita. Oleh karena itu, kita sering membiarkan kesehatan kita
Kontrol Kamar Dengan ESP8266 - Suhu, Gerakan, Tirai, dan Pencahayaan: 8 Langkah
Kontrol Kamar Dengan ESP8266 | Temperatur, Gerakan, Tirai, dan Pencahayaan: Proyek ini terdiri dari sistem berdasarkan modul NodeMCU ESP8266 yang memungkinkan Anda mengontrol kecerahan Strip LED dan tirai ruangan Anda, juga dapat mengirim data tentang peristiwa gerakan ruangan Anda dan suhu ke awan
Nevma: Kontrol Gerakan untuk Massa: 3 Langkah (dengan Gambar)
Nevma: Gesture Control for the Masses: Bekerja di Delphi (segera Aptiv) memungkinkan saya merasakan kemewahan dalam lingkungan berteknologi tinggi dan inovatif yang memberikan inspirasi terus-menerus untuk menciptakan gadget baru dan menarik. Suatu hari, beberapa rekan menyebutkan kontrol gerakan menjadi salah satu