Isi kandungan:
- Langkah 1: Bahan
- Langkah 2: Sambungkan Sensor Ultrasonik ke Papan Octasonic
- Langkah 3: Sambungkan Penukar Tahap Logik ke Papan Octasonic
- Langkah 4: Sambungkan Logic Level Converter ke Raspberry Pi
- Langkah 5: Sambungkan Raspberry Pi 5V ke Octasonic 5V
- Langkah 6: Pasang Perisian
- Langkah 7: Buat Muzik
- Langkah 8: Kawalan Isyarat
- Langkah 9: Membuat Penutup
- Langkah 10: Penyelesaian Masalah dan Langkah Seterusnya
Video: Ultrasonik Pi Piano Dengan Kawalan Isyarat !: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Projek ini menggunakan sensor ultrasonik HC-SR04 yang murah sebagai input dan menghasilkan nota MIDI yang dapat dimainkan melalui synthesizer pada Raspberry Pi untuk bunyi berkualiti tinggi.
Projek ini juga menggunakan bentuk kawalan isyarat asas, di mana alat muzik dapat diganti dengan memegang kedua sensor terluar selama beberapa saat. Isyarat lain boleh digunakan untuk mematikan Raspberry Pi setelah anda selesai.
Video di atas menunjukkan produk siap dalam kandang laser-cut sederhana. Terdapat video yang lebih mendalam kemudian dalam arahan ini yang menerangkan bagaimana projek ini berfungsi.
Saya membuat projek ini bersama dengan The Gizmo Dojo (ruang pembuat tempatan saya di Broomfield, CO) untuk membuat beberapa pameran interaktif yang dapat kami bawa ke acara STEM / STEAM tempatan dan Maker Faires.
Lihat juga dokumentasi dan tutorial terkini di https://theotherandygrove.com/octasonic/ yang kini merangkumi maklumat mengenai versi Python projek ini (arahan ini ditulis untuk versi Rust).
Langkah 1: Bahan
Untuk arahan ini, anda memerlukan bahan berikut:
- Raspberry Pi (2 atau 3) dengan kad SD
- 8 sensor ultrasonik HC-SR04
- Papan Pemecahan Octasonic
- Penukar Tahap Logik Dua Hala
- Wayar Jumper Perempuan-Perempuan 32 x 12 "untuk menyambungkan sensor ultrasonik
- Wayar Jumper Perempuan-Perempuan 13 x 6 "untuk menyambungkan Raspberry Pi, Octasonic, dan Logic Level Converter
- Bekalan kuasa yang sesuai untuk Raspberry Pi
- Pembesar suara PC atau yang serupa
Saya akan mengesyorkan menggunakan Raspberry Pi 3 jika mungkin kerana ia mempunyai kekuatan pengkomputeran yang lebih banyak, menghasilkan suara yang lebih responsif dan menyenangkan. Ia boleh berfungsi dengan baik dengan Raspberry Pi 2 dengan sedikit perubahan tetapi saya tidak akan berusaha menggunakan Raspberry Pi yang asli untuk projek ini.
Sensor ultrasonik HC-SR04 mempunyai 4 sambungan - 5V, GND, Trigger, dan Echo. Biasanya, Trigger dan Echo disambungkan ke pin yang terpisah pada mikrokontroler atau Raspberry Pi tetapi itu bermakna anda perlu menggunakan 16 pin untuk menyambungkan 8 sensor, dan ini tidak praktikal. Di sinilah papan pelarian Octasonic masuk. Papan ini menghubungkan ke semua sensor dan mempunyai mikrokontroler khusus yang memantau sensor dan kemudian berkomunikasi dengan Raspberry Pi melalui SPI.
HC-SR04 memerlukan 5V dan Raspberry Pi hanya 3.3V, jadi ini sebabnya kami juga memerlukan penukar tahap logik yang akan menghubungkan Raspberry Pi ke papan pelarian Octasonic.
Langkah 2: Sambungkan Sensor Ultrasonik ke Papan Octasonic
Gunakan 4 wayar pelompat wanita-wanita untuk menyambungkan setiap sensor ultrasonik ke papan, dengan berhati-hati untuk menghubungkannya dengan cara yang betul. Papan direka sedemikian rupa sehingga 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: Sambungkan Penukar Tahap Logik ke Papan Octasonic
Raspberry Pi dan Octasonic Board berkomunikasi melalui SPI. SPI menggunakan 4 wayar:
- Master In, Slave Out (MISO)
- Master Out, Budak Masuk (MOSI)
- Jam Bersiri (SCK)
- Pilih Budak (SS)
Selain itu, kita perlu menyambungkan kuasa (5V dan GND).
Penukar tahap logik mempunyai dua sisi - voltan rendah (LV) dan voltan tinggi (HV). Raspberry akan bersambung ke sisi LV kerana ia adalah 3.3V. Octasonic akan bersambung ke sisi HV kerana ia adalah 5V.
Langkah ini adalah untuk menghubungkan Octasonic ke sisi HV penukar tahap logik
Lihat foto yang dilampirkan pada langkah ini menunjukkan pin mana yang harus disambungkan ke penukar tahap logik.
Sambungan dari penukar Octasonic ke Logik Level hendaklah seperti berikut:
- 5V hingga HV
- SCK ke HV4
- MISO ke HV3
- MOSI hingga HV2
- SS hingga HV1
- GND hingga GND
Langkah 4: Sambungkan Logic Level Converter ke Raspberry Pi
Raspberry Pi dan Octasonic Board berkomunikasi melalui SPI. SPI menggunakan 4 wayar:
- Master In, Slave Out (MISO)
- Master Out, Budak Masuk (MOSI)
- Jam Bersiri (SCK)
- Pilih Budak (SS)
Selain itu, kita perlu menyambungkan kuasa (3.3V dan GND). Penukar tahap logik mempunyai dua sisi - voltan rendah (LV) dan voltan tinggi (HV). Raspberry akan bersambung ke sisi LV kerana ia adalah 3.3V. Octasonic akan bersambung ke sisi HV kerana ia adalah 5V.
Langkah ini adalah untuk menyambungkan Raspberry Pi ke sisi LV penukar tahap logik
Sambungan dari Raspbery Pi ke penukar Tahap Logik hendaklah seperti berikut:
- 3.3V hingga LV
- GPIO11 (SPI_SCLK) hingga LV4
- GPIO09 (SPI_MISO) hingga LV3
- GPIO10 (SPI_MOSI) hingga LV2
- GPIO08 (SPI_CE0_N) SS hingga LV1
- GND hingga GND
Gunakan rajah yang dilampirkan pada langkah ini untuk mencari pin yang betul pada Raspberry Pi!
Langkah 5: Sambungkan Raspberry Pi 5V ke Octasonic 5V
Terdapat satu wayar terakhir untuk ditambahkan. Kita perlu benar-benar menghidupkan papan Octasonic dengan 5V, jadi kita melakukannya dengan menyambungkan 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 yang dilampirkan yang menunjukkan di mana blok AVR berada.
Lihat rajah lain yang dilampirkan untuk mencari pin 5V pada Raspberry Pi.
Langkah 6: Pasang Perisian
Pasang Raspian
Mulakan dengan pemasangan Raspbian Jessie yang bersih, kemudian kemas kini ke versi terbaru:
sudo apt-get kemas kini
sudo apt-get peningkatan
Dayakan SPI
Anda mesti mengaktifkan SPI pada Raspberry Pi agar projek ini dapat berfungsi! Gunakan utiliti Konfigurasi Raspberry Pi untuk melakukan ini.
Penting juga untuk menghidupkan semula Pi setelah mengaktifkan SPI agar ia berkuat kuasa
Pasang FluidSynth
Fluidsynth adalah perisian MIDI synth percuma yang luar biasa. Anda boleh memasangnya dari baris perintah dengan arahan ini:
sudo apt-get install fluidsynth
Pasang Bahasa Pengaturcaraan Karat
Ultrasonik Pi Piano dilaksanakan dalam Bahasa Pengaturcaraan Rust dari Mozilla (ia seperti C ++ tetapi tanpa bit buruk). Itulah yang digunakan oleh semua kanak-kanak keren hari ini.
Ikuti arahan di https://rustup.rs/ untuk memasang Rust. Untuk menjimatkan masa anda, arahannya adalah untuk menjalankan perintah yang satu ini. Anda boleh menerima jawapan lalai untuk sebarang pertanyaan semasa pemasangan.
CATATAN: Sejak menghantar arahan ini, terdapat beberapa masalah dengan memasang Rust pada Raspberry Pi. Masa yang tidak tepat: - / tetapi saya telah mengubah arahan di bawah untuk menyelesaikan masalah ini. Mudah-mudahan mereka menyelesaikannya tidak lama lagi. Saya sedang berusaha untuk membuat gambar yang boleh dimuat turun oleh orang lain dan dibakar ke kad SD. Sekiranya anda mahu, sila hubungi saya.
eksport RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | sh
Muat turun kod sumber Ultrasonik Pi Piano
Kod sumber untuk kod sumber Ultrasonic Pi Piano dihoskan di github. Terdapat dua pilihan untuk mendapatkan kod tersebut. Sekiranya anda biasa dengan git dan github, anda boleh mengklon repo:
git clone [email protected]: TheGizmoDojo / UltrasonikPiPiano.git
Sebagai alternatif, anda boleh memuat turun fail zip kod terkini.
Menyusun kod sumber
cd UltrasonikPiPiano
pembinaan kargo --melepaskan
Uji kodnya
Sebelum kita mulai membuat muzik pada langkah seterusnya, mari pastikan perisian berjalan dan kita dapat membaca data yang sah dari sensor.
Gunakan arahan berikut untuk menjalankan aplikasi. Ini akan membaca data dari sensor dan menerjemahkannya ke dalam nota MIDI yang kemudian dicetak di konsol. Semasa anda menggerakkan sensor anda, anda akan melihat data dihasilkan. Sekiranya tidak, lompat ke bahagian penyelesaian masalah pada akhir arahan ini.
larian kargo - melepaskan
Sekiranya anda ingin tahu, bendera "--rilis" memberitahu Rust untuk menyusun kod dengan seefisien mungkin, berbanding dengan tetapan "--debug" lalai.
Langkah 7: Buat Muzik
Pastikan anda masih berada di direktori di mana anda memuat turun kod sumber dan jalankan perintah berikut.
Skrip "run.sh" ini memastikan bahawa kod telah disusun dan kemudian menjalankan kod tersebut, memasukkan output ke fluidsynth.
./run.sh
Pastikan bahawa anda mempunyai pembesar suara yang disambungkan yang disambungkan ke bicu audio 3.5mm pada Raspberry Pi dan anda akan mendengar muzik semasa anda menggerakkan sensor anda.
Sekiranya anda tidak mendengar muzik dan anda memasang monitor HDMI, maka output audio mungkin akan berlaku di sana. Untuk memperbaikinya, jalankan perintah ini dan kemudian mulakan semula Pi Piano:
sudo amixer cset numid = 3 1
Menukar kelantangan
Volume (atau "gain") ditentukan dengan parameter "-g" hingga fluidsynth. Anda boleh mengubah skrip run.sh dan mengubah nilai ini. Harap perhatikan bahawa perubahan kecil dalam parameter ini menghasilkan perubahan jumlah yang besar, jadi cuba tingkatkannya dengan jumlah kecil (seperti 0.1 atau 0.2).
Langkah 8: Kawalan Isyarat
Lihat video yang dilampirkan pada langkah ini untuk demonstrasi penuh projek, termasuk bagaimana kawalan isyarat berfungsi.
Konsepnya sangat mudah. Perisian ini mengesan sensor mana yang dilindungi (dalam jarak 10cm) dan mana yang tidak. Ini diterjemahkan kepada 8 nombor binari (1 atau 0). Ini sangat mudah, kerana urutan 8 nombor binari membuat "bait" yang dapat mewakili nombor antara 0 dan 255. Sekiranya anda belum tahu mengenai nombor binari, maka saya sangat mengesyorkan mencari tutorial. Nombor binari adalah kemahiran asas untuk belajar jika anda ingin mengetahui lebih lanjut mengenai pengaturcaraan.
Perisian memetakan keadaan sensor semasa ke satu bait yang mewakili gerak isyarat semasa. Sekiranya nombor itu tetap sama untuk beberapa kitaran, maka perisian tersebut bertindak mengikut isyarat tersebut.
Kerana sensor ultrasonik tidak boleh dipercayai dan mungkin terdapat gangguan antara sensor, anda perlu bersabar ketika menggunakan gerak isyarat. Cuba ubah jarak yang anda pegang dari sensor dan juga sudut yang anda pegang. Anda yang sejuk juga cuba memegang sesuatu yang rata dan padat di atas sensor untuk memantulkan suaranya dengan lebih baik.
Langkah 9: Membuat Penutup
Sekiranya anda ingin menjadikannya pameran tetap dan dapat memamerkannya kepada orang lain, anda mungkin ingin membuat semacam kandang. Ini boleh dibuat dari kayu, kadbod, atau banyak bahan lain. Berikut adalah video yang menunjukkan kandang yang sedang kami jalankan untuk projek ini. Ini dibuat dari kayu, dengan lubang yang dibor untuk menahan sensor ultrasonik di tempatnya.
Langkah 10: Penyelesaian Masalah dan Langkah Seterusnya
Penyelesaian masalah
Sekiranya projek tidak berfungsi, biasanya terdapat kesalahan pendawaian. Luangkan masa anda untuk memeriksa semula semua sambungan.
Isu biasa lain adalah gagal mengaktifkan SPI dan memulakan semula pi.
Sila kunjungi https://theotherandygrove.com/octasonic/ untuk dokumentasi lengkap termasuk petua penyelesaian masalah, dengan artikel khusus Rust dan Python, dan juga maklumat mengenai cara mendapatkan sokongan.
Langkah seterusnya
Setelah projek berfungsi, saya cadangkan bereksperimen dengan kod dan mencuba alat muzik yang berbeza. Kod instrumen MIDI adalah antara 1 dan 127 dan didokumentasikan di sini.
Adakah anda mahukan satu alat muzik dengan setiap sensor memainkan oktaf yang berbeza? Mungkin anda mahu setiap sensor menjadi instrumen yang berasingan? Kemungkinan hampir tidak terbatas!
Saya harap anda menikmati pengajaran ini. Sekiranya anda suka, dan pastikan untuk melanggan saya di sini dan ke saluran YouTube saya untuk melihat projek masa depan.
Disyorkan:
Kawalan Komputer Menggunakan Isyarat & Input Sentuhan: 3 Langkah
Kawalan Komputer Menggunakan Isyarat & Input Sentuhan: Ini adalah projek demo untuk Piksey Atto yang baru. Kami menggunakan IC sentuh TTP224 dan modul isyarat APDS-9960 untuk mengendalikan komputer. Kami memuat naik sketsa ke Atto yang menjadikannya berfungsi seperti papan kekunci USB dan kemudian menghantar kod kunci yang sesuai
Cara termudah untuk membuat robot kawalan isyarat: 7 Langkah (dengan Gambar)
Cara termudah untuk membuat robot kawalan isyarat: Kawal mainan seperti superHero. Ketahui cara membuat kereta yang dikawal dengan isyarat. Ini adalah mengenai cara membuat kereta yang dikawal oleh isyarat sendiri. Pada dasarnya ini adalah aplikasi mudah Giroskop 3 paksi MPU-6050, Accelerometer. Anda boleh melakukan banyak perkara lagi
Tetap Selamat Menggunakan Bikelight Ini Dengan Isyarat Giliran: 5 Langkah (dengan Gambar)
Tetap Selamat Menggunakan Bikelight Ini Dengan Isyarat Belok: Saya suka menunggang basikal saya, biasanya saya menggunakannya untuk sampai ke sekolah. Pada waktu musim sejuk, selalunya masih gelap di luar dan sukar bagi kenderaan lain untuk melihat isyarat tangan saya. Oleh itu, adalah bahaya besar kerana trak mungkin tidak melihat bahawa saya mahu
Isyarat Lalu Lintas Menggunakan Arduino dan Sensor Ultrasonik: 4 Langkah
Isyarat Lalu Lintas Menggunakan Arduino dan Ultrasonik Sensor: Dengan era teknologi pintar, semuanya menjadi lebih pintar dan sistem pengangkutan pintar adalah salah satu bidang yang akan memberi kesan besar kepada kehidupan kita. Diterbitkan secara berasingan di: https://highvoltages.co/tutorial/arduino-tutorial/traffic-sig
Tangkapan dan Visualisasi Isyarat Kawalan Jauh IR: 5 Langkah
Tangkapan dan Visualisasi Isyarat Kawalan Jauh IR: Ini adalah perangkat yang dapat menangkap isyarat IR dari kebanyakan alat kawalan jauh dan mengirim maklumat melalui port bersiri ke komputer untuk dipamerkan. Ia memberikan semua maklumat penting seperti jangka masa hidup / mati, jumlah nadi, dan frekuensi pembawa. Bahagian