Агуулгын хүснэгт:

Зүүж болох техник: Дуу хоолойг өөрчлөх бээлий: 7 алхам
Зүүж болох техник: Дуу хоолойг өөрчлөх бээлий: 7 алхам

Видео: Зүүж болох техник: Дуу хоолойг өөрчлөх бээлий: 7 алхам

Видео: Зүүж болох техник: Дуу хоолойг өөрчлөх бээлий: 7 алхам
Видео: Как сделать стяжку с шумоизоляцией в квартире. #18 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)
  • 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 хавтгай дөрвөлжин)
  • Оёдлын утас
  • Зипти
  • Зөөврийн компьютер
  • USB микрофон

Багаж хэрэгсэл

  • Гагнуурын хэрэгсэл
  • Утас хуулагч болон утас таслагч
  • Цахилгаан соронзон хальс
  • Халуун агаарын буу
  • Халив
  • Хайч
  • Оёдлын зүү

Програм хангамж:

  • 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" дээр дарна уу.

Tools -> Board: -> Board Manager руу очно уу. Зүүн дээд булангийн цэснээс "Хувь нэмэр оруулсан" -г сонгоно уу.

Хайлт хийж, дараа нь Gerbera Boards дээр дарж, Install дээр дарна уу. Arduino IDE -г орхиж, дахин нээнэ үү.

Номын санг зөв суулгасан эсэхийг шалгахын тулд Tools -> Board руу очоод цэсийн доод хэсэгт гүйлгэнэ үү. Та "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 (File-> Examples-> Adafruit_MMA8451-> MMA8451demo) дээрх акселерометрийн дээжийн кодыг ажиллуулаад үүнийг Serial monitor-д гаргах боломжтой эсэхийг шалгаарай. Энэ нь хүндийн хүчний (~ 10m/s) түвшинг барьж байх үед z чиглэлд хурдатгал гаргах ёстой. Акселерометрийг хазайлгаснаар энэхүү хурдатгалыг x эсвэл y чиглэлд хэмжих болно; Бид үүнийг ашиглан эзэмшигч гараа эргүүлж дуугаа өөрчлөх боломжтой болно.

Одоо бид акселерометрийн өгөгдлийг Макстай холбогдож болохуйц байдлаар танилцуулах хэрэгтэй. Үүнийг хийхийн тулд бид x ба y -ийн утгыг хэвлэх ёстой, магадгүй хүссэн мужид тааруулан өөрчилсөн байх ёстой (6 -р хэсгийг үзнэ үү). Энд хавсаргасан кодондоо бид дараах зүйлийг хийдэг.

// Текс ба у чиглэлийг хэмжих. Бид хувааж, үржүүлж MAX -ийн зөв мужид орох болно (x -ийн 1000 -ийн хүрээ, y -ийн 40 -ийн хүрээ) xdir = event.acceleration.x/0.02; ydir = abs (үйл явдал.хурдац.y)*2; // Бүгдийг Max -д зориулж унших боломжтой хэлбэрээр хэвлэх - тоо бүрийн хоорондох зайг Serial.print (xdir); Serial.print ("");

Энэ нь зурвас бүрт акселерометрийн x ба y чиглэлүүдийн өөрчлөгдсөн утгыг Hex хэвлэх ёстой. Одоо бид уян хатан мэдрэгчийг нэмэхэд бэлэн боллоо!

Алхам 4: Уян хатан мэдрэгчийг холбох

Уян хатан мэдрэгчийг холбох
Уян хатан мэдрэгчийг холбох
Уян хатан мэдрэгчийг холбох
Уян хатан мэдрэгчийг холбох
Уян хатан мэдрэгчийг холбох
Уян хатан мэдрэгчийг холбох

Хэрэв бид хуруугаа нугалж байгааг илрүүлж чадвал эзэмшигч нь олон тооны дууны хяналтыг авах боломжтой. Уян хатан мэдрэгч нь үүнийг хийх болно. Уян мэдрэгч бүр нь үндсэндээ потенциометр бөгөөд уян хатан бус нь ~ 25КОм, бүрэн уян хатан нь ~ 100КО эсэргүүцэлтэй байдаг. Эхний зураг дээр үзүүлсэн шиг бид уян мэдрэгч бүрийг 50К эсэргүүцэлтэй энгийн хүчдэл хуваагуурт хийнэ.

Дахин хэлэхэд маш богино урттай утас ашиглана (энэ нь бээлийний ард бэхлэгдэх болно гэдгийг санаарай), дөрвөн хүчдэл хуваагч модулийг гагнана. Дөрвөн модуль нь ижил Вин-ийг хуваалцах бөгөөд бид утаснуудын хайчилж авсан үзүүрүүдийг хооронд нь мушгих тул гагнуур руу ганцхан хар тугалга авах болно. Эцэст нь дөрвөн модулийг аваад хоёр дахь зурагт үзүүлсэн холболтуудыг хий (хэрвээ хэн нэгэн аймшигтай орооцолдохгүйгээр хэрхэн яаж хийхийг мэддэг бол өөрийн нууцыг дэлгэнэ үү).

Одоо мэдрэгч бүрээс хүчдэлийг уншихын тулд бидэнд Arduino код хэрэгтэй байна. Бидний зорилгын үүднээс уян мэдрэгчийг унтраалга гэж үзсэн; тэд асаалттай эсвэл унтраалттай байсан. Ийм учраас манай код нь хүчдэлийн босгыг энэ босгоос дээш тогтоож, бид цуваа порт руу 1 гаргадаг (мэдрэгч нугалсан гэсэн үг), эс тэгвээс бид 0 гаргадаг.

// Хэд хэдэн аваарай

аналог дээжийг авч, тэдгээрийг Flex мэдрэгч бүрт нэмж оруулаарай

байхад (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 нь шалгалт тохируулгатай байна

лавлах хүчдэл

хүчдэл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;

// Уян мэдрэгч бүр байгаа эсэхийг шалгаарай

босго (босго) -аас их байна - хэрэв тийм бол тоог тохируулна уу

// Pinkie хуруу

хэрэв (хүчдэл10> үтрэм)

{

//-5 өсгөх

дуу хоолойны нэг октав

flex10 = -10;

}

өөр flex10 = 0;

// Бөгжний хуруу

хэрэв (хүчдэл9>

(босго-0.4)) {

// 5 хүртэл доошлуулна

нэг октаваар дууны давтамж

flex9 = 5;

}

өөр flex9 = 0;

//Дунд хуруу

if (хүчдэл7> тээрэмдэх) {

// 1 тохируулах

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

flex7 = 1;

}

өөр flex7 = 0;

//Долоовор хуруу

хэрэв (хүчдэл11> гурил)

{

// тохируулахын тулд 50

мөчлөг 50 хүртэл

flex11 = 93;

}

өөр flex11 = 0;

// Бүх тооллогыг дахин тохируулна уу

Дараагийн давталтын хувьд хувьсагчийг 0 болгоно

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

Энэ үед цуваа порт нь акселерометрийн чиглэл, мөн уян мэдрэгч бүр нугалсан эсэхийг харуулах ёстой. Бид Max -тай Arduino кодоо авахад бэлэн байна!

Алхам 5: Макс -тай харилцах

Макстай харилцаж байна
Макстай харилцаж байна

Hex код нь цуваа портоор маш олон тооны нулимж байгаа тул эдгээр дохиог уншихын тулд бидэнд Max програм хангамж хэрэгтэй болно. Дээрх зураг дээрх кодын блок яг үүнийг хийдэг! Та бүхнийг урьж байна.

Анхаарах зүйл: кодыг Hex -д байршуулсны дараа бүх цуваа портын цонхнуудыг хааж, дараа нь Max кодын дугуйлсан үсгийг Hex порт руу тааруулан өөрчилнө үү. Хэрэв та ямар үсэг оруулахаа мэдэхгүй байгаа бол Max кодын "хэвлэх" хэсгийг дарахад холбогдсон бүх портуудыг жагсаах болно.

Hex -ийн цуваа портоос хэвлэсэн мөрийг Max кодын блокоор уншиж, дараа нь орон зайг тусгаарлагч дээр үндэслэн хуваана. Макс блокийн төгсгөл дэх гаралт нь тоо тус бүрийг тус тусад нь авах боломжийг олгодог тул бид анхны гаралтын зайг акселерометрийн x чиглэлийг хүссэн газар руу нь холбох болно, хоёр дахь зай нь y чиглэл гэх мэт байх болно. одоо ажиллаж байгаа эсэхийг нь шалгахын тулд эдгээрийг тооны блоктой холбоно уу. Та акселерометр, уян мэдрэгчийг хөдөлгөж, Max програм хангамжийн тоонуудын өөрчлөлтийг харах боломжтой байх ёстой.

Алхам 6: Макс кодын үлдсэн хэсгийг бий болгох

Макс хэлний хүч чадлыг харгалзан та өөрийн ид шидийн бээлий ашиглан ирж буй дууны дохиог өөрчилж болох бүх арга замаар энд өөрийн төсөөллийг гайхалтай болгож чадна. Гэсэн хэдий ч хэрэв танд санаа дутагдаж байвал манай Max код юу хийдэг, хэрхэн ажилладаг талаар тоймлон харуулав.

Өөрчлөх гэж буй параметр бүрийн хувьд та зөв мэдрэмжийг олж авахын тулд Arduino кодоос ирж буй утгын хүрээг өөрчлөх хэрэгтэй болно.

Max -ийн алдааг олж засварлах бусад зөвлөмжүүд:

  • Хэрэв та дуу сонсохгүй бол

    • Макс таны микрофоноос аудио хүлээн авахаар тохируулагдсан эсэхийг шалгаарай (Аудио статус оруулах төхөөрөмж)
    • Max дахь Master Volume гулсагч болон таны кодонд байгаа бусад дууны хяналтыг асаасан эсэхийг шалгаарай
  • Хэрэв код юу ч хийхгүй байгаа юм шиг санагдаж байвал

    • нөхөөс түгжигдсэн эсэхийг шалгаарай (зүүн доод буланд түгжих тэмдэг)
    • Max нөхөөсийг уншсанаар дамжуулан таны Max нөхөөс Arduino цуваа портоос мэдээлэл авч байгаа эсэхийг шалгаарай. Үгүй бол цуваа портыг дахин тохируулах (5 -р алхамд дурдсанчлан) ба/эсвэл физик утсан холболтоо шалгаж үзээрэй.
  • Параметрүүдийг өөрчлөх үед хайчилбарын хачин чимээ гардаг

    энэ нь ~ tapin болон ~ tapout хэрхэн ажилладагтай холбоотой зүйл юм; Ялангуяа та тэдний утгыг өөрчлөхөд тэд дахин тохируулдаг бөгөөд энэ нь хайчилбарыг үүсгэдэг. Хөтөлбөрийн талаархи мэдлэг хязгаарлагдмал байгаа тул үүнийг Макс дээр хийж, асуудлыг арилгах илүү сайн арга байгаа гэдэгт бид итгэлтэй байна …

Алхам 7: Бүгдийг шууд утгаар нь нэгтгэх

Шууд утгаар нь бүгдийг нь нэгтгэж байна
Шууд утгаар нь бүгдийг нь нэгтгэж байна
Шууд утгаар нь бүгдийг нэгтгэж байна
Шууд утгаар нь бүгдийг нэгтгэж байна
Шууд утгаар нь бүгдийг нь нэгтгэж байна
Шууд утгаар нь бүгдийг нь нэгтгэж байна
Шууд утгаар нь бүгдийг нэгтгэж байна
Шууд утгаар нь бүгдийг нэгтгэж байна

Одоо зөвхөн хэлхээгээ бээлийтэйгээ холбох л үлдлээ. Нэмэлт даавуугаа аваад уян мэдрэгчээс арай том хэмжээтэй тууз хайчилж ав. Нэмэлт даавууг зангилаа нугалж буй бээлийний хуруун дээр оёж, уян мэдрэгчийг суулгаж өгөх ханцуйвчийг үлдээгээрэй (хуруугаа нугалахад бээлийний даавуу сунах тул бид уян мэдрэгчийг шууд бээлий дээр нааж болохгүй.). Ханцуйвчийг ихэвчлэн оёж дууссаны дараа уян мэдрэгчийг шургуулж, бээлий рүү чиглүүлэгчийг сайтар оёж, уян мэдрэгчийг бэхлээрэй. Үүнийг уян хатан мэдрэгч бүрийн хувьд давтана.

Дараа нь Hex-ийг бээлийний ард бэхлэхийн тулд өөрөө наалддаг хамгаалалтын зүү ашиглаарай (өмсөх явцад буцааж тайлахгүйн тулд зүү дээр халуун цавуу түрхэж болно). Хурдасгуурыг бээлийний бугуйнд оё. Эцэст нь цахилгаан товчны ид шидийг ашиглан үзэмжгүй утсыг сайхан цэвэрлээрэй.

Та дууныхаа хүч чадлын бээлийг туршиж үзэхэд бэлэн байна! (Дуу хоолойгоо өөрчлөх чадвараа бүрэн харуулахын тулд Daft Punk-ийн "Harder Better Faster Stronger" дууг танд зөвлөж байна.)

Зөвлөмж болгож буй: