Mục lục:

Bộ điều khiển chân MIDI Arduino: 12 bước
Bộ điều khiển chân MIDI Arduino: 12 bước

Video: Bộ điều khiển chân MIDI Arduino: 12 bước

Video: Bộ điều khiển chân MIDI Arduino: 12 bước
Video: How to Make an Arduino MIDI Footswitch 2024, Tháng mười một
Anonim
Bộ điều khiển chân MIDI Arduino
Bộ điều khiển chân MIDI Arduino

Gần đây tôi đã thiết kế bộ điều khiển MIDI này để vận hành bộ lặp cụm từ được tích hợp trong bàn đạp trễ Boss DD500. Tôi kiểm soát toàn bộ giàn guitar của mình bằng bảng Behringer FCB MIDI và điều này cho phép tôi thay đổi các bản vá lỗi trên bàn đạp trễ trong vòng lặp hiệu ứng, đồng thời chuyển đổi các kênh amp.

DD500 được tích hợp sẵn chức năng vòng lặp rất cơ bản nhưng một trong những hạn chế của nó là khi bộ lặp hoạt động, nó được điều khiển bởi các công tắc chân trên bàn đạp. Điều này có nghĩa là bạn không thể thay đổi các miếng vá trên bàn đạp trong khi vòng lặp đang hoạt động, vì về cơ bản, nó đã nắm bắt được các chức năng của chân gạt. Vì tôi đang sử dụng MIDI nên hạn chế này không tồn tại, vì đó chỉ là một vấn đề vật lý. Điều này có nghĩa là dành 5 chân chuyển mạch trên bộ điều khiển MIDI chính của tôi cho bộ lặp, và vì vậy tôi quyết định xây dựng một bộ điều khiển riêng cho chúng.

Kế hoạch ban đầu của tôi cho việc này là lấy một bao vây Hammond nhỏ và đặt 5 bộ chuyển mạch chân vào và tự học một số mã Arduino cơ bản. Khi tôi bắt đầu tìm hiểu thêm và mã của tôi đang hoạt động, nó kết thúc thúc đẩy tôi thử nhiều thứ hơn và sau đó về cơ bản nó đã trở thành một thứ gì đó lớn hơn.

Bước 1: Khái niệm

Các khái niệm
Các khái niệm
Các khái niệm
Các khái niệm

Một trong những ý tưởng ban đầu là chỉ có 5 nút liên tiếp với đèn LED trạng thái. Điều này khá đơn giản để mô phỏng trên breadboard với Arduino. Việc bổ sung các tính năng và phần cứng mới đã trở thành một quá trình trong đó tôi liên tục thiết kế và thiết kế lại bố cục vật lý trên giấy và xây dựng vào dự án breadboard. Ngay cả khi có rất nhiều kế hoạch, rất nhiều công việc về điều này đã được thực hiện một cách nhanh chóng ngay từ đầu.

Hai hình ảnh trên cho thấy bản vẽ đầu tiên mà tôi cam kết trên giấy, nó khởi động ý tưởng ngay từ đầu, sau đó là một tháng ghi chú được thực hiện sau đó định hình bố cục vật lý và PCB.

Bước 2: Breadboard Protoyping

Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping

Toàn bộ dự án được xây dựng trên một breadboard và được thử nghiệm đầy đủ để đảm bảo nó hoạt động hoàn toàn với DD500 trước khi bất kỳ công việc nào bắt đầu trên nó vĩnh viễn. Một số tính năng bổ sung đã được thêm vào trong mã, điều này đã cung cấp cho bộ điều khiển một số chức năng bổ sung mà DD500 thiếu. Những điều này sẽ được thảo luận đầy đủ hơn trong phần mã.

Bàn đạp có 5 công tắc chân, 4 đèn LED trạng thái, 5 màn hình LCD I2C và được điều khiển bởi Arduino Nano Every. Nó được cấp nguồn từ PSU bàn đạp guitar 9V thông qua một hộp ngắt riêng biệt mang nguồn đó qua cáp MIDI bằng cách sử dụng 2 chân thường không được sử dụng trên đầu nối MIDI.

Bước 3: Chế tạo

Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt
Sự bịa đặt

Tôi đã xem xét rất nhiều trường hợp có thể xảy ra để làm nhà ở cho dự án, và thậm chí đã xem xét ý tưởng cố gắng uốn vỏ của riêng tôi từ các tấm nhôm. Cuối cùng, tôi đã định cư trên một chiếc tủ Hammond chỉ đủ rộng để chứa 5 màn hình LCD 16X2 mà tôi đã chọn.

Các công tắc chân là công tắc cảm ứng mềm tạm thời chung chung.

Ở giai đoạn này, tôi quyết định thực hiện các viền màn hình gắn kết tùy chỉnh để giữ cho mặt trước trông sạch sẽ, vì tôi sẽ cắt các lỗ trên màn hình bằng tay bằng máy Dremel và biết rằng có thể sẽ có một vài khu vực kém hoàn hảo. Tôi đã cắt những bức tranh này bởi một studio thiết kế địa phương, nơi cắt laser, đầu tiên là các mẫu bìa cứng để đảm bảo kích thước của tôi đều chính xác, và sau đó bằng acrylic trắng 3mm cho tác phẩm cuối cùng.

Bước 4: Mô hình và bố cục CAD

Mô hình và bố cục CAD
Mô hình và bố cục CAD
Mô hình và bố cục CAD
Mô hình và bố cục CAD

Từ các bản phác thảo trên giấy của mình, tôi sử dụng Inkscape để sắp xếp tất cả các thành phần vật lý và hoàn thiện kích thước và vị trí. Tôi cũng đã nghĩ ra phương pháp gắn màn hình vào thời điểm này. Để giảm thiểu số lượng bu lông có thể nhìn thấy ở mặt trước, tôi quyết định gắn tất cả các màn hình vào một số tấm nhôm từ phía sau bằng cách sử dụng chân đế và sau đó tôi sẽ chỉ cần 4 bu lông trên mỗi tấm để cố định chúng vào vỏ máy. cũng sẽ giữ các bezels màn hình tại chỗ.

Bước 5: Thiết kế PCB

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

Để tạo ra PCB, tôi đã sử dụng một trang web có tên là EasyEDA. Nó có một môi trường biên tập trong đó bạn có thể vẽ sơ đồ các thành phần của mình, biến nó thành một bố cục PCB và sau đó xuất trực tiếp sang JLCPCB để tạo thành các bo mạch. Tôi chưa bao giờ làm bất cứ điều gì như thế này trước đây, nhưng họ có một hướng dẫn tuyệt vời trên trang web giải thích cách trình biên tập hoạt động, và trong vòng một giờ tôi đã thiết kế và đặt hàng bảng.

Một số khu vực trên bo mạch được thiết kế kém vào thời điểm đó do thiếu kinh nghiệm, chẳng hạn như sử dụng một đường ray 5V duy nhất cho nguồn màn hình, thay vì cung cấp cho từng khu vực một nguồn cấp dữ liệu riêng biệt. Rất may, bất kỳ sụt giảm điện áp nào xảy ra không đủ để gây ra sự cố với màn hình.

Các hội đồng đã đến khoảng 2 tuần sau đó và may mắn thay, không có bất kỳ vấn đề nào.

Bước 6: Gắn màn hình

Giá treo màn hình
Giá treo màn hình
Giá treo màn hình
Giá treo màn hình
Giá treo màn hình
Giá treo màn hình

Các bộ phận đầu tiên được thực hiện là giá đỡ màn hình. Tôi đã sử dụng nhôm 3mm cho cái này và khoan lỗ cho giá đỡ. Kích thước được xác định bằng cách đặt mọi thứ trên bàn như tôi muốn bàn đạp cuối cùng và đo từ các lỗ gắn trên PCB màn hình. Tôi cũng đặt các footswitch với chúng để có khoảng cách cho chúng.

Sau khi tất cả các lỗ đã được khoan, các màn hình đã được lắp và kiểm tra độ vuông bằng cách giữ một thước đo áp vào các cạnh phẳng của đáy. Mọi thứ xếp hàng cho đến nay.

Bước 7: Bao vây

Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây

Tiếp theo là sửa đổi trường hợp. Các công tắc chân và đèn LED rất đơn giản vì chúng chỉ yêu cầu một lỗ 12mm và 5mm tương ứng.

Phần lớn công việc vật lý đến khi cắt các lỗ trên màn hình. Tôi đã sử dụng một Dremel với một số đĩa cắt hạng nặng và các tệp khác nhau để làm sạch các lỗ sau đó. Phần này mất khoảng 2 giờ đồng hồ.

Vỏ bọc mà tôi sử dụng được thiết kế cho mục đích công nghiệp và được làm bằng cách uốn cong một miếng kim loại và hàn điểm các góc. Điều này có nghĩa là một số công việc sẽ được yêu cầu để làm sạch các góc này bằng cách sử dụng chất độn thân xe để san bằng các điểm thấp và lấp đầy các khoảng trống trên cạnh.

Tại thời điểm này, chiếc hộp đã được sơn lót hoàn toàn và tôi đã chế nhạo mọi thứ lên chỉ để xem nó trông như thế nào.

Bước 8: Uh-Oh

Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh
Uh-Oh

Và sau đó nhận ra rằng bất chấp tất cả các kế hoạch và đo lường của tôi, tôi đã mắc một lỗi LỚN. Tôi thiết kế bố cục bảng và trường hợp độc lập với nhau. Trong đầu tôi, tấm bảng sẽ gần như áp sát vào bức tường trên cùng, với một khoảng trống ngắn đằng sau nó. Nhưng hoàn toàn không có cách nào có thể phù hợp với điều này. Và không có không gian để đặt nó sang một bên. Một sự giám sát rất lớn, nhưng rất may là tôi đã có thể khắc phục được vì vẫn còn một khoảng trống khá lớn giữa các giá đỡ màn hình trên nắp sau của vỏ máy. Một vài lỗ khác được khoan trên giá đỡ màn hình và một vài giá đỡ, và chúng tôi đã hoạt động trở lại, chỉ còn đủ chỗ để lắp nắp vào.

Bước 9: Sơn

Sơn
Sơn
Sơn
Sơn
Sơn
Sơn

Mọi thứ được tháo rời một lần nữa và vỏ máy được sơn màu Metallic Candy Red, sau đó là một vài lớp sơn mài. Vụ việc được để lại trong một tuần để chữa trị, mặc dù tôi phát hiện ra sơn mài vẫn còn hơi mềm vào thời điểm này khi tôi đang xây dựng mọi thứ. Một số khu vực nhỏ của sơn đã bị hư hỏng vì điều này. Điều gì đó mà tôi muốn tránh trong dự án tiếp theo của mình.

Trong thời gian này, tôi đã mua một chiếc máy in 3D, và quyết định sử dụng nó để làm một số vòng đệm cho các ống nước rửa chân, vì những chiếc nylon tôi đã mua có màu hơi vàng kinh khủng và kích thước kém.

Bước 10: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây

Phần cuối cùng của lắp ráp vật lý là kết nối mọi thứ. Một lần nữa, các vấn đề với thiết kế vỏ máy / thiết kế PCB lại xuất hiện và một số vị trí tiêu đề trên PCB có nghĩa là bắt chéo nhiều dây lên nhau, khiến mọi thứ trở nên lộn xộn hơn tôi mong đợi.

Các dây cho màn hình được gói thành bộ 4 và sử dụng keo tản nhiệt và quấn bện, được làm thành một đoạn duy nhất.

Bước 11: Mã Arduino

Image
Image

Là một người mới bắt đầu học lập trình Arduino, tôi đã tự học trong suốt quá trình học. Đoạn mã có lẽ tương đương với việc lập trình 'một chặng đường dài' nhưng tôi hài lòng vì nó đã hoạt động như dự định.

Bộ lặp trên DD500 có 5 chức năng cơ bản:

  • Bật / Tắt vòng lặp
  • Record / Overdub / Play
  • Phát vòng lặp đã ghi
  • Dừng phát lại
  • Xóa vòng lặp đã ghi

Mỗi chức năng đó có một công tắc chân tương ứng và ngoại trừ nút dừng, một đèn LED trạng thái. Màn hình LCD cũng cập nhật thông tin liên quan để hiển thị bàn đạp đang ở chế độ ghi, ghi quá mức hoặc phát lại cũng như chức năng mà mỗi bàn đạp sẽ thực hiện tùy thuộc vào những gì đang xảy ra tại thời điểm đó.

Một tính năng khác mà tôi đã thêm là theo dõi số lần tính năng ghi lại / đăng ký quá hạn được kích hoạt. Điều này được theo dõi trong mã bằng cách tăng một số nguyên, số nguyên này sẽ được hiển thị trên màn hình ‘bộ đệm’, liệt kê số lượng bản nhạc được ghi lại. Mặc dù DD500 không thể xóa các bản nhạc riêng lẻ, nhưng tôi đã thêm điều này chỉ như một bài tập mã hóa để xem liệu tôi có thể làm cho nó hoạt động hay không.

Có vẻ như đã xảy ra sự cố khi tải tệp lên Guiductables và vì vậy, tôi đã đặt một bản sao mã trên Pastebin để thay thế tại:

2 thư viện đã được sử dụng trong mã:

LiquidCrystal_I2C

Thư viện FortySevenEffects MIDI

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

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

Một trong những điều lớn nhất mà tôi rút ra được từ dự án này là lập kế hoạch trước thời hạn càng nhiều càng tốt có thể tránh được các vấn đề tiềm ẩn. Các vấn đề với việc gắn PCB của tôi làm nổi bật tầm quan trọng của việc này. Giữ các ghi chú tốt cũng là điều tôi rất khuyến khích. Nếu không có chúng, tôi có thể gặp phải nhiều vấn đề hơn tôi đã gặp. Tôi hiện đang xây dựng bộ điều khiển MIDI thứ hai của mình và lần này tôi đã nỗ lực nhiều hơn để hợp lý hóa mã của mình và thiết kế phần cứng của tôi xung quanh cách gắn PCB.

Đề xuất: