Mục lục:
- Hướng dẫn này ban đầu được xuất bản trên blog của tôi vào ngày 28 tháng 6 năm 2020
- Bước 1: Nhấp nháy đèn LED tích hợp
- Bước 2: Nhấp nháy đèn LED trên Nhập thủ công
- Bước 3: Cài đặt Thư viện MIDIUSB
- Bước 4: Gửi tin nhắn MIDI
- Bước 5: Gửi tin nhắn MIDI từ mỗi nút
- Bước 6: Thiết lập kênh hoặc ngân hàng (tùy chọn)
- Bước 7: Trường hợp
- Bước 8: Hội đồng
- Bước 9: Sử dụng Bộ điều khiển MIDI
Video: Xây dựng bộ điều khiển Arduino MIDI: 9 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Hướng dẫn này ban đầu được xuất bản trên blog của tôi vào ngày 28 tháng 6 năm 2020
Tôi thích xây dựng những thứ bao gồm thiết bị điện tử và tôi luôn muốn xây dựng thứ gì đó bằng Arduino.
Một trong những bản dựng phổ biến nhất cho người mới bắt đầu mà tôi tìm thấy là bộ điều khiển MIDI. Bộ điều khiển MIDI là bất kỳ phần cứng nào gửi dữ liệu MIDI (Giao diện kỹ thuật số của nhạc cụ) đến một thiết bị để kích hoạt âm thanh và tạo nhạc.
Tôi thấy rằng nhiều cách triển khai rất phức tạp, ngay cả những cách dành cho người mới bắt đầu. Thật khó chịu khi thấy tôi cần phải sử dụng hàng trăm dòng mã không thể đọc được. Hoặc tôi cần hàn một điện trở trong một số trường hợp, trong số các ví dụ khác.
Dự án
Bằng cách xây dựng Bộ điều khiển Arduino MIDI của riêng mình, mục đích của tôi là tạo ra một dự án thú vị, giữ cho tiếng ồn ở mức thấp nhất. Một cái gì đó mà bất kỳ người mới bắt đầu nào cũng có thể làm theo. Để đạt được điều đó, tôi đã sử dụng MIDI Fighter 3D làm nguồn cảm hứng cơ bản và loại bỏ mọi tính năng không cần thiết.
Tổng chi phí cho dự án của tôi dưới 30 đô la và danh sách tài liệu thực sự ngắn (liên kết liên kết):
- Arduino Leonardo (hoặc bản sao): từ $ 10 đến $ 20.
- 16 x nút Sanwa 24mm (hoặc sao chép): từ $ 1 đến $ 2,50 cho mỗi nút.
- Sắt hàn
- Dây điện 22 AWG
Bảng Arduino
Khi tôi bắt đầu dự án này, tôi thấy có một loạt các mô hình Arduino mới (không bao gồm hàng trăm bảng tương thích). Và tất cả chúng đều cung cấp các khả năng hơi khác nhau.
Tôi cần gửi tín hiệu MIDI đến máy tính và cách đơn giản nhất để làm điều đó là qua USB. Bất kỳ bo mạch Arduino nào dựa trên vi điều khiển ATmega32u4 đều có giao tiếp USB tích hợp.
Các bảng Arduino chính thức có hỗ trợ USB gốc là Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Các bo mạch này có hỗ trợ USB tích hợp có nghĩa là chúng có thể hoạt động như một thiết bị USB MIDI.
Tôi quyết định chọn một bản sao của Arduino Leonardo. Nó có đủ đầu vào cho dự án này và nó cũng bao gồm các tiêu đề, giúp việc cắm / rút dây dễ dàng hơn.
Những bước đầu tiên
Mặc dù tôi sẽ giải thích từng bước cách tôi triển khai mã cho dự án này, nhưng bạn có thể tải xuống phiên bản cuối cùng.
Để tải mã lên bảng, bạn cần sử dụng Arduino IDE. Họ cũng có một trình soạn thảo Web rất hữu ích nhưng họ có một hạn ngạch giới hạn về số lần mỗi ngày mà bạn có thể biên dịch mã.
Bước 1: Nhấp nháy đèn LED tích hợp
Thật buồn cười khi "Hello World" trong thế giới phần cứng lại nhấp nháy đèn LED.
Thật là một bất ngờ thú vị đối với tôi khi phát hiện ra rằng Arduino Leonardo có một đèn LED tích hợp mà bạn có thể nhấp nháy để kiểm tra mã của mình. Bằng cách đó, bạn không cần phải xây dựng một mạch bên ngoài trên bảng mạch với đèn LED và điện trở.
Mã:
Bước 2: Nhấp nháy đèn LED trên Nhập thủ công
Bước hợp lý tiếp theo là nhấp nháy cùng một đèn LED bất cứ khi nào tôi gửi tín hiệu. Tôi đã tháo nắp nhựa của một đầu của 2 dây Dupont và kết nối đầu kia với bảng:
- Chân số 2: Một trong các đầu vào kỹ thuật số (tích cực). Nó có thể là bất kỳ mã pin kỹ thuật số nào.
- Pin GND: Bất kỳ chân nối đất nào (âm).
Bây giờ, mỗi khi tôi nối các đầu dây tiếp xúc với nhau, tôi đang đóng mạch và do đó tôi có thể thực thi mã do đó
Mỗi chân trong số 20 chân kỹ thuật số trên Leonardo có một điện trở bên trong (được ngắt kết nối theo mặc định) có thể được bật bằng INPUT_PULLUP. Hãy nhớ rằng đầu vào kéo lên có nghĩa là trạng thái nút bị đảo ngược:
- CAO khi mạch mở (nút KHÔNG được nhấn).
- THẤP khi đóng mạch (nút được nhấn).
Mã:
Bước 3: Cài đặt Thư viện MIDIUSB
Thư viện này cho phép bảng Arduino có khả năng USB hoạt động như một công cụ MIDI qua USB. Kiểm tra tài liệu chính thức để biết thêm thông tin.
Sử dụng Arduino IDE, bạn có thể cài đặt thêm các Thư viện Arduino bằng Trình quản lý Thư viện:
- Mở IDE và nhấp vào menu "Phác thảo", sau đó "Bao gồm Thư viện", sau đó "Quản lý Thư viện".
- Tìm kiếm MIDIUSB và nhấp vào Cài đặt.
- Sau khi hoàn tất, thẻ Đã cài đặt sẽ xuất hiện bên cạnh thư viện MIDIUSB.
- Đóng Trình quản lý Thư viện.
Bây giờ Leonardo có thể gửi tin nhắn MIDI qua USB! Nhưng trước tiên, cần có một số thông tin chi tiết về cách thức hoạt động của MIDI.
Cách thức hoạt động của MIDI
"MIDI (Giao diện Kỹ thuật số Nhạc cụ) là một giao thức truyền thông tiêu chuẩn kết nối các nhạc cụ điện tử, máy tính và các thiết bị âm thanh liên quan để chơi nhạc." - Wikipedia
Nó xử lý các thông báo sự kiện với dữ liệu về cao độ và vận tốc của nốt nhạc được phát, trong số các hướng dẫn khác
Trong dự án cụ thể này, đầu vào từ 16 nút sẽ gửi các thông điệp khác nhau qua USB. Những thông báo này có thể được chuyển đổi thành âm thanh trên máy tính bằng bất kỳ phần mềm thích hợp nào như GarageBand hoặc Ableton Live.
Giải phẫu thông báo MIDI
Để gửi tin nhắn MIDI, tôi đã sử dụng phương thức sendMIDI () từ Thư viện MIDIUSB mà tôi đã cài đặt ở bước 3.
Phương thức này có thể nhận 4 tham số:
- Loại sự kiện: Nó có thể là 0x09 cho nốt Bật (phát nốt) hoặc 0x08 cho nốt Tắt (dừng phát nốt).
- Lưu ý Bật / Tắt: Loại sự kiện kết hợp với kênh MIDI (1-16). Tôi chỉ sử dụng kênh 1 nên nó là 0x90 cho ghi chú Bật hoặc 0x80 cho ghi chú Tắt.
- Số nốt: Mỗi nốt có một cao độ số liên quan (thang tần số).
- Vận tốc: Từ 0 (không vận tốc) đến 127 (nhanh nhất).
Bước 4: Gửi tin nhắn MIDI
Tôi đã bao gồm Thư viện MIDIUSB và thay vì nhấp nháy đèn LED tích hợp, tôi đã gửi một ghi chú.
Mã:
⚠ Quan trọng: Từ bước này trở đi, Arduino biến thành Bộ điều khiển USB MIDI và nó ngừng nhận mã qua USB.
Khi bạn gặp khó khăn ở vị trí mà Arduino không thể lập trình được nữa, hãy làm theo các bước sau:
- Nhấn giữ nút đặt lại được làm tròn trên bảng Arduino.
- Nhấp vào Tải lên trên Arduino IDE.
- Thả nút đặt lại.
- Mã cập nhật sẽ được tải lên bảng.
Bước 5: Gửi tin nhắn MIDI từ mỗi nút
Bước cuối cùng là ánh xạ mọi quảng cáo chiêu hàng thành một nút. Đối với 16 nút, tôi đã xác định thang điểm từ C2 đến E3b, là các cao độ từ 36 đến 51 theo thứ tự từ dưới lên trên và từ trái sang phải. Kiểm tra tệp này từ Hướng dẫn Arduino để xem cao độ nào tương ứng với mỗi nốt.
Tôi đã sử dụng chân kỹ thuật số từ 2 đến 12 và chân tương tự (sử dụng chúng làm chữ số) từ A0 đến A4.
Và đây là cách mã cuối cùng trông như thế nào
Bước 6: Thiết lập kênh hoặc ngân hàng (tùy chọn)
Trong trường hợp bạn muốn thêm nhiều nút hơn với khả năng chuyển kênh hoặc ngân hàng, như trong MIDI Fighter 3D (xem hình ảnh), Arduino Leonardo có thêm bốn chân mà bạn có thể sử dụng. Arduino Leonardo có 20 chân đầu vào / đầu ra kỹ thuật số, trong đó chỉ có 16 chân được sử dụng để chơi các nốt.
Bạn có thể sử dụng các nút bổ sung đó để cập nhật một biến trong mã và gửi giá trị của nó dưới dạng tham số đến phương thức MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Bước 7: Trường hợp
Để giữ cho dự án này đơn giản, tôi đã vô cùng cầu kỳ trong việc chọn các tính năng bao gồm.
- Chỉ các nút: 16 nút arcade giống như Sanwa, trong lưới 4x4. Không có nút bấm, không có thanh trượt, không có bộ chỉnh âm hoặc bất kỳ đầu vào analog nào khác.
- Vỏ Unibody: Không sử dụng vít, đai ốc, bu lông hoặc keo dán cho vỏ hoặc để giữ bảng Arduino.
- Dụng cụ hàng ngày: Ví dụ: tôi hàn dây thay vì mua một dụng cụ cắt dây cụ thể cho các nút arcade.
Thiết kế Unibody
Một trong những thách thức mà tôi phải đối mặt là thiết kế một chiếc vỏ đơn giản đến mức không cần lắp ráp và có thể in 3d chỉ trong một lần chạy.
Để tránh sử dụng vít hoặc keo dán, tôi cần thiết kế một vỏ bọc cung cấp khả năng tiếp cận thiết bị điện tử nhỏ nhất. Nguồn cảm hứng lớn nhất của tôi đối với vỏ máy là Mac Mini, có một lỗ hình tròn ở phía dưới. Tôi cũng muốn thiết kế một cái nắp có thể vặn được cho nó, nhưng tôi quyết định để nó mở ra để lộ các thiết bị điện tử.
Tải xuống hộp đựng có thể in 3d (322 KB). Các cài đặt được đề xuất: PLA, lớp 0,15mm, chèn 20%, hỗ trợ bộ thực thi ít nhất cho lỗ tròn dưới cùng, giá đỡ Arduino và micro USB.
Giữ Arduino không có vít
Leonardo có 4 lỗ để vặn tấm bảng vào bất kỳ trường hợp phù hợp nào, nhưng ý tưởng của tôi là giúp dễ dàng thêm và tháo tấm bảng khỏi hộp.
Tìm một giá đỡ kẹp cho Arduino trên Thingiverse thật dễ dàng và tôi đã mất 5 lần lặp lại để tích hợp bộ giữ đó với thiết bị unibody. Phần khó nhất là làm chân của nó để tránh các lỗ cho các nút và làm cho micro USB được căn giữa với vỏ máy.
Bước 8: Hội đồng
Sau khi chèn tất cả các nút vào vị trí, tôi hàn các dây ngắn màu đen nối tất cả các chân âm của các nút giữa chúng.
Sau đó, tôi hàn dây dài màu đỏ từ mỗi chân dương để kết nối trực tiếp với bo mạch.
Để kết nối dây với Arduino, tôi đã cắt và hàn một số đầu của Dupont và phủ chúng bằng ống co nhiệt.
Tôi kết nối dây với bảng theo thứ tự tương tự như trong MIDI Fighter. Từ dưới lên trên và từ trái sang phải
Bước 9: Sử dụng Bộ điều khiển MIDI
Bất kỳ phần mềm âm nhạc nào (hoặc phần cứng phù hợp) đều có thể được sử dụng để nhận MIDI và tạo một số bản nhạc. Những ứng dụng được đề xuất nhiều nhất là Garage Band, Ableton Live và tôi biết có rất nhiều ứng dụng để cài đặt trên điện thoại.
Tất cả những công cụ đó đều hữu ích để tải các âm thanh được xác định trước để đánh trống ngón tay, nhưng chúng được tạo ra cho các mục đích lớn hơn. Những công cụ này có thể gây khó khăn cho người mới bắt đầu thiết lập.
MIDI trong trình duyệt Web
Để làm cho thứ gì đó phù hợp hơn với dự án này và sự đơn giản của nó, tôi đã xây dựng một công cụ Web hoàn toàn tập trung vào bộ điều khiển MIDI.
Punchy: Triển khai WebMIDI và WebAudio cho bộ điều khiển MIDI.
Nó có thể đọc thông báo MIDI trên bất kỳ trình duyệt nào hỗ trợ API WebMIDI JavaScript. Sau đó, nó phát âm thanh trong bộ tổng hợp (sử dụng API WebAudio) hoặc trong bộ lấy mẫu, tải âm thanh tùy chỉnh từ bất kỳ gói âm thanh nào.
Thiết lập Ableton Live
Để làm cho Bộ điều khiển MIDI hoạt động với Ableton Live, hãy làm theo các bước đơn giản sau từ tài liệu chính thức của họ.
Đi tới Tùy chọn → Liên kết MIDI và đảm bảo rằng "Đầu vào" đã BẬT "Theo dõi" và "Từ xa" và đầu ra đã BẬT "Từ xa" cũng như được đề cập trong hướng dẫn:
Đề xuất:
Xây dựng bộ điều khiển Arduino MIDI: 5 bước (có hình ảnh)
Xây dựng Bộ điều khiển MIDI Arduino: Xin chào tất cả các bạn! Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách xây dựng bộ điều khiển MIDI hỗ trợ Arduino của riêng bạn. MIDI là viết tắt của Musical Instrument Digital Interface và nó là một giao thức cho phép máy tính, nhạc cụ và phần cứng khác giao tiếp
Treo tường cho IPad làm bảng điều khiển tự động hóa tại nhà, sử dụng nam châm điều khiển Servo để kích hoạt màn hình: 4 bước (có hình ảnh)
Giá treo tường cho iPad làm Bảng điều khiển tự động hóa tại nhà, Sử dụng Nam châm điều khiển Servo để Kích hoạt màn hình: Gần đây, tôi đã dành khá nhiều thời gian để tự động hóa mọi thứ trong và xung quanh nhà mình. Tôi đang sử dụng Domoticz làm ứng dụng Tự động hóa tại nhà của mình, hãy xem www.domoticz.com để biết thêm chi tiết. Trong tìm kiếm của tôi cho một ứng dụng bảng điều khiển hiển thị tất cả thông tin Domoticz
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)
Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu