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

תיבת הארכת הג'ויסטיק למקלדת ארדואינו ובקר הסאונד באמצעות Deej: 8 שלבים
תיבת הארכת הג'ויסטיק למקלדת ארדואינו ובקר הסאונד באמצעות Deej: 8 שלבים

וִידֵאוֹ: תיבת הארכת הג'ויסטיק למקלדת ארדואינו ובקר הסאונד באמצעות Deej: 8 שלבים

וִידֵאוֹ: תיבת הארכת הג'ויסטיק למקלדת ארדואינו ובקר הסאונד באמצעות Deej: 8 שלבים
וִידֵאוֹ: הארכת מעצר נוספת לחשוד ברצח ליטל יעל מלניק ז"ל 2024, יולי
Anonim
תיבת הארכה של ג'ויסטיק למקלדת Arduino ובקר קול באמצעות Deej
תיבת הארכה של ג'ויסטיק למקלדת Arduino ובקר קול באמצעות Deej

פרויקטים של טינקרד »

למה

מזה זמן מה רציתי להוסיף ג'ויסטיק קטן למקלדת שלי לשליטה על רכיבי ממשק, או משימות קטנות יותר במשחקים וסימולטורים (MS Flight Sim, Elite: Dangerous, מלחמת הכוכבים: טייסות וכו ').

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

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

אֵיך

לאחרונה למדתי על Arduino ונתקלתי בפרויקט deej על reddit. זה נראה כאילו זה יפתור את שתי הבעיות האלה בחבילה שימושית אחת. וזה היה מאפשר לי לעצב ולהדפיס מארז תלת מימד מפואר.

מהו דיג '?

(מהאתר) deej הוא ** מערבל נפח חומרה בעל קוד פתוח ** למחשבי Windows ו- Linux. הוא מאפשר לך להשתמש במחוונים חיים אמיתיים (כמו תקליטן!) כדי ** לשלוט בצורה חלקה בכמויות האפליקציות השונות ** (כגון נגן המוסיקה שלך, המשחק שאתה משחק ושיחת הצ'אט הקולי שלך) מבלי לעצור מה אתה עושה.

הגרסה שלי

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

Deej יעבוד עם Arduino Nano, Pro Micro או Uno, אך ה- Nano ו- Pro Micro 'מומלצים רשמית' על ידי היזם. בחרתי ב- Arduino Pro Micro מכיוון שרציתי את הג'ויסטיק, וספריית הג'ויסטיק של Arduino תומכת בו. אני יכול גם להשתמש בספריית המקלדות של Arduino כשאני רוצה להשתמש בפונקציית השתקת מקלדת המדיה (ולא ב'השתקה רכה ') עם לחצן הג'ויסטיק, אבל זה בהמשך הדרך.

שלב 1: אספקה

אספקה
אספקה
אספקה
אספקה
אספקה
אספקה

התיבה

הורד את קבצי STL (תוכנן ב- Tinkercad):

  • קבצי מארז ב- Prusa (https://www.prusaprinters.org/)
  • עולם החפצים (בקרוב)

החומרה (יחידת ייצור)

  • 1x Arduino Pro Micro
  • 4x 10k סיבוב (ידית) פוטנציומטרים (לא בקרי סיבוב, השתמש בסירים)
  • 1x ג'ויסטיק ארדואינו KY-023
  • כבל רשת Cat5 גרוטאות בגודל 5 רגל
  • 1x כבל מיקרו USB A ל- USB B (USB A הוא המחבר המרובע הגדול, מיקרו USB B הוא מה שיש ב- Arduino Pro Micro)
  • 1x 5 מ"מ אדום
  • נגד 220 אוהם

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

  • 1x Arduino Pro Micro
  • 4x 10k סיבוב (ידית) פוטנציומטרים (לא בקרי סיבוב, השתמש בסירים)
  • 1x מתג כפתור לחיצה רגעי (מתג איפוס קשיח)
  • 1x כבל מיקרו USB A ל- USB B (USB A הוא המחבר המרובע הגדול, מיקרו USB B הוא מה שיש ב- Arduino Pro Micro)
  • חוטי מגשר שונים
  • קרש לחם
  • 1x 5 מ"מ אדום
  • נגד 220 אוהם

שלב 2: המארז

המארז
המארז
המארז
המארז
המארז
המארז
המארז
המארז

העיצוב

אהבתי כמה מהעיצובים האחרים המפורסמים בגלריה הקהילתית של deej, כך שהתבסס שלי על התכונות שאהבתי:

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

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

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

מכיוון שרציתי עיצוב ללא בורג, יצרתי קופסת קינון. לאב טיפוס הראשון היה מכסה דק וקופסה עמוקה לכל דבר. העיצוב השני החליף את זה עם מכסה עמוק וקופסה תחתונה רדודה. הוא היה צריך רק להחזיק את ה- Arduino Pro Mini כך שבאמת לא היה צריך להיות גדול. כמו כן שולבו האייקונים הבולטים.

העיצוב השלישי השתנה כך שיתאים לחלל לצד המקלדת שלי.

ההדפסה

הדפסתי את הקופסה ב- PLA, תכננתי החלפת נימה / שכבה משחור לאדום במכסה שבו הסמלים רק יתחילו להיות גלויים, ושוב חזרה לשחור לשאר המכסה.

בעיה

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

שלב 3: המעגל

המעגל
המעגל
המעגל
המעגל
המעגל
המעגל

עבודת החיווט הגרועה ביותר אי פעם

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

עדכון: מאז בניתי עוד אחד והחיווט שם הרבה יותר נחמד. ראו את התמונות:)

יחידת ייצור - מה קורה לאן

ה- Arduino Pro Micro הוא לוח קטן זעיר ויתאים לחלק המעוצב בבסיס. ידיות וג'ויסטיק מתאימות לחורים בהתאמה במכסה. אבל אל תעלה כלום עד שתקבל את תחרות הלחמה.

תִיוּל

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

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

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

הסיר האינדיבידואלי. קווים אנלוגיים (צהוב) רצו לסיכות A0 - A3. קווי הג'ויסטיק (כתום), גם הם אנלוגיים, רצו אל פיני I/O 8 ו 9. אלה יצטרכו להיות מוגדרים כאנלוגי בקוד ה- Arduino כ- A8 ו- A9.

סיכת מתג הג'ויסטיק (כחול) רצה לסיכה 7. זו תהיה סיכה דיגיטלית בקוד.

בִּדוּד

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

גרסה שנייה

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

שלב 4: סיום החומרה

סיום החומרה
סיום החומרה

עד שהתקנתי את הג'ויסטיק הבנתי שאין הרבה מרווח בין הלוח לבין כותרות הסיכות שנותרו ב- Pro Micro.

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

התקנת הסירים עברה ללא תקלות.

שוב עם החוטים

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

ברגע שהכל תחוב למקומו, פשוט התקן את הבסיס בחלקו העליון וכדאי שתסיים עם החומרה ….

אבל רגע, יש עוד

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

לאחר עריכת הקוד להוספת פונקציונליות ה- LED (ראה סעיף הבא), הלחיתי במהירות את הנורית / החוטים / הנגד וחיברתי אותם ללוח.

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

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

שלב 5: התוכנה

התוכנה
התוכנה
התוכנה
התוכנה
התוכנה
התוכנה

סקירה כללית

אז זהו תהליך בן שני חלקים.

  1. קבל והבין כיצד פועל Deej וערוך את הקובץ Config.yaml
  2. ערוך את קוד ה- Arduino כך שיתאים לחומרה ולתכונות הרצויות
  3. קבל את ספריית הג'ויסטיק של Arduino

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

  • ידיות השולטות ברמות (מיקרופון ופלט)
  • מתג השתקה
  • ג'ויסטיק 2 ציר המוכר על ידי Windows לשימוש ביישומים

רמות

דיאג 'פחות או יותר דואג לנקודה הראשונה כשהיא מגיעה. לא שיפרתי את הפונקציונליות הזו

מתג השתקה

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

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

בסופו של דבר אסתכל על יישום ספריית המקלדות של Arduino כדי להחליף את מצב השתק באמצעות ערכת קוד המקלדת המורחבת של המדיה.

יישום ג'ויסטיק

זה דורש שימוש בספריית הג'ויסטיק של Arduino כדי להבטיח שהג'ויסטיק יוכר כמכשיר HID על ידי Windows וכתוצאה מכך על ידי כל משחק/יישום.

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

כל מה שהייתי צריך לעשות היה לזהות את סיכות ה- X/Y, לקרוא את המצב שלהם ולשלוח אותו לספריית הג'ויסטיק. הארדואינו הופיע כמו לאונרדו ל- Windows, והוגדר כהלכה כמכשיר ג'ויסטיק.

הצלחתי להגדיר אותו ב- Elite Dangerous, לצד התקנת ה- HOTAS הקיימת שלי ולגרום לג'ויסטיק לשלוט כראוי בדברים ולא להתנגש עם HOTAS. זה עובד גם טוב במלחמת הכוכבים: טייסות - יש לי את זה מוגדר כמחליף מהיר להקים את המגנים בזמן לחימה.

הקבצים שעובדים עם הגדרת הג'ויסטיק שלי

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

  • קוד Arduino (קובץ.ino)
  • Deej config.yaml

שלב 6: סיום

סוֹף
סוֹף

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

שלב 7: תוספת..דום..דום

תוספת..דום..דום
תוספת..דום..דום

VLC - לנגן האודיו והווידיאו המדהים הזה יש מעט מוזרות שבה רמת עוצמת הקול, כששליטה חיצונית, קופצת מ -0% ל -27%. זה לא קורה בעת התאמת הרמה באמצעות בקרת עוצמת הקול בממשק בתוך האפליקציה, רק עם פקדים חיצוניים כמו Deej.

מפתח Deej מצא במהירות פתרון תוך-VLC שעושה את העבודה, ראה התמונה למעלה:

"… אם ברצונך להשבית את התנהגות ה"מעקב" הזו תוכל לעשות זאת על ידי שינוי מודול פלט השמע של VLC. השתמשתי ב- DirectX בניסיונות שלי כאן. יהיה עליך להפעיל מחדש את VLC כדי שהשינוי ייכנס לתוקף. (עדיין תמשיך יש לך הפעלת שמע של Windows ותוכל לשלוט בו באמצעות deej, זה רק ימנע מסרגל עוצמת הקול של VLC לזוז איתו)"

שלב 8: משאבים נוספים

משאבים נוספים
משאבים נוספים

נמצא באמצעות הגוג האדיר, המופיע ללא סדר מיוחד …

  • ספריית הג'ויסטיק של Arduino (v2) - נחוצה לשילוב הג'ויסטיק
  • מדריך חיבור ל- Sparkfun Pro Micro - משאב טוב לגבי הארדואינו הזה
  • deej - התוכנה שמניעה את הכפתורים
  • סוגי מחברי USB - מי ידע שיש כל כך הרבה גרסאות?
  • Arduino Pro מיקרו אנלוגי Pinouts
  • ג'ויסטיק המשחקים Arduino Leonardo - לאונרדו דומה ל- Pro Micro, רק גדול יותר
  • יציאת Arduino Pro Micro (שיבוט) לא זוהתה (פתרון) - כאשר אתה בונה את ה- Pro Micro שלך (עשיתי)
  • ארדואינו לאונרדו/מיקרו כבקר משחק/ג'ויסטיק
  • דוגמא לשימוש במפתח מולטימדיה להשתקת - שימוש בספריית HID Project
  • קוד דוגמה לספריית פרוייקט HID להשהיה / הפעלה של מדיה
  • דוגמא קוד נוספת המציגה את בקר הלוח.
  • ArduinoGamingController_updated - תיאור קוד טוב של השימוש בספריית הג'ויסטיק
  • מחשבון הנגד נגד LED - כדי לגלות עד כמה גדול יהיה צורך בנגד בפרויקט שלך
  • ספריית אייקונים - flaticon.com - מקור התמונות המשמשות מעל הכפתורים
  • מפענח נוסף של Resistor - לחץ על צבע ויולה!

מוּמלָץ: