Mündəricat:
- Addım 1: Materiallar
- Addım 2: Proqramın Qurulması
- Addım 3: Accelerometer -in quraşdırılması
- Addım 4: Flex Sensorların Quraşdırılması
- Addım 5: Max ilə əlaqə qurun
- Addım 6: Maksimum Kodun qalan hissəsini qurun
- Addım 7: Hər şeyi bir araya gətirmək
Video: Geyilə bilən Texnologiya: Səs dəyişdirən əlcək: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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
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ı
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ı
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
İ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
İ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ə:
Spartalı Səs dəyişdirən Dəbilqə: 14 Addım (Şəkillərlə birlikdə)
Spartalı Səs dəyişdirən Dəbilqə: Salam! Sorbonne Universitetinin Politexnik Məktəbindən 4 şagirddən ibarət bir qrupuq: Louis BuchertBilal MelehiBao Tinh PiotMarco LongépéBu layihə tədqiqatlarımızın bir hissəsi olaraq həyata keçirilir və bir çox alətləri ələ keçirmək və nümayiş etdirmək məqsədi daşıyır
[Geyilə bilən Siçan] Windows 10 və Linux üçün Bluetooth əsaslı Geyilə bilən Mouse Controller: 5 Addım
[Geyinilə bilən Siçan] Windows 10 və Linux üçün Bluetooth əsaslı Geyilə bilən Siçan Nəzarətçisi: Siçan göstəricisini idarə etmək və heç bir səthə toxunmadan PC-siçanla əlaqəli əməliyyatları yerinə yetirmək üçün istifadə edilə bilən Bluetooth əsaslı siçan nəzarətçisi hazırladım. Əlcək üzərində quraşdırılmış elektron sxem, h
Geyilə bilən texnologiya: Hava zərb alətləri: 5 addım
Geyilə bilən Texnika: Hava Barabanları: Bu layihə üçün məqsədimiz bəzi akselerometrlərdən və piezo disklərdən geyilə bilən baraban dəsti hazırlamaq idi. Fikir bu idi ki, bir vuruşla bir tələ səsi çalınar; ya da ayağa bir dəfə basıldığında hi-hat və ya bas baraban səsi çalınardı. Nəzarət
Geyilə bilən Səs Reaktiv Ekvalayzer Etek: 21 Adım (Şəkillərlə birlikdə)
Geyilə bilən Səs Reaktiv Ekvalayzer Etek: Bir müddətdir ki, səslə qarşılıqlı təsir göstərən bir parça dizayn etmək istəyirdim. Ekvalayzer Etek, ətrafındakı səs -küy səviyyəsinə reaksiya verən inteqrasiya olunmuş elektronikaya malikdir. İnteqrasiya edilmiş LED-lər, səs-küy aktivliyini vurğulamaq üçün ekvalayzer çubuqları kimi düzülmüşdür
Sihirbaz Əlcək: Arduino Nəzarətçi Əlcək: 4 addım (şəkillərlə)
Sihirbaz Əlcək: Arduino Nəzarətçi Əlcək: Sihirbaz Əlcək. Layihəmdə ən sevdiyiniz sehrli oyunları sərin və təsirli bir şəkildə oynamaq üçün istifadə edə biləcəyiniz bir əlcək düzəltdim. Arduino və arduino. böyük kitablar kimi şeylər oynaya bilərsən və ya sən