הנה פרויקט מעניין מאוד, שקיבל תפנית וזכה בסופו של דבר לשם FOXI והוא תוצאה של שלושה אירועים בלתי תלויים.
הראשון הוא שאיבדתי את המפתח של הרכב, כולל השלט.
השני הוא שבקיבוץ החליטו בהחלטה פזיזה להציב מחסום זרוע בכביש שמוביל למרפאה ולגן הילדים.
השלישי הוא שיחה עם שלמה 4Z5JO ועם צורי 4Z1RZ בנוגע למשחק החביב “ציד שועלים”, כשהתוכנית היא לארגן תחרות משפחות במשק.
מערכה ראשונה:
אחרי שנשארתי עם שלט אחד בלבד לרכב, עלה בדעתי שאם הוא משדר RF אז אני יכול לנסות לקלוט, ואם אוכל איכשהו להקליט את הסיגנל ואח”כ לשדר אותו בעצמי, יהיה לי שלט נוסף.
בירור קצר גילה שיש כמה תדרים עבור שלטים של רכב ואחד מהם הוא 434 מה”צ שזה ממש בתוך התחום שלנו.
כיוונתי את הרדיו לתדר, לחצתי על לחצן הפתיחה בשלט ולמזלי נשמעו צפצופים מהירים. חשבתי לעצמי שהצפצופים האלה הם רצף של ערכים שמייצגים את הפקודה “פתח”.
שמחתי מאוד ומיד הקלטתי את הצפצופים בטלפון הנייד. נגשתי לרכב, הצמדתי את הטלפון לבאופנג, אמרתי את אות הקריאה שלי על האוויר והשמעתי את הצפצופים תוך כדי שאני משדר. התוצאה – שום כלום. הייתי תמים.
כנראה שהסיגנל היה מלוכלך מידי והמפענח שברכב מפונק מידי. נזכרתי במודים הדיגיטלים ב HF שמשדרים צלילים שמקודדים אותיות. הייתי צריך, איכשהו, לגלות מה הערכים שמאחורי הצלילים.
עשיתי חיפוש והסתבר לי שיש שתי שיטות אפנון:
– מודולציית ASK שזה קצת כמו AM אבל עבור סיגנל דיגיטלי
– מודולציית FSK שזה קצת כמו FM אבל עבור סיגנל דיגיטלי
אבל הגילוי הדרמטי היה שאם “מסתכלים” על אות השמע במקום להקשיב לו, הרצף מתגלה.
להקליט את הבאופנג באמצעות הטלפון זו אפשרות, אבל יש אחת יותר טובה. הדונגלים הזולים שעולים כמה עשרות שקלים, אמנם לא מכסים את תחום הגלים הקצרים אבל מכסים יפה מאוד גם תג”מ וגם תא”ג ובעזרת תוכנה כמו SDR# אפשר גם לראות את הסיגנל, גם להאזין וגם להקליט את אות השמע באופן ישיר (ולא דרך רמקול-מיקרופון).
חיברתי את הדונגל, הפעלתי את התוכנה ולחצתי על השלט.
כשהסתכלתי על הסיגנל (RF) ראיתי שיא אחד בלבד והבנתי שאני רואה אות במודולציית ASK. השלט של הרכב השני הראה סיגנל שיש לו 2 שיאים וזה FSK. ההבדל הוא, שבמודולציית ASK יש רק תדר אחד ומה שמשתנה היא האמפליטודה. ב FSK יש 2 תדרים שונים (בשיפט קטן) ולכן רואים 2 שיאים. אחרי שהקלטתי את אות השמע, קיבלתי קובץ אודיו שהכיל צליל נקי מהשלט של הרכב (בלי נביחות של הכלב של השכנים ברקע).
איך מסתכלים על צליל?
יש תוכנה מעולה לעריכת אודיו בשם Audacity. בין היתר היא מציגה את גל השמע.
אחרי שרואים אותו, הכל ברור. זה גל, שאם היה אידיאלי היה נראה כמו גל מרובע. הערך העליון מייצג 1 לוגי והערך התחתון 0 לוגי. זו עבודה מייגעת אבל עברתי לאט לאט לאורך הסיגנל ורשמתי אפסים ואחדים.
עכשיו יש לי את הרצף הבינארי -> שמייצג את הצליל -> שמאופנן על אות הרדיו -> שמשודר מהשלט של הרכב, כשאני לוחץ על לחצן “פתח”.
עד כאן זו רק חצי הדרך כי עכשיו צריך גם לשדר את זה. לשמחתי התברר שזה החלק הקל. היו לי בבית כמה יחידות של משדרים זולים בתדר הנכון (433.92MHz) ובמודולציה המתאימה (ASK).
חיברתי אחד לבקר מסוג ארדואינו nano והעתקתי קוד לדוגמה שמצאתי באינטרנט. הלכתי לרכב, חיברתי את הסוללה והשמעתי את הצפצופים. התוצאה – שום כלום. הייתי תמים (ומבואס כי הייתי בטוח שזה יצליח).
את אותו תהליך שעשיתי קודם עם השלט של הרכב, עשיתי שוב, רק שהפעם הקלטתי את השידור מהבקר, מתוך מחשבה שאם הסיגנלים זהים, אז הם גם ייראו אותו דבר.
הם לא נראו אותו דבר.
זמן השידור לכל ביט בדוגמה שהעתקתי היה קצר מידי והתוצאה הייתה שהקוד אמנם נכון אבל נוצר הפרש זמנים והסיגנל מתקלקל. הארכתי את זמן השידור עד שהאורך (התדר) היה שווה ושני הסיגנלים נראו בדיוק אותו דבר.
רץ לרכב, מחבר סוללה – האוטו נפתח. ניצחון!
מערכה שניה:
כשהציבו מחסום למרפאה ולגן הילדים, חשבתי שאני יכול ליישם את אותה שיטה כדי לפתוח אותו (במקרה חירום). ההבדל העיקרי הוא שאין לי משדר לדוגמה ואני צריך לשבת ליד המחסום ולנסות להקליט סיגנל שמישהו משדר בזמן שהוא פותח אותו. זה כמובן לא רצוי, אז זה הוביל לפיתוח של אפשרות שמירה אוטומטית בזכרון של סיגנלים שנקלטו, כך שהמערכת יכולה להיות עצמאית ואין לה צורך במפעיל צמוד. בסוף החלטתי שבמקרה חירום אמיתי יותר פשוט לעבור עם הרכב דרך המחסום, אז זה מעולם לא נבדק והכוון הזה נגנז.
מערכה שלישית:
ביום השדה שהיה ב’גני הנדיב’, שלמה 4Z5JO אירגן משחק “צייד שועלים” והיה ממש נחמד (אפילו שאבינועם 4X1HF ניצח). בהזדמנות אחרת ראיתי שצורי 4Z1RZ, תכנן ובנה בעצמו שועל שמשדר ב 2 מטר. עבר זמן, ורציתי לארגן משחק בקיבוץ. התקשרתי אליו ושאלתי למה אנחנו לא משחקים “ציד שועלים” ב UHF? הרי האנטנה שם קצרה מאוד ופשוטה לבניה ואם הוא יכול לבנות משדר בהספק נמוך ל 2 מטר הוא בטח יכול גם ל 70 ס”מ. מסתבר שאמצעות הרכיבים שהוא השתמש בהם זה לא כל כך פשוט ובסוף ירדנו מזה.
נזכרתי בשלט שלי. מה אכפת למשדר אם הוא משדר קוד של רכב או צפצופים אחרים?
אני אתן לו קוד בינארי, שכשקולטים אותו ברדיו הוא נשמע כמו קוד מורס שמשדר שועל.
ניסיתי, ולרגע נראה שזה עובד. העניין הוא שניסיתי לקלוט עם הדונגל והתוכנה SDR# שהייתה מכוונת לאפנון AM – ברור שזה יעבוד, המשדר שלי משדר במודולציית ASK – אבל המכשירים שלנו הם FM. כשניסיתי לקלוט עם באופנג, זה היה גרוע, הוא רק נכנס ויצא מקליטה ולא השמיע את אות השמע.
אחרי כמה זמן נתקלתי בצ’יפ שנקרא CC1150 של חברת TI. משהו חשוב לשים אליו לב, הרכיב הזה עובד עם ערכים לוגים של 3.3V וצריך בקר שעובד גם הוא במתח הזה ולא ב 5V. בחרתי בארדואינו פרו מיני.
כששאלתי את שלמה JO אם מעניין אותו לנסות לעשות דבר כזה, הוא אמר שכן. אחרי הרבה שעות של ניסיון להבין איך להפעיל אותו, ובזכות מהנדס מוכשר בשם רוג’ר שכבר כתב חלק מהקוד בניסיון לשלוט על מאוורר, הוא סוף סוף שידר. עשינו לא מעט שינויים ולמעשה שכתבנו את הספריה ששולטת על המשדר. כשהראיתי לשלמה את הגרסה הראשונה היו לו הערות חשובות שלשמחתי אפשר היה לפתור בתוכנה.
הגרסה השנייה כבר הייתה מוצלחת אז הכנסנו אותה לקופסת פלסטיק יפה שקיבלתי משחר 4Z5ZB.
בהמשך התברר שאנטנה כיוונית רגילה לא כל-כך מתאימה, אז עברנו לפתח מערכת TDOA, אבל זה כבר סיפור אחר.
גיל KD.
לינקים:
דף הפרויקט ב Github:
https://github.com/gilifon/Foxi
וידאו של הגרסה הראשונה:
https://youtu.be/Et38L19PtPA
דף להורדת SDR#:
https://airspy.com/download/
דונגל RTL-SDR:
https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/
משדר מבוסס CC1150:
https://www.ebay.com/…/433M-FSK-SmartRF…/282719073399…
ארדואינו פרו מיני:
https://www.ebay.com/…/Enhancement-Pro…/221030168024…
הפרויקט של רוג’ר ב Github:
https://github.com/xs4free/Itho-library
דף Github לשלט במודולציית ASK:
https://github.com/gilifon/HackaKeyASK
דף Github לשלט במודולציית FSK:
https://github.com/gilifon/HackaKeyFSK