Mục lục:

Arduino Uno Midi Fighter: 5 bước
Arduino Uno Midi Fighter: 5 bước

Video: Arduino Uno Midi Fighter: 5 bước

Video: Arduino Uno Midi Fighter: 5 bước
Video: 3D Printing my own MIDI Controller 2024, Tháng bảy
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Tài liệu hướng dẫn này được tạo ra để đáp ứng yêu cầu dự án của Makecourse tại Đại học Nam Florida (www.makecourse.com)

Dựa trên MidiFighter phổ biến của DJ Techtools, bộ điều khiển Giao diện Kỹ thuật số Nhạc cụ (MIDI) được hỗ trợ bởi Arduino tự chế này có thể được sử dụng như một thiết bị MIDI trên bất kỳ phần mềm Máy trạm Âm thanh Kỹ thuật số (DAW) nào. Bộ điều khiển MIDI có thể gửi và nhận tin nhắn MIDI từ máy tính và có thể được sử dụng để điều khiển trực tiếp bất kỳ phần mềm nào đang được sử dụng. Ngoài ra, các điều khiển trên bộ điều khiển MIDI hoàn toàn có thể tùy chỉnh - nghĩa là từng nút, thanh trượt và núm riêng biệt có thể được ánh xạ tới bất kỳ chức năng nào trong DAW. Ví dụ: nhấn một nút có thể phát một ghi chú cụ thể hoặc được lập trình để chuyển đổi nhịp độ của dự án âm thanh của bạn.

github.com/jdtar/Arduino-Midi-Controller

Bước 1: Vật liệu

Dưới đây là danh sách các vật liệu và công cụ được sử dụng trong dự án này.

Arduino Uno

Breadboard

Bộ ghép kênh 4051/4067

Dây nhảy

Dây phụ

Chiết áp trượt tuyến tính 2x 10k ohm

Các nút 16x Sanwa 24mm

Co nhiệt

Sắt hàn

Lưỡi dao cạo

Điện trở 4,7 kΩ

Tấm acrylic (cho nắp)

Vỏ cho các nút và Arduino

máy in 3D

Máy cắt laser

Bước 2: Thiết kế

Thiết kế
Thiết kế
Thiết kế
Thiết kế

Tôi đã được cung cấp vỏ cho bộ điều khiển MIDI của mình trước khi bắt đầu dự án, vì vậy tôi đã tạo ra một bản phác thảo cho nắp để hình dung vị trí mọi thứ sẽ được đặt. Tôi biết rằng tôi muốn có ít nhất 16 nút và một vài chiết áp như một tính năng nên tôi đã cố gắng bố trí các thành phần càng đồng đều càng tốt.

Sau khi vẽ bố cục cho nắp, tôi xuất tệp dưới dạng PDF 1: 1 và gửi đến máy cắt laser để cắt một tấm acrylic. Đối với các lỗ vít, tôi đánh dấu vị trí mà tôi muốn các lỗ đó bằng bút đánh dấu và nấu chảy acrylic bằng dây tóc nóng.

Đính kèm là tệp PDF 1: 1 có thể được in ra dưới dạng 1: 1 và cắt bằng dụng cụ điện nếu không có máy cắt laser.

Bước 3: Thi công và đi dây

Xây dựng và Hệ thống dây điện
Xây dựng và Hệ thống dây điện
Xây dựng và Hệ thống dây điện
Xây dựng và Hệ thống dây điện
Xây dựng và Hệ thống dây điện
Xây dựng và Hệ thống dây điện

Sau khi cắt lớp acrylic, tôi phát hiện ra rằng lớp acrylic quá mỏng để có thể nâng đỡ tất cả các thành phần một cách đầy đủ. Sau đó, tôi cắt ra một tờ khác và dán chúng lại với nhau và tình cờ hoạt động hoàn hảo.

Việc đấu dây các thành phần đã thực hiện một số thử nghiệm và sai sót nhưng kết quả là bản phác thảo Fritzing được đính kèm. Đầu tiên tôi nối dây nối đất và điện trở 4,7kΩ, hàn và nhiệt làm co các kết nối trên các nút. Gắn hai chiết áp trượt cần có lỗ nóng chảy cho các vít trong acrylic. Sau khi hai chiết áp được vặn vào, chúng được nối với các chân analog A0 và A1. Sau khi nối dây xong, tôi nhớ rằng không có nắp núm nào cho các bộ điều khiển của tôi nên thay vì mua chúng, tôi đã in một số nắp núm bằng máy in 3-D bằng cách phác thảo nó trong Autodesk Fusion 360 và xuất sang tệp STL. De

Arduino Uno chỉ có 12 chân đầu vào kỹ thuật số có sẵn nhưng 16 nút phải được nối dây. Để bù đắp cho điều này, tôi đã kết nối Bộ ghép kênh 74HC4051 trên bảng mạch sử dụng 4 chân đầu vào kỹ thuật số và cho phép nhiều tín hiệu sử dụng đường truyền chia sẻ, dẫn đến 8 chân đầu vào kỹ thuật số có sẵn với tổng số 16 chân kỹ thuật số có sẵn để sử dụng.

Việc đấu dây các nút vào đúng các chân chỉ đơn giản là tạo ma trận 4x4 và sử dụng ma trận đó trong mã. Tuy nhiên, phần khó khăn là bộ ghép kênh cụ thể đã mua có bố cục ghim cụ thể mà biểu dữ liệu đã hỗ trợ và tôi cũng đã lưu ý đến bố cục ghi chú cụ thể khi nối dây các nút mà cuối cùng trông giống như sau:

LƯU Ý MATRIX

[C2] [C # 2] [D2] [D # 2]

[G # 2] [A1] [A # 2] [B1]

[E1] [F1] [F # 1] [G1]

[C2] [C # 2] [D2] [D # 2]

MATRIX PIN (M = MUX INPUT)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Bước 4: Lập trình

Lập trình
Lập trình

Khi quá trình lắp ráp hoàn tất, việc lập trình Arduino là tất cả những gì còn lại. Tập lệnh đính kèm được viết theo cách có thể dễ dàng tùy chỉnh.

Phần đầu của tập lệnh bao gồm thư viện MIDI.h và thư viện bộ điều khiển được mượn từ blog Notes và Volts, cả hai đều được bao gồm trong tệp zip cho mã. Sử dụng thư viện bộ điều khiển, có thể tạo các đối tượng cho các nút, chiết áp và các nút ghép có chứa các giá trị dữ liệu bao gồm số nốt, giá trị điều khiển, tốc độ nốt, số kênh MIDI, v.v. Thư viện MIDI.h cho phép giao tiếp MIDI I / O trên Các cổng nối tiếp Arduino lần lượt lấy dữ liệu từ các đối tượng bộ điều khiển, chuyển đổi chúng thành thông điệp MIDI và gửi thông báo đến bất kỳ giao diện midi nào được kết nối.

Phần thiết lập void của tập lệnh khởi tạo tất cả các kênh khi tắt và cũng bắt đầu kết nối nối tiếp ở tốc độ 115200 baud, tốc độ nhanh hơn so với tín hiệu MIDI đang được trao đổi.

Vòng lặp chính về cơ bản lấy các mảng các nút và các nút được ghép lại và chạy một vòng lặp for để kiểm tra xem nút đã được nhấn hoặc nhả hay chưa và gửi các byte dữ liệu tương ứng đến giao diện midi. Vòng lặp chiết áp kiểm tra vị trí của chiết áp và gửi các thay đổi điện áp tương ứng trở lại giao diện midi.

Bước 5: Thiết lập

Image
Image
Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt
Cài đặt

Sau khi tập lệnh được tải vào Arduino, bước tiếp theo là cắm và chạy. Tuy nhiên, có một vài bước trước khi nó có thể được sử dụng.

Trên OSX, Apple đã kết hợp một tính năng để tạo các thiết bị midi ảo có thể được truy cập thông qua ứng dụng Audio Midi Setup trên máy Mac. Khi thiết bị mới đã được tạo, MIDI không có lông có thể được sử dụng để tạo kết nối nối tiếp giữa Arduino và thiết bị midi ảo mới. Kết nối nối tiếp từ Arduino qua MIDI không có lông hoạt động ở tốc độ truyền được xác định trong phần thiết lập void của tập lệnh và phải được đặt tương đương trong cài đặt tùy chọn MIDI không có lông.

Với mục đích thử nghiệm, tôi đã sử dụng Midi Monitor để kiểm tra xem dữ liệu chính xác đang được gửi có nghĩ là kết nối MIDI nối tiếp hay không. Khi tôi xác định rằng tất cả các nút đã gửi đúng dữ liệu qua các kênh chính xác, tôi thiết lập tín hiệu MIDI để định tuyến đến Ableton Live 9 dưới dạng Đầu vào MIDI. Trong Ableton, tôi có thể vạch ra các mẫu âm thanh được cắt theo từng nút và phát từng mẫu.

Đề xuất: