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

השתמש במקלדת אינפרא אדום של Palm עם התקני Android: 5 שלבים
השתמש במקלדת אינפרא אדום של Palm עם התקני Android: 5 שלבים

וִידֵאוֹ: השתמש במקלדת אינפרא אדום של Palm עם התקני Android: 5 שלבים

וִידֵאוֹ: השתמש במקלדת אינפרא אדום של Palm עם התקני Android: 5 שלבים
וִידֵאוֹ: CS50 2015 - Week 8, continued 2024, נוֹבֶמבֶּר
Anonim
השתמש במקלדת אינפרא אדום של Palm עם התקני Android
השתמש במקלדת אינפרא אדום של Palm עם התקני Android
השתמש במקלדת אינפרא אדום של Palm עם התקני Android
השתמש במקלדת אינפרא אדום של Palm עם התקני Android
השתמש במקלדת אינפרא אדום של Palm עם התקני Android
השתמש במקלדת אינפרא אדום של Palm עם התקני Android

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

היה לי גם מכשיר בריינלינק. זהו מכשיר קטן וחמוד למדי לתיווך בין מכשירים שונים. יש לו מעבד atxmega16, סוללה נטענת, כמה חיישנים, רדיו Bluetooth, חבורת יציאות, מארז וקצת קושחה לשדרוג לשליטה על כל זה. ה- Brainlink הופסק אך ל- SurplusShed יש אותו ב -39 $, ויש להם 30-50% הנחה תקופתית על הכל. קיבלתי אותו ב 20 $. תוכל גם להשתמש ב- atxmega plus לוח Bluetooth משלך (סכמטים כאן), אך ייתכן שהעלויות שלך לא יהיו נמוכות יותר.

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

  • מקלדת אלחוטית של PalmOne
  • Brainlink
  • קשירה בת 3 או 8 פינים ל- Brainlink (מחבר בסגנון JST בגובה 1.25 מ"מ); אתה יכול להשתמש בקושר 8 פינים המצורף ל- Brainlink, אך תרצה להזמין יותר לפרויקטים אחרים
  • הלחמה וברזל
  • קלטת חשמל
  • אופציונלי: סוגר לולאה

בעבר השתמשתי ב- Brainlink כדי להתחבר לאוזניות Mindflex EEG ולרומבה. זה ממש נהדר עבור משימות גישור סדרתיות ל- Bluetooth. אני פשוט יוצר מחברים שונים למכשירים שונים, ויכול להעביר ביניהם את ה- Brainlink.

שלב 1: רקע

רקע כללי
רקע כללי
רקע כללי
רקע כללי
רקע כללי
רקע כללי

אל תהסס לדלג על תיאור הרקע הזה.

לוח המקשים האלחוטי של PalmOne שולח את הנתונים שלו באמצעות נורית IR על גבעול, באמצעות IrDA. אמנם אפשר להשתמש בגלאי IR לפענוח הנתונים, אך יש דרך קלה יותר. אם אתה מקפל חצי את המקלדת, שלוש רצועות נחושת נחשפות. האמצעי טחון והתחתון הוא קו שידור. הצבתם לאוסילוסקופ מוודאת שהאות בקו השידור מקודד בסביבות 9600 (ליתר דיוק: 9760) 8 N 2, כשהרמה הגבוהה היא סביב 1.56V, ועם עיצוב דופק irDA: 1 גבוה ופולסים חיוביים. קח 3/16 מזמן הסיביות.

למרבה הצער, כל זה אומר שאנחנו לא יכולים פשוט לחבר את זה למודול בלוטות 'פשוט (לפחות לא מבלי לייצר לו קושחה מותאמת אישית), כמו שעשיתי בפרויקט Mindflex שלי. למרבה המזל, ל- atxmega ב- Brainlink יש מצב irDA עבור ה- UART שלו. פשוט להוסיף מעט קוד לקושחת Brainlink המאפשר לקוד "J1" להעביר אותו למצב IrDA. ציפיתי שהרמה הגבוהה של 1.56V לא תהיה מספקת לאטקסמגה, אבל הופתעתי לטובה כשחיברתי את רצועות הנחושת ל- GND ו- UART Receive ב- Brainlink וראיתי את התוצאות ב- Realterm: קיבלתי רצפים נחמדים של שישה בתים מהמקלדת..

התברר שרצף ששת הבייטים הוא אריזה רק לקוד סריקה של בתים בודדים (עם שחרור סימון סיביות גבוה). באופן ספציפי, הרצף הוא FF C0 xx yy zz C1, כאשר xx הוא קוד הסריקה, yy הוא xx xor'ed עם FF, ו- zz xx xor'ed עם 67. (למעשה, קוד הסריקה מועבר שלוש פעמים: פעם ברור ופעמיים מקודד. אני מניח שזה בגלל ש- irDA מועד לשחיתות, וכך תוכל להשתמש בפענוח רוב כדי לקבל את הבייט.) לאחר מכן, הקושי היחיד בחומרה היה למצוא מקום להלחם מחבר במקלדת.. וזה לא היה קשה.

בצד התוכנה, בעוד שאולי אולי אוכל להעביר את מודול ה- Bluetooth RN-42 במצב Brainlink למצב HID, שיש לו פוטנציאל לבנה, שכן אם המודול לא יחזור ל- SPP, לא אוכל לדבר איתו את ה- Brainlink באמצעות פרוטוקול ה- Bluetooth שלו.

הדבר הקל יותר היה פשוט לקחת את אפליקציית מקלדת ה- BluezIME של קוד פתוח המאפשרת למשחקי Bluetooth שונים לתפקד כבקרי אנדרואיד ולהוסיף מצב לרצפי שישה בתים של מקלדת האלחוט האלחוטית. האפליקציה המתקבלת היא מקלדת P1 החינמית ב- Google Play כעת (קוד מקור ב- github).

שלב 2: שדרוג קושחת Brainklink

שדרוג קושחת Brainklink
שדרוג קושחת Brainklink
שדרוג קושחת Brainklink
שדרוג קושחת Brainklink

כדי לאפשר תמיכה בנתונים סדרתיים בפורמט IrDA ב- Brainlink, עליך לטעון את הקושחה המותאמת אישית שלי. זה קל עם מכשיר אנדרואיד ומעלה קושחה שכתבתי (אגב, אתה יכול לשנות את ההעלאה להיות מטען כללי atmega/atxmega AVR109).

  1. חבר את ה- Brainlink (PIN 1234) למכשיר אנדרואיד-תצטרך לעשות זאת בכל מקרה כדי לחבר את המקלדת
  2. הורד את מעלה הקושחה של Brainlink שלי מ- Google Play (מקור להעלאה וקושחה ב- github).
  3. כבה את Brainlink וחבר את הפינים 8 ו- 2 (באופן מוזר, סיכה 8 היא הסיכה השמאלית ביותר והסיכה 1 מימין) ביציאת 8 הפינים.
  4. החזק את הסיכות מחוברות, הפעל את ה- Brainlink. ה- LED שלה צריך להפוך לכחול.
  5. בחר את הקושחה המותאמת אישית שאתה רוצה (אם יש לך Roomba, אחת מחברות הפירמה עובדת טוב יותר עם Roombas חדשה יותר והשנייה עם ישנות יותר) ולחץ על "העלה".
  6. זה צריך להיות זה, אם כי אם יש לך קשיי חיבור ייתכן שיהיה עליך לנסות יותר מפעם אחת.

Brainlink שלך כעת חכם יותר: הוא תומך לא רק בקריאת נתונים ממכשירי IrDA מסוימים (ברגע שאתה מאתר אות לא מאופנן), אלא גם מתפקד כקישור רגיל של Roomba-to-Bluetooth ויכול ללכוד נתונים מאוזניות EF של Mindflex. והקושחה תואמת לאחור.

שלב 3: חיבור Brainlink למקלדת

חיבור Brainlink למקלדת
חיבור Brainlink למקלדת
חיבור Brainlink למקלדת
חיבור Brainlink למקלדת
חיבור Brainlink למקלדת
חיבור Brainlink למקלדת

תזדקק למחבר קשירה המתאים לשלושת הסיכות השמאליות ביותר ביציאת 8 הפינים של Brainlink. אלה מחברים בסגנון JST עם מרווח סיכות 1.25 מ מ. אתה יכול להשתמש במחבר תלת פיני (לבחירה שלי) או במחבר בן 8 פינים. אתה יכול להשתמש במחבר 8 פינים שמגיע עם ה- Brainlink, אבל אז תרצה להזמין יותר מהם (מצאתי מחברים 3- ו 8 פינים זולים ב- eBay).

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

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

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

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

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

ייתכן שתרצה גם להדביק מעט סקוטש ב- Brainlink והמקלדת לשמירה על Brainlink במקום.

שלב 4: שימוש עם מכשיר אנדרואיד

שימוש עם מכשיר אנדרואיד
שימוש עם מכשיר אנדרואיד
  1. חבר את ה- Brainlink למכשיר האנדרואיד שלך (PIN 1234).
  2. התקן את אפליקציית המקלדת P1 שלי.
  3. הפעל את הגדרות המקלדת P1 (סמל עבורה צריך להיות במפעיל שלך).
  4. אפשר מקלדת P1 בהגדרות שיטת הקלט של Android. בגרסאות אנדרואיד חדשות יותר, תוכל להפעיל את מקלדת P1 על ידי בחירת "בחר IME" בהגדרות מקלדת P1 והקש על "הגדר שיטות קלט". (תקבל אזהרה כי המקלדת רואה את כל הסיסמאות שלך וכו '. זאת אזהרה סטנדרטית לאנדרואיד: כמובן, מנהל התקן מקלדת רואה את כל מה שאתה מקליד. אם אתה מפחד, הסתכל על קוד המקור של המקלדת ובנה משלך.)
  5. הקש על "בחר מכשיר" ובחר את ה- Brainlink שלך (שלי מופיע כ- RN42-A308).
  6. הקש על "בחר IME" בהגדרות מקלדת P1 ובחר מקלדת P1.
  7. זה עלול לקחת קצת זמן להתחבר, אבל אתה אמור לקבל הודעה על התחברות אם הכל מסתדר

וסיימת! אתה מוזמן לתרום למחבר של BluezIME שעליו מבוססת מקלדת P1.

ב- Android 4.0+, כאשר בשדות טקסט תהיה הודעה המאפשרת לעבור בין שיטות קלט, כך שתוכל לחזור בקלות לשיטת קלט אחרת.

הדרייבר שכתבתי למקלדת פשוט מאוד. הוא תומך במפתחות הרגילים, אך אינו תומך ברבים ממפתחות הדגשה מיוחדים או דברים מיוחדים אחרים. הוספתי תמיכה לשימוש בשני הכפתורים עם בית (FN-1 והמפתח משמאל לחלל) כבית, באמצעות את מקש Windows ו- FN-2 כתפריט ו- FN-3 כחיפוש. כמו כן, ctrl-a, c, v, x פועל כצפוי.

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

שלב 5: מקלדות אחרות

מקלדות אחרות
מקלדות אחרות
מקלדות אחרות
מקלדות אחרות

אם אתה רוצה להתנסות במקלדות אינפרא אדום אחרות, יהיה עליך להבין אילו אותות הם שולחים ובאיזה קצב שידור. כאשר Brainlink מעודכן לתוכנה התואמת IrDA, אתה יכול להתחבר עם RealTerm ל- Brainlink. כאשר אתה רואה את האות "BL" החוזר על עצמו שהוא החתימה של ה- Brainlink, הקלד:

*J1Z

הכוכבית מבקשת תשומת לב, J1 עובר ל- 9600 baud IrDA (רק חייב להקליד את 1 במהירות לאחר ה- J או שתקבל שגיאה). ה- Z מיועד למצב גשר סידורי ל- Bluetooth.

העבר את RealTerm להצגת קודים hex, ולחץ על המקשים במקלדת ובדוק אם אתה יכול להבין זאת.

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

אני מניח ש- 9600 שידור הוא קצב השידור הנכון. אם לא תצליח, תוכל לשנות את קצב השידור של Brainlink. הייתי מתחיל בניסיון של 57600 baud:

*J1u57Z

ולאחר מכן 1200 שידור:

*J1u12Z

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

מוּמלָץ: