Mündəricat:

Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım
Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım

Video: Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım

Video: Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım
Video: WhatsApp-ın bu hiyləsini bilirsən? 😎 2024, Iyul
Anonim
Geyilə bilən Texnika: Səs dəyişdirən əlcək
Geyilə bilən Texnika: Səs dəyişdirən əlcək
Geyilə bilən Texnika: Səs dəyişdirən əlcək
Geyilə bilən Texnika: Səs dəyişdirən əlcək

Görünür, inanılmaz gücə malik əlcəklər bu günlərin qəzəbidir. Thanos Infinity Gauntlet olduqca güclü bir əlcək olsa da, daha da diqqətəlayiq bir şey edə biləcək bir əlcək hazırlamaq istədik: istifadəçinin səsini real vaxtda dəyişdirin.

Bu Təlimat, səs dəyişdirən bir əlcək necə hazırladığımızı izah edir. Dizaynımız, səs siqnalımızın əyləncəli şəkildə dəyişdirildiyi və təhrif edildiyi bir Max yamasına bir Arduino kodu ilə göndərilən hərəkətləri aşkar etmək üçün əlcəkdəki müxtəlif sensorlar və mikrokontrolördən istifadə etdi. İstifadə etdiyimiz xüsusi sensorlar, hərəkətlər və səs dəyişiklikləri fərqli mülahizələr üçün elastikdir; bu səs dəyişdirən bir əlcək yaratmaq üçün yalnız bir yoldur!

Bu layihə, Pomona Kolleci tələbələri ilə Fremont Mühəndislik Qadınları Akademiyası arasında bir cəmiyyət ortaqlığının bir hissəsi idi. Elektron mühəndisliyi və elektron musiqi elementlərinin əsl əyləncəli bir qarışığıdır!

Addım 1: Materiallar

Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar

Parçalar:

  • HexWear mikro nəzarətçisi (ATmega32U4) (https://hexwear.com/)
  • MMA8451 sürətləndirici (https://www.adafruit.com/product/2019)
  • Qısa Flex Sensorları (x4) (https://www.adafruit.com/product/1070)
  • Yüngül qaçış əlcəyi
  • #2 vida və yuyucular (x8)
  • Crimp terminal bağlayıcıları; 22-18 ölçü (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 manat)
  • 50kΩ müqavimət (x4)
  • Tel (~ 20 ölçü)
  • Öz-özünə yapışan təhlükəsizlik pin
  • Keçe və ya digər parça (~ 10 kv.)
  • Dikiş ipi
  • Ziptilər
  • Noutbuk
  • USB mikrofonu

Alətlər

  • Lehim dəsti
  • Tel kəsicilər və tel kəsicilər
  • Elektrik lenti
  • İsti hava silahı
  • Tornavida
  • Qayçı
  • Dikiş iynəsi

Proqram təminatı:

  • Max by Cycling '74 (https://cycling74.com)
  • Arduino proqramı (https://www.arduino.cc/en/Main/Software)

Addım 2: Proqramın Qurulması

Hər hansı bir layihənin həqiqətən ən həyəcanverici hissəsi olan kitabxanaların quraşdırılması (və daha çox) ilə başlamalıyıq.

Arduino:

Arduino proqramını yükləyin və quraşdırın (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (yalnız Windows, Mac istifadəçiləri bu addımı atlaya bilər) https://www.redgerbera.com/pages/hexwear-driver-installation saytına daxil olaraq sürücünü quraşdırın. Sürücünü yükləyin və quraşdırın (əlaqəli RedGerbera səhifəsinin yuxarısında 2 -ci addımda göstərilən.exe faylı).

2) Hexware üçün lazım olan kitabxananı quraşdırın. Arduino IDE -ni açın. "Fayl" ın altında "Tercihlər" i seçin. Əlavə Lövhələr Meneceri URL -ləri üçün ayrılmış yerə yapışdırın

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

Sonra "OK" düyməsini basın.

Alətlər -> İdarə Heyəti: -> İdarə Heyətinə gedin. Sol üst künc menyusundan "Töhfələndi" seçin.

Gerbera Boards -ı axtarın və vurun və Quraşdır'ı basın. Arduino IDE -dən çıxın və yenidən açın.

Kitabxananın düzgün qurulduğundan əmin olmaq üçün Alətlər -> İdarə Heyətinə gedin və menyunun altına gedin. Altında ən azı HexWear (mini-HexWear kimi lövhələr olmasa) görünməli olan "Gerbera Boards" adlı bir bölmə görməlisiniz.

Akselerometr:

Akselerometr kitabxanasını yükləyin və quraşdırın (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Addım 3: Accelerometer -in quraşdırılması

Akselerometrin quraşdırılması
Akselerometrin quraşdırılması
Akselerometrin quraşdırılması
Akselerometrin quraşdırılması

Bu layihə ilə qarşılıqlı əlaqə qurmaq üçün iki əsas növə ehtiyacımız var: bir akselerometr və bir də çevik sensorlar. Akselerometrdən başlayaraq bunları bir -bir araşdıracağıq. Birincisi, uyğunlaşmaq üçün hardware əlaqələrinə ehtiyacımız var.

Hex -ə zərər verməmək üçün, istədiyiniz limanlardan 2 nömrəli vida və yuyucunun qoyulmasını, sonra isə bütün vidaların bu vintə bağlanmasını məsləhət görürük. Əlcəklə oynayarkən bir şeyin boşalmaması üçün əlaqələr lehimlənməli və/və ya bükülməlidir. Hər bir əlaqə üçün bir neçə düym tel istifadə edərək, altıbucaqdan sürətölçənə aşağıdakı bağlantıları edin (istinad üçün yuxarıdakı pinoutlara baxın):

GİRİŞ GERİLİMİ VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Hər şey bağlı olduqda test etməyə hazırıq!

Test olaraq, Arduino-da accelerometer nümunə kodunu işlədin (Fayl-> Nümunələr-> Adafruit_MMA8451-> MMA8451demo), bunun Serial monitora çıxara biləcəyinə əmin olun. Səviyyə tutulduqda z istiqamətində çəkisi (~ 10m/s) səbəbiylə sürətlənməni çıxarmalıdır. Akselerometri əyərək, bu sürətlənmə x və ya y istiqamətində ölçüləcək; sahibinin əlini döndərərək səsi dəyişməsinə icazə vermək üçün bundan istifadə edəcəyik!

İndi, akselerometr məlumatlarını Max ilə əlaqə qura biləcək şəkildə təqdim etməliyik. Bunu etmək üçün x və y dəyərlərini çap etməliyik, bəlkə də istədiyiniz aralığa uyğun olaraq dəyişdirilmişik (6 -cı hissəyə baxın). Burada əlavə olunan kodumuzda aşağıdakıları edirik:

// Teks istiqaməti və y istiqaməti ölçün. MAX üçün doğru aralığa girmək üçün bölürük və çarpırıq (x -də 1000 aralığı və y -də 40 aralığı) xdir = event.acceleration.x/0.02; ydir = abs (hadisə. sürətləndirmə.y)*2; // Hər şeyi Max üçün oxunaqlı bir formatda çap edin - hər bir ədəd arasındakı boşluqlarla Serial.print (xdir); Serial.print ("");

Bu, Hex -in hər sətirdə akselerometrin x və y istiqamətlərinin dəyişdirilmiş dəyərlərini çap etməsinə səbəb olmalıdır. İndi çevik sensorlar əlavə etməyə hazırıq!

Addım 4: Flex Sensorların Quraşdırılması

Flex Sensorların Quraşdırılması
Flex Sensorların Quraşdırılması
Flex Sensorların Quraşdırılması
Flex Sensorların Quraşdırılması
Flex Sensorların Quraşdırılması
Flex Sensorların Quraşdırılması

Barmaqların əyilməsini aşkar edə bilsək, istifadəçi çoxlu potensial səs idarəediciləri əldə edə bilər. Fleks sensorlar bunu edəcək. Hər bir əyilmə sensoru əslində potensialiometrdir ki, burulmamış ~ 25KΩ, tam əyilmiş isə ~ 100KΩ müqavimətə malikdir. Hər bir əyilmə sensorunu ilk görüntüdə göstərildiyi kimi 50K rezistorlu sadə bir gərginlik ayırıcıya qoyduq.

Yenə kifayət qədər qısa uzunluqlu tel istifadə edərək (hamısının əlcəyin arxasına oturacağını unutmayın), dörd gərginlikli bölücü modulu lehimləyin. Dörd modul eyni Vini paylaşacaq və telləri kəsilmiş uclarını bir-birinə bükdük, buna görə də lehim üçün yalnız bir qurğumuz olacaq. Nəhayət, dörd modulu götürün və ikinci görüntüdə göstərilən əlaqələri qurun (hər kəs qorxunc bir qarışıqlıq yaratmadan bunu necə edəcəyini bilirsə, zəhmət olmasa sirlərinizi açın).

İndi, hər bir sensordan gələn gərginliyi oxumaq üçün Arduino koduna ehtiyacımız var. Məqsədlərimiz üçün, əyilmə sensorlarına açar kimi baxdıq; ya açıq, ya da sönmüşdülər. Beləliklə, kodumuz sadəcə bu həddən yuxarı bir gərginlik eşiği təyin edir, Serial porta 1 veririk (sensor əyilmiş deməkdir), əks halda 0 veririk:

// Bir sıra alın

analoq nümunələri və hər Flex sensoru üçün əlavə edin

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

sample_count ++;

// Onları çox tez qəbul etməmək üçün qısa gecikmə

gecikmə (5);

}

// gərginliyi hesablayın, sürətli nümunələr üzərində ortalamalar

// 5.0V ADC üçün 5.0 istifadə edin

istinad gərginliyi

// 5.015V kalibrlənmişdir

istinad gərginliyi

gərginlik10 = ((float) sum10 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

gərginlik9 = ((float) sum9/

(float) NUM_SAMPLES * 5.015) / 1024.0;

gərginlik7 = ((float) sum7 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

gərginlik11 = ((float) sum11 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

// Hər bir əyilmə sensorunun olub olmadığını yoxlayın

eşikdən (eşikdən) böyükdür - əgər belədirsə, nömrəni təyin edin

// Çəhrayı barmaq

əgər (gərginlik10> taxıl)

{

//-5 qaldırmaq

bir oktavanın səs səviyyəsi

flex10 = -10;

}

başqa flex10 = 0;

// Üzük barmağı

əgər (gərginlik9>

(harman-0.4)) {

// 5 aşağı

bir oktavanın səs səviyyəsi

flex9 = 5;

}

başqa flex9 = 0;

//Orta barmaq

if (gərginlik7> taxıl) {

Qurmaq üçün // 1

reverb effekti

flex7 = 1;

}

başqa flex7 = 0;

//Şəhadət barmağı

əgər (gərginlik11> taxıl)

{

// 50 qurmaq üçün

dövrü 50 -ə qədər

flex11 = 93;

}

başqa flex11 = 0;

// Bütün saymaları sıfırlayın

Növbəti döngə üçün 0 dəyişən

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

Bu nöqtədə, Serial portu, akselerometrin istiqaməti üçün dəyərləri və hər bir əyilmə sensorunun əyilmiş olub olmadığını göstərməlidir. Max ilə Arduino kodumuzu danışmağa hazırıq!

Addım 5: Max ilə əlaqə qurun

Max ilə ünsiyyət
Max ilə ünsiyyət

İndi Hex kodu Serial portu vasitəsilə çox sayda rəqəm tüpürdüyünə görə bu siqnalları oxumaq üçün Max proqramına ehtiyacımız var. Yuxarıda göstərilən kod bloku bunu edir! Çox xoş gəldiniz.

Mühüm qeyd: kodu Hex -ə yüklədikdən sonra bütün seriyalı port pəncərələrini bağlayın, sonra Max kodundakı dairəvi hərfi Hex portuna uyğun olaraq dəyişdirin. Hansı hərfin qoyulacağından əmin deyilsinizsə, Max kodunun "çap" hissəsinə basaraq bütün əlaqəli portlar siyahıya alınacaq.

Hex -in seriya limanından olan çap xətti Max kod bloku vasitəsilə oxunur və sonra yer ayırıcılarına əsasən bölünür. Max blokunun sonundakı çıxış hər bir nömrəni ayrı -ayrılıqda tutmağa imkan verir, buna görə də ilk çıxış yerini akselerometrin x istiqamətinin getməsini istədiyimiz yerə bağlayacağıq, ikinci boşluq y istiqaməti və s. İndi işlədiklərindən əmin olmaq üçün bunları ədəd bloklarına bağlayın. Akselerometr və əyilmə sensorlarını hərəkət etdirə və Max proqramında ədədlərin dəyişdiyini görə bilməlisiniz.

Addım 6: Maksimum Kodun qalan hissəsini qurun

Max dilinin gücünü nəzərə alaraq, sehrli güc əlcəyinizlə gələn səs siqnalını dəyişdirə biləcəyiniz bütün yollarla təsəvvürünüzün gerçəkləşməsinə icazə verə bilərsiniz. Yenə də fikirləriniz tükənirsə, yuxarıda Max kodumuzun nə etdiyini və necə işlədiyini izah edirik.

Dəyişdirməyə çalışdığınız hər bir parametr üçün, doğru həssaslığı əldə etmək üçün Arduino kodundan gələn dəyərlər aralığını qarışdırmaq istəyəcəksiniz.

Digər Max problemlərini həll etmək üçün bəzi məsləhətlər:

  • Səs eşitmirsinizsə

    • Max -ın mikrofonunuzdan səs qəbul etmək üçün qurulduğundan əmin olun (Seçimlər Səs Vəziyyəti Giriş Cihazı)
    • Max -dakı Master Volume kaydırıcısının və kodunuzda ola biləcək hər hansı digər səs idarəedicisinin açıldığından əmin olun
  • Kod heç bir iş görmürsə

    • yamağınızın kilidli olduğundan əmin olun (sol alt küncdə kilid işarəsi)
    • Max yamasındakı oxunuşlar vasitəsilə Max yamanızın hələ də Arduino serial portundan məlumat aldığını təmin edin. Əks təqdirdə, seriyalı portu sıfırlamağı (5 -ci addımda göstərildiyi kimi) və/və ya fiziki kabel əlaqələrinizi yoxlamağı sınayın.
  • Parametrləri dəyişdirərkən qəribə kəsmə səsləri

    bu ~ tapin və ~ tapoutun necə işləməsi ilə əlaqəli bir şeydir; Xüsusilə dəyərlərini dəyişdirdiyiniz zaman sıfırlanır ki, bu da kəsilməyə səbəb olur. Proqram haqqında məhdud biliklərimizi nəzərə alaraq, bunu Max -da etmək və problemi aradan qaldırmağın daha yaxşı bir yolunun olduğuna əminik …

Addım 7: Hər şeyi bir araya gətirmək

Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək
Hər şeyi bir araya gətirmək

İndi geriyə qalan yalnız dövranımızı əlcəklərimizə bağlamaqdır. Əlavə parçanı götürün və əyilmə sensorlarından bir qədər böyük olan zolaqları kəsin. Əlcək barmağının əyildiyi əlcəyin barmağına əlavə bir parça tikin və əyilmə sensorunun oturması üçün bir növ qol buraxın (barmaqlar əyilərkən əlcək parça uzandığı üçün elastik sensorları birbaşa əlcəyə yapışdıra bilmərik.). Qol əsasən tikildikdən sonra, əyilmə sensörünü içəriyə sürüşdürün və əyilmə hissələrini əlcəkə diqqətlə tikin, bükülmə sensorunu yerində bərkidin. Bunu hər bir əyilmə sensoru üçün təkrarlayın.

Sonra, Hex-i əlcəyin arxasına bağlamaq üçün öz-özünə yapışan təhlükəsizlik pinindən istifadə edin (aşınma zamanı açılmadığından əmin olmaq üçün pin üzərində bir az isti yapışqan çəkmək istəyə bilərsiniz). Akselerometri əlcəyin biləyinə tikin. Nəhayət, çirkin telləri gözəl bir şəkildə təmizləmək üçün bağlama sehrindən istifadə edin.

Ən son mahnı oxuyan güc əlcəyinizi sınamağa hazırsınız! (Səs dəyişdirmə qabiliyyətlərinizi tam şəkildə nümayiş etdirmək üçün Daft Punkun "Daha yaxşı daha sürətli daha güclü" əsərini tövsiyə edə bilərik)

Tövsiyə: