Daftar Isi:

Kotak Tombol Sim Racing: 8 Langkah
Kotak Tombol Sim Racing: 8 Langkah

Video: Kotak Tombol Sim Racing: 8 Langkah

Video: Kotak Tombol Sim Racing: 8 Langkah
Video: DIY Sim Racing Button Box | Cheap and Simple! 2024, November
Anonim
Kotak Tombol Sim Racing
Kotak Tombol Sim Racing

Selamat datang pecandu balap sim!

Apakah Anda kehabisan keybinds untuk memetakan semua kontrol mobil Anda? Anda mungkin membutuhkan kotak kancing! Dalam Instructable ini kita akan membuatnya dari awal. Kotak tombol akan memiliki 32 (!) status tombol yang tersedia. Tidak ada perangkat lunak tambahan yang diperlukan untuk menggunakan kotak tombol ini. Anda akan belajar cara mengatur matriks tombol dan menulis (atau menyalin) kode untuk diunggah ke Arduino Anda.

Penting untuk diketahui bahwa kotak tombol tidak mendukung banyak tombol yang ditekan secara bersamaan.

Mari kita mulai!

Langkah 1: Persiapan

Persiapan
Persiapan

Anda memerlukan beberapa alat, tombol, dan lebih banyak item untuk membuat kotak tombol. Jangan ragu untuk membuat kotak tombol sesuai keinginan Anda.

Elektronik:

  • Tombol
  • Matikan
  • Encoder putar
  • Arduino Pro Mikro
  • Mini USB ke kabel USB
  • kabel

Peralatan:

  • Mengebor
  • Pateri
  • kaliper
  • Obeng
  • Pemotong
  • Kunci

Perangkat lunak:

  • Arduino IDE
  • Photoshop/Paint (opsional; dapat digambar dengan tangan)

Lainnya:

  • Enclosure (kotak; dapat dibeli atau dicetak 3D khusus)
  • Bungkus vinil karbon (opsional)
  • Kenop encoder putar
  • Sakelar penutup (opsional)
  • Pencetak label (opsional)
  • Grommet karet

Setelah Anda memiliki semua (atau cukup untuk memulai) item, kita dapat mulai mendesain tata letak kotak tombol.

Langkah 2: Rancang Tata Letak Kotak

Alat yang diperlukan untuk langkah ini:

Photoshop/Paint (opsional; dapat digambar dengan tangan)

Desain kotak kancing bisa berbeda untuk setiap orang. Namun, untuk Instructable ini kita akan menggunakan layout yang terdiri dari:

  • 4x sakelar sakelar tiga arah
  • 2x sakelar sakelar satu arah
  • 10x tombol tekan sederhana
  • 4x rotary encoder dengan tombol sederhana

Sakelar sakelar tiga arah:

Ada banyak jenis sakelar sakelar. Beberapa bersifat sementara dan beberapa tetap di tempat sampai diaktifkan kembali. Terserah Anda jenis mana yang akan digunakan, tetapi saya menyarankan untuk menggunakan sakelar sesaat karena kotak tombol ini tidak dapat mengaktifkan banyak tombol secara bersamaan. Karena sakelar sakelar tiga arah (hidup/mati/hidup), kami memiliki delapan tombol (4x2) yang tersedia.

Sakelar sakelar satu arah:

Ini dapat dianggap sebagai tombol sederhana (mati/hidup). Ini juga bisa sesaat atau beralih. Sekali lagi, terserah preferensi pribadi mana yang harus dipilih. Ini memberi kita dua (2) tombol yang tersedia.

Tombol tekan sederhana:

Tombol seperti ini dapat digunakan hanya dengan menekannya (mati/hidup). Ini akan memberi kita sepuluh (10) tombol.

Encoder putar dengan tombol tekan sederhana:

Sebagian besar (jika tidak semua) rotary encoder dapat diputar ke kedua arah tanpa batas. Setiap kali Anda memutarnya ke arah itu digunakan sebagai tombol tekan. Rotary encoder ini juga dapat ditekan dengan tombol lain. Rotary encoder memberikan dua belas (12 = 4x3; putar ke kiri/putar ke kanan/tekan) tombol.

32 tombol:

Memiliki semuanya bersama-sama memberi kita 32 (8+2+10+12) penekanan tombol!

Puas dengan tata letaknya? Saatnya mulai membangun!

Langkah 3: Ukur dan Bor

Ukur dan Bor
Ukur dan Bor
Ukur dan Bor
Ukur dan Bor

Alat yang diperlukan untuk langkah ini:

  • kaliper
  • Mengebor
  • Elektronik (tombol, sakelar, dll.)

Ukur semua tombol yang ingin Anda tambahkan ke kotak tombol Anda. Jika Anda kesulitan menemukan dimensi elektronik Anda, gunakan caliper (digital) untuk mendapatkan diameternya.

Tandai titik tengah elektronik pada bagian depan enklosur Anda dan bor lubang dengan ukuran yang benar. Ingin membuat kandang sedikit lebih estetis? Tunggu dengan memasang tombol!

Setelah Anda selesai mengebor lubang, kami dapat membuatnya mulai terlihat seperti kotak kancing sungguhan!

Langkah 4: Pasang Tombol, Rotary, dan Toggles

Pasang Tombol, Rotary, dan Toggles
Pasang Tombol, Rotary, dan Toggles
Pasang Tombol, Rotary, dan Toggles
Pasang Tombol, Rotary, dan Toggles

Alat yang diperlukan untuk langkah ini:

  • Elektronik (tombol, sakelar, dll.)
  • Kunci
  • Bungkus vinil karbon (opsional)
  • Pemotong (opsional)

Semua barang elektronik Anda harus dilengkapi dengan mur untuk mengencangkannya. Jika tidak; ukur dan beli mur ukuran yang benar.

Jika Anda ingin meningkatkan (pendapat pribadi) tampilan kotak kancing Anda, Anda dapat menggunakan pembungkus vinil serat karbon. Potong sesuai ukuran (dan sedikit lebih besar) dari permukaan penutup tempat Anda mengebor lubang. Oleskan vinil dan bungkus di sekitar sudut ke belakang. Ini akan memastikan bungkus tetap di tempatnya saat penutup ditutup. Vinyl berlebihan yang sekarang menghalangi lubang dapat dihilangkan dengan menggunakan pemotong.

Setelah memakai bungkus (atau tidak), Anda dapat memasukkan elektronik untuk membuat bagian depan kotak kancing Anda. Anda sekarang harus memiliki sesuatu yang benar-benar terlihat seperti itu! Sayangnya, itu belum berhasil …

Langkah 5: Rancang Tata Letak Pengkabelan

Desain Tata Letak Pengkabelan
Desain Tata Letak Pengkabelan

Alat yang diperlukan untuk langkah ini:

Photoshop/Paint (opsional; dapat digambar dengan tangan)

Membuat matriks:

Menggunakan matriks akan menghemat waktu dan banyak kabel dan penyolderan yang tidak perlu. Saya sendiri tidak akan membahasnya secara mendetail, tetapi saya akan menyarankan agar Anda membaca artikel ini jika Anda tidak terbiasa dengan konsep matriks.

Rancang matriks Anda sendiri atau gunakan tata letak dari Instructable ini. Dalam matriks kita akan menggunakan lima kelompok. Grup terhubung ke pinout berikut di Arduino:

  • 15: empat encoder putar
  • A0: lima tombol tekan
  • A1: dua sakelar tiga arah dan satu tombol tekan
  • A2: dua sakelar tiga arah dan satu tombol tekan
  • A3: lima tombol tekan

Langkah 6: Menyolder

Pematerian
Pematerian
Pematerian
Pematerian

Alat yang diperlukan untuk langkah ini:

  • Besi solder
  • Pateri
  • Elektronik (dipasang di enklosur Anda)
  • Arduino Pro Mikro
  • kabel

Opsional:

Unggah kode dari langkah berikutnya terlebih dahulu jika Anda khawatir tentang penyolderan. Ini akan memungkinkan Anda untuk memeriksa koneksi Anda

Kami ingin menerapkan matriks yang dirancang pada langkah sebelumnya ke kotak tombol yang sebenarnya. Luangkan waktu untuk ini, terutama jika ini adalah pertama kalinya Anda menyolder.

Beberapa kiat:

  • Lakukan satu kelompok pada satu waktu
  • Hubungkan Arduino ke komputer Anda untuk menguji sesekali
  • Jangan terlalu panaskan kancing plastik karena dapat melelehkan dan memutus sambungan
  • Jangan terlalu banyak menggunakan solder, lebih sedikit lebih baik
  • Gunakan kabel warna yang berbeda untuk setiap grup/tanah

Langkah 7: Menulis Kode

Alat yang diperlukan untuk langkah ini:

  • Arduino IDE
  • Perpustakaan joystick
  • Keypad.h (Arduino IDE > Sketch > Include Library > Manage Libraries… > Cari Keypad dan instal yang dibuat oleh Mark Stanley dan Alexander Brevig)

#sertakan #sertakan

#define ENABLE_PULLUPS

#menentukan ANGKA 4 #menentukan ANGKA 24 #menentukan ANGKA 5 #menentukan ANGKA 5

tombol byte[NUMROWS][NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struct rotariesdef {

byte pin1; byte pin2; int ccwchar; int cwchar; status char unsigned yang mudah menguap; };

rotariesdef rotari[NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#tentukan DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef HALF_STEP

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable[6][4] = { // R_START (00) {R_CW_M} R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_M, R_CW_BEGIN_M, R_START | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW}, }; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, // R_CCW_BEGIN {R_CCW_NEXT, RCC_START}_START, RCC_START_W_START, R_XT_CCW_NEXT_START_W_START, DIR_CW} R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START}, }; #berakhir jika

byte rowPins[NUMROWS] = {21, 20, 19, 18, 15};

byte colPins[NUMCOLS] = {14, 16, 10, 9, 8};

Keypad buttbx = Keypad(makeKeymap(tombol), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, false, false, false, false, false, false, false, false, false, false, false);

batalkan pengaturan() {

Joystick.mulai(); rotary_init();}

lingkaran kosong() {

CheckAllEncoder();

PeriksaSemuaButton();

}

void CheckAllButtons(void) {

if (buttbx.getKeys()) { untuk (int i=0; i

batalkan rotary_init() {

untuk (int i=0;i

unsigned char rotary_process(int _i) {

unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotari[_i].pin1); rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate]; return (rotaries[_i].state & 0x30); }

void CheckAllEncoders(void) { for (int i=0; i < NUMROTARIES;i++) {

hasil char yang tidak ditandatangani = rotary_process(i); if (hasil == DIR_CCW) { Joystick.setButton(rotaries.ccwchar, 1); penundaan (50); Joystick.setButton(rotaries.ccwchar, 0); }; if (hasil == DIR_CW) { Joystick.setButton(rotaries.cwchar, 1); penundaan (50); Joystick.setButton(rotaries.cwchar, 0); }; } }

  1. Hubungkan Arduino Pro Micro Anda ke komputer Anda dengan mencolokkan kabel USB
  2. Untuk mengupload kode pilih jenis Arduino dengan masuk ke Tools > Board:… > Arduino/Genuino Micro.
  3. Untuk memilih port USB yang benar, buka Tools > Port: > COM x (Arduino/Genuino Micro)
  4. Verifikasi sketsa dengan mengklik di sudut kiri atas (di bawah File)
  5. Tekan → di sebelahnya untuk mengunggahnya ke Arduino

Langkah 8: Tambahkan ke Rig Anda

Tambahkan ke Rig Anda
Tambahkan ke Rig Anda

Selamat! Anda telah datang sejauh ini. Sekarang saatnya untuk balapan!

Direkomendasikan: