Daftar Isi:
- Langkah 1: Bahan
- Langkah 2: Menginstal Perangkat Lunak
- Langkah 3: Memasang Akselerometer
- Langkah 4: Memasang Sensor Flex
- Langkah 5: Berinteraksi Dengan Max
- Langkah 6: Membangun Sisa Kode Maks
- Langkah 7: Secara harfiah Menyatukan Semuanya
Video: Teknologi yang Dapat Dipakai: Sarung Tangan Pengubah Suara: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Yah, sepertinya sarung tangan dengan kekuatan luar biasa sedang populer akhir-akhir ini. Meskipun Infinity Gauntlet dari Thanos adalah sarung tangan yang cukup kuat, kami ingin membuat sarung tangan yang dapat melakukan sesuatu yang lebih luar biasa: mengubah suara pemakainya secara real-time.
Instruksi ini memberikan panduan tentang bagaimana kami merancang sarung tangan pengubah suara. Desain kami menggunakan berbagai sensor dan mikrokontroler di sarung tangan untuk mendeteksi gerakan, yang dikirim melalui kode Arduino ke patch Max, di mana sinyal audio kami kemudian diubah dan terdistorsi dengan cara yang menyenangkan. Sensor, gerakan, dan perubahan suara tertentu yang kami gunakan semuanya fleksibel untuk berbagai pertimbangan; ini hanyalah salah satu cara untuk membuat sarung tangan pengubah suara!
Proyek ini merupakan bagian dari kemitraan komunitas antara mahasiswa Pomona College dan Fremont Academy of Engineering Femineers. Ini adalah perpaduan yang sangat menyenangkan antara teknik elektronik dan elemen musik elektronik!
Langkah 1: Bahan
Bagian:
- Mikrokontroler HexWear (ATmega32U4) (https://hexwear.com/)
- Akselerometer MMA8451 (https://www.adafruit.com/product/2019)
- Sensor Flex Pendek (x4) (https://www.adafruit.com/product/1070)
- Sarung tangan lari ringan
- #2 sekrup dan ring (x8)
- konektor terminal crimp; pengukur 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- Resistor 50kΩ (x4)
- Kawat (~20 pengukur)
- Pin pengaman berperekat
- Kain kempa atau kain lainnya (~10 sq. in.)
- Benang jahit
- ritsleting
- Laptop
- Mikrofon USB
Peralatan
- Perangkat solder
- Penari telanjang kawat dan pemotong kawat
- Pita listrik
- Pistol udara panas
- Obeng
- Gunting
- Jarum jahit
Perangkat lunak:
- Maks dengan Bersepeda '74 (https://cycling74.com)
- Perangkat lunak Arduino (https://www.arduino.cc/en/Main/Software)
Langkah 2: Menginstal Perangkat Lunak
Kita mulai dengan apa yang benar-benar merupakan bagian yang paling menggembirakan dari proyek apa pun: menginstal perpustakaan (dan banyak lagi).
Arduino:
Unduh dan instal perangkat lunak Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Hanya Windows, pengguna Mac dapat melewati langkah ini) Instal driver dengan mengunjungi https://www.redgerbera.com/pages/hexwear-driver-installation. Unduh dan instal driver (file.exe yang tercantum pada Langkah 2 di bagian atas halaman RedGerbera yang ditautkan).
2) Instal perpustakaan yang diperlukan untuk Hexware. Buka Arduino IDE-nya. Di bawah "File" pilih "Preferensi." Di tempat yang disediakan untuk URL Pengelola Papan Tambahan, tempel
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Kemudian klik "Oke."
Buka Alat -> Papan: -> Manajer Papan. Dari menu pojok kiri atas, pilih "Kontribusi".
Cari, lalu klik Papan Gerbera dan klik Instal. Keluar dan buka kembali Arduino IDE.
Untuk memastikan bahwa perpustakaan diinstal dengan benar, buka Alat -> Papan, dan gulir ke bagian bawah menu. Anda akan melihat bagian berjudul “Papan Gerbera,” di mana setidaknya akan muncul HexWear (jika bukan papan seperti mini-HexWear).
Akselerometer:
Unduh dan instal pustaka akselerometer (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Langkah 3: Memasang Akselerometer
Kami membutuhkan dua jenis sensor utama untuk berinteraksi dengan proyek ini: akselerometer, dan sensor fleksibel. Kami akan memeriksa ini satu per satu, dimulai dengan akselerometer. Pertama, kita membutuhkan koneksi perangkat keras agar sesuai.
Untuk menghindari kerusakan pada Hex Anda, sebaiknya pasang sekrup #2 dan ring melalui port yang diinginkan, lalu pasang semua sambungan ke sekrup tersebut. Untuk mencegah apa pun terlepas saat bermain dengan sarung tangan, sambungan harus disolder dan/atau dikerutkan. Menggunakan beberapa inci kabel untuk setiap sambungan, buat sambungan berikut dari Hex ke akselerometer (lihat pinout di atas untuk referensi):
TEGANGAN MASUK VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Dengan semuanya terhubung, kami siap untuk menguji!
Sebagai pengujian, jalankan kode sampel akselerometer di Arduino (File->Contoh->Adafruit_MMA8451->MMA8451demo), pastikan kode tersebut dapat ditampilkan ke monitor Serial. Ini harus menghasilkan akselerasi karena gravitasi (~ 10m/s) dalam arah z saat ditahan. Dengan memiringkan akselerometer, percepatan ini akan diukur dalam arah x atau y; kami akan menggunakan ini untuk memungkinkan pemakainya mengubah suara dengan memutar tangan mereka!
Sekarang, kita perlu menyajikan data accelerometer sedemikian rupa sehingga dapat dihubungkan dengan Max. Untuk melakukannya, kita harus mencetak nilai x dan y, mungkin dimodifikasi agar sesuai dengan rentang yang diinginkan (lihat Bagian 6). Dalam kode kami terlampir di sini, kami melakukan hal berikut:
//Mengukur arah-x dan arah-y. Kami membagi dan mengalikan untuk mendapatkan rentang yang tepat untuk MAX (kisaran 1000 dalam x dan kisaran 40 dalam y) xdir = event.acceleration.x/0.02; ydir = abs(event.acceleration.y)*2; //Cetak semuanya dalam format yang dapat dibaca untuk Max - dengan spasi di antara setiap nomor Serial.print(xdir); Serial.print("");
Ini harus memiliki Hex yang mencetak nilai modifikasi dari arah x dan y dari akselerometer setiap baris. Sekarang kami siap menambahkan sensor fleksibel!
Langkah 4: Memasang Sensor Flex
Pemakainya bisa mendapatkan banyak kontrol suara potensial jika kita bisa mendeteksi jari yang tertekuk. Sensor fleksibel akan melakukan hal itu. Setiap sensor fleksibel pada dasarnya adalah potensiometer, di mana tidak tertekuk memiliki resistansi ~25KΩ, sementara tertekuk penuh memiliki resistansi ~100KΩ. Kami menempatkan setiap sensor fleksibel dalam pembagi tegangan sederhana dengan resistor 50K, seperti yang ditunjukkan pada gambar pertama.
Sekali lagi menggunakan panjang kawat yang cukup pendek (perlu diingat ini semua akan dipasang ke bagian belakang sarung tangan), solder empat modul pembagi tegangan. Keempat modul akan berbagi Vin dan ground yang sama - kami memutar ujung kabel yang dilucuti sehingga kami hanya memiliki satu timah untuk disolder. Akhirnya, ambil empat modul dan buat koneksi yang ditunjukkan pada gambar kedua (jika ada yang tahu bagaimana melakukan ini tanpa membuat kekacauan yang mengerikan, tolong ungkapkan rahasia Anda).
Sekarang, kita membutuhkan kode Arduino untuk membaca tegangan dari masing-masing sensor. Untuk tujuan kami, kami memperlakukan sensor fleksibel sebagai sakelar; mereka hidup atau mati. Dengan demikian, kode kami hanya menetapkan ambang tegangan-di atas ambang batas ini, kami mengeluarkan 1 ke port Serial (artinya sensor bengkok), jika tidak, kami mengeluarkan 0:
// Ambil sejumlah
sampel analog dan menambahkannya untuk setiap sensor Flex
while (jumlah_sampel < NUM_SAMPEL) {
sum10 += analogRead(A10);
sum9 += analogRead(A9);
sum7 += analogRead(A7);
sum11 += analogRead(A11);
sampel_jumlah++;
// Penundaan singkat untuk tidak mengambilnya terlalu cepat
penundaan (5);
}
// menghitung tegangan, rata-rata atas sampel cepat
// gunakan 5.0 untuk ADC 5.0V
tegangan referensi
// 5.015V adalah yang dikalibrasi
tegangan referensi
tegangan10 = ((mengambang)jumlah10 /
(mengambang)NUM_SAMPLES * 5.015) / 1024.0;
tegangan9 = ((mengambang)jumlah9/
(mengambang)NUM_SAMPLES * 5.015) / 1024.0;
tegangan7 = ((float)sum7 /
(mengambang)NUM_SAMPLES * 5.015) / 1024.0;
tegangan11 = ((mengambang)jumlah11 /
(mengambang)NUM_SAMPLES * 5.015) / 1024.0;
//Periksa apakah setiap sensor fleksibel
lebih besar dari ambang (thresh) - jika demikian, atur nomornya
//jari kelingking
jika (tegangan10 > ambang)
{
//-5 untuk menaikkan
nada suara satu oktaf
flex10 = -10;
}
lain flex10 = 0;
//Jari manis
jika (tegangan9 >
(mengirik-0.4)) {
///5 untuk menurunkan
nada suara satu oktaf
fleksibel9 = 5;
}
lain flex9 = 0;
//Jari tengah
if (tegangan7 > ambang) {
// untuk mengatur
efek gema
fleksibel7 = 1;
}
lain flex7 = 0;
//Jari telunjuk
jika (tegangan11 > ambang)
{
//50 untuk mengatur
siklus ke 50
flex11 = 93;
}
lain flex11 = 0;
//Setel ulang semua penghitungan
variabel ke 0 untuk loop berikutnya
sampel_jumlah = 0;
jumlah10 = 0;
jumlah9 = 0;
jumlah7 = 0;
jumlah11 = 0;
Pada titik ini, port Serial harus menunjukkan nilai untuk orientasi akselerometer, dan juga apakah setiap sensor fleksibel bengkok. Kami siap untuk membuat kode Arduino kami berbicara dengan Max!
Langkah 5: Berinteraksi Dengan Max
Sekarang kode Hex mengeluarkan banyak angka melalui port Serial, kita memerlukan perangkat lunak Max untuk membaca sinyal ini. Blok kode yang digambarkan di atas melakukan hal itu! Terima kasih.
Catatan penting: setelah mengunggah kode ke Hex, tutup semua jendela port serial, lalu ubah huruf yang dilingkari di kode Max agar sesuai dengan port Hex. Jika Anda tidak yakin huruf mana yang harus disetel, menekan bagian "cetak" dari kode Max akan mencantumkan semua port yang terhubung.
Garis yang dicetak dari port serial Hex dibaca melalui blok kode Max, dan kemudian dibagi berdasarkan pembatas ruang. Output di akhir blok Max memungkinkan Anda untuk mengambil setiap nomor satu per satu, jadi kami akan menghubungkan ruang keluaran pertama ke tempat yang kami inginkan arah x dari akselerometer, ruang kedua akan menjadi arah y, dll. Untuk sekarang, cukup sambungkan ini ke blok angka untuk memastikannya berfungsi. Anda harus dapat menggerakkan sensor akselerometer dan flex dan melihat perubahan angka di perangkat lunak Max.
Langkah 6: Membangun Sisa Kode Maks
Mengingat kekuatan bahasa Max, Anda benar-benar dapat membiarkan imajinasi Anda menjadi liar di sini dengan semua cara Anda dapat mengubah sinyal suara yang masuk dengan sarung tangan kekuatan magis Anda. Namun, jika Anda kehabisan ide, di atas adalah ikhtisar tentang apa yang dilakukan kode Max kami dan cara kerjanya.
Untuk setiap parameter yang Anda coba ubah, Anda mungkin ingin dipusingkan dengan rentang nilai yang berasal dari kode Arduino untuk mendapatkan sensitivitas yang tepat.
Beberapa tip pemecahan masalah Max lainnya:
- Jika Anda tidak mendengar suara
- pastikan Max diatur untuk menerima audio dari mikrofon Anda (Perangkat Input Status Audio Opsi)
- pastikan penggeser Volume Master di Max diaktifkan, dan kontrol volume lain yang mungkin Anda miliki dalam kode Anda
- Jika kode sepertinya tidak melakukan apa-apa
- pastikan tambalan Anda terkunci (simbol kunci di sudut kiri bawah)
- pastikan melalui pembacaan di patch Max bahwa patch Max Anda masih mendapatkan data dari port serial Arduino. Jika tidak, coba atur ulang port serial (seperti yang dijelaskan pada Langkah 5) dan/atau periksa koneksi kabel fisik Anda.
-
Suara kliping yang aneh saat mengubah parameter
ini ada hubungannya dengan cara kerja ~tapin dan ~tapout; khusus bahwa ketika Anda mengubah nilainya, mereka mengatur ulang, yang menyebabkan kliping. Mengingat pengetahuan kami yang terbatas tentang program ini, kami hampir yakin ada cara yang lebih baik untuk melakukan ini di Max dan menghilangkan masalah…
Langkah 7: Secara harfiah Menyatukan Semuanya
Yang tersisa sekarang adalah memasang sirkuit kami ke sarung tangan kami. Ambil kain tambahan Anda dan potong strip sedikit lebih besar dari sensor fleksibel. Jahit kain tambahan ke jari sarung tangan tempat buku jari tertekuk, sisakan semacam selongsong untuk sensor flex untuk duduk (kita tidak bisa hanya merekatkan sensor flex langsung ke sarung tangan karena kain sarung tangan meregang saat jari menekuk). Setelah selongsong sebagian besar dijahit, geser sensor flex ke dalam, dan dengan hati-hati jahit ujungnya ke sarung tangan, pasang sensor flex di tempatnya. Ulangi ini untuk setiap sensor fleksibel.
Selanjutnya, gunakan peniti berperekat untuk menempelkan Hex ke bagian belakang sarung tangan (Anda mungkin ingin mengoleskan lem panas pada peniti untuk memastikan tidak terlepas saat dipakai). Jahit akselerometer ke pergelangan tangan sarung tangan. Terakhir, gunakan keajaiban ikatan ritsleting untuk membersihkan kabel yang tidak sedap dipandang dengan indah.
Anda siap untuk menguji kemampuan bernyanyi terbaik Anda! (Semoga kami sangat merekomendasikan "Harder Better Faster Stronger" Daft Punk untuk sepenuhnya memamerkan kemampuan mengubah suara Anda)
Direkomendasikan:
Teknologi yang Dapat Dipakai: Drum Udara: 5 Langkah
Teknologi yang Dapat Dipakai: Drum Udara: Tujuan kami untuk proyek ini adalah membuat kit drum yang dapat dipakai dari beberapa akselerometer dan cakram piezo. Idenya adalah bahwa dengan satu pukulan tangan, suara snare akan terdengar; atau, dengan menekan satu kaki, suara hi-hat atau bass drum akan dimainkan. Kontrol
Seni 2D Dengan LED yang Dapat Diprogram dan Basis dan Logo yang Dapat Disesuaikan: 5 Langkah (dengan Gambar)
Seni 2D Dengan LED yang Dapat Diprogram dan Basis dan Logo yang Dapat Disesuaikan: Selamat datang di instruksi! Hari ini, saya akan menunjukkan cara membuat Proyek Seni 2D dengan logo dan desain keseluruhan pilihan Anda. Saya membuat proyek ini karena dapat mengajarkan orang banyak keterampilan seperti pemrograman, pengkabelan, pemodelan 3D, dan lainnya. Ini
Penguat Pengunci Miniatur yang Dapat Dipakai (dan Sistem Sonar untuk Perangkat yang Dapat Dipakai, Dll.): 7 Langkah
Penguat Penguncian Miniatur yang Dapat Dipakai (dan Sistem Sonar untuk Perangkat yang Dapat Dikenakan, Dll.): Bangun penguat pengunci mini murah yang dapat disematkan dalam bingkai kacamata dan untuk membuat sistem penglihatan sonar untuk orang buta, atau ultrasound sederhana mesin yang terus memantau jantung Anda dan menggunakan Pembelajaran Mesin Manusia untuk memperingatkan p
Rok Equalizer Reaktif Suara yang Dapat Dipakai: 21 Langkah (dengan Gambar)
Rok Equalizer Reaktif Suara yang Dapat Dipakai: Untuk sementara, saya ingin mendesain karya yang berinteraksi dengan suara. Rok Equalizer memiliki elektronik terintegrasi yang bereaksi terhadap tingkat kebisingan di lingkungannya. LED terintegrasi diatur sebagai bilah equalizer untuk menyorot
Panel Lampu Kustom yang Dapat Dipakai (Kursus Eksplorasi Teknologi - TfCD - Tu Delft): 12 Langkah (dengan Gambar)
Panel Lampu Kustom yang Dapat Dipakai (Kursus Eksplorasi Teknologi - TfCD - Tu Delft): Dalam Instruksi ini, Anda akan belajar cara membuat gambar menyala sendiri yang dapat Anda kenakan! Hal ini dilakukan dengan menggunakan teknologi EL yang dilapisi dengan stiker vinil dan memasangkan pita agar Anda dapat memakainya di lengan Anda. Anda juga dapat mengubah bagian dari p