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

טכנולוגיה לסבא שלך: 13 שלבים (עם תמונות)
טכנולוגיה לסבא שלך: 13 שלבים (עם תמונות)

וִידֵאוֹ: טכנולוגיה לסבא שלך: 13 שלבים (עם תמונות)

וִידֵאוֹ: טכנולוגיה לסבא שלך: 13 שלבים (עם תמונות)
וִידֵאוֹ: אסתי לומדת על מיניות גברית | אסתי בשטח 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

לדוגמה, סבא של חברתי קיבל טלוויזיה חדשה וניסינו ללמד אותו כיצד לשנות את המקור כדי שיוכל לעבור בין תקליטורי DVD לטלוויזיה - אך הוא פשוט לא הצליח להבין זאת. הוא מתמודד גם עם ראייה כושלת ואינו מעוניין יותר מדי לנסות לזכור תהליכים מסובכים, הוא רק רוצה לצפות בתוכניות שלו מתי שהוא רוצה. לאחר שניסיתי להסביר בשלווה את השלבים בביקורנו האחרון ללא הצלחה רבה, החלטתי שאעשה לו רק שלט רחוק פשוט עם שני כפתורים. זה יאפשר לו לשנות את מקור הקלט בטלוויזיה שלו ללא כאבים, ולעבור בקלות בין תקליטורי ה- DVD האהובים שלו של Matlock לבין Price is Right.

שלב 1: חומרים

  • PhidgetIR
  • PhidgetSBC4 (או כל מחשב לוח יחיד כמו ה- Raspberry Pi)
  • מלחם
  • חותכי צד
  • חשפניות חוטים
  • חוטי מגשר
  • כבל יו אס בי
  • כבל פידג'ט
  • קַרפִּיף
  • כותרות דרך חורים
  • צינורות לכווץ חום

שלב 2: תכנון

הדפס תלת מימד
הדפס תלת מימד

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

  • רציתי לסיים את הפרויקט הזה בהקדם האפשרי ולהשתמש בו, כך שהמחשבה לפרוץ את האוסילוסקופ ולוח הלחם שלי לא הייתה מושכת. כמו כן, כמה סביר שמעגלי ההלחמה ביד שלי עדיין יעבדו בעוד שנה-שנתיים?
  • ל- PhidgetIR יש את היכולת "ללמוד" פקודות CIR מה שהופך את הפיתוח לפשוט מאוד.
  • אתה יכול להשתמש כמעט בכל שפת תכנות רגילה עם PhidgetIR. המשמעות היא שאוכל להשתמש ב- Java ולסיים דברים במהירות.
  • לבסוף, אני עובד עבור Phidgets, כך שאני מרגיש בנוח עם ה- API, ותמיד יש מכשירים פנויים.

מכיוון שבחרתי להשתמש ב- PhidgetIR, הייתי צריך מחשב שיפעיל אותו. רציתי שהפרויקט הזה יהיה יישום עצמאי, ממש כמו שלט רגיל, כך שמחשב שולחני או מחשב נייד היה בחוץ. בחרתי להשתמש ב- PhidgetSBC4 (מחשב בעל לוח יחיד שבו פועל דביאן לינוקס), מכיוון שהוא אפשר לי להתממשק עם שני לחצני הלחיצה ללא חומרה נוספת. ניתן פשוט לחבר אותם ישירות לרכזת VINT המובנית. הערה: אתה יכול גם להשתמש ב- Raspberry Pi לפרויקט זה. לבסוף, בנוסף להיותו תפקודי, רציתי שהפרויקט הזה ייראה נהדר, אז החלטתי שיהיה צורך במארז מודפס בתלת מימד.

שלב 3: הדפסה תלת מימדית

הדפס תלת מימד
הדפס תלת מימד
הדפס תלת מימד
הדפס תלת מימד

עבור פרויקט זה, Geomagic שימשה את הדגם של המתחם. ישנם קבצי צעד תלת -ממד זמינים הן ל- PhidgetIR והן ל- PhidgetSBC4 אשר פישטו את התהליך. כמה החלטות התקבלו במהלך שלב זה בנוגע לגודל הפונקציונליות של המתחם:

  • ל- PhidgetIR שני נוריות IR שצריך להפנות לכיוון הטלוויזיה כדי לשלוח פקודות. במקום לעצב את המארז סביב לוח ה- PhidgetIR, ניתן היה להסיר את נוריות ה- IR ולהדביק אותן לתוך החורים בצד המארז. לאחר מכן ניתן יהיה להתקין את לוח ה- PhidgetIR הרחק מנורות הלדים, תוך ניצול החלל הריק.
  • מחברי VINT Hub ב- PhidgetSBC4 יכולים להיות כפופים כלפי מעלה, מה שיאפשר עדיין גישה לחיבורי כפתורי הלחיצה, וגם ימנע צורך ליצור מארז גדול יותר.

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

שלב 4: הרכבה - הסר את נוריות הלדים

הרכבה - הסר את נוריות הלדים
הרכבה - הסר את נוריות הלדים
הרכבה - הסר את נוריות הלדים
הרכבה - הסר את נוריות הלדים
הרכבה - הסר את נוריות הלדים
הרכבה - הסר את נוריות הלדים

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

שלב 5: הרכבה - הוסף כותרות חור

הרכבה - הוסף כותרות חור
הרכבה - הוסף כותרות חור
הרכבה - הוסף כותרות חור
הרכבה - הוסף כותרות חור

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

שלב 6: הרכבה - צרף נוריות

הרכבה - צרף נוריות
הרכבה - צרף נוריות
הרכבה - צרף נוריות
הרכבה - צרף נוריות

הדבק את הנורות לד הצד של המארז.

שלב 7: הרכבה - חבר את ה- PhidgetIR

הרכבה - צרף את ה- PhidgetIR
הרכבה - צרף את ה- PhidgetIR
הרכבה - צרף את ה- PhidgetIR
הרכבה - צרף את ה- PhidgetIR
הרכבה - צרף את ה- PhidgetIR
הרכבה - צרף את ה- PhidgetIR

חבר את ה- PhidgetIR למארז, וחבר את נוריות ה- LED.

שלב 8: הרכבה - הוספת כפתורים

הרכבה - הוספת כפתורים
הרכבה - הוספת כפתורים
הרכבה - הוספת כפתורים
הרכבה - הוספת כפתורים
הרכבה - הוספת כפתורים
הרכבה - הוספת כפתורים

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

שלב 9: הרכבה - חיבור הכל ביחד

הרכבה - חיבור הכל ביחד
הרכבה - חיבור הכל ביחד
הרכבה - חיבור הכל ביחד
הרכבה - חיבור הכל ביחד

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

שלב 10: תוכנה - קוד

יש צורך בקובץ Java יחיד לפרויקט זה שתוכל למצוא כאן. התוכנית משתמשת באובייקט PhidgetIR אחד ובשני אובייקטים של DigitalInput. אתה יכול ליצור אובייקטים אלה כך:

PhidgetIR ir = PhidgetIR (new);

DigitalInput tvButton = חדש DigitalInput (); DigitalInput otherButton = חדש DigitalInput ();

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

tv.setIsHubPortDevice (נכון);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (נכון); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

המאזין לשינוי המדינה שהוזכר לעיל נראה כך:

privateestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); נסה {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} אם (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("שגיאה:"+ ex.getDescription ())}}}};

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

בעוד (נכון) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "שינוי מקור - טלוויזיה"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} אם (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "שינוי המקור - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

שלב 11: תוכנה - פקודות CIR

תוכנה - פקודות CIR
תוכנה - פקודות CIR

להלן דוגמה ליצירת פקודה (פקודה להגברת עוצמת הקול במקרה זה):

// קוד IR

IRCodeInfo sourceButtonCI = IRCodeInfo חדש (); String volumeUp = "77e1d0f0"; // הגדר לחצן מקור sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI.repeat [0] = 9084; sourceButtonCI.repeat [1] = 2308; sourceButtonCI.repeat [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

על מנת לקבל את המידע עבור פקודה זו, פשוט השתמשתי בדוגמה PhidgetIR המצורפת לספריות Phidget. לאחר הפניית השלט לכיוון PhidgetIR והחזקת לחצן הגברת עוצמת הקול, ה- IR "לומד" את הקוד ומאכלס את הדוגמה. לאחר מכן ניתן להעתיק מידע זה לתוך הקוד.

שלב 12: הפעלת התוכנית

ניתן לכתוב ולערוך את קובץ הג'אווה במחשב חיצוני. מקם את PhidgetRemote.java ו- phidget22.jar באותה תיקייה והפעל את הפקודה הבאה:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

macOS/Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java

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

שלב 13: תוצאה

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

תחרות שלט רחוק 2017
תחרות שלט רחוק 2017
תחרות שלט רחוק 2017
תחרות שלט רחוק 2017

פרס שלישי בתחרות שלט רחוק 2017

מוּמלָץ: