סרט מדע בדיוני גרמני משנת 1927 היווה השראה לפרויקט מייקינג בקנה מידה שלא הגעתי אליו בעבר, ושדורש את כל כישורי המייקינג שלי – מתכנות מיקרו-בקרים והלחמות, דרך תכנון PCB וחיווט, ועד להדפסה בתלת ממד ומלאכת יד קלאסית. מטבע הדברים, התיאור שלו יתפרס על פני מספר פוסטים: כאן אתן את הרקע הדרוש כדי להבין את הסרט ואת הרעיון שלי.
הסרט "מטרופוליס", של הבמאי פריץ לאנג, מתרחש בעיר-ענק עתידנית (לפחות במושגי 1927) ובה שני מעמדות: המעמד העליון, העשיר והחופשי שנהנה מהחיים הטובים, ומעמד פועלים עלובי-חיים ומדוכאים, שמפעילים את המכונות החיוניות וחסרות-הרחמים מתחת לאדמה. פְרֶדֶר, בנו של ראש העיר, נתקל במקרה ומתאהב במריה בת המעמד הנמוך (היום היינו מכנים אותה "פעילה חברתית"), ובזכותה מגלה את עולמם העגום של הפועלים ונאבק לשנותו. בסיפור מתערבים בין השאר גם רוֹטוואנג, המדען המבריק והמרושע, והרובוט שלו – ה-"maschinenmensch" המפורסם – שלובש את דמותה של מריה באחת מהסצנות הקולנועיות האיקוניות של כל הזמנים.
הרקע והעלילה לא מחוכמים או הגיוניים במיוחד (היו מבקרים ששמו לב לזה כבר אז), והמשחק והכתוביות – זהו סרט אילם, כמובן – ייראו לצופה המודרני תיאטרליים עד מגוחכים. אבל צפייה ב"מטרופוליס" כסרט עלילתי רגיל היא פספוס של הפואנטה. ראשית, מפני שעיקר גדולתו היא באפקטים המיוחדים המדהימים לאותה תקופה, ושנית, כיוון שהרבה ממה שקורה שם הוא בכלל אקספרסיוניסטי וסימבולי – נועד לייצג רגשות, תפיסות ורעיונות מופשטים, ולא לצייר מציאות אמינה. דווקא משום כך יש בסרט סצנות שנחרתות בזיכרון בעוצמה לא צפויה.
כך, למשל, בשלב מסוים בסרט פרדר מגיע לאזור המכונות ורואה פועל מתמוטט מעייפות ליד מכשיר בקרה דמוי שעון. המכשיר מוקף נורות, והפועל חייב כל הזמן לסובב את המחוגים לעבר נורות שמתחילות להבהב, אחרת יקרה אסון נורא. פרדר מרחם על הפועל המותש, מחליף אותו, ונאלץ להפעיל בעצמו את המכונה במשך שעות ארוכות ללא הפסקה. בשלב מסוים הוא מתחיל להזות, ומדמיין את המכונה כשעון ממש – בן עשר שעות בלבד, אגב, כמו שעון המשמרות של מעמד הפועלים הבדיוני – שמסרב להתקדם. אז בוקעת מפיו הזעקה: "אבא-! אבא-! האם עשר שעות לא ייגמרו לעולם–??!!" (הפיסוק ההיסטרי במקור).
מכונת השעון, אם כן, אינה אמורה לדמות מכונה אמתית מבחינת התפקוד, ממשק המשתמש וכדומה. גם אם היו דברים מספיק דומים במציאות (חישבו על מרכזיות הטלפונים בתחילת המאה העשרים), הקטע כאן הוא סמלי לגמרי – האדם שמשועבד למכונה ולשעון הקרים והמנוכרים, לשגרה תובענית וחסרת לב וכל זה.
ויום אחד, לא יודע למה, עלה בדעתי לבנות מכונת שעון דומה. לא בקנה מידה מלא כמובן – אני לא בונה סט לסרט המשך ל"מטרופוליס" או לקליפ שמבוסס עליו – אבל כן משהו מספיק גדול כדי שאפשר יהיה לסובב בידיים מחוגים לעבר נורות מהבהבות. בשביל מה? זו שאלה שמייקרים בדרך כלל לא שואלים, וחוץ מזה, בטח יהיה משעשע ליצור משחק שכדי לנצח בו צריך לכוון מחוגים במשך עשר שעות תמימות… ואולי אפילו תהיה בזה אמירה אקטואלית על משהו. את הפרשנות אני משאיר לכם.
איך ניגשים לפרויקט כזה? שיקולי גודל, זמן, כמות עבודה ותקציב הוציאו מיד מהתמונה נורות ביתיות רגילות. לדים 10 מ"מ יספיקו. וגם לא צריך עשרות רבות כמו במכונה שבסרט – בסביבות עשרים זה די והותר. בהתחלה חשבתי לתקוע לדים במעגל על לוח כלשהו ולהלחים לכולם חוטים מאחורה, אבל הייתה שאלה אחרת, דחופה ומורכבת יותר: איך לגרום למכונה לדעת מתי מחוג מכוון לנורה הנכונה?
לשאלה הזו אפשר לגשת בשלוש דרכים (לפחות?) דרך אחת היא למדוד ישירות את הזווית של המחוג, ולהסיק ממנה לאן הוא מצביע. את זה אפשר לבצע למשל בעזרת אנקודר על ציר המחוג, או בעזרת חיישן ג'ירוסקופ/מצפן דיגיטלי. דרך שנייה היא לשים על המחוג חיישן שיזהה אם הנורה שנמצאת מולו היא הנכונה (למשל חיישן עוצמת אור), והדרך השלישית היא לזהות, באמצעים חיצוניים למחוג, לאן הוא מצביע.
שתי הדרכים הראשונות מצריכות תשתית פיזית על המחוגים עצמם, וזה אפשרי אבל לא נוח כשהמחוגים קטנים יחסית, ובמיוחד כשיש יותר ממחוג אחד. לכן בחרתי בדרך השלישית: אני אקבע בקצה כל מחוג מגנט זעיר, ועל לוח המשחק – בסמוך לכל נורה ומתחת לפני השטח – אציב חיישן hall effect שיידע לומר לי אם יש מחוג מעליו או לא. זה פתרון שמצריך הרבה חיישנים, אך הוא מדויק, אמין, נוח יותר להתקנה, מקל על החלפת מחוגים שנשברו/התעקמו (הם הרי החלק הנע הרגיש במערכת), וגם אסתטי מאוד.
אחרי מספר הערכות ומדידות החלטתי שמכונת השעון שלי תהיה בקוטר של כ-30 ס"מ, ויהיו בה 18 נורות. כדי לתפעל את זה אלקטרונית אזדקק ל-18 קוי פלט ול-18 קווי קלט עבור החיישנים. סביר להניח שחובבי ארדואינו טיפוסיים יחשבו מייד על לוח Mega, או על מולטיפלקסרים ו-Shift Registers ו-Charlieplexing, אבל אני חשבתי על הפייבוריט החדש שלי, ה-ATmega4809. לוחות מוכנים בשבילו כבר היו לי, ולמארז ה-TQFP שעליהם יש 41 פיני GPIO – מספיק למה שהזכרתי למעלה ועוד קצת, בלי רכיבים חיצוניים.
שאלה נוספת היא שאלת החשמל והחיווט. כל עוד מדליקים רק נורה אחת או שתיים בכל פעם, המיקרו-בקר יעמוד בזה, אבל מה קורה אם מאיזושהי סיבה רוצים לספק זרם לנורות רבות יותר? ואיך יגיעו קווי הפלוס והאדמה לכל חיישן ולכל נורה? כדי לפתור את שתי הבעיות האלה במכה אחת בחרתי לתכנן PCB ייעודי, אשר – בפעם הראשונה בשבילי – קווי המתאר שלו מעוקלים. כל לוח כזה מתפרס על פני עשרים מעלות מהמעגל, ומחזיק לד אחד, חיישן אחד, וטרנזיסטור להדלקת הלד בלי לשאוב יותר מדי חשמל ישירות מפין ה-GPIO. בקצות ה"זרועות" של כל לוח יהיו פדים לפלוס ולמינוס, כדי שאפשר יהיה להלחים את כולם ביחד וליצור טבעות של פלוס ושל אדמה כלליים. שאר הפדים הם לקריאת פלט החיישן והדלקת הלד, וכן לגישה נוחה לפלוס ולאדמה בעת הצורך.
זה מספיק לפוסט אחד. בפעם הבאה אספר על עבודות היצירה הנדרשות כדי להרים פרויקט כזה – או יותר נכון, לתלות אותו על קיר…