Daftar Isi:
- Langkah 1: Persediaan
- Langkah 2: Kandang
- Langkah 3: Sirkuit
- Langkah 4: Menyelesaikan Perangkat Keras
- Langkah 5: Perangkat Lunak
- Langkah 6: Akhir
- Langkah 7: Tambahan..dum..dum
- Langkah 8: Sumber Daya Tambahan
Video: Arduino Keyboard Joystick Extender Box dan Sound Controller Thing Menggunakan Deej: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Proyek Tinkercad »
Mengapa
Untuk sementara saya ingin menambahkan joystick kecil ke keyboard saya untuk mengontrol elemen antarmuka, atau tugas kecil lainnya dalam game dan simulator (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons, dll).
Juga, untuk Elite: Dangerous, saya telah berjuang dengan mencampur tingkat volume dari audio eksternal (musik bawaan, meskipun bagus, berulang setelah berjam-jam dalam kegelapan), audio dalam game, dan dukungan paket suara eksternal.
Mixer sumber bawaan Windows 'ok', tetapi sulit untuk mengganti layar dan slider kontrol mouse di tengah-tengah permainan. Memiliki kotak kontrol keyboard yang diperluas sepertinya merupakan cara yang tepat. Deej adalah solusi yang saya temukan.
Bagaimana
Saya baru-baru ini belajar tentang Arduino, dan menemukan proyek deej di reddit. Sepertinya ini akan menyelesaikan kedua masalah itu dalam satu paket praktis. Dan itu akan membuat saya mendesain dan mencetak kasing 3d yang bagus.
Apa itu deej?
(dari situs) deej adalah **pencampur volume perangkat keras sumber terbuka** untuk PC Windows dan Linux. Ini memungkinkan Anda menggunakan penggeser kehidupan nyata (seperti DJ!) untuk **mengontrol volume berbagai aplikasi dengan mulus** (seperti pemutar musik, game yang Anda mainkan, dan sesi obrolan suara) tanpa harus menghentikan apa kamu lakukan.
versi saya
Untuk menjaga agar kotak tetap kecil, saya memilih kenop (potensiometer linier putar (pot = resistor)) daripada penggeser. Secara fungsional mereka bekerja sama. Desain deej saat ini dan populer tidak menyertakan joystick, jadi ini akan menjadi sedikit hibrida desain. Jika tidak, ini adalah bangunan yang cukup lurus ke depan.
Deej akan bekerja dengan Arduino Nano, Pro Micro atau Uno, tetapi Nano dan Pro Micro 'direkomendasikan secara resmi' oleh pengembang. Saya memilih Arduino Pro Micro karena saya menginginkan joystick, dan Perpustakaan Joystick Arduino mendukungnya. Saya juga dapat menggunakan Perpustakaan Keyboard Arduino ketika saya ingin menggunakan fungsi mute keyboard media (bukan 'soft mute') dengan tombol joystick, tapi itu lebih jauh.
Langkah 1: Persediaan
Kotak
Unduh file STL (dirancang di Tinkercad):
- Enclosure file di Prusa (https://www.prusaprinters.org/)
- Thingiverse (segera hadir)
Perangkat keras (unit produksi)
- 1x Arduino Pro Mikro
- 4x 10k Rotary (knob) Potensiometer (bukan Rotary Controller, gunakan pot)
- 1x Arduino KY-023 Joystick
- 5ft kabel jaringan cat5 memo
- 1x USB A ke USB B kabel mikro (USB A adalah konektor persegi besar, USB B mikro adalah apa yang ada di Arduino Pro Micro)
- 1x5mm LED merah
- 1x220 ohm resistor
Saya memiliki beberapa bagian tambahan, jadi saya pikir saya akan membangun unit pengembangan untuk mengujinya. Hanya menghubungkan berbagai hal ke papan tempat memotong roti membuatnya lebih mudah untuk memvisualisasikan hal terakhir.
- 1x Arduino Pro Mikro
- 4x 10k Rotary (knob) Potensiometer (bukan Rotary Controller, gunakan pot)
- 1x sakelar tombol tekan sesaat (saklar reset keras)
- 1x USB A ke USB B kabel mikro (USB A adalah konektor persegi besar, USB B mikro adalah apa yang ada di Arduino Pro Micro)
- berbagai macam kabel jumper
- papan tempat memotong roti
- 1x5mm LED merah
-
1x220 ohm resistor
Langkah 2: Kandang
Desain
Saya menyukai beberapa desain lain yang diprofilkan di galeri komunitas deej, jadi berdasarkan fitur yang saya sukai:
- Mudah dirancang dan dicetak
- Tidak menghalangi periferal desktop saya yang lain
- Tidak menggunakan sekrup atau pengencang untuk mengamankan enklosur
- Estetika desain serupa dengan keyboard
Saya merancang dan mencetak dua prototipe sebelum menyelesaikan desain akhir ini. Saya suka memiliki versi fisik untuk dimainkan di ruang tempat saya menggunakannya karena memberi saya pemahaman yang lebih baik tentang bagaimana objek akhir akan bekerja.
Saya secara singkat mulai mendesain di Fusion360, tetapi tidak mengetahuinya sebaik Tinkercad jadi beralih dan bekerja di sana.
Karena saya menginginkan desain tanpa sekrup, saya membuat kotak bersarang. Prototipe pertama memiliki tutup tipis dan kotak yang dalam untuk semuanya. Desain kedua menukarnya dengan tutup yang dalam dan kotak bawah yang dangkal. Cukup untuk menahan Arduino Pro Mini jadi tidak perlu besar-besar. Juga memasukkan ikon timbul.
Desain ketiga diubah ukurannya agar sesuai dengan ruang di samping keyboard saya.
Cetakan
Saya mencetak kotak di PLA, memprogram pertukaran filamen / lapisan dari Hitam ke Merah untuk tutupnya di mana ikon akan mulai terlihat, dan kembali lagi ke Hitam untuk sisa tutupnya.
Masalah
Selama ini, joystick mount bermasalah. Bahkan dalam desain ketiga, tongkat menabrak dudukan di satu tempat. Iterasi berikutnya akan memiliki izin yang lebih baik. Saya bisa saja bekerja lebih banyak pada desain tetapi ingin melanjutkan ke fase berikutnya, instalasi.
Langkah 3: Sirkuit
Pekerjaan kabel terburuk yang pernah ada
Ok, ini adalah proyek Arduino full-up pertama saya. Ya, saya telah melakukan banyak hal di papan tempat memotong roti sebelumnya dan menggunakannya untuk membangun versi Pengembangan ini, tetapi untuk fabrikasi dan perakitan sebenarnya, ini adalah yang pertama bagi saya. Jadi kabel saya terlihat seperti omong kosong. Di sana, itu keluar dari jalan:)
Pembaruan: Sejak itu saya membangun yang lain dan kabelnya jauh lebih bagus di sana. Lihat gambar:)
Unit produksi -- Apa yang terjadi di mana
Arduino Pro Micro adalah papan kecil kecil dan akan muat di bagian cetakan di dasar. Kenop dan joystick pas di lubangnya masing-masing di tutupnya. Tetapi jangan memasang apa pun sampai Anda mendapatkan persaingan penyolderan.
Pengkabelan
Saya tidak memiliki kabel sirkuit yang tepat, tetapi memiliki gulungan kabel jaringan cat5 inti padat, jadi itulah yang saya gunakan. Ini sedikit lebih kaku dan mungkin lebih rapuh daripada kabel sirkuit yang terdampar, tetapi berfungsi.
Meletakkan komponen dalam perkiraan posisi pemasangan akhir, saya memperkirakan jarak, untuk setiap kawat, menambahkan sedikit lebih banyak untuk kendur, dll, kemudian memotong dan memangkas kawat. Saya meninggalkan banyak kelonggaran.
Mengacu pada diagram pengkabelan, saya menjalankan kesamaan (Hitam) dan VCC (Merah) ke kenop dan joystick di tempat yang ditunjukkan. Karena kabel jaringan tidak memiliki warna-warna ini, saya hanya memilih warna dan menjaga kabel saya tetap konsisten dengan fungsinya.
Pot individu. jalur analog (Kuning) berlari ke pin A0 - A3. Garis Joystick (Oranye), juga analog, mengalir ke pin I/O 8 dan 9. Ini harus ditetapkan sebagai Analog dalam kode Arduino sebagai A8 dan A9.
Pin sakelar joystick (Biru) berlari ke pin 7. Ini akan menjadi pin digital dalam kode.
Isolasi
Karena kawat kaku ini akan dimasukkan ke dalam ruang kecil, saya memilih untuk mengisolasi koneksi solder saya dengan sesendok lem panas meleleh yang sehat. Kemudian selipkan semuanya ke tempatnya dan jalankan tes sederhana di papan dan pot menggunakan versi kode Arduino Contoh AnalogInput -- dimodifikasi untuk membaca semua pot.
Versi kedua
Dua gambar terakhir di atas menunjukkan kotak berikutnya yang sedang saya buat. Yang ini akan memiliki 5 kenop dan satu tombol tekan sesaat untuk bisu. Tidak ada joystick. Kotak dengan ukuran yang sama.
Langkah 4: Menyelesaikan Perangkat Keras
Pada saat saya memasang Joystick, saya menyadari bahwa tidak ada banyak jarak antara papan dan pin header yang tersisa di Pro Micro.
Setelah sedikit menekuk kepala pin dengan hati-hati, dan menerapkan kembali lem lelehan panas (untuk insulasi), selungkup ditutup dengan benar.
Memasang pot berjalan tanpa hambatan.
Sekali lagi dengan kabel
Kabel inti padat agak kaku, dan bisa rapuh jika terlalu sering ditekuk, jadi lipatlah dengan hati-hati (tanpa sudut tajam) ke dalam ruang yang tersedia. Beberapa milik saya terlalu panjang dan membutuhkan sedikit lipatan ekstra.
Setelah semuanya terselip di tempatnya, paskan alasnya ke atas dan Anda harus menyelesaikan perangkat kerasnya….
Tapi tunggu, masih ada lagi
Tentu saja, setelah beberapa minggu penggunaan, saya memutuskan bahwa saya memerlukan indikator untuk memberi tahu saya status fungsi MUTE kode lunak.
Setelah mengedit kode untuk menambahkan fungsionalitas LED (lihat bagian berikutnya), saya segera menyolder LED / kabel / resistor dan menghubungkannya ke papan.
Saya menghabiskan lebih banyak waktu untuk mengebor lubang melalui bagian atas kasing karena saya tidak ingin merusak lapisan atas. Saya menandai titik tengah, penyok, lalu tangan memutar mata bor untuk membuat lubang.
Pengarsipan tambahan yang hati-hati membersihkan lubang dan memastikan tekanan yang pas untuk memastikan LED tidak menonjol terlalu jauh di atas permukaan atas.
Langkah 5: Perangkat Lunak
Gambaran
Jadi, ini adalah proses dua bagian.
- Dapatkan dan pahami cara kerja Deej dan edit file Config.yaml
- Edit kode Arduino agar sesuai dengan perangkat keras dan fitur yang diinginkan
- Dapatkan perpustakaan Arduino Joystick
Dalam kasus saya, saya menginginkan fitur-fitur ini:
- Kenop yang mengontrol level (Mic dan output)
- Sakelar bisu
- Joystick 2 sumbu yang dikenali oleh Windows untuk penggunaan aplikasi
tingkat
Deej cukup banyak menangani poin pertama yang datang. Saya tidak mengubah fungsi ini
Sakelar bisu
Saya telah memutuskan sejak awal bahwa saya akan menggunakan tekan/saklar di Joystick sebagai tombol bisu yang berfungsi.
Ketika Anda memeriksa kode, Anda akan melihat bahwa saya telah memilih (awalnya) untuk menggunakan 'lembut' bisu - ketika tombol ditekan, volume MIC dikurangi menjadi nol (dan LED menyala). Ketika ditekan lagi, volume MIC kembali ke pengaturan sebelumnya dan LED padam.
Akhirnya saya akan melihat penerapan perpustakaan keyboard Arduino untuk mengaktifkan status Mute melalui set kode Keyboard media yang diperluas.
Implementasi joystick
Ini memerlukan penggunaan perpustakaan Joystick Arduino untuk memastikan joystick dikenali sebagai perangkat HID oleh Windows dan oleh karena itu oleh game/aplikasi apa pun.
Saya sedikit noob dalam hal pengkodean dan menemukan dokumentasi perpustakaan Joystick agak jarang di sisi implementasi yang sebenarnya - tetapi sedikit googling yang terfokus membawa saya ke contoh lain yang membantu saya memahami apa yang terjadi. Periksa bagian sumber daya di bagian akhir untuk detailnya.
Yang harus saya lakukan adalah mengidentifikasi pin X/Y, membaca statusnya dan mengirimkannya ke perpustakaan Joystick. Arduino muncul sebagai Leonardo untuk Windows, dan dikonfigurasi dengan benar sebagai perangkat Joystick.
Saya dapat mengaturnya di Elite Dangerous, di samping pengaturan HOTAS saya yang ada dan memiliki Joystick yang mengontrol berbagai hal dengan benar dan tidak bertentangan dengan HOTAS. Ini juga bekerja dengan baik di Star Wars: Skuadron -- Saya mengaturnya sebagai sakelar cepat untuk mengatur perisai saat dalam pertempuran.
File yang berfungsi dengan pengaturan Joystick saya
Saya telah mengunggah file saya saat ini (Oktober 2020) ke Codepile.
- Kode Arduino (file.ino)
- Deej config.yaml
Langkah 6: Akhir
Nah, yang ini selesai. Ini bekerja dan saya agak senang dengan bagaimana itu datang bersama-sama. Dan saya belajar lebih banyak tentang desain perangkat keras, integrasi, dan pemrograman Arduino.
Langkah 7: Tambahan..dum..dum
VLC -- pemutar audio dan video yang mengagumkan itu memiliki sedikit keanehan di mana tingkat volume, ketika dikontrol secara eksternal, melonjak dari 0% menjadi 27%. Ini tidak terjadi saat menyesuaikan level menggunakan kontrol volume antarmuka dalam aplikasi, hanya dengan kontrol eksternal seperti Deej.
Pengembang Deej dengan cepat menemukan solusi dalam-VLC yang berfungsi, lihat gambar di atas:
"…jika Anda ingin menonaktifkan perilaku "Pelacakan" ini, Anda dapat melakukannya dengan mengubah modul output audio VLC. Saya menggunakan DirectX dalam upaya saya di sini. Anda harus memulai ulang VLC agar perubahan diterapkan. (Anda masih akan memiliki sesi audio windows dan dapat mengontrolnya melalui deej, ini hanya akan mencegah bilah volume VLC bergerak dengannya)"
Langkah 8: Sumber Daya Tambahan
Ditemukan melalui Goog yang perkasa, terdaftar tanpa urutan tertentu…
- Perpustakaan Joystick Arduino (v2) - diperlukan untuk mengintegrasikan joystick
- Panduan hookup Sparkfun Pro Micro - sumber yang bagus tentang Arduino ini
- deej - perangkat lunak yang menggerakkan kenop
- Jenis Konektor USB - siapa yang tahu ada begitu banyak varian?
- Pinout Analog Mikro Arduino Pro
- Arduino Leonardo Gaming Joystick - Leonardo mirip dengan Pro Micro, hanya lebih besar
- Port Arduino Pro Micro (Clone) tidak terdeteksi (Solusi) - ketika Anda mem-brick Pro Micro Anda (saya melakukannya)
- Arduino Leonardo/Micro sebagai Game Controller/Joystick
- Contoh penggunaan kunci multimedia untuk mematikan suara - menggunakan perpustakaan Proyek HID
- Kode contoh perpustakaan Proyek HID untuk menjeda / memutar media
- Contoh kode lain yang menunjukkan pengontrol gamepad.
- ArduinoGamingController_updated - deskripsi kode yang baik tentang penggunaan Joystick Library
- kalkulator resistor LED - untuk mengetahui seberapa besar resistor yang Anda perlukan dalam proyek Anda
- Perpustakaan ikon - flaticon.com - sumber gambar yang digunakan di atas tombol
- Decoder Warna Resistor Lain - klik pada warna dan biola!
Direkomendasikan:
Plant Monitor Menggunakan ESP32 Thing dan Blynk: 5 Langkah
Monitor Tanaman Menggunakan ESP32 Thing dan Blynk: Gambaran Umum Tujuan dari proyek ini adalah untuk membuat perangkat kompak yang dapat memantau kondisi tanaman hias. Perangkat ini memungkinkan pengguna untuk memeriksa tingkat kelembaban tanah, tingkat kelembaban, suhu, dan "terasa seperti" suhu dari
PEMANTAUAN PENCEMARAN MQ7 MENGGUNAKAN THING SPEAK DAN NODEMCU: 4 Langkah
MQ7-POLLUTION MONITORING MENGGUNAKAN THING SPEAK AND NODEMCU: Polusi adalah masalah utama dunia kita saat ini.tetapi bagaimana kita dapat memantau polusi kita di dekat, sekarang sangat mudahSO LET'S START:
Modifikasi Wild Thing - Kemudi Joystick - Baru dan Lebih Baik: 7 Langkah (dengan Gambar)
Hal Liar yang Dimodifikasi - Kemudi Joystick - Baru dan Lebih Baik: Pembaruan 1/8/2019: Dua tahun setelah menyelesaikan proyek ini, saya telah merancang dan membuat beberapa papan sirkuit untuk memudahkan dalam mengonversi kursi roda ini. Papan sirkuit pertama hampir sama dengan protoboard khusus yang disolder di sini, tetapi sebagai gantinya
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI
Keyboard Das Cepat dan Kotor (Keyboard Kosong): 3 Langkah
Quick and Dirty Das Keyboard (Blank Keyboard): A Das Keyboard adalah nama keyboard paling populer tanpa tulisan pada tombol (keyboard kosong). Keyboard Das dijual seharga $89,95. Instruksi ini akan memandu Anda meskipun membuatnya sendiri dengan keyboard lama apa pun yang Anda miliki