Мазмұны:
- 1 -қадам: материалдар
- 2 -қадам: Бағдарламалық жасақтаманы орнату
- 3 -қадам: акселерометрді бекіту
- 4 -қадам: икемді сенсорларды бекіту
- 5 -қадам: Макспен қарым -қатынас жасау
- 6 -қадам: Макс кодының қалған бөлігін құру
- 7 -қадам: Барлығын біріктіру
Бейне: Тақиялы техника: Дауысты өзгертетін қолғап: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл күндері керемет күші бар қолғаптар ашуланған сияқты. 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-тың «Қаттырақ жақсы тезірек» ұсынамыз)
Ұсынылған:
Ыстық орындық: Түсті өзгертетін жылытылатын жастық жасаңыз: 7 қадам (суреттермен)
Ыстық орындық: Түсті өзгертетін жылытылатын жастық жасаңыз: Қыстың суық күндерінде өзіңізді тост ұстағыңыз келе ме? Hot Seat - бұл электронды тоқыманың ең қызықты екі мүмкіндігін - түсінің өзгеруі мен жылуды қолданатын жоба! Біз орындыққа арналған жастық жасайтын боламыз, және ол дайын болған кезде ол ашады
Жарқыраған түсті өзгертетін гитара: 49 қадам (суреттермен)
Жарқыраған түсі өзгеретін гитара: рок-н-ролл патшалығында өзін ерекшелеу маңызды. Бұл әлемде гитарада ойнай алатын миллиондаған адамдар болса, жақсы ойнау оны кесіп тастамайды. Рок құдайы болу үшін сізге қосымша нәрсе қажет. Бұл нұсқаулықты қарастырыңыз
Бетті өзгертетін проекциялы маска - бәрібір: 14 қадам (суреттермен)
Бетті өзгертетін проекциялы маска - бәрібір: Хэллоуинге қандай болғыңыз келетінін шеше алмайтын кезде не істейсіз? Бәрі бол. Проекциялық маска ақ түсті 3D басып шығарылған маскадан, таңқурайдан жасалған пи, кішкентай проектордан және батареядан тұрады. Ол кез келген нәрсені жобалауға қабілетті
Жарықты өзгертетін жобалар: 5 қадам
Жарықты өзгертетін жобалар: Жарықты өзгертетін жобалар - бұл біздің айналамыздағы барлық қосылған құрылғылардан алынған жоба. Көбінесе біз құрылғыға (немесе бірнешеге) назар аудару қажет болғанда, қатты дыбыстық сигналдың өшкенін қаламаймыз. Жарықтар - бұл мәселені шешудің тамаша әдісі
Түсті өзгертетін жалған жүнді шарфты қалай жасауға болады: 11 қадам (суреттермен)
Түсті өзгертетін жалған аң терісін қалай жасауға болады: Түстері өзгеретін светодиоды бар, түсініксіз жарықтандырылған шарфты жасау бойынша бірнеше кеңестер, бұл тігу немесе дәнекерлеу тәжірибесі шектеулі адамдарға қолайлы. Осы RGB светодиодтарының әрқайсысының объективінде өзіндік қызыл түс бар