לנסות אפשר: ציד סיגנלים בפארק

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

IR Baboon - מודול נוח לקליטת שידורים באינפרה-אדום
IR Baboon – מודול נוח לקליטת שידורים באינפרה-אדום (לחצו להגדלה)

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

הציוד

דבר ראשון שכדאי לדעת זה שאף על פי שקוראים להם רובי לייזר, אין שם לייזר אמתי, רק אור אינפרה-אדום. בעבר הכנתי, ככלי עזר לפענוח של שידורי שלטים, כרטיס עם שלושה חיישני IR שפועלים בו-זמנית: אחד שמותאם לאפנון של 38KHz, אחד ל-56KHz ואחד ללא אפנון. לכרטיס הזה (שמופיע בתמונה בתחילת הפוסט) יש פינים נוחים לחוטי גישור, וצריך לספק לו גם מתח. כיוון שהכול נעשה ברגע האחרון ממש, חטפתי בית סוללה לשתי AA – הדבר הראשון שמצאתי שהיה לו קונקטור מתאים.

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

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

הלוקיישן

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

התוצאות

תוך כדי עבודה ראיתי שהחיישן שנותן את התוצאות הטובות ביותר מתוך השלושה הוא זה של 38KHz. החיישן ללא אפנון לא הראה שום שינוי, ורק אז נזכרתי שהוא בכלל זקוק למתח גבוה יותר מה-3V ששתי הסוללות סיפקו, כך שממנו לא הצלחתי להפיק כלום. אחרי דקות ספורות ותשע דגימות החלטתי שאין הרבה טעם להמשיך וקיפלתי את הבסטה. רק בהמשך הערב, בבית, פתחתי שוב את הקבצים והסתכלתי עליהם כמו שצריך. הסיגנל היחיד(!) שנראה נקי וראוי לשמו היה זה:

סיגנל IR באפנון של 38KHz מרובה לייזר
סיגנל IR באפנון של 38KHz מרובה לייזר (לחצו להגדלה)

ה"נפילה" הראשונה והממושכת משמאל, כ-6.73 אלפיות השנייה, היא מן הסתם סימן סינכרון להתחלת שידור (חשוב לזכור שהחיישנים האלה מוציאים פלט HIGH כברירת מחדל ו-LOW כשהם קולטים משהו). לאחר מכן, אם נפענח "שידור+רווח קטן" כ"0" ו"שידור+רווח גדול" כ-"1", נקבל את הרצף

0000,1000,0000,0000,0000,1100,0000,010

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

0000,0100,0000,0000,0000,0110,0000,0010

מה זה אומר? לא יודע. משך כל שידור (חוץ מאות הסינכרון) וכל רווח קטן היה כ-0.85ms, ואילו רווח גדול נמשך כ-3.36ms. רצפים אחרים שתועדו במהלך המשחק נראו חלקיים ופגומים, כמו זה:

סיגנל חלקי/פגום מרובה לייזר
סיגנל חלקי/פגום מרובה לייזר (לחצו להגדלה)

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

סיגנל ממושך ומבולגן ביותר
סיגנל ממושך ומבולגן ביותר (לחצו להגדלה)

כלומר, מבחינת איסוף מודיעין לפחות, היה כאן כישלון גורף. פניתי לאינטרנט לראות אם מישהו פיענח פרוטוקול דומה, ומצאתי את הדף הזה, עם תזמונים דומים מאוד למה שמצאתי בסיגנל הנקי שלי. לפי הניתוח של בראד, מחבר הפוסט ההוא, אכן אמורים להיות 32 ביטים בסיגנל. הוא גם מציע פענוח של הבייטים. לדבריו, הבייט הרביעי (אצלי 0x02) מציין את הצוות, והשלישי (0x06) הוא איזשהו מונה. שני הראשונים (0x0600) אמורים לציין את סוג/התנהגות הנשק במשחק הספציפי. הרובים יכולים גם להגיב למידע מבחוץ – פגיעות של רובים אחרים ופקודות מהמפעיל, למשל.

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

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

להרשמה
הודע לי על
3 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

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

יש מלא transistor testers שמבוססים על http://www.markus.org/Electronics/Projects/AVR-Transistortester/
אחת מהאופציות שם זה לחבר TL1838 לפרובים וזה יפענח קידודים נפוצים.