สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: ประกอบวงจร
- ขั้นตอนที่ 3: ตั้งโปรแกรม It
- ขั้นตอนที่ 4: สร้างมัน
- ขั้นตอนที่ 5: เล่นกลอง
วีดีโอ: กลองสตูดิโอ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
มือกลองจะใช้เวลาหลายชั่วโมงในการฝึกฝน … แต่ทุกคนไม่สามารถมีกลองที่บ้านได้ พื้นที่และเสียงรบกวนเป็นปัญหาใหญ่!
ด้วยเหตุผลนี้ เราจึงต้องการสร้างชุดกลองแบบพกพาที่เงียบซึ่งคุณสามารถเล่นที่บ้านได้
ชุดกลองนี้ใช้งานง่ายมาก คุณเพียงแค่ต้องตีแผ่นเสียงและให้เสียงเหมือนกลองจริง! นอกจากนี้ยังมาพร้อมกับจอแสดงผลที่คุณสามารถเห็นได้ว่าคุณกำลังกดปุ่มอะไรอยู่ และหากคุณต้องการใช้งานในโหมดเงียบ เพียงต่อหูฟังเข้ากับแล็ปท็อป!
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
วัสดุ
- Arduino Uno
- เขียงหั่นขนม
- สายบางๆ
- 5x พายโซ
- ตัวต้านทาน 5x 1M โอห์ม
- ฝา 5 กระปุก
- อีวา โฟม
- โฟมบอร์ด
โปรแกรม:
- Arduino IDE
- กำลังประมวลผล
*หากต้องการดาวน์โหลดโปรแกรมข้างต้นลงในคอมพิวเตอร์ของคุณ ให้ไปที่ลิงก์ด้านล่าง:
- https://www.arduino.cc/en/main/software
- https://www.arduino.cc/en/main/software
ขั้นตอนที่ 2: ประกอบวงจร
ก่อนอื่นเราต้องประสานกับเพียโซ (GND ถึงส่วนสีเหลืองและสายพินอะนาล็อกกับส่วนสีขาวของเพียโซ)
เราจะใช้เขียงหั่นขนมเพื่อเชื่อมต่อทุกอย่าง
เชื่อมต่อตัวต้านทานและสายไฟของเพียโซดังแสดงในแผนภาพด้านบน จากนั้นเชื่อมต่อสาย GND ของเขียงหั่นขนมกับ GND บน Arduino สุดท้าย เชื่อมต่อสายแต่ละเส้นของ piezo เข้ากับขาอนาล็อกบน Arduino ของคุณดังที่แสดงด้านล่าง
Piezos เชื่อมต่อกับพินอะนาล็อก:
- ไคซ่า = A0;
- ชาร์ลส์ = A1;
- ทอมทอม = A2;
- ชน = A3;
- บอมโบ = A4;
ขั้นตอนที่ 3: ตั้งโปรแกรม It
เราตัดสินใจสร้างจอแสดงผลของเราเองสำหรับชุดกลองแทนการใช้โปรแกรมที่ตั้งไว้ล่วงหน้า เราใช้การประมวลผลสำหรับสิ่งนี้
เราได้ตั้งโปรแกรมไว้เพื่อให้เมื่อตี piezo เสียงของกลองที่เกี่ยวข้องจะดังขึ้น นอกจากนี้ รูปแบบกลองที่สอดคล้องกันจะสว่างขึ้นบนหน้าจอ
คุณจะต้องนำเข้าเสียงการประมวลผลและการประมวลผลไลบรารีอนุกรม
อย่าลืมเพิ่มเสียงกลองลงในโฟลเดอร์ข้อมูล!
รหัส ARDUINO
// PIEZOS เชื่อมต่อกับ PIN แบบอะนาล็อก
const int caixa = A0;
const int ชาร์ลส์ = A1;
const int tomtom = A2;
const int crash = A3;
const int bombo = A4;
const int เกณฑ์ = 100; // ค่าเกณฑ์ที่จะตัดสินว่าเสียงที่ตรวจพบเป็นเสียงเคาะหรือไม่
// อ่านและจัดเก็บค่าที่อ่านจาก SENSOR PINS
int caixaReading = 0;
int charlesReading = 0;
int tomtomReading = 0;
int crashReading = 0;
int bomboReading = 0;
การตั้งค่าเป็นโมฆะ () {
Serial.begin(9600); // ใช้พอร์ตอนุกรม
}
วงเป็นโมฆะ () {
// อ่านเซ็นเซอร์และเก็บไว้ในเซ็นเซอร์ตัวแปรการอ่าน:
caixaReading = analogRead (caixa);
// หากการอ่านเซ็นเซอร์มากกว่าเกณฑ์:
ถ้า (caixaReading >= เกณฑ์) {
// หากคุณกด CAIXA ให้ส่ง 0 เพื่อดำเนินการ
Serial.print("0,");
Serial.println (caixaReading);
}
charlesReading = analogRead (ชาร์ลส์);
ถ้า (charlesReading >= เกณฑ์) {
// หากคุณโจมตี CHARLES ให้ส่ง 1 ไปยังการประมวลผล
Serial.print("1, ");
Serial.println (caixaReading);
}
tomtomReading = analogRead (tomtom);
ถ้า (tomtomReading >= เกณฑ์) {
// หากคุณโจมตี CAIXA ให้ส่ง 2 ไปยังการประมวลผล
Serial.print("2, ");
Serial.println (tomtomReading);
}
crashReading = analogRead (ขัดข้อง);
ถ้า (crashReading >= เกณฑ์) {
// หากคุณโจมตี CAIXA ให้ส่ง 3 ไปยังการประมวลผล
Serial.print("3, ");
Serial.println(crashReading);
}
bomboReading = analogRead (ระเบิด);
ถ้า (bomboReading >= 15) {
// หากคุณโจมตี CAIXA ให้ส่ง 4 เพื่อดำเนินการ
Serial.print("4, ");
Serial.println (bomboReading);
}
ล่าช้า(10); // หน่วงเวลาเพื่อหลีกเลี่ยงการโอเวอร์โหลดบัฟเฟอร์พอร์ตอนุกรม
}
รหัสประมวลผล
//นำเข้าเสียงและไลบรารีแบบอนุกรม
นำเข้าการประมวลผลเสียง.*;
นำเข้าการประมวลผล.ซีเรียล.*;
อนุกรม myPort; // สร้างวัตถุจาก Serial class
วาลสตริง; // ข้อมูลที่ได้รับจากพอร์ตอนุกรม
//เสียงกลอง
ไฟล์เสียง caixa;
ชาร์ลส์ SoundFile;
ทอมไฟล์เสียง;
ความผิดพลาดของไฟล์เสียง;
ไฟล์เสียงระเบิด;
//กลองสตูดิโออิมเมจ
รูปภาพ img0;
รูปภาพ img1;
รูปภาพ img2;
รูปภาพ img3;
รูปภาพ img4;
รูปภาพ img5;
รูปภาพ img6;
// DRUMS STUDIO WAVES ตัวแปร
ลอย n = 0;
ลอย n2 = 1;
ลอย n3 = 2;
ลอย n4 = 3;
ลอย n5 = 4;
ลอย y = 0;
ลอย y2 = 1;
ลอย y3 = 2;
ลอย y4 = 3;
ลอย y5 = 4;
การตั้งค่าเป็นโมฆะ ()
{
// เปิดพอร์ตใดก็ได้ที่คุณใช้อยู่
สตริง portName = Serial.list()[0]; //เปลี่ยน 0 เป็น 1 หรือ 2 ฯลฯ เพื่อให้ตรงกับพอร์ตของคุณ
myPort = ซีเรียลใหม่ (นี่ portName, 9600);
//กลองสตูดิโอคอนโซล
ขนาด (720, 680);
พื้นหลัง(15, 15, 15);
จังหวะน้ำหนัก(2);
//โหลดภาพกลองสตูดิโอ
img0 = loadImage("drumsstudio.png");
img1 = loadImage("res.png");
img2 = loadImage("caixa.png");
img3 = loadImage("charles.png");
img4 = loadImage("tomtom.png");
img5 = loadImage("crash.png");
img6 = loadImage("bombo.png");
//โหลดเสียง
caixa = ไฟล์เสียงใหม่ (นี่ "caixa.aiff");
charles = new SoundFile (นี้ "charles.aiff");
tomtom = ไฟล์เสียงใหม่ (นี่คือ "tomtom.aiff");
crash = ไฟล์เสียงใหม่ (นี่คือ "crash.aiff");
bombo = ไฟล์เสียงใหม่ (นี่คือ "bombo.aiff");
}
ถือเป็นโมฆะวาด ()
{
//TITULO DRUMS STUDIO
รูปภาพ (img0, 125, 0);
//วาดคลื่น
if (y>720) //เริ่มเวฟอีกครั้ง
{
y = 0;
y2 = 1;
y3 = 2;
y4 = 3;
y5 = 4;
}
เติม(0, 10);
ตรง(0, 0, 0, ความกว้าง, ความสูง);
// Dejamos เติม blanco para
// ไดบูจาร์ ลา โบลา
กรอก (255);
จังหวะ (250, 255, 3);
จุด(y, (สูง-40) + บาป(n) * 30);
n = n + 0.05;
y = y + 1;
จังหวะ (250, 255, 3);
จุด(y2, (สูง-40) + cos(n2) * 30);
n2 = n2 + 0.05;
y2 = y2 + 1;
จังหวะ (250, 255, 3);
จุด(y3, (สูง-40) + บาป(n3) * 30);
n3 = n3 + 0.05;
y3= y3 + 1;
จังหวะ (250, 255, 3);
จุด(y4, (สูง-40) + cos(n4) * 30);
n4 = n4 + 0.05;
y4 = y4 + 1;
จังหวะ (250, 255, 3);
จุด(y5, (สูง-40) + บาป(n5) * 30);
n5 = n5 + 0.05;
y5 = y5 + 1;
//DIBUJO BATERIA SIN NINGUNA PARTE อิลูมินาดา
รูปภาพ (img1, 0, 80);
//สร้างผลลัพธ์สำหรับทุกอินพุต
ถ้า (myPort.available() > 0)
{ // หากมีข้อมูล
val = myPort.readStringUntil('\n'); // อ่านแล้วเก็บไว้ใน val
println (วาล);
สตริง list = split(val, ', '); //เปิดรายการรับทุกค่าอินพุต
ถ้า (รายการ!=null)
{
if (list[0].equals("0")) { // if you hit the caixa
caixa.play(); //เปิดเสียงไคซ่า
image(img2, 0, 80);//caixa ส่องสว่างในหน้าจอ
println("caixa"); //พิมพ์ออกมาในคอนโซล
} else if (list[0].equals("1")) { //if you hit the charles
charles.play();//เล่น charles sound
image(img3, 0, 80);//ชาร์ลส์ส่องสว่างในหน้าจอ
println("ชาร์ลส์"); //พิมพ์ออกมาในคอนโซล
} else if (list[0].equals("2")) { // ถ้าคุณกด tomtom
tomtom.play();//เล่นเสียงทอม
image(img4, 0, 80);//Tomtom สว่างขึ้นในหน้าจอ
println("ทอมทอม"); //พิมพ์ออกมาในคอนโซล
} else if (list[0].equals("3")) { //If you hit the crash
crash.play();//เล่นเสียงแครช
รูปภาพ (img5, 0, 80); //การชนจะสว่างขึ้นในหน้าจอ
println("ความผิดพลาด"); //พิมพ์ออกมาในคอนโซล
} else if (list[0].equals("4")) { //if you hit the bombo
bombo.play();//เปิดเสียง Bombo
รูปภาพ (img6, 0, 80); // Bombo ส่องสว่างในหน้าจอ
println("ระเบิด"); //พิมพ์ออกมาในคอนโซล
}
}
}
}
ขั้นตอนที่ 4: สร้างมัน
สำหรับการทำให้เกิดต้นแบบ เรามี
ใช้องค์ประกอบในชีวิตประจำวันเพื่อลดความซับซ้อนของกระบวนการ แต่มักจะมองหาฟังก์ชันการทำงานและการตกแต่งที่ดี
ขั้นตอนแรกคือการเชื่อมสายเคเบิลเข้ากับเพียโซอิเล็กทริก โดยตัดให้มีความยาวเพียงพอเพื่อให้มีอิสระในการจัดแบตเตอรี่บนโต๊ะหรือที่ที่เราจะไปฝึก
หลังจากการวิจัย เราสังเกตเห็นว่าสิ่งสำคัญคือแผ่นรองจะส่งแรงสั่นสะเทือนของการกระทบแต่ละครั้งไปยังเพียโซอิเล็กทริกอย่างเหมาะสมที่สุด เพื่อให้วัสดุอย่างเช่น ไม้หรือพลาสติกถูกทิ้งไป สุดท้าย เราเลือกใช้ฝาโลหะสำหรับอาหารกระป๋อง ซึ่งสอดคล้องกับการใช้งานและมีลักษณะที่เหมาะสมกับวัตถุประสงค์
ลองใช้ไม้ตีกลองและตามที่คาดไว้ ผลกระทบมีเสียงดังเกินไป และเคลื่อนออกจากวิธีแก้ปัญหาของกลองที่เงียบ เพื่อแก้ปัญหานี้เราจึงปิดผิวด้วยโฟม Eva ตัดให้ได้ขนาดของเส้นรอบวงตรงกลางของฝา ติดกาวด้วยเทปกาวสองหน้าบางพอที่จะไม่สังเกตเห็นความโล่งใจเมื่อเล่น นอกจากนี้ เนื่องจากขอบของฝายังคงส่งเสียงที่น่ารำคาญซึ่งทำให้เราไม่สามารถเล่นได้สบาย เราจึงหยดกาวร้อนละลายเล็กน้อยที่ขอบเพื่อป้องกันไม่ให้แผ่นรองลื่นและทำให้การกระแทกแต่ละครั้งนิ่มลงมากที่สุด
เพื่อป้องกันไม่ให้แผ่นอิเล็กโทรดทั้งสี่กระจายตัวขณะสัมผัส เราจึงเชื่อมเข้าด้วยกันเป็นคู่โดยใช้แถบเกลียวที่เข้าจากด้านข้าง โดยยึดจากด้านในด้วยน็อตเล็กๆ ปัญหาเมื่อเราเริ่มเล่นคือ เนื่องจากมันเป็นวัสดุที่เป็นโลหะ มันจึงส่งแรงสั่นสะเทือนจากแผ่นหนึ่งไปยังอีกแผ่นหนึ่ง ดังนั้นเมื่อเราเล่นแผ่นหนึ่ง คู่ของเขาก็ส่งเสียงพร้อมกัน
ในที่สุดเราก็ถอดแท่งและเห็นว่าเพียงพอและใช้งานได้จริงมากขึ้นที่จะใช้สายเคเบิล piezo เป็นสหภาพ
สำหรับคันเหยียบ เรามีแนวคิดเบื้องต้นในการถือพายโซระหว่างแซนด์วิช เพื่อหลีกเลี่ยงผลกระทบโดยตรงของ piezo กับพื้น ในการทำเช่นนี้ เราติดเพียโซบนแผ่นไม้และติดแผ่นพีวีซีอีกแผ่นที่มีขนาดเท่ากัน ซึ่งเราทำรอยร้าวเล็กๆ ที่อำนวยความสะดวกและรองรับทั้งเพียโซและสายเคเบิล
ในตอนแรก เราใช้ PVC สำหรับแผ่นทั้งสองแผ่น แต่หลังจากการทดสอบหลายครั้ง เราก็พบว่าวัสดุนี้ดูดซับแรงกระแทกมากเกินไปและส่งผ่านไปยัง Piezo
เพื่อหลีกเลี่ยงไม่ให้แป้นเหยียบหลวมและเคลื่อนที่ในขณะที่คุณก้าว เราจึงตัดสินใจวางแถบยางไว้ระหว่างแซนวิชเพื่อยึดแป้นเหยียบไว้กับเท้าของเรา และตรวจสอบให้แน่ใจว่าแต่ละจังหวะบนดรัม
สุดท้าย เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น เราจึงสร้างกล่องเล็กๆ ขึ้นมาเองซึ่งเป็นที่ตั้งของโปรโตบอร์ดและอาร์ดิโน นี่คือที่ที่สายเคเบิล 5 เส้นเข้าทางด้านหนึ่งและอนุญาตให้เชื่อมต่อสาย USB ผ่านอีกด้านหนึ่ง มันถูกติดตั้งด้วยกระดาษแข็งขนนกสีดำ เพื่อความสะดวกในการจัดการและเพื่อความสวยงามของต้นแบบทั้งขาวดำต่อไป
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง