Мазмұны:

Тақиялы техника: Дауысты өзгертетін қолғап: 7 қадам
Тақиялы техника: Дауысты өзгертетін қолғап: 7 қадам

Бейне: Тақиялы техника: Дауысты өзгертетін қолғап: 7 қадам

Бейне: Тақиялы техника: Дауысты өзгертетін қолғап: 7 қадам
Бейне: Жанар Айжанова өзіне келін таба алар ма екен? | Үздік эпизодтар 2024, Шілде
Anonim
Тақиялы техника: Дауысты өзгертетін қолғап
Тақиялы техника: Дауысты өзгертетін қолғап
Тақиялы техника: Дауысты өзгертетін қолғап
Тақиялы техника: Дауысты өзгертетін қолғап

Бұл күндері керемет күші бар қолғаптар ашуланған сияқты. Thanos Infinity Gauntlet өте қуатты қолғап болғанымен, біз одан да керемет нәрсені жасай алатын қолғап жасағымыз келді: нақты уақытта пайдаланушының дауысын өзгерту.

Бұл нұсқаулық біз дауысты өзгертетін қолғапты қалай құрастырғанымызды көрсетеді. Біздің дизайн әр түрлі сенсорлар мен қолғаптағы микроконтроллердің көмегімен қозғалыс анықталды, олар Arduino коды арқылы Max патчына жіберілді, онда біздің дыбыстық сигналымыз көңілді түрде өзгертіліп, бұрмаланды. Біз қолданатын арнайы сенсорлар, қозғалыстар мен дыбыстық өзгерістер әр түрлі ойларға икемді; бұл дауыс өзгертетін қолғап жасаудың бір ғана әдісі!

Бұл жоба Помона колледжінің студенттері мен Фремонт инженерлік феминерлер академиясының серіктестігінің бөлігі болды. Бұл электронды инженерия мен электронды музыка элементтерінің нағыз көңілді қоспасы!

1 -қадам: материалдар

Материалдар
Материалдар
Материалдар
Материалдар
Материалдар
Материалдар

Бөлшектер:

  • HexWear микроконтроллері (ATmega32U4) (https://hexwear.com/)
  • MMA8451 акселерометр (https://www.adafruit.com/product/2019)
  • Қысқа икемді сенсорлар (x4) (https://www.adafruit.com/product/1070)
  • Жеңіл жүгіретін қолғап
  • №2 бұрандалар мен шайбалар (x8)
  • Қысқыш терминал қосқыштары; 22-18 өлшегіш (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • 50 кОм резистор (x4)
  • Сым (~ 20 калибрлі)
  • Өздігінен жабысатын қауіпсіздік түйреуіші
  • Киіз немесе басқа мата (~ 10 шаршы дюйм)
  • Тігін жіп
  • Zipties
  • Ноутбук
  • USB микрофон

Құралдар

  • Дәнекерлеу жиынтығы
  • Сымды тазартқыштар мен сым кескіштер
  • Электрлік таспа
  • Ыстық пистолет
  • Бұрауыш
  • Қайшы
  • Тігін инесі

Бағдарламалық қамтамасыз ету:

  • Максималды велосипедпен жүру '74 (https://cycling74.com)
  • Arduino бағдарламалық жасақтамасы (https://www.arduino.cc/kz/Main/Software)

2 -қадам: Бағдарламалық жасақтаманы орнату

Біз кез -келген жобаның ең қызықты бөлігінен бастауымыз керек: кітапханаларды орнату (және т.б.).

Ардуино:

Arduino бағдарламалық жасақтамасын жүктеңіз және орнатыңыз (https://www.arduino.cc/kz/Main/Software).

HexWear:

1) (тек Windows, Mac пайдаланушылары бұл қадамды өткізіп жібере алады) Драйверді https://www.redgerbera.com/pages/hexwear-driver-installation сайтына кіріп орнатыңыз. Драйверді жүктеңіз және орнатыңыз (байланыстырылған RedGerbera беттің жоғарғы жағында 2 -қадамда көрсетілген.exe файлы).

2) Hexware үшін қажетті кітапхананы орнатыңыз. Arduino IDE ашыңыз. «Файл» астында «Параметрлерді» таңдаңыз. Қосымша тақталар менеджерінің URL мекенжайлары үшін берілген орынға қойыңыз

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

Содан кейін «OK» түймесін басыңыз.

Құралдар -> Тақта: -> Басқару менеджері бөліміне өтіңіз. Жоғарғы сол жақ бұрыштағы мәзірден «Қосылған» тармағын таңдаңыз.

Gerbera тақталарын іздеңіз, содан кейін Орнату түймесін басыңыз. Arduino IDE бағдарламасынан шығып, қайта ашыңыз.

Кітапхананың дұрыс орнатылғанына көз жеткізу үшін Құралдар -> Тақтаға өтіп, мәзірдің төменгі жағына жылжыңыз. Сіз «Gerbera тақталары» деп аталатын бөлімді көруіңіз керек, оның астында кем дегенде HexWear пайда болуы керек (егер мини-HexWear сияқты тақталар болмаса).

Акселерометр:

Акселерометр кітапханасын жүктеңіз және орнатыңыз (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

3 -қадам: акселерометрді бекіту

Акселерометрді бекіту
Акселерометрді бекіту
Акселерометрді бекіту
Акселерометрді бекіту

Бұл жобамен өзара әрекеттесу үшін сенсорлардың екі негізгі түрі қажет: акселерометр және иілгіш сенсорлар. Біз оларды акселерометрден бастап бірте -бірте қарастырамыз. Біріншіден, бізге сәйкес келетін аппараттық қосылымдар қажет.

Hex -ке зақым келтірмеу үшін, біз №2 бұранда мен шайбаны қалаған порттар арқылы салып, содан кейін барлық бұрандаларды осы бұрандаға бекітуді ұсынамыз. Қолғаппен ойнау кезінде ештеңе кетпеуі үшін қосылымдарды дәнекерлеп және/немесе қысу керек. Әр қосылым үшін бірнеше дюймдік сымды қолдана отырып, он алтылықтан акселерометрге келесі қосылымдарды жасаңыз (сілтеме үшін жоғарыдағы түйіндерді қараңыз):

Кіріс кернеуі VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Бәрі дайын болса, біз тестілеуге дайынбыз!

Тексеру ретінде Arduino ішіндегі акселерометр үлгі кодын іске қосыңыз (Файл-> Мысалдар-> Adafruit_MMA8451-> MMA8451demo), ол оның сериялық мониторға шығатынына көз жеткізіңіз. Ол гравитация әсерінен үдеуді (~ 10м/с) z бағытында ұстап тұруы керек. Акселерометрді еңкейту арқылы бұл үдеу x немесе y бағытында өлшенетін болады; біз мұны пайдаланушыға қолын бұру арқылы дыбысты өзгертуіне мүмкіндік беру үшін қолданамыз!

Енді біз акселерометрдің мәліметтерін Max -пен байланыстыратындай етіп көрсетуіміз керек. Ол үшін біз қажет диапазонға сәйкес өзгертілген x және y мәндерін басып шығаруымыз керек (6 -бөлімді қараңыз). Осында бекітілген кодта біз келесі әрекеттерді орындаймыз:

// Теx бағыты мен y бағытын өлшеңіз. Біз MAX дұрыс диапазондарына кіру үшін бөлеміз және көбейтеміз (х -де 1000 диапазоны мен у -да 40 диапазоны) xdir = event.acceleration.x/0.02; ydir = abs (оқиға. жылдамдық.y)*2; // Барлығын Max үшін оқылатын форматта басып шығарыңыз - әр сан арасындағы бос орынмен Serial.print (xdir); Serial.print («»);

Бұл он алтылықта акселерометрдің x және y бағыттарының өзгертілген мәндерін әр жолға басып шығаруы керек. Енді біз икемді сенсорларды қосуға дайынбыз!

4 -қадам: икемді сенсорларды бекіту

Иілгіш сенсорларды бекіту
Иілгіш сенсорларды бекіту
Иілгіш сенсорларды бекіту
Иілгіш сенсорларды бекіту
Иілгіш сенсорларды бекіту
Иілгіш сенсорларды бекіту

Егер біз саусақтардың иілуін анықтай алсақ, онда пайдаланушы дыбысты басқарудың көптеген мүмкіндіктерін ала алады. Иілгіш сенсорлар дәл осылай жасайды. Әрбір иілгіш сенсор негізінен потенциометр болып табылады, онда иілмегенде ~ 25КО кедергісі бар, ал толық иілгенде ~ 100КО. Біз әр икемді сенсорды бірінші суретте көрсетілгендей 50К резисторы бар қарапайым кернеу бөлгішке саламыз.

Тағы да қысқа ұзындықтағы сымды қолданыңыз (мұның бәрі қолғаптың артына бекітілетінін есте сақтаңыз), кернеуді бөлетін төрт модульді дәнекерлеңіз. Төрт модуль бірдей Винді бөліседі және біз сымдардың жалаңаш ұштарын бір-бірімен бұрап аламыз, осылайша бізде дәнекерлеуге бір ғана жетек болады. Ақырында, төрт модульді алып, екінші суретте көрсетілген қосылымдарды жасаңыз (егер біреу мұны қорқынышты шатастырусыз қалай жасау керектігін білсе, құпияларыңызды ашыңыз).

Енді әр сенсордан кернеуді оқу үшін бізге Arduino коды қажет. Біз өз мақсатымыз үшін иілгіш сенсорларды қосқыш ретінде қарастырдық; олар қосылды немесе өшірілді. Осылайша, біздің код кернеудің шекті мәнін осы шектен жоғары қояды, біз Сериялық портқа 1 шығарамыз (сенсор бүгілгенін білдіреді), әйтпесе біз 0 шығамыз:

// Бірнеше алыңыз

аналогтық үлгілерді алыңыз және оларды әр Flex сенсорына қосыңыз

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

sample_count ++;

// Оларды тез қабылдамау үшін қысқа кідіріс

кешіктіру (5);

}

// кернеуді есептеңіз, жылдам үлгілер бойынша орташа есеппен

// 5.0V ADC үшін 5.0 пайдаланыңыз

эталондық кернеу

// 5.015В - калибрленген

эталондық кернеу

кернеу10 = ((өзгермелі) қосынды10 /

(өзгермелі) NUM_SAMPLES * 5.015) / 1024.0;

кернеу9 = ((өзгермелі) қосынды9/

(өзгермелі) NUM_SAMPLES * 5.015) / 1024.0;

кернеу7 = ((өзгермелі) қосынды7 /

(өзгермелі) NUM_SAMPLES * 5.015) / 1024.0;

кернеу11 = ((өзгермелі) қосынды11 /

(өзгермелі) NUM_SAMPLES * 5.015) / 1024.0;

// Әрбір иілгіш сенсордың бар -жоғын тексеріңіз

табалдырықтан жоғары (шекті) - солай болса, санды орнатыңыз

// Пинки саусағы

егер (кернеу10> бастыру)

{

//-5 көтеру

бір октаваға дауыс ырғағы

flex10 = -10;

}

else flex10 = 0;

//Шылдыр шүмек

егер (кернеу9>

(түйме-0,4)) {

// 5 төмен

бір октаваға дауыс ырғағы

flex9 = 5;

}

else flex9 = 0;

//Ортаңғы саусақ

if (кернеу7> астық) {

// 1 орнату

реверб эффектісі

flex7 = 1;

}

else flex7 = 0;

//Сұқ саусақ

егер (кернеу11> бастыру)

{

// 50 орнату

циклдар 50 -ге дейін

flex11 = 93;

}

else flex11 = 0;

// Барлық санауды қалпына келтіріңіз

келесі цикл үшін 0 айнымалы

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

Бұл кезде сериялық порт акселерометр бағдары үшін мәндерді, сондай -ақ әр иілгіш сенсордың бүгілгенін көрсетуі керек. Біз Max -пен Arduino кодымен сөйлесуге дайынбыз!

5 -қадам: Макспен қарым -қатынас жасау

Макспен тілдесу
Макспен тілдесу

Енді он алтылық код сериялық порт арқылы көптеген сандарды шашады, бізге бұл сигналдарды оқу үшін Max бағдарламасы қажет. Жоғарыда көрсетілген код блогы дәл осылай жасайды! Оқасы жоқ.

Маңызды ескерту: кодты Hex -ке жүктегеннен кейін, барлық сериялық порт терезелерін жабыңыз, содан кейін Max кодындағы дөңгелектелген әрпін Hex портына сәйкестендіру үшін өзгертіңіз. Егер сіз қай әріпті қою керектігін білмесеңіз, Max кодының «басып шығару» бөлігін басу барлық қосылған порттарды көрсетеді.

Hex сериялық портынан басып шығарылған жол Max код блогы арқылы оқылады, содан кейін бос орын бөлгіштер негізінде бөлінеді. Max блогының соңындағы шығыс әр санды жеке -жеке алуға мүмкіндік береді, сондықтан біз бірінші шығыс кеңістігін акселерометрдің x бағыты қажет болатын жерге қосамыз, екінші бос орын y бағыты болады. Енді олардың жұмыс істейтініне көз жеткізу үшін оларды нөмірлік блоктарға қосыңыз. Сіз акселерометр мен икемді сенсорларды жылжытуыңыз керек және Max бағдарламалық жасақтамасындағы сандардың өзгеруін көруіңіз керек.

6 -қадам: Макс кодының қалған бөлігін құру

Max тілінің күшін ескере отырып, сіз өзіңіздің қиялыңызды сиқырлы қолғаппен кіретін дыбыстық сигналды өзгертудің барлық тәсілдерімен шынымен де қиялға жібере аласыз. Дегенмен, егер сізде идеялар таусылса, жоғарыда біздің Max коды мен оның қалай жұмыс істейтіні туралы қысқаша ақпарат берілген.

Сіз өзгерткіңіз келетін әрбір параметр үшін дәл сезімталдыққа қол жеткізу үшін Arduino кодынан келетін мәндер ауқымын бұзғыңыз келуі мүмкін.

Max ақаулықтарын жоюдың басқа кеңестері:

  • Егер сіз дыбысты естімесеңіз

    • Max сіздің микрофоныңыздан дыбысты қабылдайтын етіп орнатылғанына көз жеткізіңіз (Audio Status Input Device Options)
    • Max дыбысындағы негізгі дыбыс жүгірткісінің және сіздің кодыңызда болуы мүмкін кез келген басқа дыбыс деңгейін басқару құралдарының қосылғанына көз жеткізіңіз
  • Егер код ештеңе жасамайтын сияқты болса

    • патчтың құлыптаулы екеніне көз жеткізіңіз (құлыптау белгісі сол жақ төменгі бұрышта)
    • Max патчындағы оқулар арқылы сіздің Max патч әлі де Arduino сериялық портынан деректерді алатынына көз жеткізіңіз. Олай болмаса, сериялық портты қалпына келтіріп көріңіз (5 -қадамда көрсетілгендей) және/немесе физикалық сымдар қосылымдарын тексеріңіз.
  • Параметрлерді өзгерткен кезде біртүрлі кесу дыбыстары

    бұл ~ tapin және ~ tapout қалай жұмыс жасайтынымен байланысты нәрсе; атап айтқанда, сіз олардың мәндерін өзгерткенде, олар қалпына келтіріледі, бұл қиюды тудырады. Бағдарлама туралы біздің шектеулі білімімізді ескере отырып, біз Макс -та мұны істеудің және мәселені жоюдың жақсы әдісі бар екеніне сенімдіміз …

7 -қадам: Барлығын біріктіру

Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда
Бәрін бір сөзбен айтқанда

Енді біздің схеманы қолғапқа бекіту ғана қалды. Қосымша матаны алыңыз және иілгіш сенсорларға қарағанда сәл үлкенірек жолақтарды кесіңіз. Қосымша матаны түйін иілген қолғаптың саусағына тігіңіз, иілгіш сенсорға арналған жеңді қалдырыңыз (біз иілгіш сенсорларды тікелей қолғапқа жабыстыра алмаймыз, себебі қолғап матасы саусақтар бүгілгенде созылады)). Гильза негізінен тігілгеннен кейін, иілгіш сенсорды ішке қарай сырғытыңыз және иілгіш сенсорды орнына бекітіп, қолғаптың ұштарын мұқият тігіңіз. Мұны әр икемді сенсор үшін қайталаңыз.

Содан кейін, алтыбұрышты қолғаптың артқы жағына бекіту үшін өздігінен жабысатын бекіткіш түйреуішті қолданыңыз (тозу кезінде оның шешілмейтініне көз жеткізу үшін түйреуішке ыстық желім қою қажет болуы мүмкін). Акселерометрді қолғаптың білегіне тігіңіз. Ақырында, кез келген жағымсыз сымдарды әдемі тазалау үшін ілмек сиқырын қолданыңыз.

Сіз өзіңіздің керемет әнші қолғабыңызды сынауға дайынсыз! (Дауысты өзгерту мүмкіндіктеріңізді толық көрсету үшін Daft Punk-тың «Қаттырақ жақсы тезірек» ұсынамыз)

Ұсынылған: