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

לוח מקשים לתכנות: 5 שלבים (עם תמונות)
לוח מקשים לתכנות: 5 שלבים (עם תמונות)

וִידֵאוֹ: לוח מקשים לתכנות: 5 שלבים (עם תמונות)

וִידֵאוֹ: לוח מקשים לתכנות: 5 שלבים (עם תמונות)
וִידֵאוֹ: אל תיגע לבחורה באיפור בחייםםם !!!! don't do that !!! 2024, יולי
Anonim
לוח מקשים לתכנות
לוח מקשים לתכנות
לוח מקשים לתכנות
לוח מקשים לתכנות

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

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

אספקה

  • מקודד רוטרי.
  • כפתורי לחיצה רבים (תלוי בצרכים שלך).
  • Arduino Pro Micro, Arduino Leonardo או כל לוח dev אחר עם Atmega32U4 MCU.
  • חוט, הלחמה, מלחם וכו '.
  • (אופציונלי) בסיס כבד כלשהו לשמירת לוח המקשים מפני הזזה, אני משתמש בכונן קשיח ישן בגודל 3.5 אינץ '

שלב 1: מעגל חשמלי

מעגל חשמלי
מעגל חשמלי

בחרתי להשתמש בלוח ה- dev של Arduino Pro Micro עם Atmega32U4 MCU בעל 18 סיכות דיגיטליות שמישות.

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

  1. לכל הסיכות המסוגלות לקריאה יש משיכות פנימיות המאפשרות להפחית נגדי משיכה חיצוניים. כמובן שצריך לעדכן את הקוד בהתאם, מכיוון שהוא מצפה שמצב הסיכה יעבור מנמוך לגבוה בעת לחיצה על כפתורי לחיצה.
  2. בדוגמא בספריית encoder.h ציינו כי הביצועים הטובים ביותר של המקודד מגיעים כאשר שני הפינים המחוברים לסיכות מסוג MCU מפסיקות. לרוב הפינים האנלוגיים של Atmega32U4 אין יכולת הפרעה.
  3. ערכי הנגידה הנפתחים המדויקים לא משנה הרבה, כל דבר שבין 1 kΩ ל- 100 kΩ יעבוד מצוין. ערכי התנגדות גדולים יותר מאפשרים פיזור הספק קטן יותר אך גורמים לתגובה איטית יותר של הפינים לשינויי מתח. פשוט בחר את כל נגדי הערך שיש לך ביותר.
  4. מקודדים מכניים אינם דברים אמינים ביותר בגלל בלאי מגע והקפצות. לכן יש צורך בפתרון ניתוק טוב. ערכי הקבלים הנבחרים שלי וזמני העיכוב בקוד כנראה לא יספקו לך את התוצאות הטובות ביותר. אז צריך קצת ניסויים. או לעבור למשהו כמו מקודד אופטי, אבל המחיר שלו גבוה משמעותית.

שלב 2: הרכבה

הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה

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

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

שלב 3: תכנות

הקוד כתוב עם Arduino IDE. יהיה עליך להתקין 2 ספריות:

  • מקודד מאת פול סטופרגן
  • מקלדת מאת Arduino

כדי להרכיב עבור Atmega32U4 עליך גם להתקין קובץ לוח Arduino Pro Micro, ל- Sparkfun יש הדרכה מצוינת כיצד לעשות זאת.

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

בלולאה הראשית MCU קורא תחילה כל מצב כפתור לחיצה, אם מתגלה שינוי מצב מ- LOW ל- HIGH, הפונקציה keyboard_shortcut (i) מתבצעת. משתנה i הוא מזהה של הכפתור שנלחץ, מספר כפתור הלחיצה הכולל מוגדר על ידי ALL_BUTTONS (במקרה שלי 15). כאשר הוא מבוצע, keyboard_shortcut (i) שולח CTRL+SHIFT ולאחר מכן אות שמופה למזהה כפתור: 1-> A, 2-> B, 3-> C וכו '. כמה שילובים כמו CTRL+SHIFT+N מושמטים מכיוון שזה כבר בשימוש ב- Windows10 כברירת מחדל (במקרה זה ליצירת תיקיה חדשה). להלן רשימת כל קיצורי הדרך המוגדרים כברירת מחדל ב- Windows. לאחר עיכוב קצר MCU שולח אות לשחרור כל המפתחות והיציאה מהפונקציה בחזרה ללולאה הראשית.

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

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

אם debugFlag המוגדר כ -1 הודעות באגים נשלחות באמצעות UART לצג הטורי.

שלב 4: הגדרת קיצורי דרך

הגדרת קיצורי דרך
הגדרת קיצורי דרך
הגדרת קיצורי דרך
הגדרת קיצורי דרך

מה שכל קיצור דרך הוא גם אתה, לכולנו יש העדפות שונות. אני אספק אילו קיצורי דרך הגדרתי לעצמי כדוגמה. אני משתמש ב- Linux Mint 19.3 עם מנהל שולחן העבודה xfce4, כך שהדוגמאות שלי כוללות בעיקר סקריפטים bash, אבל אראה גם כמה דוגמאות בסיסיות עבור Windows10.

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

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

תסריטים נוספים:

  • 2nd_display_control.sh - מפעיל/כבה את הצג השני.
  • moon_lamp.sh - מדליק/כבה את מנורת הירח שלי.
  • pc_load.sh - יוצר בועת התראות עם השימוש והטמפרטורות הנוכחיות של המעבד וה- GPU.
  • shutdown.sh - מאתחל כיבוי מחשב עם עיכוב של דקה אחת ויוצר בועת התראות בה מוצג הזמן הנותר.
  • spec_vpn.sh - מתחבר לשרת OpenVPN ספציפי או אם כבר קיים חיבור, מתנתק מהשרת.
  • shortcut_controll.sh - לוקח פקודה (פלוס, מינוס, כרטיסייה, סגור) כארגומנט, מזהה איזה חלון ממוקד כעת ואם יימצא יישום ספציפי פעיל מבצע פעולת שליטה. למשל פתיחת כרטיסייה חדשה בעורך הטקסט הנשגב של קיצור ברירת המחדל היא "CTRL+N" ובמסוף xfce - "CTRL+T", כך שהתסריט הזה מאפשר לפתוח כרטיסייה חדשה במעלה ובמסוף עם אותו לחצן לחיצה.

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

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

כמה דוגמאות פשוטות לתחביר AHK:

; בקרת עוצמת קול

^+t:: שלח {Volume_Up}

לַחֲזוֹר

^+v:: שלח {Volume_Down}

לַחֲזוֹר

; סגור חלון פעיל

^+h:: WinGetTitle, כותרת, א

PostMessage, 0x112, 0xF060,,, %Title %

לַחֲזוֹר

;כבה את המחשב

^+b:: הפעלת כיבוי /ש

שלב 5: שיפורים

שיפורים
שיפורים

כמה שיפורים אפשריים:

  • כפתורי לחיצה איכותיים יותר.
  • אב טיפוס PCB מתגמש לא מעט כאשר לוחצים על כפתורים.
  • תאורת RGB לשינוי צבע בהתאם לאיזו פונקציה מקודד סיבוב מוגדר.
  • לחצנים נוספים (השתמש ב- IC expander IO).
  • מקודד סיבובי טוב יותר (או פתרון הפחתה טוב יותר).

מוּמלָץ: