תוכן עניינים:

קופסת כפתורי Sim Racing: 8 שלבים
קופסת כפתורי Sim Racing: 8 שלבים

וִידֵאוֹ: קופסת כפתורי Sim Racing: 8 שלבים

וִידֵאוֹ: קופסת כפתורי Sim Racing: 8 שלבים
וִידֵאוֹ: אינדה גיים 2024, נוֹבֶמבֶּר
Anonim
קופסת כפתורי Sim Racing
קופסת כפתורי Sim Racing

ברוכים הבאים מכורים למרוצי סים!

נגמרו לכם כל מפתחות המפתח שאפשר למפות אליהם את כל פקדי המכונית שלכם? אתה כנראה זקוק לארגז כפתורים! במדריך זה ניצור אחד מאפס. תיבת הכפתורים תכלול 32 (!) מצבי כפתורים זמינים. אין צורך בתוכנה נוספת לשימוש בתיבת כפתורים זו. תלמד כיצד להגדיר מטריצת כפתורים ולכתוב (או להעתיק) קוד להעלאה ל- Arduino שלך.

חשוב לדעת כי תיבת הכפתורים אינה תומכת בהרבה לחצנים בו -זמנית.

בואו נתחיל!

שלב 1: הכנה

הכנה
הכנה

תזדקק לכמה כלים, לחצנים ופריטים נוספים ליצירת תיבת הכפתורים. אל תהסס ליצור את תיבת הכפתורים כרצונך.

מכשירי חשמל:

  • כפתורים
  • מתחלף
  • מקודדים רוטרי
  • Arduino Pro Micro
  • כבל מיני USB ל- USB
  • חוטים

כלים:

  • תרגיל
  • לְרַתֵך
  • קליפר
  • מברגים
  • מַחתֵך
  • מפתח ברגים

תוֹכנָה:

  • Arduino IDE
  • פוטושופ/צבע (אופציונלי; ניתן לצייר ביד)

אַחֵר:

  • מארז (קופסה; ניתן לקנות או להדפיס תלת מימד בהתאמה אישית)
  • עטיפת ויניל מפחמן (לא חובה)
  • ידיות מקודד רוטרי
  • מכסי מתג (אופציונלי)
  • מדפסת תוויות (אופציונלי)
  • גומי גומי

ברגע שיש לך את כל הפריטים (או מספיק כדי להתחיל) נוכל להתחיל לעצב את הפריסה של תיבת הכפתורים.

שלב 2: עיצוב פריסת התיבה

כלים נדרשים לשלב זה:

פוטושופ/צבע (אופציונלי; ניתן לצייר ביד)

העיצוב של קופסת כפתורים יכול להיות שונה עבור כולם. עם זאת, עבור הוראה זו נשתמש בפריסה המורכבת מ:

  • מתגי מתג תלת -כיווניים
  • 2x מתגי מתג בכיוון אחד
  • 10x כפתורי לחיצה פשוטים
  • מקודד סיבוב 4x עם כפתור פשוט

מתגי מתג תלת -כיווניים:

ישנם סוגים רבים של מתגי מתג. חלקם רגעיים וחלקם נשארים במקום עד להחלפה אחורה. זה תלוי בך איזה סוג להשתמש, אבל אני ממליץ להשתמש במתגים רגעיים מכיוון שקופסת הכפתורים הזו לא מסוגלת להפעיל לחצני ריבוי פעילים בו זמנית. מכיוון שמתגי המתג הם תלת כיווניים (הפעלה/כיבוי/הפעלה), יש לנו שמונה כפתורים (4x2) זמינים.

מתגים להחלפה אחת:

ניתן לראות אלה כפתורים פשוטים (כיבוי/הפעלה). אלה יכולים גם להיות רגעיים או לעבור. שוב, עד העדפה אישית מה לבחור. אלה נותנים לנו שני (2) כפתורים זמינים.

כפתורי לחיצה פשוטים:

ניתן להשתמש בלחצנים כאלה פשוט על ידי לחיצה עליהם (כיבוי/הפעלה). אלה יתנו לנו עשרה (10) כפתורים.

מקודדים רוטרי עם כפתור לחיצה פשוט:

ניתן לפנות את רוב המקודדים הרוטוריים (אם לא כולם) לשני הכיוונים אינסופיים. בכל פעם שאתה מסובב אותם לכיוון זה משמש לחיצת כפתור. ניתן ללחוץ גם על מקודדים סיבוביים ולתת להם כפתור נוסף. המקודדים הסיבוביים נותנים שנים עשר (12 = 4x3; סובב שמאלה/סובב ימינה/דחיפה) כפתורים.

32 כפתורים:

כל אלה יחד נותנים לנו לחיצות על כפתורים של 32 (8+2+10+12)!

מרוצים מהפריסה? הגיע הזמן להתחיל לבנות!

שלב 3: מדידה וקידוח

מדוד וקידוח
מדוד וקידוח
מדוד וקידוח
מדוד וקידוח

כלים נדרשים לשלב זה:

  • קליפר
  • תרגיל
  • מוצרי חשמל (כפתורים, מתגים וכו ')

מדוד את כל הכפתורים שברצונך להוסיף לתיבת הכפתורים שלך. אם אתה מתקשה למצוא את הממדים של האלקטרוניקה שלך, השתמש בקליפר (דיגיטלי) כדי לקבל את קוטרם.

סמנו את נקודות המרכז של האלקטרוניקה על פני המתחם שלכם וקדחו חורים בגדלים הנכונים. מחפשים להפוך את המארז לקצת יותר אסתטי? חכה עם התאמת הכפתורים!

לאחר שתסיים לקדוח את החורים נוכל לגרום לזה להתחיל להיראות כמו קופסת כפתורים אמיתית!

שלב 4: התאימו את הכפתורים, הרוטרי והמתגים

התאימו את הכפתורים, הרוטרי והמשתפים
התאימו את הכפתורים, הרוטרי והמשתפים
התאימו את הכפתורים, הרוטרי והמשתפים
התאימו את הכפתורים, הרוטרי והמשתפים

כלים נדרשים לשלב זה:

  • מוצרי חשמל (כפתורים, מתגים וכו ')
  • מפתח ברגים
  • עטיפת ויניל מפחמן (לא חובה)
  • חותך (אופציונלי)

כל האלקטרוניקה שלך צריכה להגיע עם אגוז כדי להבריג אותו במקומו. אם לא; למדוד אותם ולרכוש את האום בגודל הנכון.

אם תרצה לשפר (דעה אישית) את מראה קופסת הכפתורים שלך תוכל להשתמש בניילון סיבי פחמן. חתכו אותו לגודל (וקצת גדול יותר) של פני המתחם בו קדחתם את החורים. מרחו את הוויניל ועטפו אותו לפינות האחוריות. זה יוודא שהעטיפה תישאר במקומה כשהסגירה סגורה. ניתן להסיר ויניל מוגזם החוסם כעת את החורים באמצעות חותך.

לאחר שתלבש את העטיפה (או לא) תוכל להתאים את האלקטרוניקה ליצירת חזית תיבת הכפתורים שלך. עכשיו אמור להיות לך משהו שנראה ממש כמו אחד כבר! לצערי זה עדיין לא עובד…

שלב 5: עיצוב פריסת החיווט

עיצוב פריסת החיווט
עיצוב פריסת החיווט

כלים נדרשים לשלב זה:

פוטושופ/צבע (אופציונלי; ניתן לצייר ביד)

יצירת מטריצה:

שימוש במטריצה יחסוך לנו זמן והרבה חיווט והלחמה מיותרים. אני לא אפרט יותר מדי בעצמי, אבל אציע לך להציץ במאמר זה אם אינך מכיר את הרעיון של מטריצה.

עיצוב מטריצה משלך או השתמש בפריסה מתוך מדריך זה. במטריצה נשתמש בחמש קבוצות. הקבוצות מחוברות לסיבוכים הבאים בארדואינו:

  • 15: ארבעה מקודדים סיבוביים
  • A0: חמישה כפתורי לחיצה
  • A1: שני החלפות תלת כיווניות וכפתור לחיצה אחד
  • A2: שני החלפות תלת כיווניות וכפתור לחיצה אחד
  • A3: חמישה כפתורי לחיצה

שלב 6: הלחמה

הַלחָמָה
הַלחָמָה
הַלחָמָה
הַלחָמָה

כלים נדרשים לשלב זה:

  • מלחם
  • לְרַתֵך
  • אלקטרוניקה (מותקן על המארז שלך)
  • Arduino Pro Micro
  • חוטים

אופציונאלי:

העלה קודם את הקוד מהשלב הבא אם אתה חושש מהלחמה. זה יאפשר לך לבדוק את החיבורים שלך

אנו רוצים ליישם את המטריצה שתוכננה בשלב הקודם על תיבת הכפתורים בפועל. קח קצת זמן לזה, במיוחד אם זו ההלחמה הראשונה שלך.

כמה טיפים:

  • עשה קבוצה אחת בכל פעם
  • חבר את ה- Arduino למחשב כדי לבדוק מדי פעם
  • אין לחמם יותר מדי כפתורי פלסטיק מכיוון שהם יכולים להמיס ולשבור חיבורים
  • אל תשתמש יותר מדי הלחמה, פחות עדיף
  • השתמש בחוטי צבע שונים עבור כל קבוצה/קרקע

שלב 7: כתיבת הקוד

כלים נדרשים לשלב זה:

  • Arduino IDE
  • ספריית ג'ויסטיק
  • Keypad.h (Arduino IDE> סקיצה> כלול ספרייה> נהל ספריות …> חפש לוח מקשים והתקן את זה שנוצר על ידי מארק סטנלי ואלכסנדר ברוויג)

#כלול #כלול

#הגדר ENABLE_PULLUPS

#הגדר מספרים 4 #הגדר NUMBUTTONS 24 #הגדר NUMROWS 5 #הגדר NUMCOLS 5

לחצני בתים [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 {

בייט pin1; בתים pin2; int ccwchar; int cwchar; מצב נגיף תנודתי בלתי חתום; };

rotariesdef rotaries [NUMROTARIES] {

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

#הגדר DIR_CCW 0x10

#הגדר DIR_CW 0x20 #הגדר R_START 0x0

#ifdef HALF_STEP

#הגדר R_CCW_BEGIN 0x1 #הגדר R_CW_BEGIN 0x2 #הגדר R_START_M 0x3 #הגדר R_CW_BEGIN_M 0x4 #הגדר R_CCW_BEGIN_M 0x5 טבלת טבלאות [R_START], RB_ 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_ST_, R_ST_ 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 #הגדר R_CW_BEGIN 0x2 #הגדר R_CW_NEXT 0x3 #הגדר R_CCW_BEGIN 0x4 #הגדר R_CCW_FINAL 0x5 #הגדר R_CCW_NEXT 0x6

const unsigned charttable [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},}; #endif

בתים rowPins [NUMROWS] = {21, 20, 19, 18, 15};

בייט colPins [NUMCOLS] = {14, 16, 10, 9, 8};

מקש buttbx = לוח מקשים (makeKeymap (לחצנים), rowPins, colPins, NUMROWS, NUMCOLS);

ג'ויסטיק_ ג'ויסטיק (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, false, false, false, false, false, false, false, false, false, false);

הגדרת בטל () {

Joystick.begin (); rotary_init ();}

לולאת חלל () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

if (buttbx.getKeys ()) {עבור (int i = 0; i

חלל rotary_init () {

עבור (int i = 0; i

char ללא סימן rotary_process (int _i) {

char pinstate unsigned = (digitalRead (rotaries [_i].pin2) << 1) | DigitalRead (סיבובים [_i].pin1); rotaries [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; return (סיבובים [_i].state & 0x30); }

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

תוצאת char לא חתומה = rotary_process (i); if (result == DIR_CCW) {Joystick.setButton (סיבובים .ccwchar, 1); עיכוב (50); Joystick.setButton (סיבובים .ccwchar, 0); }; if (result == 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: הוסף לארגון שלך

הוסף לארגון שלך
הוסף לארגון שלך

מזל טוב! הגעת כל כך רחוק. עכשיו הגיע הזמן להתחרות!

מוּמלָץ: