สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ฉันโชคดีที่ได้กลองชุด x-box มือสองมา มันค่อนข้างหยาบและไม่มีไม้พาย แต่ไม่มีอะไรที่ซ่อมไม่ได้ ฉันเปลี่ยนเป็นกลองไฟฟ้าแบบสแตนด์อโลน อ่านค่าแอนะล็อกจากเซ็นเซอร์เพียโซแล้วเปลี่ยนค่านั้นเป็นคำสั่ง MIDI
ฮาร์ดแวร์ปัจจุบันประกอบด้วย RPI-Zero, mcp3008 ซึ่งเชื่อมต่อกับเซ็นเซอร์ piezo ดั้งเดิมบนดรัมชุด
เสบียง
MCP3008 + ชุดดรัม x-box ซ็อกเก็ต IC หรือ 5 piezo ติดตั้งบนพื้นผิวบางส่วน การ์ดเสียง rpi zerousb สำหรับลำโพงขยาย rpisimple สายไฟบางตัวและตัวต้านทานโอห์ม 10M pcb.6 และส่วนหัวชายบางตัวสำหรับบอร์ดเชื่อมต่อ piez
ขั้นตอนที่ 1: เตรียม Piezo Sensor ให้พร้อม
ครั้งแรกที่ฉันมีส่วนร่วมและพบเซ็นเซอร์ piezo ทั้งหมด การเดินสาย และสร้างบอร์ดที่มีตัวต้านทาน 1M ระหว่าง 2 สายของ piezo แต่ละอัน
ฉิ่งมีวงจรพิเศษที่น่าสนใจอยู่ในตัว เอามาเป็นส่วนๆ เหลือแต่เซ็นเซอร์ ฉันต้องการสักวันหนึ่งที่จะรู้ว่าผลลัพธ์ของวงจรนั้นคืออะไร
การทดสอบและการทำงานส่วนนี้ทำบน Arduino uno
ขั้นตอนที่ 2: เขียนโค้ดบางส่วน
ฉันแก้ไข x-box ขึ้นเล็กน้อย ซ่อมแซมส่วนที่หักทั้งหมด ถอดแผ่นรองที่หลุดออกมา
และในที่สุดก็มีโค้ดที่ใช้ได้ดีพอสำหรับลูกของฉัน ซึ่งยังไม่สมบูรณ์แบบ
รหัสดั้งเดิมที่ฉันต้องการใช้และรหัสที่ช่วยฉันทำงานของฉันคือ thishttps://github.com/evankale/ArduinoMidiDrums
แต่เมื่อทำงานกับมัน ฉันพบว่าเขาหยุดบันทึก midi ทันทีหลังจากส่งไป ซึ่งก็โอเคถ้าคุณเล่นเกมบนคอมพิวเตอร์ ซึ่งเป็นรหัสที่มีไว้สำหรับ แต่ไม่ค่อยดีนักเมื่อคุณต้องการเล่นโน้ต midi จริงๆ
คุณสามารถดาวน์โหลดรหัสในไฟล์แนบ - โปรดทราบว่ามี 4
ฉันยังเพิ่มคุณสมบัติเจ๋ง ๆ ที่ให้คุณเลือกโน้ตสำหรับปุ่มกดแต่ละอัน มันยังบันทึกการตั้งค่าใน EEPROM อีกด้วย
และซอฟต์แวร์ 3 ตัวที่ฉันพูดถึงในวิดีโอคือ loopbe1, hairless midi serial bridge และ VMPK
ขั้นตอนต่อไปคือการย้ายไปทำงานกับราสเบอร์รี่ pi
ขั้นตอนที่ 3: ทำให้มันทำงานบน Raspberry Pi
หลังจากเกือบจะล้มเลิกโครงการนี้ ฉันถามอีกครั้งในบางที่และถูกนำไปยังบทความที่นำฉันไปสู่เส้นทางที่ถูกต้องซึ่งก็คือการสังเคราะห์ของเหลว
ฉันใช้เวลาดีๆ หลายชั่วโมงเพื่อให้มันทำงานและในที่สุดก็ทำได้ ปัญหาหลักคือการทำให้ midi ทำงานบน Rpi ได้ ฉันจึงติดตั้ง fluidsynth โดยใช้บทช่วยสอนที่ยอดเยี่ยมนี้
sandsoftwaresound.net/qsynth-fluidsynth-ras…
ฉันตั้งค่า Arduino เพื่อส่งคำสั่งซีเรียลแล้วฟังด้วย python serial บนราสเบอร์รี่แล้วส่งไปยัง midi ผ่าน fluidsynth
ฉันยังสามารถดาวน์โหลดไฟล์ sf2 ที่เหมาะสมสำหรับกลองได้อีกด้วย
อย่างที่คุณเห็น Kesem ชอบมันมาก Arduino ใช้รหัสเดียวกันและสำหรับ rpi ฉันเขียนรหัสที่แนบมา ฉันไม่สามารถแนบไฟล์ sf2 ได้ - แต่สามารถหาได้ง่ายโดยใช้ google
ขั้นตอนที่ 4: ทำให้มันยืนอยู่คนเดียว
ขั้นตอนที่ใหญ่ที่สุดในการทำงานแบบสแตนด์อะโลนคือการถอด Arduino และพยายามทำให้มันทำงานเร็วขึ้นเล็กน้อย มีช่องว่างที่เห็นได้ชัดเจนระหว่าง "การตี" และเสียงที่เล่นบน midi ดังนั้นเพื่อกำจัด Arduino ฉันต้องการทางเลือกแบบอะนาล็อกและนี่คือที่ที่ mcp3008 เข้ามาช่วยเหลือ คุณสามารถเห็นได้จากรูปภาพที่ฉันสร้างบอร์ดแยก และในวิดีโอ คุณจะพบรายละเอียดทั้งหมดเกี่ยวกับขั้นตอนต่างๆ mcp3008 ใช้ spi เพื่อสื่อสาร และฉันเชื่อมต่อ 2 ตัวและทำการทดสอบไม่กี่ครั้ง adafruit มีห้องสมุดที่ยอดเยี่ยมสำหรับ mcp3008 สำหรับ python คำแนะนำอีกครั้งในวิดีโอ ฉันใช้ศูนย์ rpi เนื่องจากขนาดของมันและฉันเพิ่มการ์ดเสียง usb ภายนอกจากเอาต์พุตเสียง ฉันใช้ลำโพงธรรมดาที่มีแอมพลิฟายเออร์ในตัวเพื่อเล่นเสียง มีการแนบรหัสปัจจุบันด้วยและทำงานบน rpi ด้วยตนเองและตั้งค่าเป็นบริการ ดังนั้นจึงสามารถทำงานเมื่อโหลด ฟีเจอร์เจ๋งๆ ที่ฉันเพิ่มเข้าไปคือการเชื่อมต่อปุ่มรีเซ็ตเล็กๆ ที่อยู่บนกล่อง และใช้ปุ่มนั้นเพื่อปิดระบบ เนื่องจากฉันทำงานโดยไม่มีหน้าจอ โค้ดปัจจุบันยังไม่สมบูรณ์แบบ และฉันพยายามปรับปรุงอย่างต่อเนื่องและพัฒนาให้ดีขึ้น ดังนั้นหากคุณมีแนวคิดที่จะทำให้มันทำงานได้ดียิ่งขึ้นเมื่อพูดถึง midi ฉันก็อยากฟัง