สารบัญ:

Arduino MIDI Foot Controller: 12 ขั้นตอน
Arduino MIDI Foot Controller: 12 ขั้นตอน

วีดีโอ: Arduino MIDI Foot Controller: 12 ขั้นตอน

วีดีโอ: Arduino MIDI Foot Controller: 12 ขั้นตอน
วีดีโอ: EP.03 สร้าง Korg KP3+ Foot Controller #Guitar #DJ #MIDI #Controller #Arduino 2024, พฤศจิกายน
Anonim
Arduino MIDI Foot Controller
Arduino MIDI Foot Controller

ฉันเพิ่งออกแบบตัวควบคุม MIDI นี้เพื่อควบคุมวลีวนรอบซึ่งอยู่ในแป้นเหยียบการหน่วงเวลา Boss DD500 ฉันควบคุมอุปกรณ์กีตาร์ทั้งหมดของฉันโดยใช้บอร์ด MIDI ของ Behringer FCB และสิ่งนี้ทำให้ฉันเปลี่ยนแพตช์บนแป้นเหยียบดีเลย์ในลูปเอฟเฟกต์ได้ ในขณะที่เปลี่ยนช่องแอมป์พร้อมกัน

DD500 มีฟังก์ชัน looper พื้นฐานในตัว แต่ข้อเสียอย่างหนึ่งของมันคือเมื่อ looper ทำงาน มันจะควบคุมโดย footswitches บนคันเหยียบ ซึ่งหมายความว่าคุณไม่สามารถเปลี่ยนแผ่นแปะบนแป้นเหยียบในขณะที่วงล้อทำงานอยู่ เนื่องจากระบบจะจับหน้าที่ของสวิตช์เท้าเป็นหลัก ขณะที่ฉันใช้ MIDI ข้อจำกัดนี้ไม่มีอยู่จริง เนื่องจากเป็นเพียงปัญหาทางกายภาพเท่านั้น นี่หมายถึงการจอง 5 ฟุตสวิตช์บนคอนโทรลเลอร์ MIDI หลักของฉันสำหรับลูปเดอร์ ดังนั้นฉันจึงตัดสินใจสร้างคอนโทรลเลอร์แยกต่างหากสำหรับตัวควบคุมเหล่านั้น

แผนแรกของฉันสำหรับสิ่งนี้คือนำตู้แฮมมอนด์ขนาดเล็กและวางสวิตช์เท้า 5 อันและสอนการเข้ารหัส Arduino ขั้นพื้นฐานให้กับตัวเอง เมื่อฉันเริ่มเรียนรู้เพิ่มเติมและโค้ดของฉันก็ใช้งานได้ มันกลับกลายเป็นแรงบันดาลใจให้ฉันลองทำอะไรหลายๆ อย่างมากขึ้น และโดยพื้นฐานแล้วมันก็กลายเป็นสิ่งที่ใหญ่กว่า

ขั้นตอนที่ 1: แนวคิด

แนวคิด
แนวคิด
แนวคิด
แนวคิด

แนวคิดแรกๆ ประการหนึ่งคือการมีปุ่ม 5 ปุ่มติดต่อกันพร้อมไฟ LED แสดงสถานะ มันค่อนข้างง่ายที่จะจำลองบนเขียงหั่นขนมกับ Arduino การเพิ่มคุณสมบัติและฮาร์ดแวร์ใหม่กลายเป็นกระบวนการที่ฉันออกแบบและออกแบบเลย์เอาต์ทางกายภาพบนกระดาษและสร้างบนโปรเจ็กต์เขียงหั่นขนมอย่างต่อเนื่อง แม้จะมีการวางแผนมากมาย แต่งานจำนวนมากเกี่ยวกับเรื่องนี้ก็ค่อนข้างเสร็จสิ้นในทันทีตั้งแต่เริ่มต้น

รูปภาพ 2 รูปด้านบนแสดงภาพวาดแรกสุดที่ฉันเขียนลงบนกระดาษ ซึ่งทำให้ไอเดียนี้เริ่มต้นขึ้นในตอนแรก ตามด้วยโน้ตหนึ่งเดือนที่เขียนขึ้นหลังจากสร้างเค้าโครงจริงและเลย์เอาต์ PCB

ขั้นตอนที่ 2: การสร้างต้นแบบเขียงหั่นขนม

การสร้างต้นแบบเขียงหั่นขนม
การสร้างต้นแบบเขียงหั่นขนม
การสร้างต้นแบบเขียงหั่นขนม
การสร้างต้นแบบเขียงหั่นขนม

โครงการทั้งหมดสร้างขึ้นบนเขียงหั่นขนมและผ่านการทดสอบอย่างสมบูรณ์เพื่อให้แน่ใจว่าทำงานได้อย่างเต็มประสิทธิภาพกับ DD500 ก่อนเริ่มงานใดๆ บนตัวเครื่องอย่างถาวร มีการเพิ่มคุณสมบัติพิเศษบางอย่างในโค้ด ซึ่งทำให้ตัวควบคุมมีฟังก์ชันพิเศษบางอย่างที่ DD500 ขาดหายไป สิ่งเหล่านี้จะกล่าวถึงอย่างครบถ้วนในส่วนโค้ด

แป้นเหยียบมีสวิตช์เท้าเหยียบ 5 ดวง ไฟ LED แสดงสถานะ 4 ดวง หน้าจอ LCD I2C 5 จอ และควบคุมโดย Arduino Nano Every ได้รับพลังงานจาก PSU เหยียบกีต้าร์ 9V โดยใช้กล่องแยกซึ่งนำพลังงานนั้นผ่านสาย MIDI โดยใช้พิน 2 ตัวซึ่งปกติจะไม่ใช้กับขั้วต่อ MIDI

ขั้นตอนที่ 3: การผลิต

การผลิต
การผลิต
การผลิต
การผลิต
การผลิต
การผลิต

ฉันดูกรณีที่เป็นไปได้มากมายสำหรับโครงการนี้ และถึงกับพิจารณาถึงความคิดที่จะพยายามงอเคสของฉันเองจากแผ่นอะลูมิเนียม ในที่สุดฉันก็ตัดสินใจเลือกตู้แฮมมอนด์ซึ่งกว้างพอที่จะใส่จอ LCD ขนาด 16X2 จำนวน 5 จอที่ฉันเลือกไว้

สวิตช์เท้าเป็นสวิตช์สัมผัสนุ่มนวลชั่วขณะทั่วไป

ในขั้นตอนนี้ ฉันตัดสินใจที่จะติดตั้งกรอบหน้าจอแบบกำหนดเองเพื่อให้ด้านหน้าดูสะอาด เนื่องจากฉันจะตัดรูหน้าจอด้วยมือด้วย Dremel และรู้ว่าอาจมีบางพื้นที่ที่ไม่สมบูรณ์แบบ ฉันตัดสิ่งเหล่านี้โดยสตูดิโอออกแบบในพื้นที่ซึ่งทำการตัดด้วยเลเซอร์ อย่างแรกเลยคือเทมเพลตกระดาษแข็งเพื่อให้แน่ใจว่าขนาดของฉันถูกต้องทั้งหมด จากนั้นในอะครีลิคสีขาว 3 มม. สำหรับชิ้นสุดท้าย

ขั้นตอนที่ 4: การจำลองและเค้าโครง CAD

CAD Mock-up และ Layout
CAD Mock-up และ Layout
CAD Mock-up และ Layout
CAD Mock-up และ Layout

จากภาพสเก็ตช์กระดาษของฉัน ฉันใช้ Inkscape เพื่อจัดวางส่วนประกอบทางกายภาพทั้งหมดและกำหนดขนาดและตำแหน่งให้สมบูรณ์ ฉันยังคิดวิธีการติดตั้งหน้าจอ ณ จุดนี้ด้วย เพื่อลดจำนวนสลักเกลียวที่มองเห็นได้ทางด้านหน้า ฉันจึงตัดสินใจติดตะแกรงทั้งหมดกับแผ่นอะลูมิเนียมจากด้านหลังโดยใช้ขาตั้ง จากนั้นฉันต้องใช้สลักเกลียวเพียง 4 ตัวต่อแผ่นเพื่อยึดเข้ากับโครงตู้ ซึ่ง จะยึดขอบหน้าจอไว้ด้วย

ขั้นตอนที่ 5: การออกแบบ PCB

การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB
การออกแบบ PCB

ในการสร้าง PCB ฉันใช้เว็บไซต์ชื่อ EasyEDA มันมีสภาพแวดล้อมตัวแก้ไขซึ่งคุณสามารถวาดแผนผังของส่วนประกอบของคุณ เปลี่ยนเป็นเค้าโครง PCB แล้วส่งออกโดยตรงไปยัง JLCPCB เพื่อทำเป็นบอร์ด ฉันไม่เคยทำอะไรแบบนี้มาก่อน แต่พวกเขามีคำแนะนำที่ดีในเว็บไซต์ซึ่งอธิบายวิธีการทำงานของบรรณาธิการ และภายในหนึ่งชั่วโมงฉันก็ออกแบบและสั่งบอร์ด

บางพื้นที่บนกระดานได้รับการออกแบบมาไม่ดีในขณะนั้นเนื่องจากขาดประสบการณ์ เช่น การใช้ราง 5V เพียงรางเดียวเพื่อจ่ายไฟให้กับหน้าจอ แทนที่จะให้ฟีดแยกกัน โชคดีที่แรงดันไฟฟ้าตกไม่เพียงพอที่จะทำให้เกิดปัญหากับหน้าจอ

กระดานมาถึงประมาณ 2 สัปดาห์ต่อมาและขอบคุณที่ใช้งานได้โดยไม่มีปัญหาใดๆ

ขั้นตอนที่ 6: การติดตั้งหน้าจอ

ที่ยึดหน้าจอ
ที่ยึดหน้าจอ
ที่ยึดหน้าจอ
ที่ยึดหน้าจอ
ที่ยึดหน้าจอ
ที่ยึดหน้าจอ

ส่วนแรกที่ทำขึ้นคือตัวยึดหน้าจอ ฉันใช้อะลูมิเนียม 3 มม. สำหรับสิ่งนี้และเจาะรูสำหรับขาตั้ง ขนาดถูกกำหนดโดยการวางทุกอย่างไว้บนโต๊ะเนื่องจากฉันต้องการให้แป้นเหยียบสุดท้ายเป็นและวัดจากรูยึดบน PCB ของหน้าจอ ฉันยังวางสวิตช์เท้ากับพวกเขาเพื่อรับระยะทางสำหรับสิ่งเหล่านั้น

เมื่อเจาะรูทั้งหมดแล้ว ตะแกรงจะถูกติดตั้งและตรวจสอบความเรียบโดยจับไม้บรรทัดที่ขอบด้านล่างแบน ทุกอย่างเรียงกันจนถึงตอนนี้

ขั้นตอนที่ 7: สิ่งที่แนบมา

สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย
สิ่งที่ส่งมาด้วย

ถัดมาคือการปรับเปลี่ยนเคส สวิตช์เท้าและไฟ LED นั้นตรงไปตรงมาเพราะแต่ละอันต้องการรูขนาด 12 มม. และ 5 มม. ตามลำดับ

งานหลักส่วนใหญ่เกิดขึ้นเมื่อตัดรูหน้าจอออก ฉันใช้ Dremel กับแผ่นตัดสำหรับงานหนัก และไฟล์ต่างๆ เพื่อทำความสะอาดรูหลังจากนั้น ภาคนี้ใช้เวลาทั้งหมดประมาณ 2 ชั่วโมง

ตู้ที่ฉันใช้ได้รับการออกแบบสำหรับวัตถุประสงค์ทางอุตสาหกรรม และสร้างขึ้นโดยการดัดโลหะชิ้นเดียวและเชื่อมจุดต่างๆ ที่มุม ซึ่งหมายความว่าต้องมีงานบางอย่างในการทำความสะอาดมุมเหล่านี้โดยใช้ฟิลเลอร์ตัวรถเพื่อปรับระดับจุดต่ำและเติมช่องว่างบนขอบ

เมื่อมาถึงจุดนี้ เคสได้รับการลงสีพื้นอย่างสมบูรณ์แล้ว และฉันก็ล้อเลียนทุกอย่างเพื่อดูว่ามันจะออกมาเป็นอย่างไร

ขั้นตอนที่ 8: เอ่อ-โอ้

เอ่อโอ้
เอ่อโอ้
เอ่อโอ้
เอ่อโอ้
เอ่อโอ้
เอ่อโอ้

และแล้วก็มาตระหนักว่า แม้จะมีการวางแผนและการวัดผลทั้งหมดของฉัน แต่ฉันได้ทำผิดพลาดครั้งใหญ่เพียงครั้งเดียว ฉันออกแบบบอร์ดและเลย์เอาต์เคสแยกจากกัน ในหัวของฉัน กระดานจะนั่งชิดผนังด้านบนเกือบชิดกับผนังด้านบน โดยมีการยืนออกสั้นๆ อยู่ข้างหลัง แต่ไม่มีทางเป็นไปได้อย่างแน่นอน และไม่มีที่ว่างให้วางด้านข้างด้วย การกำกับดูแลครั้งใหญ่ แต่โชคดีที่ฉันสามารถแก้ไขได้เนื่องจากยังมีช่องว่างเล็กน้อยระหว่างการติดตั้งหน้าจอบนฝาครอบด้านหลังของเคส มีการเจาะรูอีกสองสามรูบนตัวยึดหน้าจอและการหยุดทำงานสองสามครั้ง และเรากลับมาทำธุรกิจอีกครั้งโดยมีพื้นที่เพียงพอสำหรับใส่ฝาปิด

ขั้นตอนที่ 9: ระบายสี

สี
สี
สี
สี
สี
สี

ทุกอย่างถูกถอดประกอบอีกครั้ง และตัวเรือนถูกทาสีแดงเมทัลลิกแคนดี้ ตามด้วยแล็กเกอร์สองสามชั้น เคสนี้ถูกปล่อยให้รักษาเป็นเวลาหนึ่งสัปดาห์ แม้ว่าฉันจะพบว่าแล็คเกอร์ยังอ่อนอยู่เล็กน้อย ณ จุดนี้เมื่อฉันสร้างทุกอย่างขึ้น พื้นที่เล็กๆ น้อยๆ ของสีได้รับความเสียหายด้วยเหตุนี้ สิ่งที่ฉันตั้งใจจะหลีกเลี่ยงในโครงการต่อไปของฉัน

ในช่วงเวลานี้ ฉันซื้อเครื่องพิมพ์ 3 มิติ และตัดสินใจใช้เครื่องพิมพ์นี้ทำเครื่องซักผ้าสำหรับสวิตช์เท้าเหยียบ เนื่องจากเครื่องพิมพ์ไนลอนที่ฉันซื้อมามีโทนสีเหลืองที่น่าสยดสยองและมีขนาดไม่ดี

ขั้นตอนที่ 10: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

ส่วนสุดท้ายของการประกอบทางกายภาพคือการต่อสายไฟทุกอย่าง อีกครั้ง ปัญหาเกี่ยวกับการออกแบบเคส/การออกแบบ PCB เกิดขึ้นอีกครั้งและตำแหน่งส่วนหัวบางตำแหน่งบน PCB หมายถึงการข้ามสายจำนวนมากเข้าด้วยกัน ทำให้สิ่งต่าง ๆ เลอะเทอะกว่าที่ฉันคาดไว้เล็กน้อย

สายไฟสำหรับฉากกั้นเป็นชุด 4 ชุด และใช้ผ้าหดแบบฮีทซิงค์และผ้าพันแบบถักเป็นชิ้นเดียว

ขั้นตอนที่ 11: รหัส Arduino

Image
Image

ในฐานะที่เป็นผู้เริ่มต้นเขียนโค้ด Arduino ทั้งหมด ฉันกำลังสอนตัวเองตลอดเส้นทาง โค้ดนี้น่าจะเป็นโปรแกรมที่เทียบเท่ากับ "ทางยาว" แต่ฉันดีใจที่มันทำงานตามที่ตั้งใจไว้

looper บน DD500 มี 5 ฟังก์ชั่นพื้นฐาน:

  • เปิด/ปิดลูป
  • บันทึก/พากย์ทับ/เล่น
  • เล่นวนที่บันทึกไว้
  • หยุดเล่น
  • ล้างลูปที่บันทึกไว้

แต่ละฟังก์ชันเหล่านั้นมีสวิตช์เท้าที่ตรงกัน และ LED แสดงสถานะยกเว้นปุ่มหยุด หน้าจอ LCD ยังอัปเดตด้วยข้อมูลที่เกี่ยวข้องเพื่อแสดงว่าแป้นเหยียบอยู่ในโหมดบันทึก โอเวอร์ดับเบิ้ล หรือเล่นซ้ำ ตลอดจนฟังก์ชันการทำงานของสวิตช์เท้าเหยียบแต่ละตัวขึ้นอยู่กับสิ่งที่เกิดขึ้นในขณะนั้น

คุณสมบัติอื่นที่ฉันเพิ่มเข้าไปคือการติดตามจำนวนครั้งที่เปิดใช้งานคุณสมบัติบันทึก/โอเวอร์ดับ สิ่งนี้ถูกติดตามในโค้ดโดยการเพิ่มจำนวนเต็มซึ่งจะแสดงบนหน้าจอ 'บัฟเฟอร์' โดยระบุจำนวนแทร็กที่บันทึก แม้ว่า DD500 จะลบแต่ละแทร็กไม่ได้ แต่ฉันได้เพิ่มสิ่งนี้เป็นแบบฝึกหัดการเขียนโค้ดเพื่อดูว่าฉันจะทำให้มันทำงานได้หรือไม่

ดูเหมือนจะมีปัญหาในการอัปโหลดไฟล์ไปยัง Instructables ดังนั้นฉันจึงวางสำเนาของโค้ดบน Pastebin แทนที่:https://pastebin.com/XBSXHut2

มีการใช้ห้องสมุด 2 แห่งในรหัส:

LiquidCrystal_I2C

ห้องสมุด MIDI FortySevenEffects

ขั้นตอนที่ 12: บทสรุป

บทสรุป
บทสรุป

สิ่งหนึ่งที่ยิ่งใหญ่ที่สุดที่ฉันได้จากโครงการนี้คือการวางแผนให้มากที่สุดล่วงหน้าสามารถหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นได้ ปัญหาเกี่ยวกับการติดตั้ง PCB ของฉันเน้นถึงความสำคัญของสิ่งนี้ การจดบันทึกที่ดีเป็นสิ่งที่ผมขอแนะนำเช่นกัน หากไม่มีพวกเขา ฉันอาจพบปัญหามากกว่าที่เคยเป็น ฉันกำลังสร้างตัวควบคุม MIDI ตัวที่สองของฉัน และครั้งนี้ฉันได้พยายามมากขึ้นในการปรับปรุงโค้ดของฉัน และออกแบบฮาร์ดแวร์ของฉันโดยคำนึงถึงวิธีการติดตั้ง PCB

แนะนำ: