לצעצוע האלקטרוני החינוכי TOMY Teacher היו שלוש מהירויות לבחירה, כאמצעי לתת לשחקן יותר או פחות זמן לפתור כל שאלה, וכך לשנות את קושי המשחק. כדי שאוכל לשחזר את המהירויות האלה בפרויקט שלי ביצעתי הן מדידות אמפיריות והן חישובים על הנייר. השילוב הוביל לא רק לדיוק גבוה יותר מזה של היחידה שאצלי, אלא גם לגילוי סוד של ה-TOMY – מהירות רביעית שאיש לא שיחק בה מעולם!
איך עבד השעון של ה-TOMY
באחד מהפוסטים הישנים שלי על הטומי דיברתי קצת על השעון. הפעם אסביר אותו יותר לעומק, כי בלי זה אי אפשר להבין את ההמשך.
המיקרו-בקר שבלב המשחק הוא פריט פרהיסטורי, ובהתאם לכך, השעון שקובע את מהירות הפעולה שלו מבוסס על רכיבים חיצוניים פשוטים – נגד וקבל. זה עובד ככה:
- חשמל מהסוללות עובר דרך הנגד וטוען את הקבל.
- כשהקבל מגיע למתח סף מסוים, מעגל פנימי במיקרו-בקר מזהה זאת ומרוקן אותו.
- חזרה לשלב 1…
הסבב הזה מתרחש עשרות או מאות אלפי פעמים בשנייה, וזה מה שמכתיב את קצב העבודה של המיקרו-בקר. ככל שהנגד בעל ערך גבוה יותר, כך זורם דרכו פחות חשמל, זמן הטעינה של הקבל גדל, וקצב השעון יורד. גם להיפך כמובן, נגד עם ערך נמוך יותר יביא לקצב שעון מהיר יותר.
בתמונה הבאה מוצג קטע המעגל בטומי המקורי שמשפיע על מהירות המשחק. מעליו, הצד התחתון של חלק הפלסטיק הכחול שהמשתמש מזיז כדי לשנות את המהירות. שימו לב שכדי לצלם את שניהם באותה תמונה הייתי חייב להפוך את הפלסטיק "על הגב", ולמעשה אם הכול היה מורכב יחד, שני החצים הצהובים היו מצביעים לאותו כיוון!
משמאל לנורת הלד האדומה (מסומנת LN28RP-T) נמצאים שלושה נגדים. הנגד הימני מביניהם, שמסומן 56KΩ, מחובר באופן קבוע לקבל. החיבורים הפיזיים הם מהצד השני של הלוח ולא נראים בתמונה. לשונית המתכת האופקית העליונה (מסומנת S-A), כאשר לוחצים אותה למטה, מחברת במקביל לנגד הקבוע את הנגד השמאלי, 150KΩ, ואילו הלשונית S-B מחברת במקביל את הנגד האמצעי 91KΩ.
לחלק הפלסטיק הכחול יש שתי בליטות באורכים שונים, גבוהות מספיק כדי ללחוץ על הלשוניות כשהצעצוע מורכב נכון. הפעילו את הדמיון החזותי ותראו שכברירת מחדל אף לשונית לא לחוצה ורק נגד 56KΩ מחובר; אם מזיזים את בורר המהירויות לאמצע, לשונית S-A נלחצת על ידי הבליטה הארוכה ויש לנו את 56KΩ ואת 150KΩ במקביל, וכשמזיזים את הבורר עד הסוף אז גם S-B נלחצת, על ידי הבליטה הקצרה, וכל שלושת הנגדים מחוברים במקביל.
בשיעור השני באלקטרוניקה בסיסית לומדים שחיבור של נגדים נפרדים במקביל הוא שווה ערך לנגד בודד עם ערך נמוך יותר. יש נוסחה לזה, ויש מחשבונים ברשת שחוסכים לנו אפילו את החישוב. נכניס מספרים לאחד מהמחשבונים האלה ונראה:
56K = 56K
56K || 150K = 40.78K
56K || 150K || 91K = 28.16K
הסימן "||" מציין, במקרה זה, נגדים במקביל. זו, אם כן, הדרך שבה הזזת בורר המהירויות קובעת את מהירות השעון של המיקרו-בקר, ובעקבותיה את המהירות של כל מה שקורה במשחק. בחישוב פשוט, אנחנו יכולים גם להסיק את היחס המדויק בין המהירויות. אם נגדיר את מהירות ברירת המחדל (איטית) כ-1, אז מהירות הביניים היא 40.78 חלקי 56, שזה 0.728 מהמהירות האיטית, ואילו המהירה היא 28.16 חלקי 56, שזה 0.503 מהאיטית.
המהירות שלא הייתה
וכאן מסתתר סוד קטן נוסף של הטומי (הקודם היה המבחנים הגנוזים). במשחק המקורי אין לנו שום מצב שבו רק הלשונית S-B לחוצה. זה או ביחד עם S-A, או בכלל לא. מה היה קורה אם השחקן היה מסוגל ללחוץ רק עליה? החישוב הוא
56K || 91K = 34.67K
34.67 / 56 = 0.619
כלומר, במעגל החשמלי חבויה מהירות משחק נוספת, בערך באמצע בין הבינונית למהירה, שאף אחד לא שיחק בה מעולם (אלא אם היה לכלוך על המגע של S-A ולא שמו לב.)
הבהובים ותזמונים
חזרה לפרויקט השיחזור. כאשר הטומי ממתין לתשובה מהמשתמש הוא מהבהב עשר פעמים בנורת הלד שלצד החידה המודפסת, וההבהובים מלווים בצפצופים קצרים. כמה זמן נמשך כל הבהוב וכל צפצוף, ומה התדר של הצפצופים? בדקתי כל מיני מקומות במעגל בעזרת סקופ וגיליתי ש:
- במהירות נמוכה: הבהוב כ-980 אלפיות שנייה בכל אחד מהמצבים (ON/OFF), צפצוף בתדר 1070Hz למשך כ-43 אלפיות שנייה (מסונכרן עם הידלקות הלד)
- בינונית: הבהוב 750 אלפיות שנייה, צפצוף 1390Hz למשך 36 אלפיות שנייה.
- גבוהה: הבהוב 550 אלפיות שניה, צפצוף 1890Hz למשך 25 אלפיות שנייה.
את התדרים הסקופ חישב בעצמו, אבל התזמונים הם "לפי העין" ולא לגמרי מדויקים. בהתחשב בזה, בואו נבדוק. 550 חלקי 980 זה 0.56, ו-720 חלקי 980 זה 0.734. לא אחד-לאחד אבל דומה ליחסי המהירויות שחישבתי לפי הנגדים. נעשה את אותו הדבר עם התדרים, בלי לשכוח שבתדרים זה הפוך – מספר יותר קטן אומר אורך גל גדול יותר. 1070 חלקי 1390 זה 0.77, ו-1070 חלקי 1890 זה 0.566.
אז אנחנו רואים, כפי שהסברתי למעלה, שבחירת המהירות משפיעה באותו אופן על כל מה שקורה במשחק – גם זמנים וגם תדרי צליל. חלק מההבדל בין היחסים המחושבים לבין היחסים שנמדדו אפשר לייחס לשגיאות מדידה, אבל יש גורם נוסף ופרוזאי לא פחות: הנגדים לא מדויקים. אפילו כיום, אם לא קונים במיוחד סוג מדויק ויקר יותר, הערך של נגד טיפוסי יכול לסטות באחוז שלם מהערך הנקוב. בתקופה שהטומי יוצר, גם דיוק של 5% נחשב סבבה לגמרי, וייתכן שארבעים השנים שחלפו מאז הייצור תרמו גם הן משהו. מדדתי עם מולטימטר את הנגד שמסומן 56KΩ וקיבלתי ערך 55.25KΩ. הבדל של כאחוז וחצי, והיחס בין הערכים הוא 0.987. המספר הזה נראה לי דומה להחשיד למשך ההבהוב במהירות האיטית, בערך 980 אלפיות שנייה. לאור זאת, נראה לי הגיוני מאוד לשער שהמתכננים כיוונו להבהוב של 1000 אלפיות שנייה, כלומר שנייה עגולה אחת. לא ככה?
ובואו נסתכל על התדר, 1070 הרץ. אם הנגד היה מדויק לגמרי, התדר הזה היה 1055 הרץ, וזה קרוב מאוד לתו C6 (1046.5 הרץ, לפי הטבלה). די בטוח שהתכנון, לפחות עבור אחת המהירויות, היה להפיק צלילים לפי תווים "נכונים" ולא סתם תדרים בעלמא.
השלב הבא
לכל החישובים והממצאים האלה יש שתי השלכות חשובות. אחת, לא צריך יותר למדוד כל פרמטר בכל אחת מהמהירויות: מספיק לבדוק במהירות אחת, ומזה לחשב איך הפרמטר ישתנה במהירויות האחרות, לפי היחסים הקבועים שמצאתי. שתיים, עם מיקרו-בקר מודרני – אפילו אם לא משתמשים בגביש שעון חיצוני אלא רק בשעון הפנימי שלו, כפי שעשיתי בחומרה בינתיים – אפשר להגיע לדיוק זמנים טוב יותר משל הטומי, וכיוון שאני יודע מה עבר בראש של המתכננים, אוכל לשחזר לא סתם את היחידה הספציפית שאצלי, אלא את הטומי כפי שתוכנן במקור!
המשך יבוא…