Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42
Esittely:
Olen uusi työskennellessäni Arduinon kanssa, mutta toivon voivani laajentaa tietämystäni opettamalla muita ja vastaanottamalla palautetta. Tämä on hyvin yksinkertainen MIDI -ohjain, jossa on 4 painiketta ja potentiometri. Tämän projektin luonnos näyttää tältä:
1. Rakenna leipälauta
2. Lataa luonnos Arduinolle
3. Ymmärrä karvaton MIDI ja sisäinen MIDI -silmukka (loopbe1)
4. reititä MIDI DAW: hen (Ableton)
Tarvikkeet
1 x Arduino Mega 2560
1 x leipälauta
1 x USB -kaapeli
1 x potentiometri
4 x kosketuspainiketta
4 x 120 ohmin vastukset
14 x hyppyjohtoa leipälevylle
Vaihe 1: Leipälevyn rakentaminen
Liitä leipälauta niin, että kaikki komponentit vastaavat yllä olevaa kuvaa 1. Jokaisen painikkeen pitäisi näyttää samalta kuin kuva 2. Painikkeiden tulot ovat 2, 3, 4 ja 5 Arduinossa ja potentiometrin keskitappi on kytketty ANALOG -tuloon A0.
Vaihe 2: Luonnoksen lataaminen
Kopioi ja liitä alla oleva koodi Arduino IDE: hen. Valitse oikea taulu "työkalut" -kohdasta ja lataa luonnos Arduinolle.
tavu noteON = 144; // huomautus komentotiedon muistiinpanossa; // tallennustila tällä hetkellä toistettavalle muistiinpanolle int -painike Pin1 = 2; int -painikePin2 = 3; int -painikePin3 = 4; int -painikePin4 = 5; int potPin = A0; boolean currentState = LOW; // viiva nykyisen painikkeen tilasta boolean lastState = LOW; // tallennustila viimeisen painikkeen tilan void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // tällä kertaa asetamme nastan INPUT Serial.begin (9600); // alustaa sarjayhteys} void loop () {int PotVal = analogRead (potPin); tavun nopeus = kartta (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // kytke nuotti 60 päälle 127 nopeuden viiveellä (200); // painikkeiden poistamisen karkea muoto} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // sammuta muistiinpanon 60 viive (2); // painikkeiden poistamisen karkea muoto} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// jos painiketta on juuri painettu MIDImessage (huomautus, 61, nopeus); // kytke muistiinpano 60 päälle 127 nopeuden viiveellä (200); // painikkeen raaka muoto debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // sammuta huomautus 60 pois viiveestä (2); // painikkeen poistamisen karkea muoto} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// jos painiketta on juuri painettu MIDImessage (huomautus, 62, nopeus); // kytke muistiinpano 60 päälle 127 nopeuden viiveellä (200); // painikkeen raaka muoto debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // sammuta huomautus 60 pois viiveestä (2); // painikkeen poistamisen karkea muoto} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// jos painiketta on juuri painettu MIDImessage (huomautus, 63, nopeus); // kytke nuotti 60 päälle 127 nopeuden viiveellä (200); // painikkeen raaka muoto debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // sammuta huomautus 60 pois viiveestä (2); // painikkeen poistamisen karkea muoto} lastState = currentState; } // lähetä MIDI -viesti void MIDImessage (tavukomento, tavu data1, tavu data2) {Serial.write (komento); Serial.write (data1); Serial.write (data2); }
Olen vielä hyvin uusi koodin kirjoittamisessa yleensä….. ne, joilla on hieman enemmän kokemusta, voivat todennäköisesti puhdistaa tämän…
Vaihe 3: Karvattoman MIDI: n ja sisäisten MIDI -silmukoiden ymmärtäminen
Arduinon on ajettava sarjasillan, kuten karvattoman MIDI: n, ja sitten sisäisen MIDI -silmukan, kuten loopbe1 (tai IAC -väylä Macille), läpi.
Huomautus: et voi ladata luonnosta Arduinolle, kun se on kytketty karvattomaan MIDI -sarjasiltaan.
Valitse Arduino karvattomasta MIDI -sarjaportista ja loopbe1 tai IAC -väylä MIDI -ulostulosta.
Huomautus: varmista, että mykistys ei ole käytössä, kun käytät loopbe1: tä.
Vaihe 4: Yhdistäminen DAW -laitteeseen
Jos saat signaalin Karvattomaan MIDI -sovellukseen, kun painat leipälevyn painiketta (valot vilkkuvat), sinun pitäisi pystyä lähettämään MIDI -tietoja DAW: lle. Käytin Abletonia, mutta minkä tahansa DAW: n pitäisi toimia. Varmista, että sisäinen MIDI -silmukka (loopbe1) on otettu käyttöön DAW -asetuksissasi (haluat Abletonissa, että "track" otetaan käyttöön). Valitse seuraavaksi yksi MIDI -raidatuloistasi MIDI -silmukkaan (loopbe1) yllä olevan kuvan mukaisesti.
Vaihe 5: Pelaa
Painikkeet toimivat nyt kuten mikä tahansa muu MIDI -ohjain! Potentiometri muuttaa DAW: lle lähetettävien nuottien nopeutta. Yllä oleva (erittäin tumma…) video näyttää flyygeliäänen toiminnassa!
Suositeltava:
HC-05 (bluetooth) Moduuli kotiautomaatiota varten Perus: 3 vaihetta
HC-05 (bluetooth) -moduuli kotiautomaatiota varten Perus: Viimeisessä projektissani ohjain LEDiä painikkeella, mutta tässä projektissa olen korvannut PUSH BUTTONin HC-05-moduulilla. jatkaa tätä projektia. Saat kaikki yksityiskohdat
Perus Arduino -valovoimavalo!: 5 vaihetta
Basic Arduino Light Intensity Lamp!: Tämän päivän piiri on hauska pieni Arduino -projekti karanteeniin! Tämä piiri keskittyy kahteen mielenkiintoiseen materiaaliin; rele SPDT & Valovastus. Lisäksi releen tarkoitus on olla kytkin piirissä elektronisesti. Lisäksi valokuvat
Arduino Uno -opetusohjelma #1 - Perus vilkkuva ohjelma: 4 vaihetta
Arduino Uno -opetusohjelma #1 - Basic Blink Program: Hei kaikki! Olen iloinen voidessani julkaista ensimmäisen ohjeeni! Tämä ajatus tuli mieleeni, kun minulla oli vaikeuksia saada Arduino Uno toimimaan, joten koska minulla oli joitain vaikeuksia, selitän al -noobiesille täällä, että minun kaltaiset eivät tiedä muk
10 perus Arduino -projektia aloittelijoille! Tee vähintään 15 projektia yhdellä laudalla !: 6 vaihetta
10 perus Arduino -projektia aloittelijoille! Tee vähintään 15 projektia yhdellä taululla!: Arduino -projekti & Tutorial Board; Sisältää 10 Arduino -perusprojektia. Kaikki lähdekoodit, Gerber -tiedosto ja paljon muuta. Ei SMD: tä! Helppo juottaa kaikille. Helposti irrotettavat ja vaihdettavat osat. Voit tehdä vähintään 15 projektia yhdellä
Perus Arduino -maanjäristyksenilmaisin: 7 vaihetta (kuvilla)
Perus Arduinon maanjäristyksenilmaisin: Tiny9 on palannut ja tänään aiomme tehdä yksinkertaisen Arduinon maanjäristyksenilmaisimen. Käy ohjeessani liittyä Tiny9: n LIS2HH12 -laitteeseen alla olevan linkin kautta laitteen asentamiseksi, joten sinun tarvitsee vain lisätä 3 vastusta ja 3 valoa lähettävää