Sisukord:

Arduino Uno Midi Fighter: 5 sammu
Arduino Uno Midi Fighter: 5 sammu

Video: Arduino Uno Midi Fighter: 5 sammu

Video: Arduino Uno Midi Fighter: 5 sammu
Video: Midi out и Arduino, на пальцах, без библиотек 2024, November
Anonim
Arduino Uno Midi võitleja
Arduino Uno Midi võitleja

See juhend on loodud Lõuna -Florida ülikooli Makecourse'i projektinõude täitmiseks (www.makecourse.com)

DJ Techtoolsi populaarse MidiFighteri põhjal saab seda omatehtud Arduino toitega muusikariista digitaalse liidese (MIDI) kontrollerit kasutada MIDI -seadmena mis tahes digitaalse helitööjaama (DAW) tarkvaras. MIDI -kontroller saab arvutist MIDI -sõnumeid saata ja vastu võtta ning seda saab kasutada kasutatava tarkvara otseseks juhtimiseks. Lisaks on MIDI -kontrolleri juhtelemendid täielikult kohandatavad - see tähendab, et iga üksiku nupu, liuguri ja nupu saab vastendada DAW mis tahes funktsiooniga. Näiteks nupule vajutamine võib mängida konkreetset nooti või olla programmeeritud heliprojekti tempo muutmiseks.

github.com/jdtar/Arduino-Midi-Controller

Samm: materjalid

Allpool on loetletud selles projektis kasutatud materjalid ja tööriistad.

Arduino Uno

Leivalaud

4051/4067 multiplekser

Jumper juhtmed

Lisatraat

2x 10k oomi lineaarsed liugpotentsiomeetrid

16x Sanwa 24mm nupud

Kuumus kahaneb

Jootekolb

Žileti tera

Takisti 4,7 kΩ

Akrüülleht (kaane jaoks)

Nuppude ja Arduino korpus

3-D printer

Laserlõikur

2. samm: disain

Disain
Disain
Disain
Disain

Mulle anti juba enne projekti alustamist oma MIDI -kontrolleri korpus, seega pilkasin kaane eskiisi, et näha, kuhu kõik paigutada. Teadsin, et tahan vähemalt 16 nuppu ja paari potentsiomeetrit, nii et proovisin komponendid võimalikult ühtlaselt jaotada.

Pärast kaane paigutuse koostamist eksportisin faili 1: 1 PDF -failina ja saatsin selle akrüüllehe lõikamiseks laserlõikurile. Kruviaukude puhul märkisin markeriga, kuhu soovisin, et augud oleksid, ja sulatasin akrüüli kuuma hõõgniidiga.

Lisatud on 1: 1 PDF, mille saab välja printida 1: 1 ja lõigata elektriliste tööriistadega, kui laserlõikurit pole saadaval.

Samm: ehitus ja juhtmestik

Ehitus ja juhtmestik
Ehitus ja juhtmestik
Ehitus ja juhtmestik
Ehitus ja juhtmestik
Ehitus ja juhtmestik
Ehitus ja juhtmestik

Pärast akrüüli lõikamist sain teada, et akrüül on liiga õhuke, et kõiki komponente piisavalt toetada. Seejärel lõikasin välja teise lehe ja liimisin need kokku, mis toimisid ideaalselt.

Komponentide ühendamine võttis mõningaid katseid ja vigu, kuid tulemuseks oli Fritzingi visand. Ma ühendasin esmalt maandusjuhtmed ja 4,7 kΩ takisti, joodetud ja kuumus kahandas nuppude ühendusi. Kahe slaidipotentiomeetri paigaldamine nõudis akrüülis olevate kruvide sulamisauke. Pärast kahe potentsiomeetri kruvimist ühendati need A0 ja A1 analoogpistikutega. Kui juhtmestik oli lõpule viidud, meenus mulle, et minu faderite jaoks ei olnud nuppude korke, nii et nende ostmise asemel trükkisin mõned nupukatted 3-D printeriga, visandades selle Autodesk Fusion 360-s ja eksportides STL-faili. De

Arduino Unol on ainult 12 saadaolevat digitaalset sisendnõela, kuid 16 nuppu tuli ühendada. Selle kompenseerimiseks ühendasin leivaplaadile 74HC4051 multiplekseri, mis kasutab 4 digitaalset sisendnõela ja võimaldab mitmel signaalil kasutada jagatud liini, mille tulemuseks on 8 saadaolevat digitaalset sisendnõela kokku 16 digitaalse tihvti jaoks.

Nuppude ühendamine õigete tihvtidega oli lihtsalt 4x4 maatriksi loomine ja selle kasutamine koodis. Keeruline osa oli aga see, et ostetud konkreetsel multiplekseril oli spetsiifiline tihvtide paigutus, mida andmeleht aitas ja samuti pidasin nuppude ühendamisel silmas konkreetset märkmete paigutust, mis lõpuks nägi välja umbes selline:

MÄRKUS MATRIX

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN -MATRIX (M = MUX -sisend)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

4. samm: programmeerimine

Programmeerimine
Programmeerimine

Kui kokkupanek on lõpule jõudnud, jääb üle vaid Arduino programmeerimine. Lisatud skript on kirjutatud nii, et seda oleks lihtne kohandada.

Skripti algus sisaldab MIDI.h raamatukogu ja ajakirjast Notes and Volts laenatud kontrolleriteeki, mis mõlemad on koodi zip -failis. Kontrolleriteeki kasutades saab luua nuppude, potentsiomeetrite ja multipleksitud nuppude objekte, mis sisaldavad andmeväärtusi, mis sisaldavad märkmete arvu, kontrollväärtusi, märkmete kiirust, MIDI kanali numbrit jne. MIDI.h raamatukogu võimaldab MIDI I/O -side Arduino jadaport, mis omakorda võtab andmed kontrolleri objektidelt, teisendab need MIDI -sõnumiteks ja saadab sõnumid ükskõik millisesse midi -liidesesse.

Skripti tühi seadistusosa initsialiseerib kõik kanalid väljalülitatuks ja käivitab ka jadaühenduse 115200 baudiga, mis on kiirem kui MIDI -signaalide vahetamine.

Põhiahel võtab sisuliselt nuppude ja multipleksitud nuppude massiivid ning käivitab silmuse, mis kontrollib, kas nuppu on vajutatud või vabastatud, ja saadab vastavad andmebaidid midi -liidesele. Potentsiomeetri silmus kontrollib potentsiomeetri asendit ja saadab vastavad pingemuutused tagasi midiliidesele.

Samm: seadistamine

Image
Image
Seadistamine
Seadistamine
Seadistamine
Seadistamine
Seadistamine
Seadistamine

Kui skript on Arduinole laaditud, on järgmine samm ühendamine ja esitamine. Enne selle kasutamist on siiski paar sammu.

OSX -is sisaldas Apple funktsiooni virtuaalsete midi -seadmete loomiseks, millele pääseb juurde Macis oleva rakenduse Audio Midi Setup kaudu. Kui uus seade on loodud, saab karvutu MIDI abil luua jadaühenduse Arduino ja uue virtuaalse midi -seadme vahel. Seeriaühendus Arduino kaudu karvutute MIDI -ga töötab skripti tühja seadistamise osas määratletud andmeedastuskiirusega ja see tuleb määrata karvutute MIDI -eelistuste seadetes samaväärseks.

Testimiseks kasutasin Midi Monitori, et kontrollida, kas seeria-MIDI-ühenduse kaudu saadeti õiged andmed. Kui olin kindlaks teinud, et kõik nupud saadavad õigete kanalite kaudu õigeid andmeid, seadistasin MIDI -signaali, et suunata see MIDI -sisendina Ableton Live 9 -sse. Abletonis suutsin igale nupule kaardistada viilutatud heliproove ja mängida iga näidist.

Soovitan: