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

Arduino MIDI хянагчийг бүтээх: 9 алхам (зурагтай)
Arduino MIDI хянагчийг бүтээх: 9 алхам (зурагтай)

Видео: Arduino MIDI хянагчийг бүтээх: 9 алхам (зурагтай)

Видео: Arduino MIDI хянагчийг бүтээх: 9 алхам (зурагтай)
Видео: Настройка 3D-принтера с помощью MKS sGen L v1.0 2024, Арванхоёрдугаар сар
Anonim

Энэхүү зааварчилгааг анх 2020 оны 6 -р сарын 28 -нд миний блог дээр нийтэлсэн болно

Би электрон бараа агуулсан зүйлийг бүтээх дуртай бөгөөд үргэлж Arduino ашиглан ямар нэгэн зүйл бүтээхийг хүсдэг байсан.

Миний олж мэдсэн эхлэгчдэд зориулсан хамгийн түгээмэл бүтээн байгуулалтын нэг бол MIDI хянагч юм. MIDI хянагч нь MIDI өгөгдлийг (Хөгжмийн хэрэгслийн дижитал интерфэйс) дуу чимээ, хөгжим гаргах төхөөрөмж рүү илгээдэг аливаа тоног төхөөрөмж юм.

Олон хэрэгжүүлэлтүүд нь бүр эхлэгчдэд ч гэсэн төвөгтэй байдаг гэдгийг би олж мэдсэн. Уншаагүй хэдэн зуун мөр ашиглах шаардлагатай байгааг олж мэдээд маш их урам хугарсан. Эсвэл би зарим тохиолдолд резисторыг гагнах хэрэгтэй болдог.

Төсөл

Би өөрийн Arduino MIDI хянагчийг бүтээснээр дуу чимээг хамгийн бага түвшинд байлгахын тулд тааламжтай төсөл хийх зорилготой байсан. Аливаа эхлэгч хүн дагаж мөрдөх боломжтой зүйл. Үүнийг хийхийн тулд би MIDI Fighter 3D-ийг үндсэн урам зориг болгон ашиглаж, чухал биш бүх онцлог шинж чанаруудыг арилгасан.

Миний төслийн нийт өртөг 30 доллараас бага байсан бөгөөд материалын жагсаалт үнэхээр богино байсан (түншлэлийн линкүүд):

  • Ардуино Леонардо (эсвэл клон): 10-20 долларын хооронд.
  • 16 x Sanwa товчлуур 24мм (эсвэл клон): нэг товчлуурт 1 доллараас 2.50 долларын хооронд.
  • Гагнуурын төмөр
  • 22 AWG Цахилгааны утас

Arduino самбар

Би энэ төслийг эхлүүлж байхдаа Arduino -ийн олон шинэ загварууд (хэдэн зуун нийцтэй самбарыг оруулаагүй) байгааг олж мэдэв. Мөн тэд бүгд арай өөр боломжуудыг санал болгодог.

Би MIDI дохиог компьютер руу илгээх шаардлагатай байсан бөгөөд үүнийг хийх хамгийн хялбар арга бол USB юм. ATmega32u4 микроконтроллер дээр суурилсан аливаа Arduino самбар нь USB холболттой байдаг.

Албан ёсны USB дэмжлэгтэй Arduino -ийн албан ёсны самбар бол Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro юм. Эдгээр самбарууд нь нэгдсэн USB дэмжлэгтэй бөгөөд энэ нь USB MIDI төхөөрөмж болж ажиллах боломжтой гэсэн үг юм.

Би Ардуино Леонардогийн клонтой хамт явахаар шийдсэн. Энэ нь энэ төсөлд хангалттай оролттой бөгөөд толгойнуудыг агуулдаг бөгөөд энэ нь утсыг залгах/салгахад хялбар болгодог.

Эхний алхамууд

Би энэ төслийн кодыг хэрхэн хэрэгжүүлснийг алхам алхамаар тайлбарлах боловч та эцсийн хувилбарыг татаж авч болно.

Самбар дээр код оруулахын тулд та Arduino IDE ашиглах хэрэгтэй. Тэд бас маш хэрэгтэй вэб редактортой боловч өдөрт кодоо хязгаарлах квоттой байдаг.

Алхам 1: Баригдсан LED анивчих

Техник хангамжийн ертөнцөд "Hello World" LED хэрхэн анивчиж байгаа нь инээдтэй юм.

Ардуино Леонардо нь өөрийн кодоо шалгахын тулд анивчих боломжтой LED-тэй болохыг олж мэдсэн нь миний хувьд гэнэтийн бэлэг байлаа. Ингэснээр та LED ба резистор бүхий талхны самбар дээр гадаад хэлхээ хийх шаардлагагүй болно.

Код:

Алхам 2: Гарын авлага дээр LED анивчих

Дараагийн логик алхам бол би дохио илгээх бүрт ижил LED анивчих явдал байв. Би 2 Дюпон утасны нэг үзүүрийн хуванцар тагийг салгаад нөгөө үзүүрийг самбартай холбосон.

  • Зүү дугаар 2: Тоон оролтын нэг (эерэг). Энэ нь ямар ч дижитал зүү байж болно.
  • Pin GND: Аливаа газрын зүү (сөрөг).

Одоо би утаснуудын ил гарсан үзүүрт холбогдох бүрдээ хэлхээг хааж, улмаар кодоо ажиллуулж чадна

Леонардо дээрх 20 дижитал тээглүүр бүр нь дотоод эсэргүүцэлтэй (анхдагчаар салгагдсан) бөгөөд үүнийг INPUT_PULLUP ашиглан идэвхжүүлж болно. Татах оролт нь товчлуурын төлөв урвуу байна гэсэн үг гэдгийг санаарай.

  • Хэлхээ нээлттэй байх үед (товчлуур дарагдаагүй) өндөр.
  • Хэлхээг хаах үед LOW (товчлуур дарагдсан).

Код:

Алхам 3: MIDIUSB номын санг суулгах

Энэхүү номын сан нь USB чадвартай Arduino самбарыг USB -ээр MIDI хэрэгсэл болгон ашиглах боломжийг олгодог. Дэлгэрэнгүй мэдээллийг албан ёсны баримт бичгээс шалгана уу.

Arduino IDE ашиглан номын сангийн менежерийг ашиглан нэмэлт Arduino номын санг суулгах боломжтой.

  1. IDE -ийг нээгээд "Ноорог" цэс, "Номын санг оруулах", "Номын санг удирдах" дээр дарна уу.
  2. MIDIUSB -ийг хайж олоод Install дээр дарна уу.
  3. Үүнийг дуусгасны дараа MIDIUSB номын сангийн хажууд суулгасан таг гарч ирэх ёстой.
  4. Номын сангийн менежерийг хаах.

Одоо Леонардо MIDI мессежийг USB -ээр илгээх боломжтой боллоо! Гэхдээ эхлээд MIDI хэрхэн ажилладаг талаар зарим ойлголт хэрэгтэй байна.

MIDI хэрхэн ажилладаг

"MIDI (Musical Instrument Digital Interface) нь электрон хөгжмийн зэмсэг, компьютер, хөгжим тоглоход зориулагдсан холбогдох аудио төхөөрөмжүүдийг холбодог стандарт холбооны протокол юм." - Википедиа

Энэ нь үйл ажиллагааны мессежийг тоглуулах тэмдэглэл, давтамжийн өгөгдөл, бусад зааврын дагуу зохицуулдаг

Энэхүү тодорхой төсөлд 16 товчлуураас оруулсан оролт нь USB -ээр өөр өөр мессеж илгээдэг. Эдгээр мессежийг GarageBand эсвэл Ableton Live гэх мэт тохиромжтой програм хангамж ашиглан компьютер дээр дуу болгон хөрвүүлэх боломжтой.

MIDI мессежийн анатоми

MIDI мессеж илгээхийн тулд би 3 -р алхам дээр суулгасан MIDIUSB номын сангаас sendMIDI () аргыг ашигласан.

Энэ арга нь 4 параметрийг хүлээн авах боломжтой.

  • Үйл явдлын төрөл: Энэ нь On (тэмдэглэл тоглуулах) тэмдэглэлийн хувьд 0x09 эсвэл Унтраах тэмдэглэлийн хувьд 0x08 байж болно (тэмдэглэл тоглуулахаа болих).
  • Тэмдэглэл асаах/унтраах: Үйл явдлын төрөл MIDI сувагтай хослуулсан (1-16). Би зөвхөн 1 -р сувгийг ашигладаг тул On тэмдэглэлийн хувьд 0x90, унтраах тэмдэглэлийн хувьд 0x80 байна.
  • Тэмдэглэлийн дугаар: Тэмдэглэл бүр холбогдох тоон давтамжтай (давтамжийн хуваарь) байдаг.
  • Хурд: 0 -ээс (хурдгүй) 127 хүртэл (хамгийн хурдан).

Алхам 4: MIDI мессеж илгээх

Би MIDIUSB номын санг багтаасан бөгөөд суурилуулсан LED-ийг анивчихын оронд би тэмдэглэл илгээсэн.

Код:

Ant Чухал: Энэ үеэс эхлэн Arduino нь MIDI USB хянагч болж, USB -ээр код хүлээн авахаа болино.

Хэрэв та Arduino програмчлагдахаа больсон байрлалд гацсан бол дараах алхмуудыг дагана уу

  1. Arduino самбар дээрх дугуй хэлбэртэй дахин тохируулах товчийг дарна уу.
  2. Arduino IDE дээр Upload дээр дарна уу.
  3. Дахин тохируулах товчийг суллана уу.
  4. Шинэчилсэн кодыг самбар дээр байршуулах болно.

Алхам 5: Товчлуур бүрээс MIDI мессеж илгээх

Товчлуур бүрээс MIDI мессеж илгээж байна
Товчлуур бүрээс MIDI мессеж илгээж байна

Эцсийн алхам бол алхам бүрийг товчлуур дээр буулгах явдал байв. 16 товчлуурын хувьд би C2 -ээс E3b хүртэлх масштабыг тодорхойлсон бөгөөд энэ нь 36 -аас 51 хүртэлх давирхайг доороос дээш, зүүнээс баруун тийш дараалан байрлуулсан болно. Тэмдэглэл бүрт ямар давтамж нийцэж байгааг олж мэдэхийн тулд Arduino хичээлүүдээс энэ файлыг үзээрэй.

Би 2 -оос 12 хүртэлх дижитал тээглүүр, А0 -аас А4 хүртэлх аналог тээглүүр (тэдгээрийг тоон болгон ашигладаг) ашигласан.

Эцсийн код нь иймэрхүү харагдаж байна

Алхам 6: Суваг эсвэл банк тохируулах (заавал биш)

Суваг эсвэл банк байгуулах (заавал биш)
Суваг эсвэл банк байгуулах (заавал биш)

Хэрэв та MIDI Fighter 3D (зураг харна уу) шиг суваг эсвэл банк солих чадвартай илүү олон товчлуур нэмж оруулахыг хүсч байвал Arduino Leonardo -д өөр дөрвөн зүү ашиглаж болно. Arduino Leonardo нь дижитал оролт/гаралтын 20 тээглүүртэй бөгөөд үүнээс ердөө 16 нь тэмдэглэл тоглуулахад ашиглагддаг.

Та эдгээр нэмэлт товчлууруудыг ашиглан кодын хувьсагчийг шинэчилж, түүний утгыг MidiUSB.sendMIDI аргад параметр болгон илгээж болно.

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Алхам 7: Кейс

Тохиолдол
Тохиолдол
Тохиолдол
Тохиолдол

Энэ төслийг энгийн байлгахын тулд би ямар онцлог шинж чанаруудыг багтаахыг сонгохдоо маш их сонгомол байсан.

  • Зөвхөн товчлуурууд: 4х4 хэмжээтэй, Санва хэлбэртэй 16 аркад товчлуур. Ямар ч товчлуур, гулсагч, бүдгэрүүлэгч, бусад аналог оролт байхгүй.
  • Unibody case: Arduino хавтанг барихын тулд шураг, самар, боолт, цавуу бүү ашигла.
  • Өдөр тутмын хэрэгслүүд: Жишээлбэл, би аркад товчлуур хийх тусгай утас хайч худалдаж авахын оронд утсыг гагнасан.

Unibody дизайн

Надад тулгарсан бэрхшээлүүдийн нэг бол угсрах шаардлагагүй, нэг удаагийн гүйлгээнд 3 хэмжээст хэвлэх боломжтой энгийн загвар хийх явдал байв.

Шураг эсвэл цавуу хэрэглэхээс зайлсхийхийн тулд би электрон төхөөрөмжид хамгийн бага нэвтрэх боломжтой хашлага зохион бүтээх шаардлагатай болсон. Миний хашаа барих хамгийн том урам зориг нь доод талд нь дугуй хэлбэртэй нүхтэй Mac Mini байсан. Би үүнд зориулж боолттой таг зохион бүтээхийг хүсч байсан боловч электроникийг ил гаргахын тулд үүнийг онгойлгохоор шийдсэн.

3d хэвлэх хайрцгийг татаж авах (322 KB). Санал болгож буй тохиргоо: PLA, 0.15 мм -ийн давхаргууд, 20% дүүргэгч, доод тал нь бөөрөнхий нүх, Arduino эзэмшигчид болон микро USB -ийг дэмждэг.

Шураггүй Arduino барьж байна

Леонардо нь самбарыг ямар ч тохиромжтой хайрцагт шургуулах 4 нүхтэй боловч миний санаа бол самбарыг хайрцганд нэмж оруулах, гаргахад хялбар болгох явдал байв.

Thingiverse дээр Arduino -ийн клип эзэмшигчийг олоход хялбар байсан бөгөөд тэр эзэмшигчийг нэг бүрчлэн зохион бүтээхэд 5 удаа давтах шаардлагатай болсон. Хамгийн хэцүү зүйл бол товчлууруудын нүхнээс зайлсхийхийн тулд хөлөө хийх, микро USB -ийг хайрцагт төвд байрлуулах явдал байв.

Алхам 8: Чуулган

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Бүх товчлуурыг байрлуулсны дараа товчнуудын бүх сөрөг хөлийг холбосон богино хар утсыг гагнав.

Дараа нь би эерэг хөл тус бүрээс урт улаан утсыг гагнаж самбар дээр шууд холбох болно.

Утсыг Arduino руу холбохын тулд би Дюпонтын зарим үзүүрийг хайчилж, гагнаж, дулааныг нь багасгадаг хоолойгоор хучсан.

Би MIDI Fighter дээрхтэй ижил дарааллаар утсыг самбар дээр холбосон. Доороос дээш, зүүнээс баруун тийш

Алхам 9: MIDI хянагчийг ашиглах

MIDI хянагчийг ашиглаж байна
MIDI хянагчийг ашиглаж байна

Аливаа хөгжмийн програм хангамж (эсвэл тохирох техник хангамж) -ийг MIDI хүлээн авах, хөгжим гаргахад ашиглаж болно. Хамгийн их санал болгож буй зүйл бол Garage Band, Ableton Live бөгөөд утсан дээр суулгах олон програм байдаг гэдгийг би мэднэ.

Эдгээр бүх хэрэгслүүд нь хуруу бөмбөр хийх зориулалттай урьдчилан тодорхойлсон дууг ачаалахад тустай боловч илүү том зорилгоор хийгдсэн болно. Эдгээр хэрэгслүүд нь эхлэгчдэд тохируулахад хэцүү байж болно.

MIDI вэб хөтөч дээр

Энэ төсөл болон түүний энгийн байдлыг илүү нийцүүлэхийн тулд би MIDI хянагчдад бүрэн чиглэсэн вэб хэрэгслийг бүтээсэн.

Punchy: MIDI хянагчдад зориулсан WebMIDI ба WebAudio хэрэгжилт.

Энэ нь WebMIDI JavaScript API -ийг дэмждэг дурын хөтөч дээр MIDI мессежийг унших боломжтой. Дараа нь энэ нь дуу чимээг синтезатор (WebAudio API ашиглан) эсвэл дээж авагч дээр тоглуулж, ямар ч дууны багцаас өөрчлөн тохируулсан дууг ачаалдаг.

Ableton Live -ийг тохируулна уу

MIDI Controller -ийг Ableton Live -тэй ажиллахын тулд албан ёсны баримт бичгээс эдгээр энгийн алхмуудыг дагана уу.

Preferences → Link MIDI руу ороод "Оролт" дээр "Track", "Remote" ON, гаралт дээр "Remote" ON байгаа эсэхийг шалгаарай.

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