בעבר התממשקנו עם ג'ויסטיק עם Arduino UNO כדי להבין כיצד הוא פועל ושלטנו בארבע נוריות LED בצד שמאל, ימין, למעלה ולמטה. בפרויקט זה נשתמש באותו ג'ויסטיק כמו Gamepad או בקר המשחק כדי לשחק בכל משחקי מחשב שדורשים תנועות שמאלה, ימינה, למעלה ולמטה. כדי לשחק במשחקים שדורשים יותר אפשרויות שליטה, ניתן להשתמש בשני ג'ויסטיקים או יותר. כאן נשתמש בארדואינו לאונרדו לממשק ג'ויסטיק כבקר משחק. ל- Arduino Leonardo יש יתרון על פני Uno שאנחנו יכולים להתקין עליו מנהלי התקנים מסוג USB וניתן לזהות אותו כעכבר, מקלדת או ג'ויסטיק על ידי המחשב כשהוא מחובר.
רכיבים נדרשים
- ארדואינו לאונרדו
- מודול ג'ויסטיק עם ציר כפול
- ארדואינו IDE
- חוטי חיבור
ארדואינו לאונרדו
לפרויקט זה אנו משתמשים בארדואינו לאונרדו, זהו לוח מיקרו-בקר המבוסס על ה- ATmega32u4. יש לו 20 סיכות כניסה / יציאה דיגיטליות (מתוכן 7 יכולות לשמש כפלט PWM ו -12 כניסות אנלוגיות), מתנד קריסטל 16 מגה-הרץ, חיבור מיקרו USB, שקע חשמל, כותרת ICSP וכפתור איפוס. הוא מכיל את כל הדרוש לתמיכה במיקרו-בקר; כל שעליך לעשות הוא לחבר אותו למחשב באמצעות כבל USB או להפעיל אותו באמצעות מתאם AC-DC או סוללה כדי להתחיל.
לאונרדו שונה מכל הלוחות הקודמים בכך שב- ATmega32u4 יש תקשורת USB מובנית, מה שמבטל את הצורך במעבד משני. זה מאפשר ללאונרדו להופיע למחשב מחובר כעכבר ומקלדת, בנוסף ליציאת וירטואלית (CDC) / COM.
מפרט טכני
מיקרו-בקר | ATmega32u4 |
מתח הפעלה | 5V |
מתח כניסה (מומלץ) | 7-12 וולט |
מתח כניסה (מגבלות) | 6-20 וולט |
סיכות קלט / פלט דיגיטליות | 20 |
ערוצי PWM | 7 |
ערוצי קלט אנלוגיים | 12 |
זרם DC לכל פין קלט / פלט | 40 mA |
זרם DC עבור פין 3.3V | 50 mA |
זיכרון פלאש | 32 KB (ATmega32u4) מתוכם 4 KB המשמש את Bootloader |
SRAM | 2.5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
מהירות שעון | 16 מגה-הרץ |
אורך | 68.6 מ"מ |
רוֹחַב | 53.3 מ"מ |
מִשׁקָל | 20 גרם |
סימוכין של PIN החוצה
מודול ג'ויסטיק עם ציר כפול
ג'ויסטיקים זמינים בצורות ובגדלים שונים. מודול ג'ויסטיק טיפוסי מוצג באיור למטה. מודול ג'ויסטיק זה מספק בדרך כלל יציאות אנלוגיות ומתחי היציאה המסופקים על ידי מודול זה משתנים כל הזמן בהתאם לכיוון שאליו אנו מזיזים אותו. ונוכל לקבל את כיוון התנועה על ידי פירוש שינויי המתח הללו באמצעות מיקרו-בקר כלשהו. בעבר התממשקנו שמחת המקל עם מיקרו-בקרים שונים:
- ממשק ג'ויסטיק עם ארדואינו
- ממשק ג'ויסטיק עם פטל פטל
- ממשק ג'ויסטיק עם מיקרו-בקר PIC
- ממשק ג'ויסטיק עם מיקרו בקר AVR
למודול הג'ויסטיק הזה שני צירים כפי שאתה יכול לראות. הם ציר X וציר Y. כל ציר של JOY STICK מותקן על פוטנציומטר או סיר. נקודות האמצע של הסירים הללו מונעות כ- Rx ו- Ry. אז Rx ו- Ry הם נקודות משתנות לסירים האלה. כאשר הג'ויסטיק נמצא במצב המתנה, Rx ו- Ry משמשים כמפריד מתח.
כאשר ג'ויסטיק מועבר לאורך הציר האופקי, המתח בסיכת Rx משתנה. באופן דומה, כאשר הוא נע לאורך הציר האנכי, המתח בסיכת Ry משתנה. אז יש לנו ארבעה כיוונים של ג'ויסטיק בשתי יציאות ADC. בעת הזזת המקל, המתח בכל סיכה הולך גבוה או נמוך, תלוי בכיוון.
תרשים מעגל
בקר משחק ג'ויסטיק זה של ארדואינו מחייב חיבורים בין הארדואינו לג'ויסטיק כדלקמן:
קוד והסבר עבודה
קוד מלא עם סרטון הדגמה ניתן בסוף; כאן אנו מסבירים חלק חשוב ממנו.
ראשית, עלינו לאתחל את ספריית המקלדת
#לִכלוֹל
הבא בקוד שלמטה, אותנו את ציר ה- X וה- Y של מודול הג'ויסטיק עבור סיכה אנלוגית A0 ו- A1 בהתאמה.
const int X_pin ו- const int Y_pin בהתאמה
הערך האנלוגי של סיכת ה- VRX נקרא ואם הערך הוא 1023 אז ניתנת הפקודה "למעלה" ואם הערך הוא 0 אז ניתן הפקודה "למטה".
באופן דומה, קוראים את הערך האנלוגי של סיכת ה- VRY ואם הערך הוא 1023 אז ניתן הפקודה ל"נכון "ואם הערך הוא 0 אז ניתן הפקודה ל"שמאל".
בג'ויסטיק יש גם כפתור לחיצה למעלה כך שגם כפתור זה (SW) נקרא ואם הלחצן נלחץ הערך יהיה 0 אז ניתנת הפקודה "Enter".
לבסוף צרוב את הקוד בארדואינו וחבר את הארדואינו למחשב.
לאחר מכן בדוק את ' התקנים ומדפסות' בלוח הבקרה שלך, תוכל לראות את " ארדואינו לאונרדו" תחת סעיף המכשירים כפי שמוצג בתמונה למטה. עכשיו אתה מוכן לשחק עם הג'ויסטיק.
אנו יכולים לשלוט בכל בקרות המשחק באמצעות ג'ויסטיק זה. לג'ויסטיק בתוכו שני פוטנציומטרים, האחד מיועד לתנועה של ציר ה- X ואחר מיועד לתנועה של ציר ה- Y. כל פוטנציומטר מקבל 5 וולט מהארדואינו. אז כשאנחנו מזיזים את הג'ויסטיק, ערך המתח ישתנה והערך האנלוגי בסיכות אנלוגיות A0 ו- A1 ישתנה גם הוא. אז הג'ויסטיק ישמש כגיימפייד.
אז ככה ניתן להמיר ג'ויסטיק רגיל לבקר משחק באמצעות ארדואינו לאונרדו וניתן להשתמש בו לשחק משחקים עם כל הפקדים לנוע שמאלה, ימינה, למעלה ולמטה. כאמור earliar ניתן להתממשק יותר מג'ויסטיק אחד כדי לקבל יותר בקרות פרט לארבע הפונקציות הבסיסיות הללו.