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

Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד: 6 שלבים
Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד: 6 שלבים

וִידֵאוֹ: Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד: 6 שלבים

וִידֵאוֹ: Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד: 6 שלבים
וִידֵאוֹ: ⚡️ Я НЕ СДАМСЯ! AMAZON 2.0 | Интернет магазин с нуля - Часть 3 2024, נוֹבֶמבֶּר
Anonim
Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד
Jammarduino DUE - מחשב DIY לממשק Jamma לארונות ארקייד

מדריך זה יראה לך כיצד ליצור מגן פשוט ל- Arduino DUE לממשק מכונת ארקייד מקורית עם CRT ומחבר jamma ברזולוציה נמוכה למחשב האישי שלך.

התהליכים העיקריים של המגן הם:

- להגביר את אות הווידאו היורד מכרטיס המסך (מתח נמוך מדי לצג ארקייד CRT מקורי)

- כדי להגן על צג ה- CRT ברזולוציה נמוכה מפני אותות סנכרון אופקי בתדירות גבוהה מדי

- ללחיצת כפתור "תרגום" בלוח הבקרה של ארקייד למשהו שהמחשב יכול להתמודד איתו

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

שימו לב: המגן אינו כופה את אות סנכרון הווידאו לתדרים נמוכים: אתם זקוקים לתוכנות ספציפיות לשם כך. אני מציע לך להשתמש במקרני CRT או ב- Soft15KHz.

שלב 1: חומרה

אני מניח שיש לך תחנת הלחמה וקצת פח ביד ואתה יודע איך להשתמש בהם. מכיוון שמגבר הווידאו הוא SMD בעל גובה 0.65 מ"מ, אני מציע לך לרכוש שטף הלחמה כלשהו שיעזור להלחם את החיידק הזה. השתמשתי בעט זול "ללא ניקוי" של Rosing Mildly Activated (RMA) עם תוצאות מצוינות.

הממשק בנוי מ:

- לוח לוח מיקרו -בקר Arduino DUE

- מגבר וידאו 1x THS7374

- 1x מתאם TSSOP14 ל- DIP14

- 1x מגבר שמע

- לוח אחד מסוג jamma

- לוח אב טיפוס בגודל 5x7 ס מ, צד כפול

- דיודה 1N4148 1x

- נגדים 7x 1 קוהם

- נגד של 820 אוהם

- 3x 220 אוהם נגד

- קו פס אחד, מרווח של 2.54 מ מ

- כבל VGA 1x

- 1x כבל שמע

שלב 2: תרשימים

סכמטים
סכמטים

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

החיווט קל כמו שהוא נראה:

- קווי צבע מגיעים ממחבר ה- VGA PC למגבר הווידיאו; נגד 1 קוהם לקרקע מוריד את הזרם לקלט מגבר הווידיאו. בצד המוצא התנגדות סדרה מורידה את הזרם ל- CRT ארקייד.

- קו הסנכרון הוא איכשהו "מורכב" יותר: סנכרון נפרד מה- VGA מורכב, תחילה ולאחר מכן מוריד על ידי מחלק מתח כדי לכבד את מפרט Arduino DUE (לוגיקה של 3.3V). מחלק המתח מחושב בהנחה של סינכרון 5V.

- מגבר וידאו (THS7374) יכול להיות מופעל על 3.3V או 5V; מכיוון שהספק בהספק של 5V מאפשר מגוון רחב יותר של מתח/אותות כניסה והיות שניתן לשלוט ב- THS7374 על ידי 3.3V גם אם הוא נמס ב -5V, הלכתי בדרך של 5V.

- קרקע וידאו, קרקע ארדואינו DUE, קרקע THS7374 וקרקע מחבר jamma קצרים.

- אסור לקצר קווים של Arduino DUE 5V ו- Jamma 5V.

- אל תוציא את מגבר השמע מכבל ה- USB: לשם כך אתה צריך מקור חיצוני בגלל מגבלות הזרם (כלומר מחשב ה- ATX PC PC). פעולה זו תפגע ביציאת ה- USB או אפילו במחשב האישי שלך.

מחבר VGA: מילת זהירות

לאחרונה הייתה לי ההזדמנות לעדכן את המחשב המשמש עם ה- jammarduino DUE שלי. גם אם בדקתי את זה עם שני מחשבים שונים בעבר, שניהם השתמשו בכרטיסי ATI מאותה משפחה (ATI 9250 ו- 9550). המחשב החדש מצויד ב- HD5750 עם יציאה אנלוגית DVI אחת (ללא VGA). זה אילץ אותי להשתמש במתאם (פסיבי) ל- DVI ל- VGA. ובכן, לאחר כמה מאבקים שמתי לב שכבל VGA המחובר למתאם חייב להיות מחובר רק את הקרקע לפין 5 של מחבר ה- VGA לעבודה, לא סיכות מ -6 עד 10 כפי שדווחו ברוב הסכימות באינטרנט. זכור זאת במקרה שאינך יכול לראות שום אות סנכרון מתוך כרטיס המסך שלך.

שלב 3: סקיצה/קוד

סקיצה/קוד
סקיצה/קוד

עליך להתקין את Arduino IDE תחילה; עליך להתקין גם את SAM Cortex M3 Core (לא קיים כברירת מחדל). אחרון חביב, התקן מנהלי התקנים של Arduino DUE. עיין במדריך הרשמי בנושא "תחילת העבודה עם Arduino Due" למידע המעודכן ביותר.

המערכון שאתה צריך להעלות ל- Arduino DUE שלך מצורף כאן. פתח את טענת "jammarduinoDUE.ino" וטען לך את Arduino IDE, ולאחר מכן העלה ל- arduino DUE דרך יציאת "תכנות". לאחר העלאת הסקיצה בהצלחה, נתק את כבל ה- USB מיציאת "התכנות" וחבר את Arduino DUE דרך יציאת "Native USB", או שחלק הקלט של הקוד לא יפעל.

ביסודו של דבר, Arduino DUE מודד את תדירות הסנכרון ומשבית את מגבר הווידאו כאשר הסנכרון גבוה מדי עבור CRT ברזולוציה נמוכה. Arduino DUE מטפל גם בכניסות המגיעות מלוח הבקרה, ושולח מקשי MAME כברירת מחדל בלחיצת כפתור ספציפית. פונקציית shift (מופעלת על ידי לחיצה על לחצן P1 START) כלולה גם כן, כמו ממשקים מסחריים.

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

לדוגמא, אם ברצונך להקצות מקשי בקרת עוצמת קול לאמולטור שלך, ראשית עליך להגדיר את המקשים האלה (נניח לוח מקשים "+" להגברת עוצמת הקול ולוח המקשים "-" להפחתת עוצמת הקול) בתפריט מקשי ה- emu, תחילה; לאחר מכן הוסף את המקש המוזל לכפתורים שאליהם ברצונך להקצות או להגביר את עוצמת הקול. נניח שאני רוצה להגביר את עוצמת הקול על ידי לחיצה על מקש shift ולחצן שחקן 1 3. אני משנה את השורה

{26, HIGH, 0, 180, 180}, // רווח - P1 B3

ל

{26, HIGH, 0, 180, 223}, // רווח - P1 B3 (+)

"223" זה קוד התווים של ASCII למקלדת "+".

אני אתן לך להבין כיצד להקצות את "-" (או מה שאתה מעדיף) לתפקוד "הורדת עוצמת הקול" כתרגיל (רמז: קוד ASCII 222):)

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

שלב 4: מה עם השהיית קלט?

עשיתי כמה בדיקות כדי לראות כמה פיגור הקוד יכול להכניס; ובכן, על ידי שליחת 3 לחצנים לחצו בו -זמנית ללולאה שלמה לוקחת כ -4 ms לביצוע, עד כדי כך פחות מ -33 ms המסגרת נמשכת ב -30 FPS.

שלב 5: מה לגבי ארונות מירוץ Jamma?

מה לגבי ארונות מירוץ ג'מה?
מה לגבי ארונות מירוץ ג'מה?

גלגל פוטנציומטר

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

דבר ראשון, הורד והתקן את ספריית הג'ויסטיק (נכון להיום רק גרסה 1 של הספרייה תואמת Arduino DUE, אך עדיין מדובר בספרייה טובה מאוד).

לאחר מכן, הוסף את השורות הבאות לסקיצה בשלב 4 כדי להתמודד עם הגלגל בקלות (היכן למקם את הקווים נותרים לך כתרגיל …)

#לִכלוֹל

int deadZone = 0;

הגדרת בטל () {

Joystick.begin ();}

לולאת חלל () {

int readPot = analogRead (A3);

int wheelPos = map (readPot, 0, 1023, -127, 127);

if (wheelPos> deadZone || wheelPos <-deadZone) {Joystick.setXAxis (wheelPos);}

אחרת {Joystick.setXAxis (0);}

}

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

חיבור פוטנציומטר ל- Arduino DUE הוא פשוט: סיכות הצד של הפוטנציומטר עוברות ל- +3.3V ו- GND, סיכת מגב ליציאה אנלוגית של Arduino DUE (עיינו בתמונה לעיון). הגדרתי כאן את הפין האנלוגי 3 (A3) ככניסה למגב של פוטנציומטר הגלגלים, אך תוכל להגדיר את הסיכה האנלוגית המתאימה ביותר לצרכיך.

נ.ב: אתה יודע שפדלים בארונות מירוץ נשלטים לרוב על ידי פוטנציומטר, מאשר מבחינה טכנית גלגלים ודוושות הם אותו מכשיר בעל צורה אחרת? המשמעות היא שניתן להשתמש בקוד כאן לשליטה גם על דוושות ארקייד מקוריות;)

גלגל אופטי

אם הגלגל שלך אופטי, ניתן לטפל בו בקלות גם כן, עם שינוי קטן בסקיצה ההתחלתית.

סיכה נפוצה מאוד למקודדי ארקייד אופטי (ספינרים של Taito, מקודדי גלגלי Atari וכן הלאה) היא:

1. OptoA OUT

2. +5V

3. GND

4. OptoB OUT

חבר 2. ו- 3. ל- Arduino DUE 5V ו- GND, ו- 1. ו- 4. לכל סיכה דיגיטלית שאתה אוהב לשים לב שיש צורך במפריד מתח כדי להוריד את פלט 5V מהמקודד האופטי ל- 3.3V arduino DUE יכול להתמודד.. אל תשלח יציאות OptoA ו/או OptoB 5V ישירות לסיכות הכניסה של Arduino DUE שלך, או שכנראה תטגן את התשומות האלה או אפילו את כל הלוח. ראה הוזהרת.

בסקיצה לדוגמא כאן אשתמש בסיכה דיגיטלית 2 ובסיכה דיגיטלית 3 כבחוץ אופטי A ואופטי החוצה B.

#לִכלוֹל

optA_state בוליאני = HIGH;

int xAxisMov = 2;

הגדרת בטל () {

pinMode (2, INPUT_PULLUP); // OptA

pinMode (3, INPUT_PULLUP); // OptB

Mouse.begin ();

}

לולאת חלל () {

if (optA_state == HIGH && digitalRead (2) == LOW) {

optA_state =! optA_state;

if (digitalRead (3) == HIGH) {Mouse.move (xAxisMov, 0, 0);} else {Mouse.move (-xAxisMov, 0, 0);}}} // סוף לולאה

זהו קידוד אופטי ברזולוציה נמוכה של 1X ספירה. זה יותר ממספיק ליישומי ארקייד, אבל אתה יכול להגדיל את הרזולוציה בקלות על ידי הוספת שורה של קוד.

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

שלב 6: תמונה כלשהי, או שזה לא קרה

קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!
קצת תמונה, או שזה לא קרה!

להלן כמה תמונות של המגן שיצרתי. זו לא עבודה ברמה גבוהה (תודו שאני לא מקצוען), אבל היא מתנדנדת במאה אחוז בארון הארקייד שלי!

מוּמלָץ: