Мазмұны:

Arduino MIDI контроллерін құру: 9 қадам (суреттермен)
Arduino MIDI контроллерін құру: 9 қадам (суреттермен)

Бейне: Arduino MIDI контроллерін құру: 9 қадам (суреттермен)

Бейне: Arduino MIDI контроллерін құру: 9 қадам (суреттермен)
Бейне: Yet Another Arduino MIDI Controller Implementation on Breadboard 2024, Қараша
Anonim

Бұл нұсқаулық бастапқыда менің блогымда 28 жылдың 2020 маусымында жарияланды

Маған электроника кіретін заттар салынған ұнайды, мен әрқашан Arduino көмегімен бірдеңе жасағым келеді.

Мен тапқан жаңадан бастаушыларға арналған ең көп таралған құрылымдардың бірі MIDI контроллері болды. MIDI контроллері - бұл дыбысты қосу және музыка шығару үшін құрылғыға MIDI деректерін (Musical Instrument Digital Interface) жіберетін кез келген аппараттық құрал.

Мен көптеген енгізулер күрделі екенін білдім, тіпті жаңадан бастаушыларға арналған. Мен оқылмайтын кодтың жүздеген жолдарын пайдалануым керек екенін білу өте өкінішті болды. Немесе кейбір жағдайларда, мысалы, резисторды дәнекерлеу керек.

Жоба

Өзімнің 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-қадам: Кірістірілген жарықдиодты жыпылықтау

Аппараттық құралдар әлеміндегі «Сәлем әлемі» жарық диодты қалай жыпылықтағаны қызық.

Ардуино Леонардода кодты тексеру үшін жыпылықтай алатын кіріктірілген жарық диоды бар екенін білу мен үшін керемет тосын сый болды. Осылайша, жарықдиодты және резисторлы тақтаға сыртқы схеманы құрудың қажеті жоқ.

Код:

2 -қадам: Жарықдиодты қолмен енгізу кезінде жыпылықтау

Келесі логикалық қадам - мен сигнал жіберген сайын сол жарықдиодты жыпылықтау. Мен 2 Дюпон сымының бір ұшының пластикалық қақпағын алып тастадым, ал екінші ұшын тақтаға жалғадым:

  • 2 саны: сандық кірістердің бірі (оң). Бұл кез келген цифрлық түйреуіш болуы мүмкін.
  • GND түйреуіші: кез келген жерге түйреуіш (теріс).

Енді мен сымдардың ашық ұштарына қосылған сайын тізбекті жабамын, осылайша мен кодты орындай аламын

Леонардодағы 20 цифрлық түйреуіштің әрқайсысында INPUT_PULLUP көмегімен қосылатын ішкі резистор бар (әдепкі бойынша ажыратылған). Есіңізде болсын, тартылатын кіріс батырманың күйі кері аударылғанын білдіреді:

  • Схема ашық болған кезде жоғары (түйме басылмайды).
  • СӨЗ жабылғанда LOW (түйме басылады).

Код:

3 -қадам: MIDIUSB кітапханасын орнату

Бұл кітапхана USB мүмкіндіктері бар Arduino тақтасына USB арқылы MIDI құралы ретінде әрекет етуге мүмкіндік береді. Қосымша ақпарат алу үшін ресми құжаттаманы қараңыз.

Arduino IDE көмегімен кітапхана менеджері арқылы қосымша Arduino кітапханаларын орнатуға болады:

  1. IDE ашыңыз және «Эскиз» мәзірін, содан кейін «Кітапхананы қосу», содан кейін «Кітапханаларды басқару» түймесін басыңыз.
  2. MIDIUSB іздеп, Орнату түймесін басыңыз.
  3. Ол аяқталғаннан кейін MIDIUSB кітапханасының жанында Орнатылған тег пайда болуы керек.
  4. Кітапхана менеджерін жабыңыз.

Енді Леонардо MIDI хабарламаларын USB арқылы жібере алады! Бірақ алдымен MIDI қалай жұмыс істейтіні туралы түсінік қажет.

MIDI қалай жұмыс істейді

«MIDI (Musical Instrument Digital Interface) - бұл музыканы ойнауға арналған электронды музыкалық аспаптарды, компьютерлерді және соған байланысты дыбыстық құрылғыларды қосатын стандартты байланыс хаттамасы». - Уикипедия

Ол басқа нұсқаулармен қатар, ойнатылған дыбыстың биіктігі мен жылдамдығы туралы мәліметтермен оқиға хабарларын өңдейді

Бұл нақты жобада 16 батырманың кірісі USB арқылы әр түрлі хабарлар жібереді. Бұл хабарларды GarageBand немесе Ableton Live сияқты кез келген қолайлы бағдарламалық жасақтама көмегімен компьютерде дыбысқа айналдыруға болады.

MIDI хабарламасының анатомиясы

MIDI хабарламасын жіберу үшін мен 3 -қадамда орнатылған MIDIUSB кітапханасынан sendMIDI () әдісін қолдандым.

Бұл әдіс 4 параметрді қабылдай алады:

  • Оқиға түрі: Қосу нотасы үшін 0x09 болуы мүмкін (ойнату жазбасы) немесе Өшіру нотасы үшін 0x08 (жазбаны ойнатуды тоқтату).
  • Ескерту Қосу/Өшіру: оқиға түрі MIDI арнасымен біріктірілген (1-16). Мен тек 1 -арнаны қолданамын, сондықтан ол қосулы үшін 0x90 немесе өшіру үшін 0x80.
  • Ескерту нөмірі: Әр нотада байланысты сандық қадам бар (жиілік шкаласы).
  • Жылдамдық: 0 -ден (жылдамдықсыз) 127 -ге дейін (ең жылдам).

4 -қадам: MIDI хабарламасын жіберу

Мен MIDIUSB кітапханасын қостым және кіріктірілген жарықдиодты жыпылықтаудың орнына мен жазба жібердім.

Код:

Ant Маңызды: Осы қадамнан бастап Arduino MIDI USB контроллеріне айналады және ол USB арқылы код алуды тоқтатады.

Егер сіз Arduino бағдарламаланбайтын күйде қалсаңыз, мына қадамдарды орындаңыз:

  1. Arduino тақтасындағы дөңгелек қалпына келтіру түймесін басып тұрыңыз.
  2. Arduino IDE жүктеу түймесін басыңыз.
  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 -қадам: іс

Іс
Іс
Іс
Іс

Бұл жобаны қарапайым ұстау үшін мен қандай ерекшеліктерді қамтитынын таңдауда өте таңдадым.

  • Тек түймелер: 4x4 тордағы Sanwa тәрізді 16 аркада түймелері. Тұтқалар, сырғытпалар, сөндіргіштер немесе басқа аналогтық кіріс жоқ.
  • Біржақты корпус: Қоршау үшін немесе Arduino тақтасын ұстау үшін бұрандаларды, жаңғақтарды, болттарды немесе желімді пайдаланбаңыз.
  • Күнделікті құралдар: Мысалы, мен аркадалық түймелер үшін арнайы сым қайшыны сатып алудың орнына сымдарды дәнекерледім.

Біркелкі емес дизайн

Мен кездестірген қиындықтардың бірі - құрастыруды қажет етпейтін және бір реттік 3D форматында басып шығаруға болатын корпусты жобалау.

Бұрандаларды немесе желімді пайдаланбау үшін маған электроникаға ең аз кіруді қамтамасыз ететін қоршауды жобалау қажет болды. Қоршауға менің ең үлкен шабыт - бұл төменгі жағында шеңбер тәрізді тесік бар Mac Mini болды. Мен сондай -ақ бұралмалы қақпақ жасағым келді, бірақ мен оны ашуға рұқсат бердім.

3D форматында басып шығарылатын қапты жүктеңіз (322 КБ). Ұсынылатын параметрлер: PLA, 0,15 мм қабаттар, 20% толтыру, кем дегенде дөңгелектенген төменгі тесік, Arduino ұстағыштары мен микро USB үшін күшейткіштерді қолдайды.

Ардуиноны бұрандасыз ұстау

Леонардода тақтаны кез келген қолайлы корпусқа бұрау үшін 4 тесік бар, бірақ менің ойым тақтаны корпусқа қосуды және алып тастауды жеңілдету болды.

Thingiverse бағдарламасында Arduino үшін клип ұстаушыны табу оңай болды, және мен оны ұстағышты біртұтас дизайнға біріктіру үшін 5 рет қайталадым. Ең қиыны - түймелердің саңылауларын болдырмау үшін аяқтарын жасау және микро USB -ді корпустың ортасына туралау.

8 -қадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Барлық түймелерді орнына қойғаннан кейін мен олардың арасындағы түймелердің барлық теріс аяқтарын біріктіретін қысқа қара сымдарды дәнекерледім.

Содан кейін мен тақтаға тікелей қосылу үшін әр оң аяқтан ұзын қызыл сымдарды дәнекерледім.

Сымдарды Arduino-ға қосу үшін мен Дюпонттың кейбір ұштарын кесіп, дәнекерледім және оларды ыстыққа төзімді түтіктермен жаптым.

Мен сымдарды тақтаға MIDI Fighter -дегі тәртіппен жалғадым. Төменнен жоғарыға және солдан оңға қарай

9 -қадам: MIDI контроллерін пайдалану

MIDI контроллерін қолдану
MIDI контроллерін қолдану

Кез келген музыкалық бағдарламалық қамтамасыз етуді (немесе сәйкес аппараттық құралдарды) MIDI қабылдауға және музыканы шығаруға болады. Ең көп ұсынылатындар - Garage Band, Ableton Live, мен білемін, телефонға орнатуға болатын көптеген қосымшалар бар.

Бұл құралдардың барлығы саусақ барабаны үшін алдын ала анықталған дыбыстарды жүктеу үшін пайдалы, бірақ олар үлкен мақсаттар үшін жасалған. Бұл құралдар жаңадан бастаушыларға қиын болуы мүмкін.

MIDI веб -шолғышта

Бір нәрсені осы жобамен және оның қарапайымдылығымен сәйкестендіру үшін мен MIDI контроллерлеріне толығымен бағытталған веб -құрал құрдым.

Punchy: MIDI контроллері үшін WebMIDI және WebAudio енгізу.

Ол MIDI хабарламаларын WebMIDI JavaScript API қолдайтын кез келген шолғышта оқи алады. Содан кейін ол дыбыстарды синтезаторда (WebAudio API көмегімен) немесе іріктегіште ойнайды, кез келген дыбыстық пакеттен жеке дыбыстарды жүктейді.

Ableton Live бағдарламасын орнатыңыз

MIDI контроллерін Ableton Live -мен жұмыс жасау үшін олардың ресми құжаттамасынан мына қарапайым қадамдарды орындаңыз.

Параметрлер → сілтеме MIDI тармағына өтіңіз және «Кірісте» «Жол» және «Қашықтан басқару» ҚОСУЛЫ екеніне және нұсқаулықта айтылғандай «Қашықтан басқару» қосулы екеніне көз жеткізіңіз:

Ұсынылған: