Isi kandungan:

Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Using Deej: 8 Steps
Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Using Deej: 8 Steps

Video: Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Using Deej: 8 Steps

Video: Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Using Deej: 8 Steps
Video: I Built a Volume Mixer for Gaming and Streaming - deej 2024, November
Anonim
Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Menggunakan Deej
Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Menggunakan Deej

Projek Tinkercad »

Mengapa

Untuk sekian lama saya ingin menambahkan kayu bedik kecil ke papan kekunci saya untuk mengawal elemen antara muka, atau tugas lain yang lebih kecil dalam permainan dan simulator (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons, dll).

Juga, untuk Elite: Dangerous, saya telah berjuang untuk mencampurkan tahap kelantangan dari audio luaran (muzik bawaan, sementara bagus, berulang-ulang setelah berjam-jam dalam warna hitam), audio dalam permainan, dan sokongan beg suara luaran.

Pengadun sumber terbina dalam Windows adalah 'ok', tetapi menyakitkan untuk menukar skrin dan slaid kawalan tetikus di tengah-tengah permainan. Memiliki kotak kawalan papan kekunci yang diperluas nampaknya sesuai. Deej adalah penyelesaian yang saya dapati.

Bagaimana

Saya baru-baru ini belajar tentang Arduino, dan menemui projek deej di reddit. Nampaknya ini akan menyelesaikan kedua-dua masalah dalam satu pakej yang berguna. Dan ini membolehkan saya merancang dan mencetak casing 3d yang bagus.

Apa itu deej?

(dari laman web) deej adalah ** pengadun volume perkakasan sumber terbuka ** untuk PC Windows dan Linux. Ini membolehkan anda menggunakan slaid kehidupan nyata (seperti DJ!) Untuk ** mengawal kelantangan aplikasi yang berbeza ** (seperti pemain muzik anda, permainan yang anda mainkan dan sesi perbualan suara anda) tanpa perlu menghentikan awak buat.

Versi saya

Untuk memastikan kotaknya tetap kecil, saya memilih tombol (potensiometer linier putar (pot = perintang)) dan bukannya gelangsar. Secara fungsional mereka bekerja sama. Reka bentuk deej semasa dan popular tidak termasuk kayu bedik, jadi ini akan menjadi rekaan hibrid. Jika tidak, ia adalah binaan yang agak lurus ke hadapan.

Deej akan bekerjasama dengan Arduino Nano, Pro Micro atau Uno, tetapi Nano dan Pro Micro 'disyorkan secara rasmi' oleh pemaju. Saya memilih Arduino Pro Micro kerana saya mahukan joystick, dan Arduino Joystick Library menyokongnya. Saya juga mungkin menggunakan Perpustakaan Papan Kekunci Arduino ketika saya ingin menggunakan fungsi bisu papan kekunci media (bukannya 'bisu lembut') dengan butang kayu bedik, tetapi itu lebih jauh.

Langkah 1: Bekalan

Bekalan
Bekalan
Bekalan
Bekalan
Bekalan
Bekalan

Kotak itu

Muat turun fail STL (direka dalam Tinkercad):

  • Fail lampiran di Prusa (https://www.prusaprinters.org/)
  • Thingiverse (akan datang)

Perkakasan (unit pengeluaran)

  • 1x Arduino Pro Mikro
  • Potentiometers 4x 10k rotary (knob) (bukan Rotary Controller, gunakan pot)
  • 1x Arduino KY-023 Joystick
  • Kabel rangkaian cat scrap 5ft
  • 1x Kabel mikro USB A ke USB B (USB A adalah penyambung persegi besar, mikro USB B adalah apa yang ada di Arduino Pro Micro)
  • LED merah 1x 5mm
  • Perintang 1x 220 ohm

Saya mempunyai beberapa bahagian tambahan jadi saya fikir saya akan membina unit pembangunan untuk menguji perkara. Dengan hanya menyambungkan sesuatu ke papan roti menjadikannya lebih mudah untuk membayangkan perkara terakhir.

  • 1x Arduino Pro Mikro
  • Potentiometers 4x 10k rotary (knob) (bukan Rotary Controller, gunakan pot)
  • Suis butang tekan sesaat 1x (suis tetapan semula keras)
  • 1x Kabel mikro USB A ke USB B (USB A adalah penyambung persegi besar, mikro USB B adalah apa yang ada di Arduino Pro Micro)
  • wayar pelompat pelbagai
  • papan roti
  • LED merah 1x 5mm
  • Perintang 1x 220 ohm

Langkah 2: Kandang

Pagar
Pagar
Pagar
Pagar
Pagar
Pagar
Pagar
Pagar

Rekaan

Saya menyukai beberapa reka bentuk lain yang diprofilkan di galeri komuniti deej, berdasarkan ciri-ciri yang saya suka:

  • Mudah direka dan dicetak
  • Tidak menghalang periferal desktop saya yang lain
  • Jangan gunakan skru atau pengikat untuk menahan penutupnya
  • Estetika reka bentuk yang serupa dengan papan kekunci

Saya merancang dan mencetak dua prototaip sebelum membuat reka bentuk akhir ini. Saya suka mempunyai versi fizikal untuk dimainkan di ruang yang saya gunakan kerana ia memberi saya gambaran yang lebih baik tentang bagaimana objek akhir akan berfungsi.

Secara ringkas saya mula merancang di Fusion360, tetapi tidak tahu juga Tinkercad sehingga beralih dan bekerja di sana.

Oleh kerana saya mahukan reka bentuk tanpa skru, saya membuat kotak bersarang. Prototaip pertama mempunyai penutup nipis dan kotak dalam untuk semuanya. Reka bentuk kedua menukarnya dengan penutup dalam dan kotak bawah yang cetek. Ia hanya perlu memegang Arduino Pro Mini sehingga benar-benar tidak perlu besar. Disertakan juga ikon timbul.

Reka bentuk ketiga diubah saiznya agar sesuai dengan ruang di sebelah papan kekunci saya.

Cetakannya

Saya mencetak kotak di PLA, memprogram pertukaran filamen / lapisan dari Hitam ke Merah untuk penutup di mana ikon akan mula kelihatan, dan kembali lagi ke Hitam untuk baki penutup.

Masalah

Sepanjang masa ini, pelekap kayu bedik menjadi masalah. Walaupun pada reka bentuk ketiga, tongkat itu melentur pada pelekap di satu tempat. Pengulangan seterusnya akan mempunyai pelepasan yang lebih baik. Saya mungkin lebih banyak berusaha dalam reka bentuk tetapi ingin meneruskan ke fasa seterusnya, pemasangan.

Langkah 3: Litar

Litar
Litar
Litar
Litar
Litar
Litar

Pekerjaan pendawaian terburuk yang pernah ada

Ok, ini adalah projek Arduino penuh pertama saya. Ya, saya telah melakukan perkara di papan roti sebelum ini dan saya menggunakannya untuk membina versi Pembangunan ini, tetapi untuk membuat dan memasang, ini adalah yang pertama saya. Jadi pendawaian saya kelihatan seperti omong kosong. Di sana, itu tidak mungkin:)

Kemas kini: Sejak itu saya membina yang lain dan pendawaian jauh lebih baik di sana. Lihat gambar:)

Unit pengeluaran - Kemana sahaja

Arduino Pro Micro adalah papan kecil kecil dan akan sesuai dengan bahagian yang dibentuk di pangkalan. Tombol dan kayu bedik sesuai di lubang masing-masing di penutup. Tetapi jangan memasang apa-apa sehingga anda mendapat pematerian bersaing.

Pendawaian

Saya tidak mempunyai wayar litar yang betul, tetapi mempunyai sisa rangkaian rangkaian kabel cat5 inti pepejal, jadi itulah yang saya gunakan. Ia agak kaku dan mungkin lebih rapuh daripada wayar litar terkandas, tetapi ia berfungsi.

Menetapkan komponen dalam perkiraan kedudukan pemasangan terakhir mereka, saya mengira jarak, untuk setiap wayar, menambah sedikit untuk slack, dll, kemudian memotong dan memotong wayar. Saya meninggalkan banyak kelonggaran.

Merujuk pada rajah pendawaian, saya mengalirkan landasan bersama (Hitam) dan VCC (Merah) ke tombol dan kayu bedik di mana ditunjukkan. Oleh kerana kabel rangkaian tidak terdapat dalam warna-warna ini, saya hanya memilih warna dan memastikan kabel saya tetap sesuai dengan fungsinya.

Periuk individu. garis analog (Kuning) berlari ke pin A0 - A3. Garis Joystick (Orange), juga analog, berlari ke pin I / O 8 dan 9. Ini mesti ditetapkan sebagai Analog dalam kod Arduino sebagai A8 dan A9.

Pin suis kayu bedik (Biru) berlari ke pin 7. Ini akan menjadi pin digital dalam kod.

Penebat

Oleh kerana wayar kaku ini akan dimasukkan ke ruang kecil, saya memilih untuk melindungi sambungan pateri saya dengan gam panas yang cair. Kemudian meletakkan semuanya ke tempatnya dan menjalankan ujian sederhana di papan dan periuk menggunakan versi kod Arduino Contoh AnalogInput - diubah suai untuk membaca semua pot.

Versi kedua

Dua gambar terakhir di atas menunjukkan kotak seterusnya yang saya bina. Yang satu ini akan mempunyai 5 tombol dan satu butang tekan sesaat untuk bisu. Tiada kayu bedik. Kotak bersaiz sama.

Langkah 4: Menyiapkan Perkakasan

Menyiapkan Perkakasan
Menyiapkan Perkakasan

Pada masa saya memasang Joystick, saya menyedari tidak ada banyak jarak antara papan itu dan header pin yang tersisa di Pro Micro.

Setelah sedikit menunduk kepala pin, dan menggunakan semula gam lebur panas (untuk penebat), penutup ditutup dengan betul.

Memasang periuk tanpa hambatan.

Lagi-lagi dengan wayar

Kawat teras pepejal agak kaku, dan boleh rapuh jika dilenturkan berkali-kali, jadi lipat dengan teliti (tanpa sudut tajam) ke ruang yang ada. Sebilangan dari saya terlalu panjang dan memerlukan sedikit lipatan tambahan.

Setelah semuanya dipasang, pasangkan pangkal ke atas dan anda harus selesai dengan perkakasan….

Tapi tunggu, masih ada lagi

Sudah tentu, setelah beberapa minggu penggunaan, saya memutuskan bahawa saya memerlukan petunjuk untuk memberitahu saya apakah status fungsi MUTE berkod lembut.

Setelah mengedit kod untuk menambahkan fungsi LED (lihat bahagian seterusnya), saya dengan cepat memasang LED / wayar / perintang dan menghubungkannya ke papan.

Saya menghabiskan lebih banyak masa untuk mengebor lubang di bahagian atas casing kerana saya tidak mahu mengalahkan bahagian atas. Saya menandakan titik tengah, menyoknya, kemudian tangan memutar sedikit gerudi untuk membuat lubang.

Pemfailan tambahan yang berhati-hati membersihkan lubang dan memastikan penekanan ketat yang ketat untuk memastikan LED tidak menonjol terlalu jauh di atas permukaan atas.

Langkah 5: Perisian

Perisian
Perisian
Perisian
Perisian
Perisian
Perisian

Gambaran keseluruhan

Jadi, ini adalah proses dua bahagian.

  1. Dapatkan dan fahami bagaimana Deej berfungsi dan edit fail Config.yaml
  2. Edit kod Arduino agar sesuai dengan perkakasan dan ciri yang dikehendaki
  3. Dapatkan perpustakaan Arduino Joystick

Dalam kes saya, saya mahukan ciri berikut:

  • Tombol yang mengawal tahap (Mic dan output)
  • Suis bisu
  • Joystick 2 paksi dikenali oleh Windows untuk penggunaan aplikasi

Tahap

Deej menjaga perkara pertama ketika ia datang. Saya tidak mengubah fungsi ini

Suis bisu

Saya sudah memutuskan sejak awal bahawa saya akan menggunakan tekan / suis di Joystick sebagai butang bisu berfungsi.

Apabila anda memeriksa kod, anda akan melihat bahawa saya telah memilih (pada mulanya) untuk menggunakan bisu 'lembut' - apabila butang ditekan, kelantangan MIC dikurangkan menjadi sifar (dan LED menyala). Apabila ditekan lagi, kelantangan MIC dikembalikan ke tetapan sebelumnya dan LED dipadamkan.

Akhirnya saya akan melihat pelaksanaan pustaka papan kekunci Arduino untuk menukar status Bisu melalui set kod Papan Kekunci media yang diperluas.

Pelaksanaan Joystick

Ini memerlukan penggunaan perpustakaan Joystick Arduino untuk memastikan kayu bedik dikenali sebagai peranti HID oleh Windows dan akibatnya oleh permainan / aplikasi apa pun.

Saya agak tidak tahu mengenai pengekodan dan mendapati dokumentasi perpustakaan Joystick agak jarang di sisi pelaksanaan yang sebenarnya - tetapi sedikit fokus Google membuat saya menunjukkan contoh lain yang membantu saya memahami apa yang sedang berlaku. Periksa bahagian sumber di hujungnya untuk maklumat lanjut.

Yang perlu saya buat hanyalah mengenal pasti pin X / Y, membaca keadaannya dan menghantarnya ke perpustakaan Joystick. Arduino muncul sebagai Leonardo ke Windows, dan dikonfigurasi dengan benar sebagai perangkat Joystick.

Saya dapat memasangnya di Elite Dangerous, di samping persediaan HOTAS saya yang ada dan mempunyai Joystick dengan betul mengawal sesuatu dan tidak bertentangan dengan HOTAS. Ia juga berfungsi dengan baik di Star Wars: Squadrons - Saya menetapkannya sebagai pengalih cepat untuk memasang perisai ketika dalam pertempuran.

Fail yang berfungsi dengan persediaan Joystick saya

Saya telah memuat naik fail semasa saya (Oktober 2020) ke Codepile.

  • Kod Arduino (fail.ino)
  • Deej config.yaml

Langkah 6: Tamat

Tamat
Tamat

Baiklah, ini sudah selesai. Ia berfungsi dan saya agak senang dengan bagaimana ia disatukan. Dan saya belajar lebih banyak mengenai reka bentuk perkakasan, integrasi, dan pengaturcaraan Arduino.

Langkah 7: Addendum..dum..dum

Tambahan..dum..dum
Tambahan..dum..dum

VLC - pemain audio dan video yang hebat mempunyai sedikit keanehan di mana tahap kelantangan, apabila dikawal secara luaran, melonjak dari 0% hingga 27% ish. Ini tidak berlaku semasa menyesuaikan tahap menggunakan kawalan kelantangan antara muka dalam aplikasi, hanya dengan kawalan luaran seperti Deej.

Pembangun Deej dengan cepat menemui penyelesaian dalam-VLC yang menjalankan tugas, lihat gambar di atas:

"… jika anda mahu melumpuhkan tingkah laku" Penjejakan "ini, anda boleh melakukannya dengan mengubah modul output audio VLC. Saya menggunakan DirectX dalam percubaan saya di sini. Anda perlu memulakan semula VLC agar perubahan itu berlaku. (Anda masih akan mempunyai sesi audio windows dan dapat mengawalnya melalui deej, ini hanya akan menghalang bar volume VLC bergerak dengannya)"

Langkah 8: Sumber Tambahan

Sumber tambahan
Sumber tambahan

Ditemui melalui Goog yang hebat, tidak disenaraikan dalam urutan tertentu …

  • Perpustakaan Joystick Arduino (v2) - diperlukan untuk menyatukan kayu bedik
  • Panduan penyambungan Sparkfun Pro Micro - sumber yang baik mengenai Arduino ini
  • deej - perisian yang memacu tombol
  • Jenis Penyambung USB - siapa tahu terdapat banyak varian?
  • Pinout Analog Mikro Arduino Pro
  • Arduino Leonardo Gaming Joystick - Leonardo serupa dengan Pro Micro, hanya lebih besar
  • Port Arduino Pro Micro (Clone) tidak dikesan (Penyelesaian) - apabila anda membuat Pro Pro Micro (saya lakukan)
  • Arduino Leonardo / Micro sebagai Game Controller / Joystick
  • Contoh menggunakan kekunci multimedia untuk membisukan - menggunakan pustaka Projek HID
  • Kod contoh perpustakaan Projek HID untuk menjeda / memainkan media
  • Contoh kod lain yang menunjukkan pengawal gamepad.
  • ArduinoGamingController_updated - penerangan kod yang baik mengenai penggunaan Perpustakaan Joystick
  • Kalkulator Perintang LED - untuk mengetahui seberapa besar perintang yang anda perlukan dalam projek anda
  • Perpustakaan ikon - flaticon.com - sumber gambar yang digunakan di atas tombol
  • Decoder Warna Resistor yang lain - klik pada warna dan biola!

Disyorkan: