Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Программаны орнотуу
- 3 -кадам: Акселерометрди тиркөө
- 4 -кадам: Flex сенсорлорун тиркөө
- 5 -кадам: Max менен интерфейс
- 6 -кадам: Max Code калганын куруу
- 7 -кадам: Сөзмө -сөз баардыгын бириктирүү
Video: Кийилүүчү техника: Үн өзгөртүүчү колкап: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Ооба, бул күндөрдө укмуштуудай күчкө ээ болгон мээлейлер абдан ачууланып жаткандай сезилет. Thanos 'Infinity Gauntlet абдан күчтүү мээлей болсо да, биз андан да укмуш нерсени кыла турган мээлей кылгыбыз келген: реалдуу убакытта колдонуучунун үнүн өзгөртүү.
Бул Instructable биз үнүн өзгөртүүчү кол капты кантип иштеп чыкканыбызды көрсөтөт. Биздин дизайн ар кандай сенсорлорду жана мээлейдеги микроконтроллерди колдонуп, кыймылдарды аныктоо үчүн Arduino коду аркылуу Max патчына жөнөтүлгөн, анда биздин аудио сигналыбыз кызыктуу жолдор менен өзгөртүлүп, бурмаланган. Биз колдонгон конкреттүү сенсорлор, кыймылдар жана үн өзгөртүүлөрү ар кандай ойлор үчүн ийкемдүү; бул үн өзгөртүүчү мээлейди түзүүнүн бир гана жолу!
Бул долбоор Помона колледжинин студенттери менен Фремонт инженердик феминерлер академиясынын ортосундагы жамааттык өнөктөштүктүн бир бөлүгү болгон. Бул электрондук инженерия менен электрондук музыка элементтеринин чыныгы кызыктуу аралашмасы!
1 -кадам: материалдар
Бөлүктөр:
- HexWear микроконтроллери (ATmega32U4) (https://hexwear.com/)
- MMA8451 акселерометр (https://www.adafruit.com/product/2019)
- Кыска Flex сенсорлору (x4) (https://www.adafruit.com/product/1070)
- Жеңил чуркоочу мээлей
- #2 бурамалар жана шайбалар (x8)
- Crimp терминалдык туташтыргычтары; 22-18 ченегич (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- 50kΩ каршылык (x4)
- Зым (~ 20 ченегич)
- Өз алдынча жабышуучу коопсуздук пини
- Кийиз же башка кездеме (~ 10 чарчы дюйм)
- Тигүү жип
- Zipties
- Ноутбук
- USB микрофону
Куралдар
- Лагердик комплект
- Сым тазалагычтар жана зым кескичтер
- Электр лента
- Ысык пистолет
- Screwdriver
- Кайчы
- Тигүү ийнеси
Программалык камсыздоо:
- Max by Cycling '74 (https://cycling74.com)
- Arduino программалык камсыздоосу (https://www.arduino.cc/en/Main/Software)
2 -кадам: Программаны орнотуу
Биз ар кандай долбоордун эң кызыктуу бөлүгүнөн баштайлы: китепканаларды орнотуу (жана башкалар).
Ардуино:
Жүктөө жана Arduino программасын орнотуу (https://www.arduino.cc/en/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 Boardsту басып, Орнотууну чыкылдатыңыз. Arduino IDEден чыгып, кайра ачыңыз.
Китепкана туура орнотулганын текшерүү үчүн Куралдар -> Тактага өтүңүз жана менюнун ылдыйына жылыңыз. Сиз "Gerbera Boards" аттуу бөлүмдү көрүшүңүз керек, анын астында жок дегенде HexWear пайда болушу керек (эгер мини-HexWear сыяктуу тактайлар болбосо).
Акселерометр:
Акселерометр китепканасын жүктөп алып, орнотуңуз (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
3 -кадам: Акселерометрди тиркөө
Бул долбоор менен иштөө үчүн бизге сенсорлордун эки негизги түрү керек: акселерометр жана ийкемдүү сенсорлор. Биз акселерометрден баштап, аларды бирден карап чыгабыз. Биринчиден, биз шайкеш келүү үчүн аппараттык туташууларга муктажбыз.
Hexке зыян келтирбөө үчүн, биз каалаган порттор аркылуу #2 бураманы жана кир жуугучту салып, андан кийин ошол бурамага бардык туташууларды туташтырууну сунуштайбыз. Мээлей менен ойноп жатканда эч нерсе бошоп кетпеши үчүн, туташууларды ширетүү жана/же бырыштыруу керек. Ар бир туташуу үчүн бир нече дюймдук зымдарды колдонуп, Hexтен акселерометрге төмөнкү байланыштарды жасаңыз (маалымдама үчүн жогорудагы пинуттарды караңыз):
Киргизүү чыңалуусу VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Баары даяр болгондо, биз сыноого даярбыз!
Тест катары, Arduinoдогу акселерометрдин үлгү кодун иштетиңиз (Файл-> Мисалдар-> Adafruit_MMA8451-> MMA8451demo), ал сериялык мониторго чыга алаарына ынануу. Ал денгээлде болгондо z багытында тартылуу (~ 10м/с) ылдамдатуусун чыгарышы керек. Акселерометрди кыйшайтып, бул ылдамдануу x же y багытында өлчөнөт; Биз муну колдонуучунун колун кайрып үнүн өзгөртүүгө уруксат берүү үчүн колдонобуз!
Эми биз акселерометрдин маалыматын Макс менен байланыштыра тургандай кылып беришибиз керек. Бул үчүн биз x жана y маанилерин басып чыгарышыбыз керек, балким каалаган диапазонго дал келүү үчүн өзгөртүлгөн (6 -бөлүктү караңыз). Бул жерде тиркелген кодубузда биз төмөнкүлөрдү кылабыз:
// Thex-багытын жана y-багытын өлчөө. Биз MAX үчүн туура диапазондорго кирүү үчүн бөлөбүз жана көбөйтөбүз (х -жылы 1000 диапазону жана у -жылы 40 диапазону) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // Бардыгын Max үчүн окула турган форматта басып чыгарыңыз - ар бир сандын ортосундагы боштуктар менен Serial.print (xdir); Serial.print ("");
Бул Hex акселерометрдин x жана y багыттарынын өзгөртүлгөн баалуулуктарын ар бир сапка басып чыгарышы керек. Эми биз ийкемдүү сенсорлорду кошууга даярбыз!
4 -кадам: Flex сенсорлорун тиркөө
Эгерде манжалар ийилгенин байкасак, кийүүчү потенциалдуу үндү башкара алат. Ийкемдүү сенсорлор дал ушуну жасашат. Ар бир ийилүүчү сенсор негизинен потенциометр болуп саналат, мында flexlex ~ 25KΩ каршылыкка ээ, ал эми толугу менен ийилген ~ 100KΩ каршылыкка ээ. Биринчи сүрөттө көрсөтүлгөндөй, биз ар бир ийилүү сенсорун 50K каршылыгы бар жөнөкөй чыңалуу бөлүштүргүчкө салабыз.
Дагы кыска узундуктагы зымдарды колдонуп (мунун баары мээлейдин артына туура келерин эстен чыгарбаңыз), төрт чыңалуу бөлүштүрүүчү модулду ширетүү. Төрт модуль ошол эле Винди бөлүшөт жана биз зымдардын сыйрылган учтарын бириктирдик, ошондуктан бизде бир гана коргошун болот. Акыр -аягы, төрт модулду алып, экинчи сүрөттө көрсөтүлгөн байланыштарды түзүңүз (эгерде кимдир бирөө үрөй учурарлык башаламандык кылбастан муну кантип жасоону билсе, сырларыңызды ачыңыз).
Эми, бизге ар бир сенсордон чыңалууда окуу үчүн 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.015V калибрленген
шилтеме чыңалуусу
Voltage10 = ((калкып) сум10 /
(калкып чыгуу) NUM_SAMPLES * 5.015) / 1024.0;
Voltage9 = ((калкып) сум9/
(калкып чыгуу) NUM_SAMPLES * 5.015) / 1024.0;
Voltage7 = ((калкып) сум7 /
(калкып чыгуу) NUM_SAMPLES * 5.015) / 1024.0;
Voltage11 = ((калкып) сум11 /
(калкып чыгуу) NUM_SAMPLES * 5.015) / 1024.0;
// Ар бир ийилүү сенсорун текшериңиз
босогодон чоңураак (бастыруу) - эгер андай болсо, анда санды коюңуз
// Pinkie манжа
эгер (чыңалуу10> бастыруу)
{
//-5 көтөрүү
бир октавага үн үнү
flex10 = -10;
}
else flex10 = 0;
// Шыңгыр манжа
эгер (чыңалуу 9>
(кырман-0.4)) {
// 5 төмөн
бир октавага үн үнү
flex9 = 5;
}
else flex9 = 0;
// Орто манжа
if (Voltage7> Thresh) {
// 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 кодунун "басып чыгаруу" бөлүгүн басуу менен туташкан бардык порттор тизмеленет.
Hexтин сериялык портунан басылган линия Max код блогу аркылуу окулат, андан кийин боштукту бөлгүчтөрдүн негизинде бөлүнөт. Макс блогунун аягындагы чыгаруу ар бир санды жекече кармоого мүмкүндүк берет, андыктан биз биринчи чыгуу мейкиндигин акселерометрдин x багыты каалаган жерге туташтырабыз, экинчи мейкиндик y багыты ж.б. азыр, булардын иштешин камсыз кылуу үчүн аларды сан блокторуна туташтырыңыз. Сиз акселерометрди жана ийкемдүү сенсорлорду жылдырып, Max программасында сандардын өзгөрүшүн көрө алышыңыз керек.
6 -кадам: Max Code калганын куруу
Max тилинин күчүн эске алганда, сиз чындап эле сиздин фантазияңызды сыйкырдуу күч мээлейиңиз менен келген үн сигналын өзгөртүүгө болгон бардык жолдоруңуз менен коё берсеңиз болот. Ошентсе да, эгер сизде идеялар түгөнүп калса, жогоруда биздин Max кодубуздун эмне кылаары жана ал кантип иштээри жөнүндө кыскача маалымат.
Сиз өзгөртүүгө аракет кылып жаткан ар бир параметр үчүн, сиз туура сезимталдыкты алуу үчүн Arduino кодунан келген баалуулуктардын диапазонун бузуп алгыңыз келет.
Башка Max көйгөйлөрдү чечүү боюнча башка кеңештер:
-
Эгер үн угулбаса
- Max микрофонуңуздан аудио алуу үчүн коюлганын текшериңиз (Options Audio Status Input Device)
- Maxтагы Master Volume слайдери күйгүзүлгөнүн жана кодуңузда болушу мүмкүн болгон башка көлөмдү башкарууну текшериңиз
-
Эгерде код эч нерсе кылбаса
- патчыңыздын кулпуланганын текшериңиз (төмөнкү сол бурчта кулпу белгиси)
- Max патчындагы окуулар аркылуу Max патчыңыз дагы эле Arduino сериялык портунан маалыматтарды алып жаткандыгын камсыз кылыңыз. Болбосо, сериялык портту баштапкы абалга келтирүүгө аракет кылыңыз (5 -кадамда көрсөтүлгөндөй) жана/же физикалык зым байланыштарыңызды текшериңиз.
-
Параметрлерди алмаштырууда кызыктай кыркылган үндөр
бул ~ tapin жана ~ tapout кандай иштей турган нерсе; Атап айтканда, сиз алардын баалуулуктарын өзгөрткөнүңүздө, алар баштапкы абалга келет, бул кесүүгө алып келет. Программа боюнча чектүү билимибизди эске алганда, биз муну Maxта кылуунун жана маселени жоюунун жакшы жолу бар экенине ишенебиз …
7 -кадам: Сөзмө -сөз баардыгын бириктирүү
Азыр биздин микротолкундарды мээлейибизге туташтыруу гана калды. Кошумча кездемеңизди алып, ийилгич сенсорлордон бир аз чоңураак тилкелерди кесип алыңыз. Кошумча кездемени мээлейдин манжасына тизе бүгүп, ийилгич сенсорунун бир түрүн калтырып коюңуз (биз ийкемдүү сенсорлорду түз эле мээлейге жабыштыра албайбыз, анткени мээлей кездемеси манжалар ийилгенде созулат). Жең көбүнчө тигилгенден кийин, ийилгич сенсорун ичине салып, мээлейге алып баруучу жерлерди кылдаттык менен тигип, ийкемдүү сенсорду ордуна орнотуңуз. Муну ар бир ийкемдүү сенсор үчүн кайталаңыз.
Андан кийин, Hexти мээлейдин арткы жагына жабыш үчүн өзүн өзү жабыштыруучу коопсуздук пинин колдонуңуз (эскирүү учурунда бошоп кетпеши үчүн, пинге ысык клей салып коюңуз). Акселометрди кол каптын билегине тигип коюңуз. Акыр-аягы, жагымсыз зымдарды сонун тазалоо үчүн сыдырма байламтасын колдонуңуз.
Сиз эң сонун ырдоочу күч мээлейиңизди сыноого даярсыз! (Биз үнүңүздү өзгөртүү мүмкүнчүлүктөрүңүздү толугу менен көрсөтүү үчүн Daft Punkтун "Harder Better Faster Stronger" сунуштайбыз)
Сунушталууда:
Паркинсон оорусуна кийилүүчү техника: 4 кадам
Parkinson Disease Wearable Tech: Дүйнө жүзүндө 10 миллиондон ашуун адам Паркинсон оорусу (PD) менен жашашат. Прогрессивдүү нерв системасынын бузулушу, бул катуулукту пайда кылат жана пациенттин кыймылына таасир этет. Жөнөкөй сөз менен айтканда, көптөгөн адамдар Паркинсон оорусуна чалдыккан, бирок
[Кийилүүчү чычкан] Windows 10 жана Linux үчүн Bluetooth негизделген кийилүүчү чычкан контролери: 5 кадам
[Кийиле турган чычкан] Windows 10 жана Linux үчүн Bluetooth негизделген кийилүүчү чычкан контролери: Мен чычкандын көрсөткүчүн көзөмөлдөө жана PC-чычканга байланышкан операцияларды эч кандай бетке тийбестен аткаруу үчүн колдонула турган Bluetooth негизиндеги чычкан контроллерин жасадым. Мээлейге камтылган электрондук схема, h көз салуу үчүн колдонулушу мүмкүн
Кийилүүчү техника: Аба барабандары: 5 кадам
Wearable Tech: Air Drums: Бул долбоордун максатыбыз кээ бир акселерометрлерден жана пьезо дисктеринен кийилүүчү барабан топтомун жасоо болгон. Ой колго тийгенде, тузак ызы -чуу ойнойт экен; же, бир басууну басканда, салам-шапка же бас барабандын үнү ойнойт. Башкаруу үчүн
Акылдуу колкап компьютер чычкан: 4 кадам (сүрөттөр менен)
Акылдуу колкап компьютер чычкан: Бул " Акылдуу колкап " каалаган компьютер, Mac же Linux компьютери менен колдонула турган компьютердик чычкан. Бул сенсорлорду жана башка компоненттерди компьютериңизге туташтырып, анан көзөмөлдөөгө мүмкүндүк берген Binho Nova көп протоколдуу USB хост адаптеринин жардамы менен жасалган
Миниатюралык кийилүүчү кулпудагы күчөткүч (жана кийилүүчү буюмдар үчүн Sonar системасы, ж.б ..): 7 кадам
Миниатюралык кийилүүчү кулпулоочу күчөткүч (жана Sonar тутуму үчүн ж. жүрөгүңүздү үзгүлтүксүз көзөмөлдөгөн жана адам-машина үйрөнүүнү колдонгон машина