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

שליטה מרחוק במחשב IR: 4 שלבים
שליטה מרחוק במחשב IR: 4 שלבים

וִידֵאוֹ: שליטה מרחוק במחשב IR: 4 שלבים

וִידֵאוֹ: שליטה מרחוק במחשב IR: 4 שלבים
וִידֵאוֹ: הדגמת הדלקה וכיבוי - IR 2024, יוני
Anonim
שליטה מרחוק במחשב IR
שליטה מרחוק במחשב IR

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

הפרויקט מורכב מכמה חלקים:

  1. שלט רחוק
  2. תוכנת מחשב
  3. מודול מקלט IR

שלב 1: השלט הרחוק

השלט
השלט

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

שלב 2: תוכנה

יצרתי את התוכנית עבור מערכת ההפעלה GNU/Linux הפועלת במסוף. קוד המקור ניתן להורדה/שימוש/שיתוף/שינוי בחינם. כדי לאסוף את הקוד פשוט הוציאו את הפקודה כמו gcc -o remotePC remotePC.c במסוף. להפעלת סוג התוכנית./remotePC.

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

תיאור התוכנית

התוכנית בודקת תחילה אם קיים הקובץ /dev /ttyACM0 או ttyACM1. אם כן מזהה הקבוצה של הקובץ נבדל מאפס. המשמעות היא שהמשתמש המשותף יכול לקרוא ולכתוב אליו את היציאה הטורית. שני בתים עם ערכים 0xAA 0x55 נכתבים לאחר מכן ליציאה כדי לאותת שהתוכנית מוכנה לקבל את הנתונים. הנתונים הנכנסים מושווים לערכים המאוחסנים. אם נמצאה ההתאמה הפעולה המוגדרת מראש מבוצעת.

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

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

pactl set-sink-mute 0 החלפת

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

במידת הצורך התקן את החבילות המבוקשות.

בקרת נגן המדיה VLC

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

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

שלב 3: מודול מקלט IR

מודול מקלט IR
מודול מקלט IR
מודול מקלט IR
מודול מקלט IR
מודול מקלט IR
מודול מקלט IR

החלק השלישי של הפרויקט הוא עדיין הכי מורכב אך עדיין די פשוט. הרעיון הוא שמקלט ה- IR יפיק את האות ל- MCU שיהפוך אותו למספר הייחודי. מספר זה יועבר למחשב באמצעות ה- USB.

המודול מיועד להתקנה בתוך מארז ה- PC ולחבר אותו לחריץ ה- USB בלוח האם באמצעות הכבל. במקרה שאתה מעדיף את החיבור החיצוני ל- USB תצטרך לבצע התאמות קלות.

MCU

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

מקלט IR

החלק השני שהמודול מבוסס עליו הוא מקלט ה- IR VS1838B - זה שהוזכר בשלב הראשון.

ממיר UART/USB

החלק השלישי הוא MCP2221 שהוא ממיר UART/I2C/USB.

המשימה היא לשלב את 3 החלקים הללו כדי לבנות את המודול שיוכל לקבל את האותות משלט רחוק IR ולהעביר אותם למחשב האישי.

החיווט

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

רשימת החלקים

1 יחידה PIC16F1829 (או כל MCU אחר)

1 יחידה VS1838B (או כל מקלט IR אחר)

1 יחידת MCP2221 (או כל ממיר UART/USB אחר)

כותרת 2 יח 'עם 4 פינים

כותרת 1 יחידה 6 פינים

נגד מחשב אחד 100R

נגד 2 יחידות 10K

נגד 2 יחידות 330R

קבל 1 pc 470 nF

2 יחידות קבל אלקטרוליטי 4.7 uF

מתג 1 יחידה (אופציונלי)

הרכבת PCB

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

הקושחה

קוד המקור ל- PIC שנכתב עם השימוש ב- MPLAB X IDE ובמהדר XC8 זמין להורדה למטה.

הערות קוד המקור

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

לאחר ביצוע כל ההגדרות הנורית האדומה דולקת וה- MCU מחכה לנתוני 0x55AA. לאחר מכן הנורית הופכת לירוקה וה- MCU מתחיל לזהות את האות ממקלט ה- IR בעזרת ההפסקות. הוא מודד ומתעד את מרווחי הזמן שהאות נמצא ברמות גבוהות ונמוכות. הזמנים האלה הופכים אז למספר 32 סיביות שנשלח למחשב האישי.

הקשר בין הזמנים למספר הסופי ניתן בפרוטוקול NEC.

שלב 4: אופן השימוש במכשיר

אופן השימוש במכשיר
אופן השימוש במכשיר
אופן השימוש במכשיר
אופן השימוש במכשיר
אופן השימוש במכשיר
אופן השימוש במכשיר

קושחה

העלה את הקושחה ל- PIC. אני משתמש במתכנת PICkit 3.

חוּמרָה

התקן את מודול מקלט ה- IR כפי שניתן לראות בתמונות:

  1. חבר את כותרת ה- USB לחריץ ה- USB הפנימי בלוח האם בתוך מארז המחשב באמצעות כבל 4 חוטים מתאים או חיצונית לחריץ ה- USB באמצעות כבל ה- USB הרגיל. במקרה השני אתה צריך לעזור לעצמך בדרך כלשהי, למשל כפי שניתן לראות בתמונה השלישית להשראה.
  2. חבר את כבל המתח 5 V מה מקור החשמל בתוך מארז המחשב לכותרת 4 פינים. או הפעל את המודול בצורה אחרת במקרה של שימוש חיצוני.

חפש את תיאור סיכות שקע ה- USB של לוח האם. אני לא בטוח אם החיווט עומד בתקן כלשהו ולכן עדיף לוודא. במקרה שלי יש שתי שורות סיכות עם 5 סיכות בשורה העליונה ו -4 סיכות בחלק התחתון. משמאל לימין הסיכות הן + 5 V, D-, D +, Gnd. הסיכה החמישית בשורה הראשונה אינה מחוברת. חיברתי את הכבל כפי שניתן לראות בתמונה השנייה.

תוֹכנָה

הפעל את התוכנית במסוף. אם הכל מסתדר ההודעה האחרונה של התוכנית היא "מחכה לנתונים …". כעת כאשר אתה לוחץ על הכפתור בשלט הרחוק הקוד שהתקבל יופיע במסוף. כך תוכלו לדעת איזה כפתור פולט איזה קוד.

עכשיו כמה תכנות מחכים לך אבל אל תדאג. יש לשנות רק כמה דברים בקוד המקור של התוכנית, כך שהתוכנית תגיב לשלט הרחוק שלך. פתח את הקובץ remotePC.c בעורך הטקסט או ב- IDE כלשהו אם תרצה והחליף את הקודים שלי בקוד שלך. פשוט לחץ על הלחצנים שבהם אתה מתכוון להשתמש בכל פעולה אחד אחד. פשוט העתק את הקודים שמופיעים במסוף והדבק אותם בקוד המקור למקום עם פעולה מקבילה.

לאחר שתסיים תסיים את התוכנית ותרכז מחדש את הקוד באמצעות הפקודה gcc -o remotePC remotePC.c. הפעל את התוכנית שוב והיא תגיב לשלט הרחוק שלך מעתה והלאה.

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

מוּמלָץ: