
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

Wstęp:
Jestem nowy w pracy z Arduino, ale mam nadzieję poszerzyć swoją wiedzę poprzez uczenie innych i otrzymywanie informacji zwrotnych. To bardzo prosty kontroler MIDI z 4 przyciskami i potencjometrem. Zarys tego projektu wygląda tak:
1. Zbuduj płytkę stykową
2. Prześlij szkic do Arduino
3. Zrozumieć bezwłosy MIDI i wewnętrzną pętlę MIDI (loopbe1)
4. przekieruj swoje MIDI do DAW (Ableton)
Kieszonkowe dzieci
1 x Arduino Mega 2560
1 x deska do chleba
1 x kabel USB
1 x potencjometr
4 x przyciski taktowe
4 x rezystory 120Ohm
14 x kable rozruchowe do płytki stykowej
Krok 1: Budowanie deski do krojenia chleba


Podłącz płytkę stykową, aby wszystkie komponenty pasowały do obrazu 1 powyżej. Każdy przycisk powinien wyglądać tak samo jak na obrazku 2. Wejścia przycisków to 2, 3, 4 i 5 na Arduino, a środkowy pin potencjometru jest podłączony do wejścia ANALOGOWEGO A0.
Krok 2: Przesyłanie szkicu

Skopiuj i wklej poniższy kod do Arduino IDE. Wybierz odpowiednią płytkę pod "narzędzia" i prześlij szkic do Arduino.
byte noteON = 144;//note na commandbyte note;//przechowywanie aktualnie odtwarzanej nuty int buttonPin1 = 2; int przyciskPin2 = 3; przycisk intPin3 = 4; int przyciskPin4 = 5; int szpilka = A0; boolean currentState = LOW;//stroage dla bieżącego stanu przycisku boolean lastState = LOW;//przechowywanie dla ostatniego stanu przycisku void setup(){ pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(przyciskPin3, INPUT); pinMode(przyciskPin4, WEJŚCIE); //tym razem ustawimy pin jako INPUT Serial.begin(9600);//zainicjuj połączenie szeregowe } void loop(){ int PotVal = analogRead(potPin); prędkość bajtów = map(PotVal, 0, 1023, 0, 127); currentState = digitalRead(buttonPin1); if (currentState == HIGH && lastState == LOW){ MIDImessage(noteON, 60, velocity);//włącz nutę 60 z opóźnieniem prędkości 127(200);//prosta forma odbicia przycisku } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//wyłączanie opóźnienia nuty 60(2);//prosta forma odbicia przycisku } lastState = currentState; currentState = digitalRead(buttonPin2); if (currentState == HIGH && lastState == LOW){//if przycisk został właśnie naciśnięty MIDImessage(noteON, 61, velocity);//włącz nutę 60 z 127 velocity delay(200);//prosta forma przycisku debouncing } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//wyłączanie opóźnienia nuty 60(2);//prosta forma odbicia przycisku } lastState = currentState; currentState = digitalRead(buttonPin3); if (currentState == HIGH && lastState == LOW){//if przycisk został właśnie naciśnięty MIDImessage(noteON, 62, velocity);//włącz nutę 60 z 127 velocity delay(200);//prosta forma przycisku debouncing } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//wyłączanie opóźnienia nuty 60(2);//prosta forma odbicia przycisku } lastState = currentState; currentState = digitalRead(buttonPin4); if (currentState == HIGH && lastState == LOW){//if przycisk został właśnie naciśnięty MIDImessage(noteON, 63, velocity);//włącz nutę 60 z 127 velocity delay(200);//prosta forma przycisku debouncing } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//wyłączanie opóźnienia nuty 60(2);//prosta forma odbicia przycisku } lastState = currentState; } //wyślij wiadomość MIDI void MIDImessage(polecenie bajt, dane bajt1, dane bajt2) { Serial.write(polecenie); Serial.zapis(dane1); Serial.zapis(dane2); }
Nadal jestem bardzo nowy w pisaniu kodu w ogóle….. ci, którzy mają trochę więcej doświadczenia, prawdopodobnie mogliby to posprzątać…
Krok 3: Zrozumienie bezwłosych pętli MIDI i wewnętrznych pętli MIDI



Arduino musi działać przez most szeregowy, taki jak Bezwłosy MIDI, a następnie przez wewnętrzną pętlę MIDI, taką jak loopbe1 (lub magistrala IAC dla komputerów Mac).
Uwaga: nie można przesłać szkicu do Arduino, gdy jest on podłączony do bezwłosego mostka szeregowego MIDI.
Wybierz swoje Arduino w porcie szeregowym Hairless MIDI i loopbe1 lub IAC Bus w wyjściu MIDI.
Uwaga: upewnij się, że wyciszenie nie jest włączone, gdy używasz loopbe1.
Krok 4: Łączenie się z DAW

Jeśli otrzymujesz sygnał do aplikacji Hairless MIDI po naciśnięciu przycisku na płytce stykowej (kontrolki będą migać), powinieneś być w stanie wysłać dane MIDI do DAW. Użyłem Abletona, ale każdy DAW powinien działać. Upewnij się, że twoja wewnętrzna pętla MIDI (loopbe1) jest włączona w twoich preferencjach DAW (w Ableton chcesz, aby "track" był włączony). Następnie wybierz jedno z wejść ścieżek MIDI do pętli MIDI (loopbe1), jak pokazano na powyższym obrazku.
Krok 5: Graj


Przyciski będą teraz działać jak każdy inny kontroler MIDI! Potencjometr zmieni prędkość nut wysyłanych do DAW. Powyższy (bardzo ciemny…) filmik pokazuje dźwięk fortepianu w akcji!
Zalecana:
NAIN 1.0 - podstawowy robot humanoidalny korzystający z Arduino: 6 kroków

NAIN 1.0 - podstawowy robot humanoidalny korzystający z Arduino: Nain 1.0 będzie miał w zasadzie 5 odłączanych modułów- 1) Ramię - które mogą być sterowane za pomocą serw. 2) Koła - które mogą być sterowane za pomocą silników prądu stałego. 3) Noga - Nain będzie mógł przełączać się między kółkami lub nogami, aby się poruszać. 4) Głowa i
Podstawowy samouczek Arduino Bluetooth: 6 kroków (ze zdjęciami)

Arduino Bluetooth Basic Tutorial: AKTUALIZACJA: AKTUALIZOWANĄ WERSJĘ TEGO ARTYKUŁU MOŻNA ZNALEŹĆ TUTAJ. Czy kiedykolwiek myślałeś o sterowaniu dowolnymi urządzeniami elektronicznymi za pomocą smartfona? Sterowanie robotem lub innymi urządzeniami za pomocą smartfona będzie naprawdę fajne. Oto prosty i basowy
Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków

Kontroler gier DIY oparty na Arduino | Kontroler gier Arduino PS2 | Granie w Tekken z DIY Arduino Gamepad: Witajcie, granie w gry jest zawsze zabawne, ale granie z własnym niestandardowym kontrolerem do gier jest przyjemniejsze. Dlatego stworzymy kontroler do gier za pomocą arduino pro micro w tej instrukcji
Podstawowy samouczek Arduino dla początkujących: 6 kroków

Arduino Basic Tutorial dla początkujących: 1. Co to jest Arduino? Arduino to platforma dla systemów wbudowanych, oparta w większości na 8-bitowych mikrokontrolerach z rodziny AVR. Wyjątkiem jest Arduino Due, który wykorzystuje 32-bitowy rdzeń ARM Cortex. Innymi słowy, jest to płytka drukowana z mikro
Kontroler oświetlenia taśmy LED 5V MIDI dla Spielatrona lub innego syntezatora MIDI: 7 kroków (ze zdjęciami)

Kontroler oświetlenia taśmy LED 5V MIDI dla Spielatronu lub innego syntezatora MIDI: Ten kontroler miga trójkolorowymi paskami LED dla 50mS na nutę.Niebieski dla G5 do D#6, czerwony dla E6 do B6 i zielony dla C7 do G7. Kontroler jest urządzeniem ALSA MIDI, więc oprogramowanie MIDI może wysyłać sygnały do diod LED w tym samym czasie, co syntezator MIDI