
Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-23 15:13

Panimula:
Bago ako sa pakikipagtulungan sa Arduino ngunit inaasahan kong mapalawak ang aking kaalaman sa pamamagitan ng pagtuturo sa iba at pagtanggap ng feedback. Ito ay isang napaka pangunahing MIDI controller na may 4 na mga pindutan at isang potensyomiter. Ang balangkas para sa proyektong ito ay ganito ang hitsura:
1. Itayo ang pisara
2. I-upload ang Sketch sa Arduino
3. Maunawaan ang walang buhok na MIDI at panloob na loop ng MIDI (loopbe1)
4. ruta ang iyong MIDI sa isang DAW (Ableton)
Mga gamit
1 x Arduino Mega 2560
1 x Lupong Tinapay
1 x USB Cable
1 x Potensyomiter
4 x Mga Button sa Pag-taktika
4 x 120Ohm resistors
14 x jumper cables para sa breadboard
Hakbang 1: Pagtatayo ng Breadboard


Ikonekta ang iyong breadboard upang ang lahat ng mga sangkap ay tumutugma sa imahe 1 sa itaas. Ang bawat pindutan ay dapat magmukhang kapareho ng imahe 2. Ang mga pag-input ng pindutan ay 2, 3, 4 at 5 sa Arduino at ang gitnang pin ng potensyomiter ay konektado sa ANALOG input A0.
Hakbang 2: Pag-upload ng Sketch

Kopyahin at i-paste ang code sa ibaba sa Arduino IDE. Piliin ang tamang board sa ilalim ng "mga tool" at i-upload ang sketch sa Arduino.
byte noteON = 144; // note sa commandbyte note; // imbakan para sa kasalukuyang nagpe-play ng note int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage para sa kasalukuyang pindutan ng estado boolean lastState = LOW; // imbakan para sa huling pindutan ng estado na walang bisa ang pag-setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // sa oras na ito itatakda namin ang pin bilang INPUT Serial.begin (9600); // simulan ang Serial connection} void loop () {int PotVal = analogRead (potPin); byte velocity = mapa (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); kung (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, bilis); // turn note 60 on with 127 velocity delay (200); // crude form of button debouncing} else if (currentState == LOW && lastState == MATAAS) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // crude form of button debouncing} lastState = currentState; currentState = digitalRead (buttonPin2); kung (kasalukuyangState == MATAAS && lastState == LOW) {// kung ang pindutan ay na-press lang ang MIDImessage (noteON, 61, tulin); // i-on ang tala 60 sa 127 na bilis ng pagka-antala (200); // krudo na anyo ng pindutan debouncing} iba pa kung (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // crude form of button debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); kung (kasalukuyangState == MATAAS && lastState == LOW) {// kung ang pindutan ay na-press lang MIDImessage (noteON, 62, tulin); // i-on ang tala 60 sa 127 na bilis ng pagka-antala (200); // krudo na anyo ng pindutan debouncing} iba pa kung (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // crude form of button debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); kung (kasalukuyangState == MATAAS && lastState == LOW) {// kung ang pindutan ay na-press lang MIDImessage (noteON, 63, tulin); // i-on ang tala 60 sa 127 na bilis ng pagka-antala (200); // krudo na anyo ng pindutan debouncing} iba pa kung (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // turn note 60 off delay (2); // crude form of button debouncing} lastState = currentState; } // send MIDI message void MIDImessage (byte command, byte data1, byte data2) {Serial.write (utos); Serial.write (data1); Serial.write (data2); }
Napaka-bago ko pa rin sa pagsusulat ng code sa pangkalahatan….. ang mga may kaunting karanasan ay maaaring malinis ito …
Hakbang 3: Pag-unawa sa Walang Buhok na MIDI at Panloob na MIDI Loops



Ang Arduino ay kailangang tumakbo sa pamamagitan ng isang serial bridge tulad ng Hairless MIDI pagkatapos sa pamamagitan ng isang panloob na loop ng MIDI tulad ng loopbe1 (o IAC bus para sa Mac).
Tandaan: hindi ka maaaring mag-upload ng sketch sa Arduino habang nakakonekta ito sa walang buhok na MIDI serial bridge.
Piliin ang iyong Arduino sa Hairless MIDI serial port at loopbe1 o IAC Bus sa MIDI out.
Tandaan: tiyaking wala ang pipi habang gumagamit ng loopbe1.
Hakbang 4: Pagkonekta sa Iyong DAW

Kung nakakakuha ka ng signal sa Hairless MIDI app kapag pinindot mo ang isang pindutan sa breadboard (mag-iilaw ang mga ilaw) dapat kang makapagpadala ng data ng MIDI sa isang DAW. Gumamit ako ng Ableton ngunit ang anumang DAW ay dapat na gumana. Siguraduhin na ang iyong panloob na loop na MIDI (loopbe1) ay pinagana sa iyong mga kagustuhan sa DAW (sa Ableton na nais mong paganahin ang "track"). Susunod, pumili ng isa sa iyong mga input ng track ng MIDI sa MIDI loop (loopbe1) tulad ng ipinakita sa imahe sa itaas.
Hakbang 5: Maglaro


Ang mga pindutan ay gagana na ngayon tulad ng anumang iba pang MIDI controller! Babaguhin ng potensyomiter ang bilis ng mga tala na ipinapadala sa DAW. Ang (napaka madilim …) na video sa itaas ay nagpapakita ng isang mahusay na tunog ng piano sa pagkilos!
Inirerekumendang:
NAIN 1.0 - ang Pangunahing Humanoid Robot Paggamit ng Arduino: 6 Mga Hakbang

NAIN 1.0 - ang Pangunahing Humanoid Robot Paggamit ng Arduino: Nain 1.0 ay magkakaroon ng karaniwang 5 nababakas na mga module- 1) Arm - na maaaring makontrol sa pamamagitan ng servos. 2) Mga gulong at ndash; na maaaring kontrolin ng dc motors. 3) Leg - Si Nain ay maaaring lumipat sa pagitan ng mga gulong o binti para sa paggalaw. 4) Head &
Reckless Racer Arduino OLED Game, AdafruitGFX at Mga Pangunahing Kaalaman sa Bitmaps: 6 na Hakbang

Reckless Racer Arduino OLED Game, AdafruitGFX at Bitmaps Basics: Sa tutorial na ito titingnan namin kung paano gamitin ang mga bitmap gamit ang Adafruit_GFX.c library bilang isang uri ng mga sprite sa isang laro. Ang pinakasimpleng laro na maaari naming maiisip ay isang pag-scroll sa linya ng pagbabago ng laro ng kotse, sa huli ang aming beta tester at katulong coder de
Pangunahing Arduino Light Intensity Lamp !: 5 Mga Hakbang

Pangunahing Arduino Light Intensity Lamp !: Ang circuit ngayon ay isang nakakatuwang maliit na proyekto ng Arduino para sa kuwarentenas! Ang circuit na ito ay nakatuon sa dalawang mga kagiliw-giliw na materyales; ang Relay SPDT & Photoresistor. Bukod dito, ang layunin ng relay ay upang maging isang switch sa isang circuit nang elektronikong paraan. Bukod dito, photore
Interfacing Pushbutton - Mga Pangunahing Kaalaman sa Arduino: 3 Mga Hakbang

Interfacing Pushbutton - Mga Pangunahing Kaalaman sa Arduino: Ang pushbutton ay isang bahagi na nag-uugnay sa dalawang puntos sa isang circuit kapag pinindot mo ito. Kapag ang pushbutton ay bukas (hindi naka-compress) walang koneksyon sa pagitan ng dalawang binti ng pushbutton, kaya ang pin ay konektado sa 5 volts (sa pamamagitan ng pull-up resi
MIDI 5V LED Strip Light Controller para sa Spielatron o Iba Pang MIDI Synth: 7 Hakbang (na may Mga Larawan)

MIDI 5V LED Strip Light Controller para sa Spielatron o Iba pang MIDI Synth: Ang controller na ito ay nag-flash ng tri-color LED strip lights para sa 50mS bawat tala. Blue para sa G5 hanggang D # 6, pula para sa E6 hanggang B6 at berde para sa C7 hanggang G7. Ang controller ay isang aparato na ALSA MIDI kaya ang MIDI software ay maaaring output sa mga LED nang sabay-sabay bilang isang MIDI synth device