Mục lục:

Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS): 3 bước
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS): 3 bước

Video: Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS): 3 bước

Video: Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS): 3 bước
Video: Tên biến thái lại trở thành người hùng của phụ nữ - review phim Người Chế Tạo Băng Vệ Sinh 2024, Tháng mười một
Anonim
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)
Động cơ bước điều khiển MIDI với chip tổng hợp kỹ thuật số trực tiếp (DDS)

Bạn đã bao giờ có ý tưởng tồi rằng bạn CHỈ phải biến thành một dự án nhỏ? Chà, tôi đang chơi với một bản phác thảo mà tôi đã thực hiện cho Arduino Due nhằm mục đích tạo nhạc bằng mô-đun Tổng hợp kỹ thuật số trực tiếp AD9833 (DDS)… và tại một số thời điểm tôi nghĩ "này, có lẽ tôi nên lắp đặt một động cơ / trình điều khiển bước để cái này". Và ý tưởng đó chính xác là thứ đã châm ngòi cho dự án nhỏ dựa trên breadboard này.

Bao gồm trong dự án này sẽ là một số mã sử dụng MIDI-qua-USB để điều khiển Arduino Do và gửi sóng vuông giữa mô-đun AD9833 và trình điều khiển bước. Cũng sẽ có một sơ đồ và hướng dẫn cơ bản để kết nối điều này với Arduino Due.

Quân nhu:

Những gì bạn cần cho dự án này:

Đến hạn Arduino

LƯU Ý: Mã được viết cho Thời hạn, nhưng nó cũng phải hoạt động và / hoặc được điều chỉnh cho Số 0. Nó sử dụng thư viện MIDIUSB của Arduino, yêu cầu cổng USB riêng.

Breadboard không hàn + Jumper

Mô-đun đột phá AD9833

A4988 Stepper Driver (hoặc tương tự)

Động cơ bước NEMA 17 (hoặc tương tự)

- Nguồn điện 24V (lưu ý, tôi chọn giá trị này là 24 Volts vì nó lớn hơn điện áp danh định của động cơ bước. Việc triển khai của bạn có thể khác nếu bạn sử dụng động cơ lớn hơn)

Bước 1: Breadboarding

Breadboarding
Breadboarding

Ý tưởng cơ bản đằng sau điều này là IC Tổng hợp Kỹ thuật số Trực tiếp sẽ tạo ra một sóng vuông để điều khiển chân "bước" của trình điều khiển động cơ bước. Trình điều khiển bước này sau đó sẽ di chuyển động cơ ở tần số âm thanh được chỉ định. Hướng của động cơ hơi tùy ý miễn là nó bước ở tần số chính xác.

Cách tiếp cận mà tôi thích thực hiện với breadboard là chạy các chân nguồn và mặt đất trước rồi bắt đầu chạy tất cả các kết nối không phải nguồn khác.

Đất:

- Kết nối các chân AGND và DGND của Mô-đun AD9833 với GND Rail trên breadboard.

- Conect hai GND Pins trên Stepper Driver thành GND Rail

- Mang cái này đến một trong các Ghim GND của Arduino Due

Điện 3.3V:

- Kết nối chân VDD của Stepper Driver với V + Rail của breadboard

- Kết nối chân VCC của Mô-đun AD9833 với V + Rail của bảng mạch

- Mang cái này qua Pin 3.3V của Arduino Due

Điện 24V:

- Kết nối chân VMOT với nguồn điện 24V DC (tùy thuộc vào sự lựa chọn của động cơ, bạn có thể muốn chạy đường ray nguồn cao hơn hoặc thấp hơn)

Kết nối mô-đun với mô-đun:

- Kết nối chân OUT từ mô-đun AD9833 với chân STEP của trình điều khiển động cơ

Kết nối trình điều khiển bước:

- Kết nối các kết nối Động cơ bước với các Chân 2B / 2A / 1A / 1B. Tính phân cực không quan trọng lắm, miễn là các giai đoạn của Trình điều khiển khớp với các giai đoạn của Động cơ bước.

- Kết nối các Ghim ĐẶT LẠI và NGỦ với nhau, và đưa chúng đến Chân số 8 của Arduino.

- Kết nối chân DIR với đường sắt 3.3V

Kết nối mô-đun AD9833:

- Kết nối SCLK với chân SCK của Arduino Due. Lưu ý rằng chân này nằm trên tiêu đề ICSP nam 6 chân gần bộ vi điều khiển, không phải trên tiêu đề nữ bên ngoài bình thường.

- Kết nối chân SDATA với chân MOSI của Due. Lưu ý rằng chân này nằm trên tiêu đề ICSP nam 6 chân gần bộ vi điều khiển, không phải trên tiêu đề nữ bên ngoài bình thường.

- Kết nối FSYNC với Chân 6 do Arduino (đây là chân Chọn chip cho dự án này)

Bây giờ breadboard đã được lắp ráp hoàn chỉnh, đã đến lúc xem mã!

Bước 2: Lập trình và thiết lập MIDI

Lập trình và thiết lập MIDI
Lập trình và thiết lập MIDI

Bản phác thảo.ino đính kèm sẽ nhận đầu vào USB-MIDI thông qua cổng USB gốc của Arduino Due và sẽ sử dụng chúng để điều khiển AD9833. Con chip này có một DAC chạy ở độ phân giải tần số 25MHz w / 28 bit (tổng mức quá mức cần thiết cho những gì cần thiết ở đây) và phần lớn mã ở đây là cấu hình nó để chạy và xuất ra một sóng vuông.

Lưu ý: có hai Cổng USB. Một cái được sử dụng để lập trình bảng và cái kia sẽ được sử dụng cho MIDI-over-USB comm

Lưu ý rằng bản phác thảo này sẽ không hoạt động như trên Arduino Uno - dự án này đặc biệt cần USB gốc trong Arduino Due hoặc các thiết bị tương tự

Tùy chọn tùy chỉnh:

- Có 2 chế độ, có thể được thiết lập bằng định nghĩa macro bộ xử lý trước. Nếu "#define STOPNOTES" được giữ nguyên, bước sẽ dừng ở giữa các ghi chú. Điều này không phải lúc nào cũng mong muốn (ví dụ: phát hợp âm rải nhanh), vì vậy, để thay đổi hành vi này, chỉ cần xóa hoặc nhận xét câu lệnh #define đó và bước sẽ chạy liên tục sau khi phát.

- Tôi sử dụng bàn phím MIDI 2 quãng tám giá rẻ với bàn phím này có nút tăng / giảm quãng tám, nhưng trong trường hợp bạn không có tùy chọn đó, bạn có thể dịch chuyển quãng tám của bản dịch tần số dưới bằng cách nhân hoặc chia cho lũy thừa của 2.

Quá trình dịch MIDI sang tần số được thực hiện với dòng này trong hàm playNote: int f_out = (int) (27.5 * pow (2, ((float) midiNote-33) / 12));

- Tôi có xu hướng sử dụng PC của mình để giao tiếp qua USB MIDI - bạn có thể thực hiện việc này từ phần mềm Digital Audio Workstation (DAW) yêu thích của mình. Nếu bạn chưa có, khá dễ dàng để thiết lập hệ thống này bằng cách sử dụng LMMS - một nền tảng mã nguồn mở, miễn phí. Sau khi nó được cài đặt và chạy, chỉ cần đặt Arduino Due làm Thiết bị đầu ra MIDI và nếu bạn đang sử dụng bàn phím USB MIDI, hãy đặt nó làm đầu vào.

Bước 3: Kiểm tra và thử nghiệm

Đã đến lúc chơi động cơ bước của bạn!

Như đã nói, toàn bộ ý tưởng đằng sau điều này là một thử nghiệm ngoài vòng lặp, vì vậy, bằng mọi cách, hãy thực hiện một số thử nghiệm của riêng bạn!

Đề xuất: