Mục lục:

Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh Sử dụng Deej: 8 bước
Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh Sử dụng Deej: 8 bước

Video: Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh Sử dụng Deej: 8 bước

Video: Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh Sử dụng Deej: 8 bước
Video: 1. Bộ điều khiển ánh sáng Q Cùng với Bắt đầu với QLC +. Đèn và chức năng 2024, Tháng mười một
Anonim
Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh bằng Deej
Hộp mở rộng cần điều khiển bàn phím Arduino và Điều khiển âm thanh bằng Deej

Dự án Tinkercad »

Tại sao

Trong một thời gian, tôi đã muốn thêm một cần điều khiển nhỏ vào bàn phím của mình để điều khiển các phần tử giao diện hoặc các tác vụ nhỏ hơn khác trong trò chơi và trình mô phỏng (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons, v.v.).

Ngoài ra, đối với Elite: Dangerous, tôi đã phải vật lộn với việc trộn các mức âm lượng từ âm thanh bên ngoài (âm nhạc tích hợp, mặc dù hay, nhưng bị lặp đi lặp lại sau nhiều giờ trong bóng tối), âm thanh trong trò chơi và hỗ trợ gói giọng nói bên ngoài.

Bộ trộn nguồn tích hợp sẵn của Windows là 'ok', nhưng bạn gặp khó khăn khi chuyển đổi màn hình và thanh trượt điều khiển chuột khi đang chơi game. Có một hộp điều khiển bàn phím mở rộng dường như là một cách để đi. Deej là giải pháp mà tôi tìm thấy.

Thế nào

Gần đây tôi đã tìm hiểu về Arduino và đã xem qua dự án deej trên reddit. Có vẻ như điều này sẽ giải quyết cả hai vấn đề đó trong một gói tiện dụng. Và nó sẽ cho phép tôi thiết kế và in một trường hợp 3d tiện lợi.

Deej là gì?

(từ trang web) deej là ** bộ trộn âm lượng phần cứng mã nguồn mở ** dành cho PC chạy Windows và Linux. Nó cho phép bạn sử dụng các thanh trượt trong đời thực (như một DJ!) Để ** điều khiển liền mạch âm lượng của các ứng dụng khác nhau ** (chẳng hạn như trình phát nhạc, trò chơi bạn đang chơi và phiên trò chuyện thoại của bạn) mà không cần phải dừng lại. bạn đang làm.

Phiên bản của tôi

Để giữ cho hộp nhỏ, tôi đã chọn các nút bấm (chiết áp tuyến tính quay (nồi = điện trở)) thay vì thanh trượt. Về mặt chức năng, chúng hoạt động giống nhau. Các thiết kế deej hiện tại và phổ biến không bao gồm cần điều khiển, vì vậy đây sẽ là một thiết kế lai một chút. Nếu không, đó là một bản dựng khá dễ hiểu.

Deej sẽ hoạt động với Arduino Nano, Pro Micro hoặc Uno, nhưng Nano và Pro Micro được nhà phát triển 'khuyến nghị chính thức'. Tôi chọn Arduino Pro Micro vì tôi muốn cần điều khiển và Thư viện cần điều khiển Arduino hỗ trợ nó. Tôi cũng có thể sử dụng Thư viện bàn phím Arduino khi tôi muốn sử dụng chức năng tắt tiếng bàn phím đa phương tiện (thay vì 'tắt tiếng mềm') bằng nút cần điều khiển, nhưng điều đó còn khó khăn hơn.

Bước 1: Nguồn cung cấp

Quân nhu
Quân nhu
Quân nhu
Quân nhu
Quân nhu
Quân nhu

Cái hộp

Tải xuống các tệp STL (được thiết kế trong Tinkercad):

  • Các tệp đính kèm tại Prusa (https://www.prusaprinters.org/)
  • Thingiverse (sắp ra mắt)

Phần cứng (đơn vị sản xuất)

  • 1x Arduino Pro Micro
  • Chiết áp quay (núm) 4x 10k (không phải Bộ điều khiển quay, sử dụng nồi)
  • 1x Cần điều khiển Arduino KY-023
  • Cáp mạng cat5 phế liệu 5ft
  • 1x Cáp micro USB A đến USB B (USB A là đầu nối hình vuông lớn, micro USB B là những gì có trên Arduino Pro Micro)
  • 1x 5mm LED đỏ
  • 1x điện trở 220 ohm

Tôi đã có một số phần bổ sung xung quanh vì vậy tôi nghĩ rằng tôi sẽ xây dựng một đơn vị phát triển để kiểm tra mọi thứ. Chỉ cần kết nối mọi thứ với một breadboard đã giúp bạn dễ dàng hình dung điều cuối cùng hơn.

  • 1x Arduino Pro Micro
  • Chiết áp quay (núm) 4x 10k (không phải Bộ điều khiển quay, sử dụng nồi)
  • 1x công tắc nút nhấn tạm thời (công tắc khôi phục cài đặt gốc)
  • 1x Cáp micro USB A đến USB B (USB A là đầu nối hình vuông lớn, micro USB B là những gì có trên Arduino Pro Micro)
  • dây nhảy các loại
  • breadboard
  • 1x 5mm LED đỏ
  • 1x điện trở 220 ohm

Bước 2: Bao vây

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

Thiết kế

Tôi thích một số thiết kế khác được mô tả trong phòng trưng bày của cộng đồng deej, vì vậy dựa trên các tính năng mà tôi thích:

  • Dễ dàng thiết kế và in ấn
  • Không cản trở các thiết bị ngoại vi máy tính để bàn khác của tôi
  • Không sử dụng vít hoặc chốt để giữ chặt vỏ máy
  • Thiết kế tương tự thẩm mỹ cho bàn phím

Tôi đã thiết kế và in hai nguyên mẫu trước khi quyết định thiết kế cuối cùng này. Tôi muốn có một phiên bản vật lý để chơi trong không gian mà tôi đang sử dụng nó vì nó cho tôi cảm giác tốt hơn về cách vật thể cuối cùng sẽ hoạt động.

Tôi bắt đầu thiết kế trong Fusion360 một thời gian ngắn, nhưng không biết nó cũng như Tinkercad nên đã chuyển sang và làm việc ở đó.

Vì tôi muốn có một thiết kế không có vít nên tôi đã tạo một hộp lồng. Nguyên mẫu đầu tiên có một nắp mỏng và một hộp sâu cho mọi thứ. Thiết kế thứ hai đã hoán đổi điều đó với một chiếc hộp có nắp sâu và hộp có đáy nông. Nó chỉ phải chứa Arduino Pro Mini nên thực sự không cần quá lớn. Cũng kết hợp các biểu tượng dập nổi.

Thiết kế thứ ba đã được thay đổi kích thước để phù hợp với không gian dọc theo bàn phím của tôi.

Bản in

Tôi đã in hộp bằng PLA, lập trình hoán đổi sợi / lớp từ Đen sang Đỏ cho nắp nơi các biểu tượng sẽ bắt đầu hiển thị và một lần nữa trở lại Đen cho phần còn lại của nắp.

Vấn đề

Tất cả những điều này, giá đỡ cần điều khiển là một vấn đề. Ngay cả trong thiết kế thứ ba, thanh chống va chạm vào các giá đỡ ở một nơi. Lần lặp tiếp theo sẽ có độ rõ ràng tốt hơn. Tôi có thể đã làm việc nhiều hơn về thiết kế nhưng muốn chuyển sang giai đoạn tiếp theo, cài đặt.

Bước 3: Mạch

Mạch
Mạch
Mạch
Mạch
Mạch
Mạch

Công việc nối dây tồi tệ nhất từ trước đến nay

Ok, đây là dự án Arduino đầy đủ đầu tiên của tôi. Vâng, tôi đã làm mọi thứ trên breadboards trước đây và đang sử dụng một cái để tạo phiên bản Phát triển của cái này, nhưng để thực sự chế tạo và lắp ráp, đây là lần đầu tiên của tôi. Vì vậy, hệ thống dây điện của tôi trông giống như tào lao. Đó, hết cách rồi:)

Cập nhật: Tôi đã chế tạo một cái khác kể từ đó và hệ thống dây điện ở đó đẹp hơn nhiều. Xem những hình ảnh:)

Đơn vị sản xuất - Điều gì sẽ xảy ra ở đâu

Arduino Pro Micro là một bo mạch nhỏ nhỏ và sẽ nằm gọn trong phần đúc ở đế. Các núm và cần điều khiển phù hợp với các lỗ tương ứng trên nắp. Nhưng đừng gắn bất cứ thứ gì cho đến khi bạn có được mối hàn.

Đấu dây

Tôi không có bất kỳ dây mạch thích hợp nào, nhưng có một cuộn dây mạng cat5 lõi rắn còn sót lại, vì vậy đó là những gì tôi đã sử dụng. Nó cứng hơn một chút và có lẽ giòn hơn so với dây mạch bện, nhưng nó hoạt động.

Sắp xếp các thành phần gần đúng với vị trí lắp đặt cuối cùng của chúng, tôi ước tính khoảng cách, cho mỗi dây, thêm một chút nữa cho độ chùng, v.v., sau đó cắt và tỉa dây. Tôi đã để lại rất nhiều sự chùng xuống.

Tham khảo sơ đồ nối dây, tôi chạy điểm chung (Đen) và VCC (Đỏ) đến các nút và cần điều khiển ở nơi được chỉ định. Vì cáp mạng không có các màu này nên tôi chỉ chọn một màu và giữ cho hệ thống dây của mình phù hợp với chức năng.

Pot cá nhân. đường tương tự (Màu vàng) chạy đến chân A0 - A3. Các dòng Cần điều khiển (Màu cam), cũng tương tự, chạy đến các chân I / O 8 và 9. Các dòng này sẽ phải được chỉ định là Analog trong mã Arduino là A8 và A9.

Chân công tắc cần điều khiển (Xanh lam) chạy đến chân 7. Đây sẽ là chân kỹ thuật số trong mã.

Vật liệu cách nhiệt

Vì dây cứng này sẽ được nhồi vào một khoảng không gian nhỏ, tôi đã chọn cách điện các mối hàn của mình bằng một lớp keo nóng chảy khỏe mạnh. Sau đó, sắp xếp mọi thứ vào vị trí và chạy một bài kiểm tra đơn giản trên bảng và các chậu sử dụng phiên bản mã Arduino Ví dụ AnalogInput - được sửa đổi để đọc tất cả các chậu.

Phiên bản thứ hai

Hai hình ảnh cuối cùng ở trên cho thấy hộp tiếp theo mà tôi đang xây dựng. Cái này sẽ có 5 nút bấm và một nút nhấn tạm thời để tắt tiếng. Không có cần điều khiển. Hộp cùng kích thước.

Bước 4: Hoàn thiện phần cứng

Hoàn thiện phần cứng
Hoàn thiện phần cứng

Vào thời điểm tôi cài đặt Cần điều khiển, tôi nhận ra rằng không có nhiều khoảng trống giữa bo mạch của nó và các đầu ghim còn lại trên Pro Micro.

Sau khi uốn cong một chút cẩn thận các đầu ghim và bôi lại keo nóng chảy (để cách nhiệt), vỏ bọc đã đóng lại đúng cách.

Việc lắp đặt các chậu diễn ra mà không gặp bất cứ trở ngại nào.

Một lần nữa với dây

Dây lõi đặc hơi cứng và có thể bị giòn nếu bị uốn cong quá nhiều lần, vì vậy hãy cẩn thận gấp chúng (không có góc nhọn) vào khoảng trống có sẵn. Một số của tôi quá dài và cần gấp thêm một chút.

Khi mọi thứ đã được sắp xếp vào đúng vị trí, chỉ cần lắp phần đế lên phía trên và bạn sẽ hoàn thành phần cứng….

Nhưng xin chờ chút nữa

Tất nhiên, sau một vài tuần sử dụng, tôi quyết định rằng tôi cần một chỉ báo để cho tôi biết trạng thái của chức năng MUTE được mã hóa mềm là gì.

Sau khi chỉnh sửa mã để thêm chức năng LED (xem phần tiếp theo), tôi nhanh chóng hàn LED / dây / điện trở và kết nối chúng với bảng.

Tôi đã dành nhiều thời gian hơn để khoan lỗ xuyên qua phần trên của vỏ máy vì tôi không muốn làm hỏng phần hoàn thiện trên cùng. Tôi đánh dấu một điểm chính giữa, làm lõm nó, sau đó quay tay một mũi khoan để tạo lỗ.

Việc giũa cẩn thận bổ sung làm sạch lỗ và đảm bảo độ khít chặt đẹp mắt để đảm bảo đèn LED không nhô ra quá xa so với bề mặt trên.

Bước 5: Phần mềm

Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm

Tổng quat

Vì vậy, đây là một quá trình gồm hai phần.

  1. Nhận và hiểu cách Deej hoạt động và chỉnh sửa tệp Config.yaml
  2. Chỉnh sửa mã Arduino để phù hợp với phần cứng và tính năng mong muốn
  3. Tải thư viện Cần điều khiển Arduino

Trong trường hợp của tôi, tôi muốn các tính năng sau:

  • Núm điều khiển mức độ (Mic và đầu ra)
  • Công tắc tắt tiếng
  • Cần điều khiển 2 trục được Windows công nhận để sử dụng ứng dụng

Các cấp độ

Deej quan tâm khá nhiều đến điểm đầu tiên khi nó đến. Tôi đã không điều chỉnh chức năng này

Công tắc tắt tiếng

Tôi đã sớm xác định rằng tôi sẽ sử dụng nhấn / chuyển đổi trong Cần điều khiển như một nút tắt tiếng chức năng.

Khi bạn kiểm tra mã, bạn sẽ thấy rằng tôi đã chọn (ban đầu) để sử dụng tắt tiếng 'mềm' - khi nút được nhấn, âm lượng MIC giảm xuống 0 (và đèn LED sáng). Khi nhấn lại, âm lượng MIC sẽ trở về cài đặt trước đó và đèn LED tắt.

Cuối cùng, tôi sẽ xem xét việc triển khai thư viện bàn phím Arduino để chuyển đổi trạng thái Tắt tiếng thông qua bộ mã Bàn phím đa phương tiện mở rộng.

Triển khai cần điều khiển

Điều này yêu cầu sử dụng thư viện Cần điều khiển Arduino để đảm bảo cần điều khiển được Windows và do đó là bất kỳ trò chơi / ứng dụng nào công nhận là thiết bị HID.

Tôi hơi khó hiểu khi nói đến mã hóa và nhận thấy tài liệu thư viện Joystick hơi thưa thớt về mặt triển khai thực tế - nhưng một chút về googling tập trung đã dẫn tôi đến các ví dụ khác giúp tôi hiểu chuyện gì đang xảy ra. Kiểm tra phần tài nguyên ở cuối để biết chi tiết.

Tất cả những gì tôi phải làm là xác định các chân X / Y, đọc trạng thái của chúng và gửi nó đến thư viện Joystick. Arduino xuất hiện như một Leonardo cho Windows, và được cấu hình đúng như một thiết bị Joystick.

Tôi đã có thể thiết lập nó trong Elite Dangerous, cùng với thiết lập HOTAS hiện có của mình và có Cần điều khiển kiểm soát mọi thứ đúng cách và không xung đột với HOTAS. Nó cũng hoạt động tốt trong Star Wars: Squadrons - Tôi đã đặt nó như một công cụ chuyển đổi nhanh chóng để thiết lập các lá chắn trong khi chiến đấu.

Các tệp hoạt động với thiết lập Cần điều khiển của tôi

Tôi đã tải các tệp hiện tại (tháng 10 năm 2020) của mình lên Codepile.

  • Mã Arduino (tệp.ino)
  • Deej config.yaml

Bước 6: Kết thúc

Kết thúc
Kết thúc

Chà, cái này đã xong. Nó hoạt động và tôi khá hài lòng với cách nó kết hợp với nhau. Và tôi đã học thêm một chút về thiết kế phần cứng, tích hợp và lập trình Arduino.

Bước 7: Phụ lục..dum..dum

Phụ lục..dum..dum
Phụ lục..dum..dum

VLC - trình phát âm thanh và video tuyệt vời đó có một chút kỳ lạ khi mức âm lượng, khi được điều khiển bên ngoài, tăng từ 0% lên 27% ish. Điều này không xảy ra khi điều chỉnh mức độ bằng cách sử dụng điều khiển âm lượng của giao diện trong ứng dụng, chỉ với các điều khiển bên ngoài như Deej.

Nhà phát triển Deej đã nhanh chóng tìm thấy một giải pháp trong VLC thực hiện công việc, hãy xem hình ảnh ở trên:

"… Nếu bạn muốn tắt hành vi" Theo dõi "này, bạn có thể làm như vậy bằng cách thay đổi mô-đun đầu ra âm thanh của VLC. Tôi đã sử dụng DirectX trong lần thử của mình ở đây. Bạn sẽ cần khởi động lại VLC để thay đổi có hiệu lực. (Bạn vẫn sẽ có phiên âm thanh cửa sổ và có thể điều khiển nó thông qua deej, điều này sẽ chỉ ngăn thanh âm lượng VLC di chuyển theo nó)"

Bước 8: Tài nguyên bổ sung

Tài nguyên bổ sung
Tài nguyên bổ sung

Được tìm thấy thông qua Goog hùng mạnh, được liệt kê không theo thứ tự cụ thể nào…

  • Thư viện cần điều khiển Arduino (v2) - cần thiết để tích hợp cần điều khiển
  • Hướng dẫn kết nối Sparkfun Pro Micro - tài nguyên hữu ích về Arduino này
  • deej - phần mềm điều khiển các nút
  • Các loại trình kết nối USB - ai biết có rất nhiều biến thể?
  • Sơ đồ chân vi mô tương tự của Arduino Pro
  • Cần điều khiển chơi game Arduino Leonardo - Leonardo tương tự như Pro Micro, chỉ lớn hơn
  • Cổng Arduino Pro Micro (Sao chép) không được phát hiện (Giải pháp) - khi bạn đặt Pro Micro (Tôi đã làm)
  • Arduino Leonardo / Micro làm Bộ điều khiển trò chơi / Cần điều khiển
  • Ví dụ về cách sử dụng phím đa phương tiện để tắt tiếng - sử dụng thư viện HID Project
  • Mã ví dụ của thư viện Dự án HID để tạm dừng / phát phương tiện
  • Một ví dụ mã khác hiển thị bộ điều khiển gamepad.
  • ArduinoGamingController_updated - mô tả mã tốt về việc sử dụng Thư viện cần điều khiển
  • Vật liệu máy tính điện trở LED - để tìm ra điện trở bạn cần trong dự án của mình lớn như thế nào
  • Thư viện biểu tượng - flaticon.com - nguồn của các hình ảnh được sử dụng phía trên các nút
  • Một bộ giải mã màu điện trở khác - nhấp vào một màu và viola!

Đề xuất: