בתוך רובוט שואב אבק, חלק א'

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

רובוט שואב אבק שניצל, בינתיים, ממשאית האשפה
רובוט שואב אבק שניצל, בינתיים, ממשאית האשפה

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

הסתבר שהרובוט שמצאתי הוא Ecovacs Deebot D58. זהו דגם שנכנס לשוק כנראה בתחילת 2012. יחד איתו היו עמדת טעינה, שלט רחוק, ו"קיר וירטואלי" – יחידת שידור שפולטת אלומת אור אינפרה-אדום צרה, שהרובוט – כשהוא מבחין בה – עוצר ופונה לכיוון אחר. המערכת כולה מורכבת למדי, אז החלטתי להתחיל בקטן ולבחון את הקיר הווירטואלי הזה.

הקיר הווירטואלי

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

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

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

האות המחזורי של הקיר הווירטואלי
האות המחזורי של הקיר הווירטואלי (לחצו להגדלה)

בניסיון לפצח את תעלומת המקלט פתחתי את המתקן, ושם ציפתה לי הפתעה נוספת: המעגל נראה כמו משהו שתוכנן ויוצר בשנות התשעים, לא ב-2012. על גבי PCB חד-שכבתי (עם הכיתוב החשוד-מאוד "Dummy"!) היה מיקרו-בקר אלמוני אחד בתצורת DIP, ומספר רכיבים פשוטים. המקלט עצמו התחבר ללוח בשני חוטים בלבד – זה אפילו לא היה מקלט אקטיבי מודרני (שיש לו 3 רגליים), אלא רק פוטוטרנזיסטור: המיקרו-בקר עצמו, אם בכלל, אמור לזהות את האפנון ואת הסיגנל הנכנס. האם הוא מגיב איכשהו לפקודות שנשלחות מהשלט הרחוק לרובוט, או לאות של עמדת הטעינה? לא הצלחתי למצוא שום עדות לתגובה כזו. ייתכן שמדובר בפיצ'ר מתקדם שהושאר כאופציה לקושחה עתידית, או סולק מקושחה קודמת.

לדברי ה-Joulescope, הצריכה הממוצעת של הקיר הווירטואלי במצב פעיל בין שידורים היא כ-695 מיקרואמפר. זה מעט מאוד, בהתחשב בלד האינדיקציה שלכאורה דולק תמיד ומספיק חזק כדי שיראו אותו בחדר מואר. עם זאת, כשמתמקדים בגרף אפשר לראות פולסים של צריכה גבוהה יותר (עד כמעט 1 מיליאמפר) ואחריהם ירידה הדרגתית, בהפרשי זמן של כ-2.5 עד 5 אלפיות השנייה. ייתכן שזהו הבהוב של הלד בסיוע קבל וטרנזיסטור. בזמן השידור הפעיל, הצריכה מגיעה בגלים של עד כ-57 מיליאמפר בהפרשים של 26 מיליוניות השנייה – זהו כמובן התדר 38KHz של אפנון השידור. לאורך זמן, הצריכה הממוצעת היא 1.25 מיליאמפר, מה שאומר ששתי הסוללות בגודל D שבמתקן (לא נטענות, ועל פי הערכה סבירה של 15Ah) יחזיקו מעמד שנה וארבעה חודשים בהפעלה רצופה. לפי המדריך למשתמש, המתקן מכבה את עצמו אחרי שעתיים בכל מקרה, כדי למזער צריכה מיותרת – כנראה בהנחה שהרובוט מופעל תמיד ידנית, ולא מסוגל לפעול יותר משעתיים לפני שהוא חוזר לטעינה.

תכולת הקיר הווירטואלי. מוחזק למטה: פוטוטרנזיסטור ללא שימוש
תכולת הקיר הווירטואלי. מוחזק למטה: פוטוטרנזיסטור ללא שימוש (לחצו להגדלה)

עמדת הטעינה

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

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

מסיבות של חוסר זמן, חוסר מקום על שולחן העבודה ואורך לא מספק של חוטים, לא הצלחתי למדוד את השידורים באופן מדויק, וגם המעגל האלקטרוני בתוך עמדת הטעינה היה בלתי-נגיש עד כדי תסכול. עד כמה שהצלחתי לראות, הסיגנל של החור העליון הוא אות מחזורי בתדר 504Hz (אורך גל של 1.984ms), ואילו החור השני משדר זוגות של פולסים (0.12ms, רווח של כ-0.5ms ביניהם) בריווח של 7.2ms בין הזוגות. מן הסתם יש איזשהו סינכרון בין שני השידורים, והרובוט יכול להשתמש באות המשולב, או בכל אחד בנפרד, כדי לדעת משהו על מיקומו. אפרופו, פרט למקלט הרב-כיווני שלמעלה, יש מקלט IR נוסף בחזית הרובוט, שאולי מאפשר לו – בין השאר – להתמקד בדיוק גבוה על המקום הנכון של פסי הטעינה.

השלט

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

השלט הרחוק של ה-D58
השלט הרחוק של ה-D58 (לחצו להגדלה)

כל הפקודות, מאופננות ב-38KHz, התחילו בסיגנל שנמשך 9ms ואחריו הפסקה של 4.4ms. מיד לאחר מכן באו הביטים, כאשר 0 (אני מניח) הוא 0.6ms סיגנל + 0.6ms שקט, ואילו 1 הוא 0.6ms סיגנל + 1.64ms שקט. סך הכול היו 32 ביטים שהם 4 בייטים, וכל בייט שני היה בעצם ההופכי של זה שבא לפניו. הנה הפקודות בייצוג הקסדצימלי:

Forward = 00 FF C8 37
Backwards = 00 FF C0 3F
Right = 00 FF F0 0F
Left = 00 FF E0 1F
Pause = 00 FF D0 2F

אם ממשיכים להחזיק את הכפתור לחוץ, אז כל 96ms מופיע סיגנל התחלה (9ms) נוסף, אחריו 2.2ms של שקט, ועוד סיגנל קצר יחיד של 0.6ms.

פקודת השהייה מהשלט הרחוק, עם שידור "עוד פעם" מימין
פקודת השהייה מהשלט הרחוק, עם שידור "עוד פעם" מימין (לחצו להגדלה)

בפוסט הבא בנושא נתחיל לנתח את הרובוט עצמו.

להרשמה
הודע לי על
0 תגובות
Inline Feedbacks
הראה את כל התגובות