Isi kandungan:
- Langkah 1: Bahan
- Langkah 2: Memasang Perisian
- Langkah 3: Memasang Accelerometer
- Langkah 4: Memasang Flex Sensor
- Langkah 5: Berinteraksi dengan Max
- Langkah 6: Membina Selebihnya Kod Maks
- Langkah 7: Secara literal Menyatukannya
Video: Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Nah, nampaknya sarung tangan dengan kekuatan luar biasa sangat marah hari ini. Walaupun Thanos 'Infinity Gauntlet adalah sarung tangan yang cukup kuat, kami ingin membuat sarung tangan yang dapat melakukan sesuatu yang lebih luar biasa: menukar suara pemakai dalam masa nyata.
Instructable ini memberikan panduan bagaimana kami merancang sarung tangan yang menukar suara. Reka bentuk kami menggunakan pelbagai sensor dan mikrokontroler di sarung tangan untuk mengesan gerakan, yang dihantar melalui kod Arduino ke patch Max, di mana isyarat audio kami kemudian diubah dan diputarbelitkan dengan cara yang menyeronokkan. Sensor, gerakan, dan perubahan suara tertentu yang kami gunakan semuanya fleksibel untuk pertimbangan yang berbeza; ini adalah satu cara untuk membuat sarung tangan yang menukar suara!
Projek ini merupakan sebahagian daripada perkongsian komuniti antara pelajar Kolej Pomona dan Fremont Academy of Engineering Femineers. Ini adalah gabungan unsur kejuruteraan elektronik dan muzik elektronik yang sangat menyeronokkan!
Langkah 1: Bahan
Bahagian:
- Mikrokontroler HexWear (ATmega32U4) (https://hexwear.com/)
- MMA8451 Accelerometer (https://www.adafruit.com/product/2019)
- Sensor Flex Pendek (x4) (https://www.adafruit.com/product/1070)
- Sarung tangan berlari ringan
- # 2 skru dan pencuci (x8)
- Penyambung terminal crimp; Tolok 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 pk)
- Perintang 50kΩ (x4)
- Kawat (~ 20 tolok)
- Pin keselamatan pelekat diri
- Felt atau kain lain (~ 10 kaki persegi.)
- Benang jahit
- Zipties
- Komputer riba
- Mikrofon USB
Alat
- Kit pematerian
- Pelucut wayar dan pemotong wayar
- Pita elektrik
- Pistol udara panas
- Pemutar skru
- Gunting
- Jarum jahit
Perisian:
- Max by Cycling '74 (https://cycling74.com)
- Perisian Arduino (https://www.arduino.cc/en/Main/Software)
Langkah 2: Memasang Perisian
Kita mulakan dengan apa yang sebenarnya merupakan bahagian yang paling menggembirakan dari mana-mana projek: memasang perpustakaan (dan banyak lagi).
Arduino:
Muat turun dan pasang perisian Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Hanya Windows, pengguna Mac boleh melangkau langkah ini) Pasang pemacu dengan melayari https://www.redgerbera.com/pages/hexwear-driver-installation. Muat turun dan pasang pemacu (fail.exe yang disenaraikan pada Langkah 2 di bahagian atas halaman RedGerbera yang dipautkan).
2) Pasang pustaka yang diperlukan untuk Hexware. Buka Arduino IDE. Di bawah "Fail" pilih "Keutamaan". Di ruang yang disediakan untuk URL Pengurus Papan Tambahan, tampal
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Kemudian klik "OK."
Pergi ke Alat -> Papan: -> Pengurus Lembaga. Dari menu sudut kiri atas, pilih "Disumbang."
Cari, dan kemudian klik pada Gerbera Boards dan klik Pasang. Berhenti dan buka semula Arduino IDE.
Untuk memastikan perpustakaan dipasang dengan betul, pergi ke Alat -> Papan, dan tatal ke bahagian bawah menu. Anda mesti melihat bahagian yang berjudul "Gerbera Boards", di mana sekurang-kurangnya terdapat HexWear (jika tidak lebih banyak papan seperti mini-HexWear).
Accelerometer:
Muat turun dan pasang perpustakaan accelerometer (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Langkah 3: Memasang Accelerometer
Kami memerlukan dua jenis sensor utama untuk berinteraksi dengan projek ini: accelerometer, dan sensor flex. Kami akan memeriksanya satu per satu, bermula dengan pecutan. Pertama, kita memerlukan sambungan perkakasan untuk dipadankan.
Untuk mengelakkan kerosakan pada Hex anda, kami mengesyorkan meletakkan skru dan mesin basuh # 2 melalui port yang dikehendaki, kemudian pasangkan semua sambungan ke skru tersebut. Untuk mengelakkan sesuatu menjadi longgar ketika bermain dengan sarung tangan, sambungan harus disolder dan / atau berkerut. Dengan menggunakan wayar beberapa inci untuk setiap sambungan, buatlah sambungan berikut dari Hex ke accelerometer (lihat pinout di atas untuk rujukan):
INPUT VOLTAGE VINGROUND GNDSCL / D3 SCLSDA / D2 SDA
Dengan semua yang tersusun, kami bersedia untuk menguji!
Sebagai ujian, jalankan kod contoh accelerometer di Arduino (File-> Contoh-> Adafruit_MMA8451-> MMA8451demo), pastikan ia dapat dikeluarkan ke monitor Serial. Ia harus menghasilkan pecutan kerana graviti (~ 10m / s) ke arah z ketika berada pada tahap yang tinggi. Dengan memiringkan pecutan, pecutan ini akan diukur dalam arah x atau y; kami akan menggunakan ini untuk membolehkan pemakai menukar suara dengan memutar tangan mereka!
Sekarang, kita perlu menyajikan data akselerometer sedemikian rupa sehingga dapat dihubungkan dengan Max. Untuk melakukannya, kita mesti mencetak nilai x dan y, mungkin diubah agar sesuai dengan julat yang diinginkan (lihat Bahagian 6). Dalam kod kami yang dilampirkan di sini, kami melakukan perkara berikut:
// Ukur arah -x dan arah-y. Kami membahagi dan membiak untuk masuk ke julat yang betul untuk MAX (julat 1000 dalam x dan julat 40 dalam y) xdir = event.acceleration.x / 0.02; ydir = abs (event.acceleration.y) * 2; // Cetak semuanya dalam format yang boleh dibaca untuk Max - dengan jarak antara setiap nombor Serial.print (xdir); Cetakan bersiri ("");
Ini harus mempunyai Hex mencetak nilai yang diubah dari arah x dan y pada pecutan setiap baris. Sekarang kami bersedia untuk menambahkan sensor flex!
Langkah 4: Memasang Flex Sensor
Pemakainya dapat memperoleh banyak kawalan bunyi yang berpotensi jika kita dapat mengesan jari yang bengkok. Sensor fleksibel akan melakukan begitu sahaja. Setiap sensor flex pada dasarnya adalah potensiometer, di mana tidak terfleks mempunyai rintangan ~ 25KΩ, sementara dilenturkan sepenuhnya mempunyai rintangan ~ 100KΩ. Kami meletakkan setiap sensor flex dalam pembahagi voltan sederhana dengan perintang 50K, seperti yang ditunjukkan pada gambar pertama.
Sekali lagi menggunakan panjang wayar yang cukup pendek (ingatlah ini semua akan sesuai dengan bahagian belakang sarung tangan), solder empat modul pembahagi voltan. Keempat modul akan berkongsi Vin dan ground yang sama-kami memutar hujung wayar yang dilucutkan sehingga kami hanya mempunyai satu petunjuk untuk solder. Akhirnya, ambil empat modul dan buat sambungan yang ditunjukkan dalam gambar kedua (jika ada yang tahu bagaimana melakukan ini tanpa membuat kekacauan yang mengerikan, sila nyatakan rahsia anda).
Sekarang, kita memerlukan kod Arduino untuk membaca voltan dari setiap sensor. Untuk tujuan kami, kami menganggap sensor flex sebagai suis; mereka hidup atau mati. Oleh itu, kod kami hanya menetapkan ambang voltan-di atas ambang ini, kami mengeluarkan 1 ke port Serial (bermaksud sensor dibengkokkan), jika tidak, kami mengeluarkan 0:
// Ambil sebilangan
sampel analog dan tambahkannya untuk setiap sensor Flex
sementara (jumlah_ sampel <NUM_SAMPLES) {
jumlah10 + = analogRead (A10);
sum9 + = analogRead (A9);
sum7 + = analogRead (A7);
sum11 + = analogRead (A11);
contoh_kiraan ++;
// Kelewatan yang singkat untuk tidak mengambilnya terlalu cepat
kelewatan (5);
}
// hitung voltan, purata sampel cepat
// gunakan 5.0 untuk ADC 5.0V
voltan rujukan
// 5.015V adalah dikalibrasi
voltan rujukan
voltan10 = ((apungan) jumlah10 /
(terapung) NUM_SAMPLES * 5.015) / 1024.0;
voltan9 = ((apungan) jumlah9 /
(terapung) NUM_SAMPLES * 5.015) / 1024.0;
voltan7 = ((apungan) jumlah7 /
(terapung) NUM_SAMPLES * 5.015) / 1024.0;
voltan11 = ((apungan) jumlah11 /
(terapung) NUM_SAMPLES * 5.015) / 1024.0;
// Periksa sama ada setiap sensor flex
lebih besar daripada ambang (ambang) - jika ya, tetapkan nombor
// Jari Pinkie
jika (voltan10> ambang)
{
// - 5 untuk menaikkan
nada suara oleh satu oktaf
flex10 = -10;
}
lain-lain flex10 = 0;
//Jari manis
jika (voltan9>
(ambang-0,4)) {
// 5 ke bawah
nada suara oleh satu oktaf
flex9 = 5;
}
lain-lain flex9 = 0;
//Jari tengah
jika (voltan7> ambang) {
// 1 untuk ditetapkan
kesan reverb
flex7 = 1;
}
lain-lain flex7 = 0;
//Jari telunjuk
jika (voltan11> ambang)
{
// 50 untuk ditetapkan
kitaran hingga 50
flex11 = 93;
}
lain-lain flex11 = 0;
// Tetapkan semula semua pengiraan
berubah menjadi 0 untuk gelung seterusnya
jumlah_contoh = 0;
jumlah10 = 0;
jumlah9 = 0;
jumlah7 = 0;
jumlah11 = 0;
Pada titik ini, port Serial harus menunjukkan nilai untuk orientasi accelerometer, dan juga sama ada setiap sensor flex dibengkokkan. Kami bersedia untuk mendapatkan kod Arduino kami dengan Max!
Langkah 5: Berinteraksi dengan Max
Sekarang bahawa kod Hex memancarkan banyak nombor melalui port Serial, kita memerlukan perisian Max untuk membaca isyarat ini. Sekatan kod yang digambarkan di atas betul-betul! Sama-sama.
Catatan penting: setelah memuat naik kod ke Hex, tutup semua tetingkap port bersiri, kemudian ubah huruf yang dilingkari dalam kod Max agar sesuai dengan port Hex. Sekiranya anda tidak pasti surat mana yang harus ditetapkan, menekan bahagian "cetak" dari kod Max akan menyenaraikan semua port yang disambungkan.
Garis bercetak dari port bersiri Hex dibaca melalui blok kod Max, dan kemudian dibahagi berdasarkan pembatas ruang. Output di hujung blok Max membolehkan anda mengambil setiap nombor secara berasingan, jadi kami akan menghubungkan ruang output pertama ke tempat yang kami mahukan arah x dari accelerometer, ruang kedua akan menjadi arah y, dll. Untuk sekarang, sambungkan ini ke blok nombor untuk memastikan ia berfungsi. Anda seharusnya dapat menggerakkan sensor akselerometer dan flex dan melihat perubahan nombor dalam perisian Max.
Langkah 6: Membina Selebihnya Kod Maks
Memandangkan kehebatan bahasa Max, anda benar-benar dapat membiarkan imaginasi anda menjadi liar di sini dengan semua cara anda dapat mengubah isyarat suara masuk dengan sarung tangan ajaib anda. Namun, jika anda kehabisan idea, di atas adalah ikhtisar mengenai apa yang dilakukan oleh kod Maks dan cara kerjanya.
Untuk setiap parameter yang anda cuba ubah, anda mungkin ingin mengacaukan pelbagai nilai yang berasal dari kod Arduino untuk mendapatkan kepekaan yang tepat.
Beberapa petua penyelesaian masalah Max yang lain:
- Sekiranya anda tidak mendengar suara
- pastikan Max diatur untuk menerima audio dari mikrofon anda (Pilihan Perisian Input Status Audio)
- pastikan slaid Volume Volume Master di Max muncul, dan kawalan kelantangan lain yang mungkin ada dalam kod anda
- Sekiranya kod itu nampaknya tidak melakukan apa-apa
- pastikan patch anda terkunci (simbol kunci di sudut kiri bawah)
- pastikan melalui pembacaan di patch Max bahawa patch Max anda masih mendapat data dari port bersiri Arduino. Sekiranya tidak, cuba tetapkan semula port bersiri (seperti yang dijelaskan dalam Langkah 5) dan / atau periksa sambungan pendawaian fizikal anda.
-
Bunyi klip pelik semasa menukar parameter
ini ada kaitan dengan cara ~ tapin dan ~ tapout berfungsi; secara khusus bahawa apabila anda mengubah nilai mereka, mereka menetapkan semula, yang menyebabkan keratan. Memandangkan pengetahuan kami mengenai program ini terhad, kami hampir pasti ada cara yang lebih baik untuk melakukannya di Max dan menghilangkan masalahnya…
Langkah 7: Secara literal Menyatukannya
Yang tinggal hanyalah memasang litar pada sarung tangan kita. Ambil kain tambahan anda dan potong helai sedikit lebih besar daripada sensor flex. Jahit kain tambahan ke jari sarung tangan di mana buku jari dibengkokkan, tinggalkan sejenis lengan untuk sensor flex duduk (kita tidak boleh merekatkan sensor flex terus ke sarung tangan kerana kain sarung tangan meregangkan ketika jari membengkok). Setelah sarung lengan dijahit, masukkan sensor lentur ke dalam, dan jahit ujung ke sarung tangan dengan teliti, pasangkan sensor lentur di tempatnya. Ulangi ini untuk setiap sensor flex.
Seterusnya, gunakan pin keselamatan pelekat diri untuk melekatkan Hex di bahagian belakang sarung tangan (anda mungkin mahu meletakkan sedikit gam panas pada pin untuk memastikannya tidak terbatal semasa pemakaian). Jahit accelerometer ke pergelangan tangan sarung tangan. Akhirnya, gunakan keajaiban ikatan zip untuk membersihkan wayar yang tidak sedap dipandang dengan indah.
Anda sudah bersedia untuk menguji kekuatan nyanyian utama anda! (Semoga kami sangat mengesyorkan "Harder Better Faster Stronger" Daft Punk untuk memamerkan sepenuhnya kemampuan mengubah suara anda)
Disyorkan:
Teknologi Pakai Penyakit Parkinson: 4 Langkah
Teknologi Parkinson Disease Wearable: Lebih daripada 10 juta orang di seluruh dunia hidup dengan penyakit Parkinson (PD). Gangguan sistem saraf yang progresif yang menyebabkan kekakuan dan mempengaruhi pergerakan pesakit. Secara sederhana, banyak orang menderita penyakit Parkinson tetapi
Teknologi Boleh Pakai untuk Kanak-kanak: Gelang Pahlawan: 4 Langkah
Tech Wearable for Kids: Hero Armband: Instruksional ini akan merangkumi cara membuat 'hero armband' yang menyala ketika dipakai. Dengan menggunakan pita kain konduktif, benang konduktif dan LED yang boleh dijahit, ini adalah aktiviti yang sangat baik bagi pelajar sekolah untuk mempelajari asas-asas litar dan teknologi yang boleh dipakai. Te
Teknologi Boleh Pakai: Drum Udara: 5 Langkah
Teknologi yang Boleh Dipakai: Drum Udara: Matlamat kami untuk projek ini adalah membuat kit drum yang boleh dipakai dari beberapa pecutan dan cakera piezo. Ideanya adalah bahawa apabila dipukul, suara jerat akan dimainkan; atau, dengan menekan kaki, suara hi-hat atau bass drum akan dimainkan. Untuk mengawal
D4E1 - DIY - Teknologi Bantuan: Dulang Kerusi Roda boleh laras: 7 Langkah (dengan Gambar)
D4E1 - DIY - Teknologi Bantuan: Dulang Kerusi Roda boleh laras: Kjell mempunyai kecacatan kongenital: quadriparesis dyskinetic dan tidak dapat dimakan sendiri. Dia memerlukan bantuan monitor, ahli terapi pekerjaan, yang memberi makan kepadanya. Ini datang dengan dua masalah: 1) Ahli terapi pekerjaan berdiri di belakang roda
Tangan Robotik Dengan Sarung Tangan Tanpa Wayar Dikawal - NRF24L01 + - Arduino: 7 Langkah (dengan Gambar)
Tangan Robotik Dengan Sarung Tangan Tanpa Wayar Dikawal | NRF24L01 + | Arduino: Dalam video ini; Pemasangan tangan robot 3D, kawalan servo, kawalan sensor lentur, kawalan tanpa wayar dengan nRF24L01, kod sumber penerima dan pemancar Arduino tersedia. Ringkasnya, dalam projek ini kita akan belajar bagaimana mengendalikan tangan robot dengan wayar