Mundarija:

Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop: 7 qadam
Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop: 7 qadam

Video: Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop: 7 qadam

Video: Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop: 7 qadam
Video: красивая идея прически тюрбан 2024, Iyul
Anonim
Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop
Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop
Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop
Kiyiladigan texnika: Ovozni o'zgartiradigan qo'lqop

Ko'rinib turibdiki, bugungi kunda aql bovar qilmaydigan kuchga ega qo'lqoplar g'azabga o'xshaydi. Thanosning Infinity Gauntleti juda kuchli qo'lqop bo'lsa-da, biz bundan ham ajoyib ishni bajaradigan qo'lqop yasashni xohladik: real vaqtda egasining ovozini o'zgartiring.

Bu ko'rsatma biz ovozni o'zgartiradigan qo'lqopni qanday yaratganimizni ko'rsatib beradi. Bizning dizaynimiz harakatlarni aniqlash uchun qo'lqopdagi turli datchiklar va mikrokontrolderlardan foydalangan, ular Arduino kodi orqali Max patchga yuborilgan, u erda bizning audio signalimiz kulgili tarzda o'zgartirilgan va buzilgan. Biz foydalanadigan aniq sensorlar, harakatlar va tovush o'zgarishlari har xil fikrlar uchun moslashuvchan; bu ovozni o'zgartiradigan qo'lqop yaratishning bir usuli!

Bu loyiha Pomona kolleji talabalari va Fremont muhandislik ayollari akademiyasi o'rtasidagi jamoatchilik hamkorligining bir qismi edi. Bu elektron muhandislik va elektron musiqa elementlarining haqiqiy qiziqarli aralashmasi!

1 -qadam: materiallar

Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar

Qismlar:

  • HexWear mikrokontroller (ATmega32U4) (https://hexwear.com/)
  • MMA8451 akselerometri (https://www.adafruit.com/product/2019)
  • Qisqa moslashuvchan sensorlar (x4) (https://www.adafruit.com/product/1070)
  • Yengil yugurish qo'lqopi
  • #2 vintlar va yuvish mashinalari (x8)
  • Crimp terminali ulagichlari; 22-18 o'lchagich (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • 50 kΩ qarshilik (x4)
  • Tel (~ 20 o'lchagich)
  • O'z-o'zidan yopishqoq xavfsizlik pimi
  • Kigiz yoki boshqa mato (~ 10 kv.)
  • Tikuv ipi
  • Ziptilar
  • Noutbuk
  • USB mikrofon

Asboblar

  • Lehim to'plami
  • Tel -kesgichlar va sim kesgichlar
  • Elektr tasmasi
  • Issiq havo quroli
  • Tornavida
  • Qaychi
  • Tikuv ignasi

Dasturiy ta'minot:

  • Velosipedda "74" bo'yicha Maks (https://cycling74.com)
  • Arduino dasturi (https://www.arduino.cc/en/Main/Software)

2 -qadam: Dasturiy ta'minotni o'rnatish

Biz har qanday loyihaning eng hayajonli qismidan boshlashimiz kerak: kutubxonalarni o'rnatish (va boshqalar).

Arduino:

Arduino dasturini yuklab oling va o'rnating (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (faqat Windows, Mac foydalanuvchilari bu qadamni o'tkazib yuborishi mumkin) https://www.redgerbera.com/pages/hexwear-driver-installation saytiga tashrif buyurib drayverni o'rnating. Drayverni yuklab oling va o'rnating (bog'langan RedGerbera sahifasining yuqori qismida 2 -bosqichda ko'rsatilgan.exe fayli).

2) Hexware uchun kerakli kutubxonani o'rnating. Arduino IDE -ni oching. "Fayl" ostida "Sozlamalar" ni tanlang. Qo'shimcha taxtalar menejeri URL -lari uchun ajratilgan joyga joylashtiring

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

Keyin "OK" ni bosing.

Asboblar -> Kengash: -> Kengash menejeri -ga o'ting. Yuqori chap burchak menyusida "Hissa qo'shildi" -ni tanlang.

Qidiring va Gerbera Boards -ni bosing va O'rnatish -ni bosing. Arduino IDE -ni o'chiring va qayta oching.

Kutubxona to'g'ri o'rnatilganligiga ishonch hosil qilish uchun Asboblar -> Kengash -ga o'ting va menyuning pastki qismiga o'ting. Siz "Gerbera Boards" deb nomlangan bo'limni ko'rishingiz kerak, uning ostida hech bo'lmaganda HexWear paydo bo'lishi kerak (agar mini-HexWear kabi taxtalar bo'lmasa).

Akselerometr:

Akselerometr kutubxonasini yuklab oling va o'rnating (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

3 -qadam: akselerometrni ulash

Akselerometrni ulash
Akselerometrni ulash
Akselerometrni ulash
Akselerometrni ulash

Ushbu loyiha bilan ishlash uchun bizga ikkita asosiy turdagi sensorlar kerak: akselerometr va egiluvchan sensorlar. Biz ularni birma -bir tekshiramiz, akselerometrdan boshlab. Birinchidan, biz mos keladigan uskuna ulanishlariga muhtojmiz.

Hex -ga zarar bermaslik uchun, biz kerakli portlar orqali 2 -sonli vint va kir yuvish mashinasini o'rnatishni, so'ngra barcha vintlarni bu vintga ulashni tavsiya qilamiz. Qo'lqop bilan o'ynayotganda hech narsa bo'shashib ketmasligi uchun ulanishlarni lehim va/yoki burish kerak. Har bir ulanish uchun bir necha dyuymli simdan foydalanib, oltitadan akselerometrgacha quyidagi ulanishlarni amalga oshiring (ma'lumot olish uchun yuqoridagi chiziqlarga qarang):

Kirish voltaji VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Hammasi ulangan bo'lsa, biz sinovga tayyormiz!

Sinov sifatida, Arduino-dagi akselerometr namuna kodini ishga tushiring (Fayl-> Misollar-> Adafruit_MMA8451-> MMA8451demo), u seriyali monitorga chiqishi mumkinligiga ishonch hosil qiling. U tortishish kuchi (~ 10m/s) darajasida ushlab turilganda z yo'nalishda tezlashishi kerak. Akselerometrni burish orqali bu tezlanish x yoki y yo'nalishda o'lchanadi; biz bundan foydalanuvchiga qo'lini aylantirib ovozni o'zgartirishga ruxsat berish uchun foydalanamiz!

Endi biz akselerometr ma'lumotlarini Max bilan aloqa o'rnatadigan tarzda taqdim etishimiz kerak. Buning uchun biz x va y qiymatlarini chop etishimiz kerak, balki kerakli diapazonga mos ravishda o'zgartirilgan bo'lishi kerak (6 -bo'limga qarang). Bu erda biriktirilgan kodimizda biz quyidagilarni bajaramiz:

// Teks yo'nalishi va y yo'nalishini o'lchang. Biz MAX uchun to'g'ri diapazonga kirish uchun bo'linamiz va ko'paytiramiz (x ning 1000 diapazoni va y ning 40 diapazoni) xdir = event.acceleration.x/0.02; ydir = abs (hodisa.tezlanish.y)*2; // Hammasini Max uchun o'qiladigan formatda chop eting - har bir raqam orasidagi bo'shliqlar bilan Serial.print (xdir); Serial.print ("");

Bu Hex -da akselerometrning har bir satrining x va y yo'nalishlarining o'zgartirilgan qiymatlarini bosib chiqarishi kerak. Endi biz moslashuvchan sensorlarni qo'shishga tayyormiz!

4 -qadam: Flex sensorlarini ulash

Moslashuvchan sensorlarni ulash
Moslashuvchan sensorlarni ulash
Moslashuvchan sensorlarni ulash
Moslashuvchan sensorlarni ulash
Moslashuvchan sensorlarni ulash
Moslashuvchan sensorlarni ulash

Agar egilgan barmoqlarni aniqlasak, egasi juda ko'p potentsial ovozni boshqarishi mumkin. Moslashuvchan sensorlar aynan shunday qiladi. Har bir egiluvchan datchik asosan potentsiometr bo'lib, u erda fleksiyalanmagan qarshilik ~ 25KΩ, to'liq egilgan esa ~ 100KΩ qarshilikka ega. Biz birinchi rasmda ko'rsatilgandek, har bir egiluvchan sensorni 50K qarshiligiga ega oddiy kuchlanish bo'linmasiga joylashtiramiz.

Yana juda qisqa uzunlikdagi simlardan foydalangan holda (bularning barchasi qo'lqopning orqa qismiga o'rnatilishini unutmang), to'rtta kuchlanishli bo'lak modulini lehimlang. To'rt modul bir xil Vinni ulashadi va biz simlarning yirtilgan uchlarini bir-biriga bog'lab qo'ydik, shuning uchun bizda faqat bitta lehim bor edi. Nihoyat, to'rtta modulni oling va ikkinchi rasmda ko'rsatilgan ulanishlarni o'rnating (agar kimdir dahshatli chalkashliklarsiz buni qanday qilishni bilsa, iltimos sirlaringizni oshkor qiling).

Endi har bir datchikning kuchlanishini o'qish uchun bizga Arduino kodi kerak. Bizning maqsadlarimiz uchun biz egiluvchan datchiklarni kalit sifatida ko'rib chiqdik; ular yoqilgan yoki o'chirilgan edi. Shunday qilib, bizning kodimiz bu chegaradan yuqori kuchlanish chegarasini o'rnatadi, biz ketma-ket portga 1 (sensor egilganligini bildiramiz), aks holda 0 ni chiqaramiz:

// Bir nechta raqamni oling

analog namunalar va ularni har bir Flex sensori uchun qo'shing

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

namuna_raqami ++;

// Ularni tezda qabul qilmaslik uchun qisqa kechikish

kechikish (5);

}

// kuchlanishni hisoblang, tezkor namunalar bo'yicha o'rtacha

// 5.0V ADC uchun 5.0 dan foydalaning

mos yozuvlar kuchlanishi

// 5.015V kalibrlangan

mos yozuvlar kuchlanishi

kuchlanish10 = ((suzuvchi) sum10 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

kuchlanish9 = ((suzuvchi) sum9/

(float) NUM_SAMPLES * 5.015) / 1024.0;

kuchlanish7 = ((suzuvchi) sum7 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

kuchlanish11 = ((suzuvchi) sum11 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

// Har bir egiluvchan sensorni tekshiring

chegaradan kattaroq (thres) - agar shunday bo'lsa, raqamni o'rnating

// Pinkie barmog'i

agar (kuchlanish10> maydalash)

{

//-5 ko'tarish

ovoz balandligi bitta oktavaga

flex10 = -10;

}

else flex10 = 0;

// Qo'ng'iroq barmog'i

agar (kuchlanish 9>

(boshoq-0,4)) {

// 5 pastga

ovoz balandligi bitta oktavaga

flex9 = 5;

}

else flex9 = 0;

//O'rta barmoq

agar (kuchlanish7> maydalash) {

O'rnatish uchun // 1

reverb effekti

flex7 = 1;

}

else flex7 = 0;

// Ko'rsatkich barmog'i

agar (kuchlanish11> maydalash)

{

// 50 sozlash

tsikllar 50 gacha

flex11 = 93;

}

else flex11 = 0;

// Hamma sanashni tiklash

Keyingi tsikl uchun 0 ga o'zgaruvchi

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

Bu vaqtda ketma -ket port akselerometr yo'nalishi uchun qiymatlarni, shuningdek, har bir egiluvchi sensor egilganligini ko'rsatishi kerak. Biz Max bilan gaplashish uchun Arduino kodini olishga tayyormiz!

5 -qadam: Maks bilan muloqot qilish

Maks bilan muloqot
Maks bilan muloqot

Endi Hex kodi ketma -ket port orqali ko'plab raqamlarni tupuradi, biz bu signallarni o'qish uchun Max dasturiga muhtojmiz. Yuqorida tasvirlangan kod bloki aynan shunday qiladi! Juda xush kelibsiz.

Muhim eslatma: kodni Hex -ga yuklaganingizdan so'ng, barcha ketma -ket port oynalarini yoping, so'ngra Max kodidagi aylana harfni "Hex" portiga mos keladigan qilib o'zgartiring. Agar siz qaysi harfni belgilashni bilmasangiz, Max kodining "chop etish" qismini bosish orqali barcha ulangan portlar ko'rsatiladi.

Hex -ning ketma -ket portidan bosilgan chiziq Max kod bloki orqali o'qiladi va keyin bo'shliq chegarachilariga qarab bo'linadi. Maks blokining oxiridagi chiqish har bir raqamni alohida -alohida olish imkonini beradi, shuning uchun biz birinchi chiqish maydonini akselerometrning x yo'nalishini xohlagan joyga bog'laymiz, ikkinchi bo'shliq y yo'nalishi bo'ladi va hokazo. Endi ular ishlayotganiga ishonch hosil qilish uchun ularni raqam bloklariga ulang. Siz akselerometr va moslashuvchan datchiklarni siljitishingiz va Max dasturiy ta'minotidagi raqamlarning o'zgarishini ko'rishingiz kerak.

6 -qadam: Maks kodining qolgan qismini yaratish

Max tilining kuchini hisobga olgan holda, siz o'zingizning tasavvuringizni sehrli kuch qo'lqopingiz yordamida kiruvchi ovoz signalini o'zgartirishning barcha usullari bilan chindan ham ochib yuborishingiz mumkin. Shunga qaramay, agar sizda g'oyalar tugab qolsa, yuqorida bizning Max kodimiz nima va u qanday ishlashi haqida qisqacha ma'lumot berilgan.

O'zgartirmoqchi bo'lgan har bir parametr uchun, Arduino kodidan keladigan qiymatlar diapazonini chalkashtirib yubormoqchi bo'lishingiz mumkin.

Max bilan bog'liq muammolarni bartaraf etish bo'yicha boshqa maslahatlar:

  • Agar siz ovoz eshitmasangiz

    • Maks mikrofondan ovoz qabul qilish uchun sozlanganligiga ishonch hosil qiling (Ovoz holatini kiritish qurilmasi parametrlari)
    • Max -dagi asosiy ovoz balandligi slayderini va sizning kodingizda bo'lishi mumkin bo'lgan boshqa ovozni boshqarish moslamalari yoqilganligiga ishonch hosil qiling
  • Agar kod hech narsa qilmasa
    • yamoq qulflanganligiga ishonch hosil qiling (chap pastki burchakda qulf belgisi)
    • Max yamog'idagi o'qishlar orqali Max patchingiz hali ham Arduino seriyali portidan ma'lumot olishini ta'minlang. Agar yo'q bo'lsa, ketma -ket portni (5 -bosqichda ko'rsatilganidek) qayta o'rnatishga va/yoki jismoniy simli ulanishlarni tekshirishga harakat qiling.
  • Parametrlarni o'zgartirganda g'alati qirqish tovushlari

    bu ~ tapin va ~ tapout qanday ishlashi bilan bog'liq narsa; Ayniqsa, siz ularning qiymatlarini o'zgartirganda, ular qayta tiklanadi, bu esa kesishga olib keladi. Dastur haqida ma'lumotimiz cheklanganligini hisobga olsak, biz buni Maksda qilish va muammoni bartaraf etishning yaxshiroq yo'li borligiga aminmiz …

7 -qadam: Hammasini bir joyga to'plash

Hamma narsani so'zma -so'z aytganda
Hamma narsani so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda
Hammasini so'zma -so'z aytganda

Qolgan narsa - bizning qo'lqopimizga elektr sxemasini ulash. Qo'shimcha matoni oling va egiluvchi datchiklardan biroz kattaroq chiziqlarni kesib oling. Qo'shimcha matoni qo'lqop barmog'iga tikib qo'ying, bunda egiluvchi sensori o'tirishi uchun qandaydir yengni qoldiring (biz egiluvchan sensorlarni qo'lqopga yopishtira olmaymiz, chunki qo'llar matosi cho'zilganda qo'lqop matosi cho'ziladi)). Qopqoq asosan tikilganidan so'ng, egiluvchan sensorni ichkariga suring va qo'lqopning uchlarini ehtiyotkorlik bilan tikib, egiluvchan sensorni joyiga mahkamlang. Buni har bir egiluvchan sensor uchun takrorlang.

Keyin, qo'lqopning orqa qismiga "olti burchak" ni yopishtirish uchun o'z-o'zidan yopishqoq xavfsizlik pinini ishlating (kiyish paytida yechilmasligiga ishonch hosil qilish uchun pinga issiq elim surtishingiz mumkin). Qo'lqop bilagiga akselerometrni tikib qo'ying. Nihoyat, har qanday yoqimsiz simlarni chiroyli tozalash uchun, fermuar bog'ichining sehridan foydalaning.

Siz qo'shiq aytadigan kuch qo'lqopingizni sinovdan o'tkazishga tayyormiz! (Ovozni o'zgartirish qobiliyatini to'liq ko'rsatish uchun Daft Punkning "Qattiqroq yaxshiroq tezroq" ni tavsiya qilishimiz mumkin)

Tavsiya: