สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: สร้างเขียงหั่นขนม
- ขั้นตอนที่ 2: การอัปโหลด Sketch
- ขั้นตอนที่ 3: ทำความเข้าใจ MIDI แบบไม่มีขนและ MIDI ลูปภายใน
- ขั้นตอนที่ 4: เชื่อมต่อกับ DAW. ของคุณ
- ขั้นตอนที่ 5: เล่น
วีดีโอ: ตัวควบคุม Arduino MIDI พื้นฐาน: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
บทนำ:
ฉันยังใหม่กับการทำงานกับ Arduino แต่ฉันหวังว่าจะได้เพิ่มพูนความรู้โดยการสอนผู้อื่นและรับข้อเสนอแนะ นี่คือตัวควบคุม MIDI ขั้นพื้นฐานที่มี 4 ปุ่มและโพเทนชิออมิเตอร์ โครงร่างสำหรับโครงการนี้มีลักษณะดังนี้:
1. สร้างเขียงหั่นขนม
2. อัปโหลด Sketch ไปยัง Arduino
3. ทำความเข้าใจ MIDI แบบไม่มีขนและวง MIDI ภายใน (loopbe1)
4. กำหนดเส้นทาง MIDI ของคุณไปที่ DAW (Ableton)
เสบียง
1 x Arduino Mega 2560
1 x แผ่นขนมปัง
1 x สาย USB
1 x โพเทนชิออมิเตอร์
4 x ปุ่มแทค
ตัวต้านทาน 4 x 120Ohm
สายจัมเปอร์ 14 เส้นสำหรับเขียงหั่นขนม
ขั้นตอนที่ 1: สร้างเขียงหั่นขนม
เชื่อมต่อเขียงหั่นขนมของคุณเพื่อให้ส่วนประกอบทั้งหมดตรงกับภาพที่ 1 ด้านบน แต่ละปุ่มควรมีลักษณะเหมือนกับภาพที่ 2 อินพุตของปุ่มคือ 2, 3, 4 และ 5 บน Arduino และพินตรงกลางของโพเทนชิออมิเตอร์เชื่อมต่อกับอินพุต ANALOG A0
ขั้นตอนที่ 2: การอัปโหลด Sketch
คัดลอกและวางโค้ดด้านล่างลงใน Arduino IDE เลือกบอร์ดที่ถูกต้องภายใต้ "เครื่องมือ" และอัปโหลดภาพร่างไปยัง Arduino
byte noteON = 144;//note on commandbyte note;//ที่เก็บข้อมูลสำหรับโน้ต int button ที่กำลังเล่นอยู่ Pin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; ปุ่ม intPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage สำหรับสถานะปุ่มปัจจุบัน boolean lastState = LOW; // ที่เก็บข้อมูลสำหรับสถานะปุ่มสุดท้ายเป็นโมฆะการตั้งค่า () {pinMode (buttonPin1, INPUT); pinMode(ปุ่มPin2, INPUT); pinMode (ปุ่ม Pin3, INPUT); pinMode (ปุ่ม Pin4, INPUT); //คราวนี้เราจะตั้งค่าพินเป็น INPUT Serial.begin(9600);// เริ่มต้นการเชื่อมต่อแบบอนุกรม } void loop(){ int PotVal = analogRead(potPin); ความเร็วไบต์ = แผนที่ (PotVal, 0, 1023, 0, 127); currentState = digitalRead (ปุ่มพิน1); if (currentState == สูง && lastState == LOW) { MIDImessage (noteON, 60, velocity); // เปิดโน้ต 60 โดยมีการหน่วงเวลา 127 ความเร็ว (200); // รูปแบบหยาบของปุ่ม debouncing } อื่น ๆ if (currentState == LOW && lastState == สูง){ MIDImessage(noteON, 60, 0);//turn note 60 off delay(2);//รูปแบบหยาบของปุ่ม debouncing } lastState = currentState; currentState = digitalRead (ปุ่มพิน2); if (currentState == HIGH && lastState == LOW){//หากเพิ่งกดปุ่ม MIDImessage(noteON, 61, velocity);// เปิดโน้ต 60 ด้วยความเร็ว 127 ความเร็ว (200); // รูปแบบของปุ่มที่หยาบ debouncing } อื่น if(currentState == LOW && lastState == HIGH){ MIDImessage (noteON, 60, 0);//turn note 60 off delay(2);//รูปแบบหยาบของปุ่ม debouncing } lastState = currentState; currentState = digitalRead (ปุ่มพิน3); if (currentState == HIGH && lastState == LOW){//หากเพิ่งกดปุ่ม MIDImessage(noteON, 62, velocity);// เปิดโน้ต 60 ด้วยความเร็ว 127 ความเร็ว (200); // รูปแบบปุ่มหยาบ debouncing } อื่น if(currentState == LOW && lastState == HIGH){ MIDImessage (noteON, 60, 0);//turn note 60 off delay(2);//รูปแบบหยาบของปุ่ม debouncing } lastState = currentState; currentState = digitalRead (ปุ่มพิน4); if (currentState == HIGH && lastState == LOW){//หากเพิ่งกดปุ่ม MIDImessage(noteON, 63, velocity);// เปิดโน้ต 60 ด้วยความเร็ว 127 ความเร็ว (200); // รูปแบบปุ่มหยาบ debouncing } อื่น if(currentState == LOW && lastState == HIGH){ MIDImessage (noteON, 60, 0);//turn note 60 off delay(2);//รูปแบบหยาบของปุ่ม debouncing } lastState = currentState; } // ส่งข้อความ MIDI เป็นโมฆะ MIDImessage (คำสั่งไบต์, ไบต์ data1, ไบต์ data2) { Serial.write (คำสั่ง); Serial.write(data1); Serial.write(data2); }
ฉันยังใหม่มากในการเขียนโค้ดโดยทั่วไป….. ผู้ที่มีประสบการณ์มากกว่านี้อาจจะทำความสะอาดสิ่งนี้ได้…
ขั้นตอนที่ 3: ทำความเข้าใจ MIDI แบบไม่มีขนและ MIDI ลูปภายใน
Arduino ต้องทำงานผ่านบริดจ์อนุกรมเช่น Hairless MIDI จากนั้นผ่านลูป MIDI ภายใน เช่น loopbe1 (หรือบัส IAC สำหรับ Mac)
หมายเหตุ: คุณไม่สามารถอัปโหลดภาพสเก็ตช์ไปยัง Arduino ในขณะที่เชื่อมต่อกับบริดจ์อนุกรม MIDI แบบไม่มีขน
เลือก Arduino ของคุณในพอร์ตอนุกรม Hairless MIDI และ loopbe1 หรือ IAC Bus ใน MIDI out
หมายเหตุ: ตรวจสอบให้แน่ใจว่าไม่ได้เปิดปิดเสียงเมื่อใช้ loopbe1
ขั้นตอนที่ 4: เชื่อมต่อกับ DAW. ของคุณ
หากคุณได้รับสัญญาณไปยังแอพ Hairless MIDI เมื่อคุณกดปุ่มบนเขียงหั่นขนม (ไฟจะกะพริบ) คุณควรจะสามารถส่งข้อมูล MIDI ไปยัง DAW ได้ ฉันใช้ Ableton แต่ DAW ใด ๆ ควรใช้งานได้ ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน MIDI loop ภายใน (loopbe1) ในการตั้งค่า DAW ของคุณแล้ว (ใน Ableton คุณต้องการให้เปิดใช้งาน "track") จากนั้นเลือกอินพุตแทร็ก MIDI ของคุณไปยัง MIDI loop (loopbe1) ตามที่แสดงในภาพด้านบน
ขั้นตอนที่ 5: เล่น
ตอนนี้ปุ่มต่างๆ จะทำงานเหมือนกับตัวควบคุม MIDI อื่นๆ! โพเทนชิออมิเตอร์จะเปลี่ยนความเร็วของโน้ตที่ส่งไปยัง DAW วิดีโอ (มืดมาก…) ด้านบนแสดงเสียงเปียโนแกรนด์ขณะใช้งาน!
แนะนำ:
ตัวควบคุม Midi แบบไม่สัมผัส: 6 ขั้นตอน (พร้อมรูปภาพ)
Non Contact Midi Controller: การทำสิ่งต่าง ๆ แบบไม่สัมผัสกลายเป็นเทรนด์ในปัจจุบัน ฉันสร้างตัวควบคุม midi อย่างง่ายโดยใช้ Arduino Pro micro และบอร์ดตรวจจับ IR-proximity บางตัวซึ่งมีตัวเปรียบเทียบในตัว ซึ่งน่าจะใช้งานได้ง่ายและราคาถูก โครงการนี้ค
Lune - ตัวควบคุม MIDI พร้อม Arduino (สำหรับดีเจหรือนักดนตรี): 5 ขั้นตอน (พร้อมรูปภาพ)
Lune - MIDI Controller พร้อม Arduino (สำหรับดีเจหรือนักดนตรี): ชื่อโปรเจ็กต์ Arduino (ไมโครคอนโทรลเลอร์) ตัวแรกของฉันคือ Lune ฉันต้องการเรียนรู้ Arduino ด้วยโปรเจ็กต์ที่มีประโยชน์และมีขนาดใหญ่ ดังนั้นฉันจึงตัดสินใจสร้างตัวควบคุม midi DJ ที่มีฟังก์ชันทั้งหมดที่จำเป็นในการมิกซ์แบบสแตนด์อโลน เซ็นเซอร์ทุกประเภท (โพเทนชิโอ
Freya - ตัวควบคุม Vivarium: 6 ขั้นตอน
Freya - Vivarium Controller: Freya เป็นโอเพ่นซอร์ส ระบบควบคุม vivarium ที่ใช้ Raspberry Pi ในคำแนะนำนี้เราจะดำเนินการตามขั้นตอนในการสร้างคอนโทรลเลอร์
ตัวควบคุม RGB Led: 4 ขั้นตอน
RGB Led Controller: สวัสดีทุกคน เป็นคำแนะนำที่ค่อนข้างง่ายสำหรับ led rgb ซึ่งคุณสามารถตั้งค่าสีแบบไร้สายได้ สามารถติดตั้งได้ในทุกพื้นที่ภายในยกเว้นห้องน้ำ: Pวิดีโอจะสอนวิธีทำวงจร เพลิดเพลินไปกับวิดีโอ!วัสดุ Power Supply RF
ตัวควบคุม Unity อย่างง่าย: 5 ขั้นตอน
ตัวควบคุม Unity อย่างง่าย: คำอธิบายโปรเจ็กต์นี้เป็นตัวควบคุมที่ง่ายมากที่สามารถป้อน Unity ได้เมื่อกดปุ่ม ฉันออกแบบให้ควบคุมเกมที่ฉันสร้างโดยที่ผู้เล่นสามารถไปทางซ้ายและขวาได้ แน่นอน คุณสามารถปรับเปลี่ยนเพื่อการควบคุมเพิ่มเติมได้ตลอดเวลา ไม่มีน