Isi kandungan:

Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara: 7 Langkah
Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara: 7 Langkah

Video: Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara: 7 Langkah

Video: Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara: 7 Langkah
Video: Ngeri! Bedanya tentara luar negeri dan tentara indonesia ketika latihan 2024, November
Anonim
Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara
Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara
Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara
Teknologi Boleh Pakai: Sarung Tangan Mengubah Suara

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

Bahan
Bahan
Bahan
Bahan
Bahan
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

Memasang Accelerometer
Memasang Accelerometer
Memasang Accelerometer
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

Memasang Flex Sensor
Memasang Flex Sensor
Memasang Flex Sensor
Memasang Flex Sensor
Memasang Flex Sensor
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

Berinteraksi dengan Max
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

Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya
Secara harfiah Menggabungkan Semuanya

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: