Мазмұны:
- Бұл нұсқаулық бастапқыда менің блогымда 28 жылдың 2020 маусымында жарияланды
- 1-қадам: Кірістірілген жарықдиодты жыпылықтау
- 2 -қадам: Жарықдиодты қолмен енгізу кезінде жыпылықтау
- 3 -қадам: MIDIUSB кітапханасын орнату
- 4 -қадам: MIDI хабарламасын жіберу
- 5 -қадам: Әр батырмадан MIDI хабарламасын жіберу
- 6 -қадам: Арналарды немесе банктерді орнату (міндетті емес)
- 7 -қадам: іс
- 8 -қадам: Ассамблея
- 9 -қадам: MIDI контроллерін пайдалану
Бейне: Arduino MIDI контроллерін құру: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Бұл нұсқаулық бастапқыда менің блогымда 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 кітапханаларын орнатуға болады:
- IDE ашыңыз және «Эскиз» мәзірін, содан кейін «Кітапхананы қосу», содан кейін «Кітапханаларды басқару» түймесін басыңыз.
- MIDIUSB іздеп, Орнату түймесін басыңыз.
- Ол аяқталғаннан кейін MIDIUSB кітапханасының жанында Орнатылған тег пайда болуы керек.
- Кітапхана менеджерін жабыңыз.
Енді Леонардо 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 бағдарламаланбайтын күйде қалсаңыз, мына қадамдарды орындаңыз:
- Arduino тақтасындағы дөңгелек қалпына келтіру түймесін басып тұрыңыз.
- Arduino IDE жүктеу түймесін басыңыз.
- Қалпына келтіру түймесін босатыңыз.
- Жаңартылған код тақтаға жүктеледі.
5 -қадам: Әр батырмадан 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 қабылдауға және музыканы шығаруға болады. Ең көп ұсынылатындар - Garage Band, Ableton Live, мен білемін, телефонға орнатуға болатын көптеген қосымшалар бар.
Бұл құралдардың барлығы саусақ барабаны үшін алдын ала анықталған дыбыстарды жүктеу үшін пайдалы, бірақ олар үлкен мақсаттар үшін жасалған. Бұл құралдар жаңадан бастаушыларға қиын болуы мүмкін.
MIDI веб -шолғышта
Бір нәрсені осы жобамен және оның қарапайымдылығымен сәйкестендіру үшін мен MIDI контроллерлеріне толығымен бағытталған веб -құрал құрдым.
Punchy: MIDI контроллері үшін WebMIDI және WebAudio енгізу.
Ол MIDI хабарламаларын WebMIDI JavaScript API қолдайтын кез келген шолғышта оқи алады. Содан кейін ол дыбыстарды синтезаторда (WebAudio API көмегімен) немесе іріктегіште ойнайды, кез келген дыбыстық пакеттен жеке дыбыстарды жүктейді.
Ableton Live бағдарламасын орнатыңыз
MIDI контроллерін Ableton Live -мен жұмыс жасау үшін олардың ресми құжаттамасынан мына қарапайым қадамдарды орындаңыз.
Параметрлер → сілтеме MIDI тармағына өтіңіз және «Кірісте» «Жол» және «Қашықтан басқару» ҚОСУЛЫ екеніне және нұсқаулықта айтылғандай «Қашықтан басқару» қосулы екеніне көз жеткізіңіз:
Ұсынылған:
Arduino MIDI контроллерін жасаңыз: 5 қадам (суреттермен)
Arduino MIDI контроллерін жасаңыз: бәріне сәлем! Бұл нұсқаулықта мен сізге Arduino -мен жұмыс жасайтын MIDI контроллерін қалай құруға болатынын көрсетемін. MIDI музыкалық аспаптардың цифрлық интерфейсін білдіреді және бұл компьютерлерге, музыкалық аспаптарға және басқа да жабдықтарға ауысуға мүмкіндік беретін хаттама
Серво контроллерін алып тастаңыз: 5 қадам (суреттермен)
Серво контроллерін алып тастаңыз: редукторлы қозғалтқышты микро контроллермен оңай байланыстырғыңыз келсе, серво қозғалтқыштары өте қызықты. Дегенмен, кейде сіз жақсы редукторлы қозғалтқышты алғыңыз келеді және оны басқару тізбегімен алаңдағыңыз келмейді. Мұндай кездерде бұл
Android телефонының зарядтағышына арналған электр желісінің сүзгісін құру және құру: 5 қадам
Android телефонының зарядтағышына арналған электр желісінің сүзгісін құру және құру: Бұл нұсқаулықта мен стандартты USB -ді шағын USB сымына қалай алу керектігін көрсетемін, оны ортасынан ажыратып, шамадан тыс шуды төмендететін сүзгі тізбегін енгіземін. әдеттегі андроид қуат көзімен шығарылатын хэш. Менде портативті м бар
Makey-Makey мен Water көмегімен балама MIDI контроллерін құру: 6 қадам
Балама MIDI контроллерін Makey-Makey және Water көмегімен құру: Макей-Макейді арнайы және шығармашылық енгізу үшін пайдалану өте оңай! Аппараттық құралдарды пайдаланатын көптеген адамдар дыбыстарды немесе ноталарды іске қосу үшін Makey-Makey-дегі кірістерді қолдана отырып, өз құралдарын жасайды, ал біз одан да көп нәрсені жасай аламыз деп шештік
Физикалық ойын контроллерін құру: 10 қадам (суреттермен)
Ойынның физикалық контроллерін құру: Nintendo Wii іске қосылғанда, ойыншыларға таңдаулы ойында ұпай жинау үшін диваннан кетуге, секіруге, би билеуге және ойнауға шақырылды. Wii құрылысында оқу қисығы бар болса да, оны оңай