Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Kirish:
Men Arduino bilan yangi ishlayapman, lekin umid qilamanki, o'z bilimimni boshqalarga o'rgatish va fikr -mulohazalarni olish orqali kengaytiraman. Bu 4 tugmachali va potentsiometrli juda oddiy MIDI kontroller. Loyihaning sxemasi shunday ko'rinadi:
1. Non taxtasini yarating
2. Sketchni Arduino -ga yuklang
3. Sochsiz MIDI va ichki MIDI pastadirini tushunish (loopbe1)
4. MIDI -ni DAW -ga yo'naltiring (Ableton)
Ta'minotlar
1 x Arduino Mega 2560
1 x non paneli
1 x USB kabeli
1 x Potansiyometr
4 x muomala tugmalari
4 x 120 Ohm qarshilik
Non paneli uchun 14 x o'tish kabeli
1 -qadam: Non paneli yaratish
Non panelini ulang, shunda barcha komponentlar yuqoridagi 1 -rasmga mos keladi. Har bir tugma 2 -rasmda bo'lgani kabi ko'rinishi kerak. Arduino -da 2, 3, 4 va 5 -tugmalar kiritiladi va potentsiometrning o'rta pimi ANALOG A0 kirishiga ulanadi.
2 -qadam: Eskizni yuklash
Quyidagi kodni nusxa ko'chiring va Arduino IDE -ga joylashtiring. "Asboblar" ostida to'g'ri taxtani tanlang va eskizni Arduino -ga yuklang.
// byte noteON = 144; // buyruq baytidagi eslatma; // hozirda int notPPIN1 = 2 yozuvini saqlash uchun saqlash; int tugmasiPin2 = 3; int tugmasiPin3 = 4; int tugmasiPin4 = 5; int potPin = A0; boolean currentState = LOW; // joriy tugma holati uchun harakatlanish boolean lastState = LOW; // oxirgi tugma holatini saqlash uchun bo'sh joyni sozlash () {pinMode (buttonPin1, INPUT); pinMod (tugmaPin2, Kirish); pinMod (tugmaPin3, Kirish); pinMode (tugmaPin4, Kirish); // bu safar biz pinni INPUT Serial.begin (9600) sifatida o'rnatamiz; // Serial ulanishni ishga tushirish} void loop () {int PotVal = analogRead (potPin); bayt tezligi = xarita (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, tezlik); // 60 -eslatmani 127 tezlikni kechiktirish bilan yoqing (200); // tugmani o'chirishning qo'pol shakli} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 -eslatmani kechiktirishni o'chirish (2); // tugmalarni o'chirishning qo'pol shakli} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// agar tugma endigina bosilgan bo'lsa MIDImessage (noteON, 61, tezlik); debuning}} if if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 -eslatmani kechiktirishni o'chirish (2); // tugmalarni o'chirishning qo'pol shakli} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// agar tugma endigina bosilgan bo'lsa MIDImessage (noteON, 62, tezlik); debuning}} if if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 -eslatmani kechiktirishni o'chirish (2); // tugmalarni o'chirishning qo'pol shakli} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// agar tugma endigina bosilgan bo'lsa MIDImessage (noteON, 63, tezlik); // 127 tezlikni kechiktirish bilan 60 -eslatmani yoqing (200); // tugmaning qo'pol shakli debuning}} if if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // 60 -eslatmani kechiktirishni o'chirish (2); // tugmalarni o'chirishning qo'pol shakli} lastState = currentState; } // MIDI xabarini bekor qilish MIDImessage (bayt buyrug'i, bayt ma'lumotlari1, bayt ma'lumotlari2) {Serial.write (buyruq); Serial.write (ma'lumotlar1); Serial.write (ma'lumotlar2); }
Men hali umuman kod yozishda juda yangiman … … biroz tajribaga ega bo'lganlar, ehtimol, buni tozalashlari mumkin edi …
3 -qadam: Tuksiz MIDI va ichki MIDI looplarini tushunish
Arduino Sochsiz MIDI kabi ketma -ket ko'prikdan o'tishi kerak, keyin loopbe1 (yoki Mac uchun IAC avtobus) kabi ichki MIDI pastadir orqali o'tishi kerak.
Eslatma: siz tuksiz MIDI ketma -ket ko'prigiga ulangan paytda eskizni Arduino -ga yuklay olmaysiz.
Sochsiz MIDI ketma -ket portida Arduino -ni tanlang va MIDI -da loopbe1 yoki IAC Bus -ni tanlang.
Eslatma: loopbe1 dan foydalanilganda ovoz o'chirilmaganligiga ishonch hosil qiling.
4 -qadam: DAW -ga ulanish
Agar siz paneldagi tugmachani bosganingizda (Sochsiz MIDI) dasturiga signal kelsa (chiroqlar yonadi), siz MIDI ma'lumotlarini DAWga yuborishingiz kerak. Men Ableton -dan foydalandim, lekin har qanday DAW ishlashi kerak. Sizning ichki MIDI pastadiringiz (loopbe1) DAW parametrlarida yoqilganligiga ishonch hosil qiling (Abletonda siz "trek" yoqilishini xohlaysiz). Keyin, yuqoridagi rasmda ko'rsatilgandek, MIDI tsikliga (loopbe1) MIDI treklaridan birini tanlang.
5 -qadam: O'ynang
Endi tugmalar boshqa MIDI kontrollerlar kabi ishlaydi! Potentsiometr DAWga yuboriladigan yozuvlarning tezligini o'zgartiradi. Yuqoridagi (juda qorong'i …) videoda pianino chalinayotgani ko'rsatilgan!
Tavsiya:
Lune - Arduino bilan MIDI boshqaruvchisi (DJ yoki musiqachi uchun): 5 qadam (rasmlar bilan)
Lune - Arduino bilan MIDI boshqaruvchisi (DJ yoki musiqachi uchun): Bu mening birinchi arduino (mikrokontroller) loyiha nomi Lune. Men arduino -ni foydali va katta loyiha bilan o'rganishni xohlardim, shuning uchun men barcha funktsiyalarni bir -biri bilan aralashtirib yuborish uchun zarur bo'lgan midi DJ kontrollerini yasashga qaror qildim
Aalto uchun Arduino MIDI boshqaruvchisi: 7 qadam
Aalto uchun Arduino MIDI Controller: Havaskor musiqachi bo'lganim uchun, men tez -tez Analog Synth -dan VST -ga o'taman. Men " VST " Kayfiyat, men haqiqatan ham bitta ajoyib asbobni yaxshi ko'raman: Madronalabning Aalto VST Bu ajoyib VST juda moslashuvchan, u juda yaxshi tovushlarni chiqaradi va juda yaxshi
Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam
Arduino asosidagi DIY o'yin boshqaruvchisi | Arduino PS2 o'yin boshqaruvchisi | DIY Arduino Gamepad bilan Tekken o'ynash: Salom bolalar, o'yin o'ynash har doim qiziqarli, lekin o'zingizning shaxsiy o'yiningiz bilan o'ynash yanada qiziqarli, shuning uchun biz ushbu qo'llanmada arduino pro micro yordamida o'yin boshqaruvchisi qilamiz
Robotika: Rover 5 -ning asosiy versiyasi, robotning asosiy bosqichi: 18 qadam (rasmlar bilan)
Robotika: Rover 5 -ning eng yaxshi robotlari:
Spielatron yoki boshqa MIDI Synth uchun MIDI 5V LED chiziqli yorug'lik boshqaruvchisi: 7 qadam (rasmlar bilan)
MIDI 5V Spielatron yoki boshqa MIDI Synt uchun yorug'lik chizig'ini boshqaruvchi: Bu nazoratchi har bir yozuv uchun 50 mS uchun uch rangli LED chiziqli chiroqlarni yondiradi. G5-D#6 uchun ko'k, E6-B6 uchun qizil va C7-G7 uchun yashil. Nazoratchi ALSA MIDI qurilmasidir, shuning uchun MIDI dasturi bir vaqtning o'zida MIDI sinxronlash qurilmasi bilan bir vaqtda LEDlarga chiqishi mumkin