Πίνακας περιεχομένων:

Sim Racing Button Box: 8 βήματα
Sim Racing Button Box: 8 βήματα

Βίντεο: Sim Racing Button Box: 8 βήματα

Βίντεο: Sim Racing Button Box: 8 βήματα
Βίντεο: 10 Airline ASSESSMENT HACKS given by CAPTAIN JOE 2024, Νοέμβριος
Anonim
Sim Racing Button Box
Sim Racing Button Box

Καλώς ήλθατε στους εξαρτημένους αγώνες αγώνων sim!

Σας εξαντλούνται τα πλήκτρα για να αντιστοιχίσετε όλα τα χειριστήρια του αυτοκινήτου σας; Μάλλον χρειάζεστε ένα κουτί κουμπιών! Σε αυτό το Instructable θα δημιουργήσουμε ένα από την αρχή. Το κουτί κουμπιών θα έχει 32 (!) Διαθέσιμες καταστάσεις κουμπιών. Δεν απαιτείται πρόσθετο λογισμικό για τη χρήση αυτού του κουτιού κουμπιών. Θα μάθετε πώς μπορείτε να ρυθμίσετε μια μήτρα κουμπιών και να γράψετε (ή να αντιγράψετε) κώδικα για μεταφόρτωση στο Arduino σας.

Είναι σημαντικό να γνωρίζετε ότι το κουτί κουμπιών δεν υποστηρίζει πολλά ταυτόχρονα πατημένα κουμπιά.

Ας αρχίσουμε!

Βήμα 1: Προετοιμασία

Προετοιμασία
Προετοιμασία

Θα χρειαστείτε κάποια εργαλεία, κουμπιά και περισσότερα στοιχεία για να δημιουργήσετε το κουτί κουμπιών. Μη διστάσετε να δημιουργήσετε το κουτί κουμπιών σύμφωνα με τις επιθυμίες σας.

ΗΛΕΚΤΡΟΝΙΚΑ ΕΙΔΗ:

  • Κουμπιά
  • Toggles
  • Περιστροφικοί κωδικοποιητές
  • Arduino Pro Micro
  • Μίνι καλώδιο USB σε USB
  • Καλώδια

Εργαλεία:

  • Τρυπάνι
  • Κόλλα μετάλλων
  • Διαβήτης
  • Κατσαβίδια
  • Κόπτης
  • γαλλικο ΚΛΕΙΔΙ

Λογισμικό:

  • Arduino IDE
  • Photoshop/Paint (προαιρετικό, μπορεί να σχεδιαστεί με το χέρι)

Αλλα:

  • Περίβλημα (κουτί, μπορεί να αγοραστεί ή να προσαρμοστεί τυποποιημένα σε 3D)
  • Περιτύλιγμα από βινύλιο άνθρακα (προαιρετικό)
  • Περιστροφικά κουμπιά κωδικοποιητή
  • Διακόπτες καλύψεων (προαιρετικά)
  • Ετικέτα εκτυπωτή (προαιρετικό)
  • Καουτσούκ γωνία

Μόλις έχετε όλα (ή αρκετά για να ξεκινήσετε) τα στοιχεία, μπορούμε να αρχίσουμε να σχεδιάζουμε τη διάταξη του κουτιού κουμπιών.

Βήμα 2: Σχεδιάστε τη διάταξη κουτιού

Εργαλεία που απαιτούνται για αυτό το βήμα:

Photoshop/Paint (προαιρετικό, μπορεί να σχεδιαστεί με το χέρι)

Ο σχεδιασμός ενός κουτιού κουμπιών μπορεί να είναι διαφορετικός για όλους. Ωστόσο, για αυτό το Instructable θα χρησιμοποιήσουμε μια διάταξη που αποτελείται από:

  • 4x διακόπτες εναλλαγής τριών κατευθύνσεων
  • 2 φορές διακόπτες εναλλαγής μονής κατεύθυνσης
  • 10x απλά κουμπιά
  • 4x περιστροφικός κωδικοποιητής με απλό κουμπί

Διακόπτες εναλλαγής τριών τρόπων:

Υπάρχουν πολλοί τύποι εναλλαγών διακοπτών. Μερικά είναι στιγμιαία και μερικά παραμένουν στη θέση τους μέχρι να γυρίσουν πίσω. Εναπόκειται σε εσάς ποιος τύπος θα χρησιμοποιήσετε, αλλά σας συμβουλεύω να χρησιμοποιήσετε στιγμιαίους διακόπτες, καθώς αυτό το κουτί κουμπιών δεν είναι ικανό να έχει πολλά κουμπιά πολλαπλών ενεργών ταυτόχρονα. Δεδομένου ότι οι διακόπτες εναλλαγής είναι τριών κατευθύνσεων (ενεργοποίηση/απενεργοποίηση/ενεργοποίηση), έχουμε οκτώ κουμπιά (4x2) διαθέσιμα.

Ένας τρόπος εναλλαγής διακοπτών:

Αυτά μπορούν να θεωρηθούν ως απλά κουμπιά (απενεργοποίηση/ενεργοποίηση). Αυτά μπορεί επίσης να είναι στιγμιαία ή εναλλακτικά. Και πάλι, μέχρι τις προσωπικές προτιμήσεις που να επιλέξετε. Αυτά μας δίνουν δύο (2) διαθέσιμα κουμπιά.

Απλά κουμπιά:

Τέτοια κουμπιά μπορούν να χρησιμοποιηθούν απλά πιέζοντάς τα (απενεργοποίηση/ενεργοποίηση). Αυτά θα μας δώσουν δέκα (10) κουμπιά.

Περιστροφικοί κωδικοποιητές με απλό κουμπί:

Οι περισσότεροι (αν όχι όλοι) περιστροφικοί κωδικοποιητές μπορούν να στραφούν και στις δύο κατευθύνσεις απεριόριστα. Κάθε φορά που τα περιστρέφετε σε κατεύθυνση χρησιμοποιείται ως πάτημα κουμπιού. Αυτοί οι περιστροφικοί κωδικοποιητές μπορούν επίσης να πατηθούν δίνοντάς τους ένα άλλο κουμπί. Οι περιστροφικοί κωδικοποιητές δίνουν δώδεκα κουμπιά (12 = 4x3, περιστροφή αριστερά/περιστροφή δεξιά/ώθηση).

32 κουμπιά:

Έχοντας όλα μαζί μας δίνει 32 (8+2+10+12) πατήματα κουμπιών!

Είστε ικανοποιημένοι με τη διάταξη; Timeρα να ξεκινήσετε να χτίζετε!

Βήμα 3: Μετρήστε και τρυπήστε

Μέτρηση και τρυπάνι
Μέτρηση και τρυπάνι
Μέτρηση και τρυπάνι
Μέτρηση και τρυπάνι

Εργαλεία που απαιτούνται για αυτό το βήμα:

  • Διαβήτης
  • Τρυπάνι
  • Ηλεκτρονικά (κουμπιά, διακόπτες κλπ.)

Μετρήστε όλα τα κουμπιά που θέλετε να προσθέσετε στο κουτί κουμπιών σας. Αν δυσκολεύεστε να βρείτε τις διαστάσεις των ηλεκτρονικών σας συσκευών, χρησιμοποιήστε μια (ψηφιακή) δαγκάνα για να λάβετε τη διάμετρό τους.

Σημειώστε τα κεντρικά σημεία των ηλεκτρονικών στο πρόσωπο του περιβλήματός σας και ανοίξτε τρύπες με τα σωστά μεγέθη. Θέλετε να κάνετε το περίβλημα λίγο πιο αισθητικά ευχάριστο; Περιμένετε με την τοποθέτηση των κουμπιών!

Μόλις τελειώσετε το άνοιγμα των οπών, μπορούμε να το κάνουμε να αρχίσει να μοιάζει με ένα πραγματικό κουτί κουμπιών!

Βήμα 4: Προσαρμόστε τα κουμπιά, τα περιστροφικά και τα εναλλακτικά

Προσαρμόστε τα κουμπιά, τα Rotaries και τα Toggles
Προσαρμόστε τα κουμπιά, τα Rotaries και τα Toggles
Προσαρμόστε τα κουμπιά, τα Rotaries και τα Toggles
Προσαρμόστε τα κουμπιά, τα Rotaries και τα Toggles

Εργαλεία που απαιτούνται για αυτό το βήμα:

  • Ηλεκτρονικά (κουμπιά, διακόπτες κλπ.)
  • γαλλικο ΚΛΕΙΔΙ
  • Περιτύλιγμα από βινύλιο άνθρακα (προαιρετικό)
  • Κόφτης (προαιρετικά)

Όλα τα ηλεκτρονικά σας θα πρέπει να συνοδεύονται από ένα παξιμάδι για να το βιδώσετε στη θέση του. Αν όχι; μετρήστε τα και αγοράστε το σωστό μέγεθος παξιμάδι.

Εάν θέλετε να βελτιώσετε (προσωπική γνώμη) την εμφάνιση του κουτιού κουμπιών σας, μπορείτε να χρησιμοποιήσετε ένα περιτύλιγμα βινυλίου από ανθρακονήματα. Κόψτε το στο μέγεθος (και λίγο μεγαλύτερο) του προσώπου του περιβλήματός σας στο οποίο ανοίξατε τις τρύπες. Εφαρμόστε το βινύλιο και τυλίξτε το στις γωνίες προς τα πίσω. Αυτό θα διασφαλίσει ότι το περιτύλιγμα παραμένει στη θέση του όταν το περίβλημα είναι κλειστό. Το υπερβολικό βινύλιο που τώρα μπλοκάρει τις τρύπες μπορεί να αφαιρεθεί με κόπτη.

Έχοντας τοποθετήσει το περιτύλιγμα (ή όχι), μπορείτε να χωρέσετε στα ηλεκτρονικά για να δημιουργήσετε το μπροστινό μέρος του κουτιού σας. Θα πρέπει τώρα να έχετε κάτι που πραγματικά μοιάζει ήδη! Δυστυχώς, δεν λειτουργεί ακόμα…

Βήμα 5: Σχεδιάστε τη διάταξη καλωδίωσης

Σχεδιάστε τη διάταξη καλωδίωσης
Σχεδιάστε τη διάταξη καλωδίωσης

Εργαλεία που απαιτούνται για αυτό το βήμα:

Photoshop/Paint (προαιρετικό, μπορεί να σχεδιαστεί με το χέρι)

Δημιουργία μήτρας:

Η χρήση μήτρας θα μας εξοικονομήσει χρόνο και πολλές περιττές καλωδιώσεις και συγκόλληση. Δεν θα μπω σε πολλές λεπτομέρειες, αλλά θα σας προτείνω να ρίξετε μια ματιά σε αυτό το άρθρο, αν δεν είστε σύμφωνοι με την έννοια της μήτρας.

Σχεδιάστε τη δική σας μήτρα ή χρησιμοποιήστε τη διάταξη από αυτό το Instructable. Στη μήτρα θα χρησιμοποιήσουμε πέντε ομάδες. Οι ομάδες συνδέονται με τα ακόλουθα pinouts στο Arduino:

  • 15: τέσσερις περιστροφικοί κωδικοποιητές
  • A0: πέντε κουμπιά
  • Α1: δύο εναλλαγές τριών κατευθύνσεων και ένα κουμπί
  • A2: δύο εναλλαγές τριών κατευθύνσεων και ένα κουμπί
  • A3: πέντε κουμπιά

Βήμα 6: Συγκόλληση

Συγκόλληση
Συγκόλληση
Συγκόλληση
Συγκόλληση

Εργαλεία που απαιτούνται για αυτό το βήμα:

  • Συγκολλητικό σίδερο
  • Κόλλα μετάλλων
  • Ηλεκτρονικά (τοποθετημένα στο περίβλημα σας)
  • Arduino Pro Micro
  • Καλώδια

Προαιρετικός:

Ανεβάστε πρώτα τον κωδικό από το επόμενο βήμα αν ανησυχείτε για τη συγκόλληση. Αυτό θα σας επιτρέψει να ελέγξετε τις συνδέσεις σας

Θέλουμε να εφαρμόσουμε τη μήτρα που σχεδιάστηκε στο προηγούμενο βήμα στο πραγματικό κουτί κουμπιών. Αφιερώστε λίγο χρόνο για αυτό, ειδικά αν είναι η πρώτη φορά συγκόλλησης.

Μερικές συμβουλές:

  • Κάντε μια ομάδα εκείνη τη στιγμή
  • Συνδέστε το Arduino στον υπολογιστή σας για να δοκιμάσετε περιστασιακά
  • Μην θερμαίνετε πολύ τα πλαστικά κουμπιά γιατί μπορούν να λιώσουν και να σπάσουν τις συνδέσεις
  • Μην χρησιμοποιείτε πολύ κόλληση, λιγότερο είναι καλύτερο
  • Χρησιμοποιήστε σύρματα διαφορετικού χρώματος για κάθε ομάδα/γείωση

Βήμα 7: Γράφοντας τον Κώδικα

Εργαλεία που απαιτούνται για αυτό το βήμα:

  • Arduino IDE
  • Βιβλιοθήκη Joystick
  • Keypad.h (Arduino IDE> Sketch> Include Library> Manage Libraries…> Αναζήτηση πληκτρολογίου και εγκατάσταση αυτού που δημιουργήθηκε από τον Mark Stanley και τον Alexander Brevig)

#συμπεριλάβω #συμπεριλάβω

#define ΕΝΕΡΓΟΠΟΙΗΣΗ_PULLUPS

#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5

κουμπιά 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; πτητική ανυπόγραφη κατάσταση χαρακτήρα };

rotariesdef περιστροφές [NUMROTARIES] {

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

#define DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef ΜΙΣΟ_ΒΗΜΑ

#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_BB, R_ST, {R_ST, R_ST 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, R_START, R_CCW_BEGIN, R_START}, // R_CCW_FINAL {R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},}; #τέλος εαν

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

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

Πληκτρολόγιο buttbx = Πληκτρολόγιο (makeKeymap (κουμπιά), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, ψευδές, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψευδείς, ψεύτικες);

void setup () {

Joystick.begin (); rotary_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

εάν (buttbx.getKeys ()) {για (int i = 0; i

void rotary_init () {

για (int i = 0; i

χωρίς υπογραφή char rotary_process (int _i) {

ανυπόγραφο char pinstate = (digitalRead (περιστροφικά [_i].pin2) << 1) | digitalRead (περιστροφικά [_i].pin1); περιστροφές [_i].state = ttable [περιστροφές [_i]. κράτος & 0xf] [pinstate]; επιστροφή (περιστρέφεται [_i]. κράτος & 0x30); }

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

ανυπόγραφο αποτέλεσμα char = rotary_process (i); if (αποτέλεσμα == DIR_CCW) {Joystick.setButton (περιστρέφεται .ccwchar, 1); καθυστέρηση (50)? Joystick.setButton (περιστρέφεται .ccwchar, 0); }; if (αποτέλεσμα == DIR_CW) {Joystick.setButton (περιστρέφεται .cwchar, 1); καθυστέρηση (50)? Joystick.setButton (περιστρέφεται .cwchar, 0); }; }}

  1. Συνδέστε το Arduino Pro Micro στον υπολογιστή σας συνδέοντας το καλώδιο USB
  2. Για να ανεβάσετε τον κωδικό, επιλέξτε τον τύπο Arduino μεταβαίνοντας στα Εργαλεία> Πίνακας:…> Arduino/Genuino Micro.
  3. Για να επιλέξετε τη σωστή θύρα USB, μεταβείτε στα Εργαλεία> Θύρα:> COM x (Arduino/Genuino Micro)
  4. Επαληθεύστε το σκίτσο κάνοντας κλικ στο ✓ στην επάνω αριστερή γωνία (κάτω από το Αρχείο)
  5. Πατήστε το → δίπλα για να το ανεβάσετε στο Arduino

Βήμα 8: Προσθέστε στο εξοπλισμό σας

Προσθήκη στο Rig σας
Προσθήκη στο Rig σας

Συγχαρητήρια! Έχετε φτάσει τόσο μακριά. Τώρα ήρθε η ώρα για αγώνες!

Συνιστάται: