
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59

Įvadas:
Esu naujokas dirbdamas su „Arduino“, bet tikiuosi praplėsti savo žinias mokydamas kitus ir gaudamas atsiliepimų. Tai labai paprastas MIDI valdiklis su 4 mygtukais ir potenciometru. Šio projekto schema atrodo taip:
1. Sukurkite duonos lentą
2. Įkelkite eskizą į „Arduino“
3. Suprasti MIDI be plaukų ir vidinę MIDI kilpą (loopbe1)
4. nukreipkite savo MIDI į DAW (Ableton)
Prekės
1 x „Arduino Mega 2560“
1 x duonos lenta
1 x USB kabelis
1 x potenciometras
4 x taktiniai mygtukai
4 x 120 omų rezistoriai
14 x jungiamieji kabeliai duonai
1 žingsnis: sukurkite duonos lentą


Prijunkite savo duonos lentą, kad visi komponentai atitiktų 1 paveikslėlį. Kiekvienas mygtukas turėtų atrodyti taip pat, kaip 2 paveikslėlis. Mygtuko įvestys yra 2, 3, 4 ir 5 „Arduino“, o vidurinis potenciometro kaištis prijungtas prie ANALOG įvesties A0.
2 veiksmas: eskizo įkėlimas

Nukopijuokite ir įklijuokite žemiau esantį kodą į „Arduino IDE“. Skiltyje „įrankiai“pasirinkite tinkamą lentą ir įkelkite eskizą į „Arduino“.
baitų užrašasONON = 144; // pastaba apie komandinę baitų pastabą; // šiuo metu grojamos natos saugykla int mygtukasPin1 = 2; int mygtukasPin2 = 3; int mygtukasPin3 = 4; int mygtukasPin4 = 5; int potPin = A0; boolean currentState = LOW; // dabartinės mygtuko būklės loginis brūkšnys lastState = LOW; // paskutinio mygtuko būsenos saugykla void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // šį kartą kaištį nustatysime kaip INPUT Serial.begin (9600); // inicijuoti serijinį ryšį} void loop () {int PotVal = analogRead (potPin); baitų greitis = žemėlapis („PotVal“, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, greitis); // įjunkite 60 pastabą su 127 greičio vėlavimu (200); // neapdorota mygtuko panaikinimo forma} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // išjunkite 60 pastabą (2); // neapdorota mygtuko išjungimo forma} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// jei mygtukas ką tik buvo paspaustas MIDImessage (noteON, 61, greitis); // įjunkite 60 pastabą su 127 greičio uždelsimu (200); // neapdorota mygtuko forma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 pastabos išjungimas (2); // neapdorota mygtuko išjungimo forma} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// jei ką tik paspaustas mygtukas MIDImessage (noteON, 62, greitis); // įjunkite 60 pastabą su 127 greičio uždelsimu (200); // neapdorota mygtuko forma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 pastabos išjungimas (2); // neapdorota mygtuko išjungimo forma} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// jei ką tik paspaustas mygtukas MIDImessage (noteON, 63, greitis); // įjunkite 60 pastabą su 127 greičio uždelsimu (200); // neapdorota mygtuko forma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 pastabos išjungimas (2); // neapdorota mygtuko išjungimo forma} lastState = currentState; } // siųsti MIDI pranešimą void MIDImessage (baitų komanda, baitų duomenys1, baitų duomenys2) {Serial.write (komanda); Serial.write (duomenys1); Serial.write (duomenys2); }
Aš vis dar labai naujokas rašydamas kodą apskritai ….. tie, kurie turi šiek tiek daugiau patirties, tikriausiai galėtų tai išvalyti …
3 žingsnis: supraskite beplaukį MIDI ir vidines MIDI kilpas



„Arduino“turi važiuoti per nuoseklųjį tiltą, pvz., „Hairless MIDI“, tada per vidinę MIDI kilpą, pvz., „Loopbe1“(arba „IAC“magistralę, skirtą „Mac“).
Pastaba: jūs negalite įkelti eskizo į „Arduino“, kol jis prijungtas prie beplaukio MIDI nuoseklaus tilto.
Pasirinkite savo „Arduino“MIDI be plaukų serijos prievadą ir „loopbe1“arba IAC magistralę MIDI išvestyje.
Pastaba: įsitikinkite, kad naudojant „loopbe1“neįjungtas nutildymas.
4 žingsnis: Prisijunkite prie savo DAW

Jei gaunate signalą į „Hairless MIDI“programą, kai paspaudžiate duonos lentos mygtuką (mirksi lemputės), turėtumėte turėti galimybę siųsti MIDI duomenis į DAW. Aš naudoju „Ableton“, bet bet koks DAW turėtų veikti. Įsitikinkite, kad jūsų vidinė MIDI kilpa (loopbe1) yra įjungta jūsų DAW nuostatose („Ableton“norite įjungti „takelį“). Tada pasirinkite vieną iš savo MIDI takelio įėjimų į MIDI kilpą (loopbe1), kaip parodyta aukščiau esančiame paveikslėlyje.
5 žingsnis: žaiskite


Mygtukai dabar veiks kaip ir bet kuris kitas MIDI valdiklis! Potenciometras pakeis į DAW siunčiamų natų greitį. Aukščiau esančiame (labai tamsiame…) vaizdo įraše rodomas veikiantis fortepijono garsas!
Rekomenduojamas:
Lune - MIDI valdiklis su „Arduino“(DJ ar muzikantui): 5 žingsniai (su paveikslėliais)

Lune - MIDI valdiklis su Arduino (DJ ar muzikantui): tai mano pirmasis arduino (mikrovaldiklis) projekto pavadinimas Lune. Norėjau išmokti arduino su naudingu ir dideliu projektu, todėl nusprendžiau sukurti midi DJ valdiklį, kuris turėtų visas funkcijas, reikalingas tam, kad būtų sumaišytas. Kiekvieno tipo jutiklis (potencialus
„Arduino MIDI“valdiklis „Aalto“: 7 žingsniai

„Arduino MIDI“valdiklis „Aalto“: Būdamas muzikantas mėgėjas, dažnai pereinu iš „Analog Synths“į VST. Kai esu „VST“nuotaika, aš tikrai mėgstu vieną nuostabų instrumentą: „Madronalab“„Aalto VST“. Šis neįtikėtinas VST yra labai lankstus, sukuria labai gerus garsus ir yra gana gražus
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai

„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis | „Arduino PS2“žaidimų valdiklis | Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino Gamepad“: Sveiki, vaikinai, žaisti žaidimus visada smagu, tačiau žaisti su savo „pasidaryk pats“žaidimo valdikliu yra smagiau. Taigi, mes padarysime žaidimų valdiklį naudodami „arduino pro micro“šioje instrukcijoje
YABC - dar vienas „Blynk“valdiklis - „IoT“debesų temperatūros ir drėgmės valdiklis, ESP8266: 4 žingsniai

YABC - Dar vienas „Blynk“valdiklis - „IoT“debesų temperatūros ir drėgmės valdiklis, ESP8266: Sveiki, kūrėjai, neseniai pradėjau auginti grybus namuose, austrių grybus, bet jau turiu 3 kartus šių valdiklių namuose, kad galėčiau kontroliuoti savo namų alaus fermentacijos temperatūrą, žmona dabar taip pat daro šį „Kombucha“dalyką ir yra šilumos termostatas
MIDI 5V LED juostos šviesos valdiklis „Spielatron“ar kitam „MIDI Synth“: 7 žingsniai (su nuotraukomis)

„MIDI 5V LED Strip Light Controller“, skirtas „Spielatron“ar kitam „MIDI Synth“: šis valdiklis mirksi trispalviais LED juostų žibintais 50 mS už užrašą. Mėlyna spalva nuo G5 iki D#6, raudona-nuo E6 iki B6 ir žalia-nuo C7 iki G7. Valdiklis yra ALSA MIDI įrenginys, todėl MIDI programinė įranga gali išvesti į šviesos diodus tuo pačiu metu kaip ir MIDI sintezės įrenginys