Мазмуну:

Кийилүүчү техника: Үн өзгөртүүчү колкап: 7 кадам
Кийилүүчү техника: Үн өзгөртүүчү колкап: 7 кадам

Video: Кийилүүчү техника: Үн өзгөртүүчү колкап: 7 кадам

Video: Кийилүүчү техника: Үн өзгөртүүчү колкап: 7 кадам
Video: Создание настоящего мусорного журнала ЧАСТЬ 3 – Голодающая Эмма 2024, Ноябрь
Anonim
Кийилүүчү техника: Үн өзгөртүүчү мээлей
Кийилүүчү техника: Үн өзгөртүүчү мээлей
Кийилүүчү техника: Үн өзгөртүүчү мээлей
Кийилүүчү техника: Үн өзгөртүүчү мээлей

Ооба, бул күндөрдө укмуштуудай күчкө ээ болгон мээлейлер абдан ачууланып жаткандай сезилет. 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 сенсорлорун тиркөө

Flex сенсорлорун тиркөө
Flex сенсорлорун тиркөө
Flex сенсорлорун тиркөө
Flex сенсорлорун тиркөө
Flex сенсорлорун тиркөө
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" сунуштайбыз)

Сунушталууда: