Cuprins:
- Acest instructable a fost publicat inițial pe blogul meu pe 28 iunie 2020
- Pasul 1: clipește LED-ul încorporat
- Pasul 2: clipirea LED-ului la intrarea manuală
- Pasul 3: Instalarea bibliotecii MIDIUSB
- Pasul 4: Trimiterea unui mesaj MIDI
- Pasul 5: Trimiterea unui mesaj MIDI din fiecare buton
- Pasul 6: Configurarea canalelor sau a băncilor (opțional)
- Pasul 7: Cazul
- Pasul 8: Adunarea
- Pasul 9: Utilizarea controlerului MIDI
Video: Construirea unui controler MIDI Arduino: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Acest instructable a fost publicat inițial pe blogul meu pe 28 iunie 2020
Îmi place să construiesc lucruri care includ electronice și am vrut întotdeauna să construiesc ceva folosind Arduino.
Una dintre cele mai comune versiuni pentru începători pe care am găsit-o a fost un controler MIDI. Un controler MIDI este orice hardware care trimite date MIDI (Musical Instrument Digital Interface) către un dispozitiv pentru a declanșa sunete și a face muzică.
Am constatat că multe implementări sunt complicate, chiar și cele care sunt pentru începători. A fost foarte frustrant să constat că trebuie să folosesc sute de linii de cod necitit. Sau că trebuie să lipesc un rezistor în unele cazuri, printre alte exemple.
Proiectul
Construind propriul meu controler MIDI Arduino, intenția mea a fost să fac un proiect plăcut, menținând zgomotul la cel mai mic nivel. Ceva care ar putea urma orice începător. Pentru a realiza acest lucru, am folosit MIDI Fighter 3D ca bază de inspirație și am eliminat fiecare caracteristică neesențială.
Costul total al proiectului meu a fost sub 30 USD, iar lista materialelor a fost foarte scurtă (linkuri de afiliere):
- Arduino Leonardo (sau clonă): între 10 și 20 USD.
- 16 x butoane Sanwa de 24 mm (sau clonă): între 1 USD și 2,50 USD pe buton.
- Ciocan de lipit
- 22 fire electrice AWG
Placa Arduino
Când am început acest proiect, am descoperit că există o serie de noi modele Arduino (fără a include sutele de plăci compatibile). Și toate oferă capacități ușor diferite.
Aveam nevoie să trimit semnale MIDI către un computer și cel mai simplu mod de a face acest lucru este prin USB. Orice placă Arduino bazată pe microcontrolerul ATmega32u4 are comunicație USB încorporată.
Plăcile oficiale Arduino cu suport USB nativ sunt Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Aceste plăci au suport USB integrat, ceea ce înseamnă că pot acționa ca un dispozitiv USB MIDI.
Am decis să merg cu o clonă a Arduino Leonardo. Are suficiente intrări pentru acest proiect și include și anteturi, ceea ce face mai ușoară conectarea / deconectarea firelor.
Primii pasi
Deși voi explica pas cu pas modul în care am implementat codul pentru acest proiect, puteți descărca versiunea finală.
Pentru a încărca codul pe placa, trebuie să utilizați ID-ul Arduino. De asemenea, au un editor Web care este foarte util, dar au o cotă limitată de ori pe zi în care puteți compila cod.
Pasul 1: clipește LED-ul încorporat
Este amuzant cum „Hello World” din lumea hardware-ului clipește cu un LED.
A fost o surpriză frumoasă pentru mine să descopăr că Arduino Leonardo are un LED încorporat pe care îl puteți clipi pentru a vă testa codul. În acest fel nu este nevoie să construiți un circuit extern pe o placă cu un LED și un rezistor.
Cod:
Pasul 2: clipirea LED-ului la intrarea manuală
Următorul pas logic a fost să clipesc același LED ori de câte ori trimit un semnal. Am îndepărtat capacul de plastic al unui capăt al 2 fire Dupont și am conectat celălalt capăt la placă:
- Pinul 2: Una dintre intrările digitale (pozitivă). Ar putea fi orice pin digital.
- Pin GND: Orice pin de masă (negativ).
Acum, de fiecare dată când mă alătur capetelor expuse ale firelor, închid circuitul și astfel pot executa cod în consecință
Fiecare dintre cei 20 de pini digitali de pe Leonardo are un rezistor intern (deconectat în mod implicit) care poate fi activat folosind INPUT_PULLUP. Rețineți că o intrare pull-up înseamnă că starea butonului este inversată:
- HIGH când circuitul este deschis (butonul NU este apăsat).
- LOW când circuitul este închis (butonul este apăsat).
Cod:
Pasul 3: Instalarea bibliotecii MIDIUSB
Această bibliotecă permite unei plăci Arduino cu capacități USB să acționeze ca un instrument MIDI prin USB. Consultați documentația oficială pentru mai multe informații.
Folosind Arduino IDE, puteți instala biblioteci Arduino suplimentare folosind Managerul de biblioteci:
- Deschideți IDE și faceți clic pe meniul „Schiță”, apoi „Includeți biblioteca”, apoi „Gestionați bibliotecile”.
- Căutați MIDIUSB și faceți clic pe Instalare.
- Odată ce a terminat, ar trebui să apară o etichetă instalată lângă biblioteca MIDIUSB.
- Închideți Manager bibliotecă.
Acum, Leonardo poate trimite mesaje MIDI prin USB! Dar, mai întâi, este nevoie de câteva informații despre cum funcționează MIDI.
Cum funcționează MIDI
„MIDI (Musical Instrument Digital Interface) este un protocol de comunicație standard care conectează instrumente muzicale electronice, computere și dispozitive audio conexe pentru redarea muzicii.” - Wikipedia
Se ocupă de mesaje de eveniment cu date despre tonul și viteza notei redate, printre alte instrucțiuni
În acest proiect specific, intrarea din cele 16 butoane trimite mesaje diferite prin USB. Aceste mesaje pot fi convertite în sunet pe un computer utilizând orice software adecvat, cum ar fi GarageBand sau Ableton Live.
Anatomia unui mesaj MIDI
Pentru a trimite un mesaj MIDI, am folosit metoda sendMIDI () din Biblioteca MIDIUSB pe care am instalat-o la pasul 3.
Această metodă poate primi 4 parametri:
- Tipul evenimentului: poate fi 0x09 pentru nota Activată (redare notă) sau 0x08 pentru nota Dezactivată (opriți redarea notei).
- Notă On / Off: Tipul de eveniment combinat cu canalul MIDI (1-16). Folosesc doar canalul 1, deci este 0x90 pentru nota On sau 0x80 pentru nota Off.
- Numărul notei: Fiecare notă are un ton numeric asociat (scala de frecvență).
- Viteza: De la 0 (fără viteză) la 127 (cea mai rapidă).
Pasul 4: Trimiterea unui mesaj MIDI
Am inclus Biblioteca MIDIUSB și, în loc să clipesc LED-ul încorporat, am trimis o notă.
Cod:
⚠ Important: Începând cu acest pas, Arduino se transformă într-un controler MIDI USB și nu mai primește cod prin USB.
Când rămâneți blocat într-o poziție în care Arduino nu mai poate fi programat, urmați acești pași:
- Țineți apăsat butonul de resetare rotunjit de pe placa Arduino.
- Faceți clic pe Încărcare pe IDE Arduino.
- Eliberați butonul de resetare.
- Codul actualizat va fi încărcat pe tablă.
Pasul 5: Trimiterea unui mesaj MIDI din fiecare buton
Ultimul pas a fost să mapezi fiecare pitch la un buton. Pentru cele 16 butoane, am definit o scară de la C2 la E3b, care sunt pitch-urile de la 36 la 51 într-o secvență de jos în sus și de la stânga la dreapta. Consultați acest fișier din Tutoriale Arduino pentru a vedea ce ton corespunde fiecărei note.
Am folosit pini digitali de la 2 la 12 și pini analogici (folosindu-i ca cifre) de la A0 la A4.
Și așa arată codul final
Pasul 6: Configurarea canalelor sau a băncilor (opțional)
În cazul în care doriți să adăugați mai multe butoane cu posibilitatea de a schimba canalele sau băncile, ca în MIDI Fighter 3D (a se vedea imaginea), Arduino Leonardo are încă patru pini pe care îi puteți folosi. Arduino Leonardo are 20 de pini de intrare / ieșire digitale, dintre care doar 16 sunt folosiți pentru redarea notelor.
Puteți utiliza acele butoane suplimentare pentru a actualiza o variabilă din cod și pentru a trimite valoarea acesteia ca parametru la metoda MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Pasul 7: Cazul
Pentru a menține acest proiect simplu, am fost extrem de pretențios în ceea ce privește alegerea caracteristicilor care includ.
- Numai butoane: 16 butoane arcade de tip Sanwa, într-o grilă 4x4. Fără butoane, fără glisoare, fără fadere sau orice altă intrare analogică.
- Carcasă monocorp: nu utilizați șuruburi, piulițe, șuruburi sau lipici pentru carcasă sau pentru a ține placa Arduino.
- Unelte de zi cu zi: De exemplu, am lipit firele în loc să cumpăr un tăietor special pentru butoanele arcade.
Unibody Design
Una dintre provocările cu care m-am confruntat a fost proiectarea unui caz suficient de simplu încât să nu aibă nevoie de asamblare și să poată fi tipărit 3D într-o singură tiră.
Pentru a evita folosirea șuruburilor sau lipiciului, a trebuit să proiectez o carcasă care să ofere cel mai mic acces la electronică. Cea mai mare inspirație pentru incintă a fost Mac Mini, care are o gaură în formă de cerc în partea de jos. De asemenea, am vrut să proiectez un capac înșurubabil pentru asta, dar am decis să-l deschid pentru a expune electronica.
Descărcați carcasa imprimabilă 3D (322 KB). Setări recomandate: PLA, straturi de 0,15 mm, umplutură de 20%, suporturi de aplicare cel puțin pentru gaura de jos rotunjită, suporturile Arduino și micro USB.
Ținând un Arduino fără șuruburi
Leonardo are 4 găuri pentru a înșuruba placa în orice carcasă adecvată, dar ideea mea a fost să ușurez adăugarea și scoaterea plăcii din carcasă.
Găsirea unui suport de clip pentru Arduino pe Thingiverse a fost ușoară și mi-au trebuit 5 iterații pentru a integra acel suport în designul unibody. Partea cea mai dificilă a fost să-și facă picioarele pentru a evita găurile pentru butoane și pentru a face ca micro USB să fie aliniat în centru la carcasă.
Pasul 8: Adunarea
După introducerea tuturor butoanelor la locul lor, am lipit fire scurte negre care uneau toate picioarele negative ale butoanelor între ele.
Apoi am lipit fire lungi roșii de la fiecare picior pozitiv pentru a mă conecta direct la placă.
Pentru a conecta firele la Arduino, am tăiat și lipit câteva capete Dupont și le-am acoperit cu tuburi termocontractabile.
Am conectat firele la placa urmând aceeași ordine ca în MIDI Fighter. De jos în sus și de la stânga la dreapta
Pasul 9: Utilizarea controlerului MIDI
Orice software de muzică (sau hardware adecvat) poate fi utilizat pentru a primi MIDI și a face muzică. Cele mai recomandate sunt Garage Band, Ableton Live și știu că există o grămadă de aplicații de instalat pe un telefon.
Toate aceste instrumente sunt utile pentru încărcarea sunetelor predefinite pentru toba degetelor, dar au fost create pentru scopuri mai mari. Aceste instrumente pot fi dificil de configurat pentru începători.
MIDI în browserul web
Pentru a face ceva mai aliniat cu acest proiect și simplitatea acestuia, am construit un instrument web complet axat pe controlere MIDI.
Punchy: implementare WebMIDI și WebAudio pentru controlere MIDI.
Poate citi mesaje MIDI pe orice browser care acceptă API-ul WebMIDI JavaScript. Apoi redă sunete într-un sintetizator (utilizând API-ul WebAudio) sau într-un sampler, încărcând sunete personalizate din orice pachet de sunete.
Configurați Ableton Live
Pentru a face controlerul MIDI să funcționeze cu Ableton Live, urmați acești pași simpli din documentația lor oficială.
Accesați Preferințe → Link MIDI și asigurați-vă că „Intrare” are „Urmărire” și „Telecomandă” ACTIVATĂ și că ieșirea are „Telecomandă” ACTIVATĂ, precum și menționat în ghid:
Recomandat:
Construirea unui tracker solar automat cu Arduino Nano V2: 17 pași (cu imagini)
Construirea unui tracker solar automat cu Arduino Nano V2: Bună! Acest instructabil este menit să facă parte din proiectul meu Solar Tracker. Pentru o explicație a modului de funcționare a trackerelor solare și a modului în care am proiectat primul meu tracker, utilizați linkul de mai jos. Acest lucru va oferi context pentru acest proiect.https: //www.instructables.co
Construirea unui player MP3 Steampunked ușor: 6 pași (cu imagini)
Construirea unui player MP3 Steampunked ușor: într-un grup Steampunk de pe FB a apărut întrebarea dacă este dificil să construiești „un Steampunk care funcționează”. Și nu atât de scump, deoarece o mulțime de gadgeturi Steampunk folosesc materiale scumpe. OK, Lady's și Gents dă drumul în acel cor
Construirea unui Arduino DIY pe un PCB și câteva sfaturi pentru începători: 17 pași (cu imagini)
Construirea unui Arduino DIY pe un PCB și câteva sfaturi pentru începători: Aceasta este menită ca un ghid pentru oricine își lipește propriul Arduino dintr-un kit, care poate fi achiziționat de la A2D Electronics. Conține multe sfaturi și trucuri pentru a-l construi cu succes. Veți afla, de asemenea, despre ce sunt toate componentele
Construirea unui Home Studio pe un Mega Buget: 8 pași (cu imagini)
Construirea unui studio de acasă pe un mega buget: odată cu era digitală care continuă să ne arate cum tehnologia a diminuat nevoia de servicii profesionale, devine mai ușor să obțineți rezultate bune pe forme de artă, cum ar fi înregistrarea audio. Scopul meu este să demonstrez cel mai rentabil mod de a
Utilizarea Mame / Construirea unui cabinet Mame: 12 pași (cu imagini)
Folosirea lui Mame / Construirea unui cabinet Mame: Ei bine, după câteva luni de gândire la construirea unui cabinet mame, sunt pe drum. Am crezut că voi posta progresul meu și altele. Acesta este un tutorial semi FULL care va descompune fiecare bucată de construcție a unui dulap. De asemenea, mai jos este un fișier pdf care vă va ajuta