Mục lục:

HX1-DM - Máy đánh trống tự làm dùng năng lượng Arduino DUE nâng cấp (được sản xuất bằng Maschine MK2 đã chết): 4 bước
HX1-DM - Máy đánh trống tự làm dùng năng lượng Arduino DUE nâng cấp (được sản xuất bằng Maschine MK2 đã chết): 4 bước

Video: HX1-DM - Máy đánh trống tự làm dùng năng lượng Arduino DUE nâng cấp (được sản xuất bằng Maschine MK2 đã chết): 4 bước

Video: HX1-DM - Máy đánh trống tự làm dùng năng lượng Arduino DUE nâng cấp (được sản xuất bằng Maschine MK2 đã chết): 4 bước
Video: Bài 2: Nhận dạng mẫu và ứng dụng thử nghiệm - Trí tuệ nhân tạo - Nhận dạng 2024, Tháng bảy
Anonim
Image
Image
Sửa chữa
Sửa chữa

Thông số kỹ thuật

  • Bộ điều khiển / trống máy lai Midi: Hỗ trợ Arduino DUE!
  • 16 miếng cảm biến vận tốc với độ trễ rất thấp 1> ms
  • Người dùng có thể gán 8 nút cho bất kỳ lệnh Midi #CC nào
  • 16ch Tích hợp bộ tuần tự (không cần máy tính !!)
  • Chức năng MIDI vào / ra / thông qua (có thể được sử dụng như một giao diện USB midi!)
  • Đồng hồ MIDI & hỗ trợ MTC một phần (hoạt động trên điều khiển MMC và DAW)

Đây chắc chắn là một trong những dự án phức tạp nhất mà tôi đã từng làm, đã nói đến 17 thanh ghi dịch chuyển đầu ra, 6 thanh ghi dịch chuyển đầu vào, bộ ghép kênh 2x 16 kênh làm việc trên một bảng mạch Tôi không biết là gì và ở đâu. với thanh ghi dịch chuyển / bộ ghép kênh trước ……

Nó bắt đầu như một sự thúc đẩy mua đứt eBay, tôi thực sự muốn có một Maschine của Native Instruments vì tôi luôn thích những miếng đệm trống trên chúng so với những miếng đệm trống trong studio MPC mà tôi sở hữu nên khi tôi thấy một cái bị lỗi trên eBay với giá £ 40 quid, tôi đã nghĩ Tôi sẽ cố gắng sửa chữa nó với tình huống xấu nhất là 'nếu tôi không thể sửa nó, tôi đã có Arduino DUE và một vài UNO nằm xung quanh, tôi luôn có thể thực hiện một số vụ hack'

Dù sao thì tôi cũng rất thích những miếng đệm trống đó !!!!

Quân nhu

1 x Native Instruments Maschine MK2 bị lỗi

1 x Arduino Đến hạn.

17 x SN74HC595 - thanh ghi dịch chuyển đầu ra 8 bit

6 x SN74HC165 - thanh ghi dịch chuyển đầu vào 8 bit

2 x 74HC4067 - Bộ ghép kênh 16 kênh.

Màn hình OLED 2 x 3.2”256x64.

một số dây dẹt (cáp mềm cũ sẽ làm được)

Bước 1: Sửa chữa

Người bán eBay đã đủ tốt bụng để đưa ra ý tưởng về những gì mong đợi trong mô tả và đã loại bỏ cổng USB. Bo mạch đã bị quá áp và không lên nguồn. Cue đồng hồ vạn năng…. Bo mạch có vẻ bị chập.. 'Tôi đã sửa vô số bo mạch chủ bị lỗi trước. Vậy nó khó làm sao!?!' thành phần trên bo mạch bao gồm cả CPU chính. Hội đồng quản trị này là một cách thực sự tồi tệ!

Tôi tiếp tục nghiên cứu và thử nghiệm với đồng hồ vạn năng của mình, nghiên cứu một chút về các thành phần và tìm ra chức năng của từng thành phần cộng với NI đã làm rất tốt việc làm cho mọi thứ trở nên khá rõ ràng với các điểm kiểm tra khác nhau xung quanh bo mạch chủ ??.

Bước 2: Hack

Cuộc tấn công
Cuộc tấn công
Cuộc tấn công
Cuộc tấn công
Cuộc tấn công
Cuộc tấn công

Biết mình sẽ cần thay thế mọi thứ trên thanh CPU chính (thứ sẽ không cần thiết), tôi đã chuyển sang sử dụng eBay. Rất may mọi thứ cần thiết đều rẻ nên việc đặt mua chúng rất thú vị. ?

17 x SN74HC595’s - Thanh ghi dịch chuyển đầu ra 8 bit

17 thanh ghi dịch chuyển đầu ra được sử dụng để điều khiển các đèn LED nhiều màu của đệm trống và tất cả các đèn LED Nút (chính xác là 136 !!) Chúng thực sự dễ sử dụng và nhanh chóng tìm thấy một thư viện bằng cách sử dụng Arduino IDE để tự tạo một.. chúng bị xích lại với nhau.

6 x SN74HC165’s - Thanh ghi dịch chuyển đầu vào 8 bit

Các thanh ghi dịch chuyển đầu vào này rất tốt cho nhiều đầu vào trên 1 kênh. Tổng cộng có 48 nút.

2 x 74HC4067 - Bộ ghép kênh 16 kênh

Chúng tôi có 16 miếng đệm và 8 nút còn lại, chúng cũng là loại tương tự. Tôi thấy việc sử dụng chúng dễ dàng hơn vì những cái trên bảng là 8channel và tôi gặp sự cố khi tìm nơi kết nối các chân dữ liệu.. cue spaghetti connector….

Màn hình OLED 2 x 3.2”256x64

Nó phải có một số màn hình !!! Tôi không thể tìm thấy bất kỳ thông tin nào về màn hình LCD ban đầu có trong NI Maschine và tôi không muốn mất thời gian cố gắng nữa nên tôi quyết định đặt một số từ Trung Quốc… Tôi đã sử dụng thư viện UG8x8 để làm cho chúng hoạt động. Các màn hình mới nhỏ hơn một chút so với màn hình ban đầu vì vậy tôi chỉ cần loại bỏ 'các bit xấu'.

1 x Arduino Đến hạn

Tôi đã nằm lòng điều này một thời gian để chờ đợi một dự án đủ xứng đáng cho tất cả sức mạnh đó !! Có một sự cố tôi gặp phải, Có vẻ như một số bản sửa đổi của các bảng này có vấn đề đặt lại, có nghĩa là tôi phải nhấn nút đặt lại đôi khi để mọi thứ chạy sau khi tải lên bản phác thảo. Điều này đã được khắc phục dễ dàng với một điện trở 10K (có một bài đăng trên diễn đàn Arduino về điều này).

Bước 3: Mã

Tôi thực sự ấn tượng về mức độ hỗ trợ của cộng đồng Arduino, việc tìm kiếm các ví dụ mã và thư viện cho các thành phần khác nhau thực sự đơn giản và dễ hiểu.

Khởi động và chạy USB midi thật dễ dàng và chỉ mất vài phút. Các đèn LED mất một khoảng thời gian và tôi phải tạo một bản phác thảo từng bước đặt CAO từng chân trong khoảng thời gian 1 giây và ghi chú lại.. Tôi đã tạo một mảng chứa các số PIN để giúp dễ dàng hơn khi mã hóa mọi thứ.

Tôi đã tạo 2 thư viện để nói chuyện với bộ ghép kênh, một thư viện xử lý các miếng đệm tương tự và thư viện còn lại là các nút bấm. Một lần nữa điều này thực sự đơn giản. Tôi đã đính kèm chúng, hãy thoải mái sử dụng chỉnh sửa, v.v.

Tôi muốn có một bộ tuần tự và khả năng ghi mà không cần máy tính, tôi đã tìm thấy một số thông tin về cách chuyển đổi BPM sang ms và tìm thấy một thư viện hẹn giờ Arduino DUE tuyệt vời.

Sử dụng thư viện hẹn giờ, tôi có thể đặt đầu vào đọc và mọi thứ trong khoảng thời gian:

Pads @ 1ms - Tôi nhận thấy điều này mang lại sự cân bằng tốt nhất giữa các tạo tác phản hồi / giảm trả lại.

Buttons @ 40ms - Tôi đã sử dụng thư viện hàng đợi để không có lần nhấn nào bị bỏ lỡ.

Quá trình xử lý được thực hiện trong vòng lặp chính, bạn không thể làm quá nhiều khi bị gián đoạn vì điều này sẽ khóa Arduino.

Midi thứ @BPM (tính bằng mili giây) - đối với trình tự, ở BPM mong muốn, một chức năng được gọi là cập nhật các ghi chú ETC sẽ được phát và tăng bộ đếm nhịp.

Bước 4: Kết luận

Phần kết luận
Phần kết luận

Không chắc tôi đã làm được gì ở đây nhưng tôi khá tự hào, các miếng đệm phản hồi rất xuất sắc, tôi đã phải tính toán thời gian để có được sự cân bằng phù hợp với các vấn đề về khả năng đáp ứng và lỗi. Trình tự sắp xếp hoạt động tuyệt vời và một khi tôi tìm ra sự hỗ trợ của DAW, tôi hoàn toàn có thể tích hợp thứ này vào quy trình làm việc của mình và có thể thêm những thứ vào một bộ điều khiển mà tôi luôn mong muốn!. Đây là một dự án thực sự thú vị và là một bài tập tuyệt vời trong việc nắm bắt kỹ thuật C, hiểu kỹ thuật đảo ngược và cách hoạt động của bộ ghép kênh, thanh ghi dịch chuyển và trình tự MIDI. Tôi đang tiếp tục cải thiện mã chính và có thể phát hành mã này vào một ngày nào đó với tư cách là nhà thiết kế nhịp điệu nguồn mở.

LỜI KHUYÊN:

Tôi đã tìm thấy cách thay đổi tên USB của DUE bằng cách chỉnh sửa một trong các tệp tiêu đề trong thư mục Arduino / SAM.

MIDI-OX là một công cụ tuyệt vời để kiểm tra chức năng Midi

LIÊN KẾT:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Một số thông tin về cách chuyển đổi BPM sang mili giây

travis-ci.com/SMFSW/Queue - Đối với đầu vào nút để chúng tôi không bỏ lỡ bất kỳ lần nhấn nào!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib cho màn hình LED / LCD

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

www.pjrc.com/teensy/td_libs_Encoder.html - Bộ mã hóa Lib cho núm lớn

shiftregister.simsso.de/ - ShiftIn Register lib - Tạo bởi Henrik Heine, ngày 24 tháng 7 năm 2016

forum.arduino.cc/index.php?topic=57636.0 - Nội dung về Mã thời gian MIDI

Đề xuất: