สารบัญ:

HX1-DM - เครื่องกลอง DIY แบบ Upcycled Arduino DUE ที่ขับเคลื่อนด้วยเครื่องดรัม (สร้างจากเครื่อง MK2): 4 ขั้นตอน
HX1-DM - เครื่องกลอง DIY แบบ Upcycled Arduino DUE ที่ขับเคลื่อนด้วยเครื่องดรัม (สร้างจากเครื่อง MK2): 4 ขั้นตอน

วีดีโอ: HX1-DM - เครื่องกลอง DIY แบบ Upcycled Arduino DUE ที่ขับเคลื่อนด้วยเครื่องดรัม (สร้างจากเครื่อง MK2): 4 ขั้นตอน

วีดีโอ: HX1-DM - เครื่องกลอง DIY แบบ Upcycled Arduino DUE ที่ขับเคลื่อนด้วยเครื่องดรัม (สร้างจากเครื่อง MK2): 4 ขั้นตอน
วีดีโอ: Review แกะกล่อง Fuji X-H1 Full set box แบบจัดเต็ม มันเยี่ยมมาก !! - Hyper Review EP. 83 2024, พฤศจิกายน
Anonim
Image
Image
งานซ่อม
งานซ่อม

ข้อมูลจำเพาะ

  • คอนโทรลเลอร์ / กลอง Midi ไฮบริด: Arduino DUE ขับเคลื่อน!
  • 16 แผ่นตรวจจับความเร็วที่มีความหน่วงต่ำมาก 1>ms
  • 8 ปุ่มที่ผู้ใช้กำหนดให้กับคำสั่ง Midi #CC ใดก็ได้
  • ซีเควนเซอร์ในตัว 16ch (ไม่ต้องใช้คอมพิวเตอร์!!)
  • ฟังก์ชัน MIDI เข้า/ออก/ผ่าน (สามารถใช้เป็นอินเทอร์เฟซ USB midi ได้!)
  • รองรับนาฬิกา MIDI และ MTC บางส่วน (ทำงานกับการควบคุม MMC และ DAW)

นี่เป็นหนึ่งในโครงการที่ซับซ้อนที่สุดที่ฉันเคยทำ กำลังพูดถึงการลงทะเบียนกะเอาต์พุต 17 ตัว, การลงทะเบียนกะอินพุต 6 ตัว, มัลติเพล็กเซอร์ 2x 16 แชนเนลที่ทำงานบนแผงวงจร ฉันไม่รู้ว่าอะไรคืออะไรและที่ไหน บวกกับฉันไม่เคยยุ่ง พร้อม shift register / multiplexers ก่อน……

มันเริ่มต้นจากแรงกระตุ้นซื้อจาก eBay ฉันต้องการ Native Instruments Maschine จริงๆ เพราะฉันเคยชอบดรัมแพดของพวกมันเมื่อเปรียบเทียบกับในสตูดิโอ MPC ที่ฉันเป็นเจ้าของ ดังนั้นเมื่อฉันเห็นข้อผิดพลาดบน eBay ในราคา 40 ปอนด์ ฉันคิดว่า ฉันจะลองแก้ไขโดยที่สถานการณ์เลวร้ายที่สุดคือ 'ถ้าฉันไม่สามารถแก้ไขได้ ฉันมี Arduino DUE และ UNO สองสามตัวที่อยู่รอบๆ ตัว ฉันสามารถทำแฮ็คได้เสมอ'

ฉันชอบดรัมแพดพวกนั้นอยู่แล้ว!!!!

เสบียง

1 x Native Instruments Maschine MK2. ที่ผิดพลาด

1 x Arduino ครบกำหนด

17 x SN74HC595's - 8-bit output shift registers

6 x SN74HC165's - 8-bit input shift registers

2 x 74HC4067 - มัลติเพล็กเซอร์ 16 ช่อง

จอแสดงผล OLED ขนาด 2 x 3.2” 256x64

ลวดแบน (สายฟลอปปี้เก่าจะทำ)

ขั้นตอนที่ 1: การซ่อมแซม

ผู้ขายของ eBay ใจดีพอที่จะให้แนวคิดเกี่ยวกับสิ่งที่คาดหวังในคำอธิบายและได้ถอดพอร์ต USB ออกแล้ว บอร์ดได้รับแรงดันไฟเกินและไม่สามารถจ่ายไฟได้ คิวมัลติมิเตอร์…. บอร์ดดูเหมือนจะสั้น.. 'ฉันเคยซ่อมเมนบอร์ดมานับไม่ถ้วนที่มีขาสั้นมาก่อน แล้วมันจะยากแค่ไหนกัน!?!' มันกลับกลายเป็นว่าสิ่งนี้เกินแรงดัน (และอาจเป็นส่วนหนึ่งของการออกแบบบอร์ด) ได้นำออกมาเกือบทุกครั้ง ส่วนประกอบบนบอร์ดรวมทั้งซีพียูหลัก บอร์ดนี้มันแย่จริงๆ!

ฉันยังคงใช้มัลติมิเตอร์ของฉันต่อไป ค้นคว้าเกี่ยวกับส่วนประกอบต่างๆ และค้นหาว่าแต่ละอันทำอะไรและ NI ทำงานได้อย่างยอดเยี่ยมในการทำให้สิ่งต่างๆ ชัดเจนขึ้นด้วยจุดทดสอบต่างๆ รอบ ๆ มาเธอร์บอร์ด ??

ขั้นตอนที่ 2: การแฮ็ก

แฮ็ค
แฮ็ค
แฮ็ค
แฮ็ค
แฮ็ค
แฮ็ค

เมื่อรู้ว่าฉันต้องเปลี่ยนทุกอย่างที่ขวาง CPU หลัก (ซึ่งไม่จำเป็น) ฉันจึงหันไปหา eBay โชคดีที่ทุกอย่างที่จำเป็นมีราคาถูก ดังนั้นการสั่งซื้อจำนวนมากจึงเป็นเรื่องสนุก ?

17 x SN74HC595's - การลงทะเบียนการเปลี่ยนเอาต์พุต 8 บิต

รีจิสเตอร์การเปลี่ยนเอาต์พุต 17 ตัวใช้เพื่อควบคุมไฟ LED หลากสีของดรัมแพดและไฟ LED ของปุ่มทั้งหมด (136 อันเป็นที่แน่นอน !!) สิ่งเหล่านี้ใช้งานง่ายมากและพบไลบรารี่อย่างรวดเร็วโดยใช้ Arduino IDE เพื่อช่วยตัวเองในการสร้าง..ถูกล่ามโซ่ไว้ด้วยกัน

6 x SN74HC165's - การลงทะเบียนกะอินพุต 8 บิต

รีจิสเตอร์ shift อินพุตเหล่านี้ยอดเยี่ยมสำหรับอินพุตหลายตัวใน 1 แชนเนล มีทั้งหมด 48 ปุ่ม

2 x 74HC4067 - มัลติเพล็กเซอร์ 16 ช่อง

เรามีแพด 16 แผ่นและ 8 ปุ่มที่เหลือซึ่งเป็นแบบแอนะล็อกด้วย ฉันพบว่ามันง่ายกว่าที่จะใช้สิ่งเหล่านี้เนื่องจากอันบนกระดานเป็น 8channel และฉันมีปัญหาในการค้นหาตำแหน่งที่จะเชื่อมต่อดาต้าพิน.. คิวปาเก็ตตี้คิว….

จอแสดงผล OLED ขนาด 2 x 3.2” 256x64

ของมันต้องมีสักจอ!!! ฉันไม่พบข้อมูลใดๆ เกี่ยวกับหน้าจอ LCD ดั้งเดิมที่มาใน NI Maschine และฉันก็ไม่ต้องเสียเวลาพยายามอีกต่อไป ดังนั้นฉันจึงตัดสินใจสั่งซื้อบางส่วนจากจีน… ฉันใช้ไลบรารี UG8x8 เพื่อให้ใช้งานได้ หน้าจอใหม่มีขนาดเล็กกว่าเดิมเล็กน้อย ดังนั้นฉันจึงตัด 'บิตที่ไม่ดี' ออกไป

1 x Arduino ครบกำหนด

ฉันมีสิ่งนี้นอนรออยู่พักหนึ่งเพื่อรอโครงการที่คุ้มค่าเพียงพอสำหรับพลังทั้งหมดนั้น !! มีปัญหาที่ฉันพบ ดูเหมือนว่าการแก้ไขบางอย่างของบอร์ดเหล่านี้มีปัญหาการรีเซ็ต ซึ่งหมายความว่าฉันต้องกดปุ่มรีเซ็ตในบางครั้งเพื่อให้สิ่งนั้นทำงานหลังจากอัปโหลดภาพร่าง สิ่งนี้ได้รับการแก้ไขอย่างง่ายดายด้วยตัวต้านทาน 10K (มีโพสต์ในฟอรัม Arduino เกี่ยวกับสิ่งนี้)

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

ฉันประทับใจมากที่ได้รับการสนับสนุนในชุมชน Arduino การค้นหาตัวอย่างโค้ดและไลบรารีสำหรับส่วนประกอบต่างๆ ทำได้ง่ายและตรงไปตรงมา

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

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

ฉันต้องการมีซีเควนเซอร์และความสามารถในการบันทึกโดยไม่ต้องใช้คอมพิวเตอร์ ฉันพบข้อมูลบางอย่างเกี่ยวกับวิธีการแปลง BPM เป็น ms และพบไลบรารีตัวจับเวลา Arduino DUE ที่ยอดเยี่ยม

เมื่อใช้ไลบรารีตัวจับเวลา ฉันสามารถตั้งค่าอินพุตการอ่านและสิ่งต่างๆ เป็นระยะๆ ได้:

Pads @ 1ms - ฉันพบว่าสิ่งนี้ให้ความสมดุลที่ดีที่สุดระหว่างการตอบสนอง / สิ่งประดิษฐ์ที่ตีกลับ

ปุ่ม @ 40ms - ฉันใช้ไลบรารีคิวจึงไม่มีการกดพลาด

การประมวลผลเสร็จสิ้นในลูปหลัก คุณไม่สามารถทำอะไรได้มากเกินไปเมื่อคุณถูกขัดจังหวะเนื่องจากจะล็อก Arduino

Midi stuff @BPM (เป็น ms) - สำหรับการจัดลำดับ ที่ BPM ที่ต้องการ ฟังก์ชันจะเรียกว่าการอัปเดตซึ่งบันทึก ETC ให้เล่นและเพิ่มตัวนับจังหวะ

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

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

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

เคล็ดลับ:

ฉันพบวิธีเปลี่ยนชื่อ USB ของ DUE โดยแก้ไขหนึ่งในไฟล์ส่วนหัวในโฟลเดอร์ Arduino/SAM

MIDI-OX เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบการทำงานของ Midi

ลิงค์:

www.usb.org/sites/default/files/midi10.pdf - ข้อมูลจำเพาะ USB MIDIhttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… ข้อมูลบางอย่างเกี่ยวกับวิธีการแปลง BPM เป็น ms

travis-ci.com/SMFSW/Queue - สำหรับปุ่มอินพุต เพื่อไม่ให้พลาดทุกการกด!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib สำหรับหน้าจอ LED/LCD

github.com/ivansedel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib สำหรับลูกบิดขนาดใหญ่

shiftregister.simsso.de/ - ShiftIn Register lib - สร้างโดย Henrik Heine 24 กรกฎาคม 2016

forum.arduino.cc/index.php?topic=57636.0 - โค้ดเวลา MIDI

แนะนำ: