עצור סיסמה: רספברי פיי בעולם האמתי, חלק א'

כל השלבים בבניית מערכת קטנה מבוססת Raspberry Pi, שמאפשרת שליטה בממסר חשמלי דרך פקודות ממקלדת USB סטנדרטית – ועם דגש על הצד הפרקטי של מערכת שצריכה לעבוד היטב בשטח.

הלב של המערכת העתידית: רספברי פיי זירו (הדגם הפשוט)
הלב של המערכת העתידית: רספברי פיי זירו (הדגם הפשוט)

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

שלב 1: מהן בעצם הדרישות?

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

  • מקלדת רגילה, שכאשר מקלידים בה את הסיסמה הסודית (לצורך העניין 'עוץ לי גוץ לי'), הממסר נסגר

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

  • מה מקור הכוח של המערכת? (רשת החשמל)
  • לכמה זמן הממסר צריך להישאר סגור? (כ-10 שניות)
  • מהם מאפייני הממסר הדרוש? (שיוכל לתמוך בהדלקה של לד)
  • האם תווי הרווח נחשבים חלק מהסיסמה? (כן)
  • האם מותר לתקן את ההקלדה בעזרת backspace? (כן)
  • האם הקלדת הסיסמה צריכה להסתיים בלחיצה על Enter? (כן)
  • האם צריך להתחשב באפשרות של החלפת עברית/אנגלית? (לא)
  • האם צריך לשלב אופציה לשינוי הסיסמה ע"י המפעיל בעתיד? (לא)

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

שלב 2: החומרה הספציפית

נתחיל מהמקלדת, שצריכה להיות כאמור מקלדת מחשב רגילה. כיום קשה מאוד למצוא מקלדות שהן לא עם חיבור USB, אז זה מה שניקח – ומכאן נובע שהחומרה שתקרא את הקלט מהמקלדת צריכה לתמוך ב-USB. מחשב רגיל יהיה מן הסתם יקר מדי למשימה הזו, אז נלך על משהו זול ומוכר שיכול גם להתממשק ישירות לממסר קטן: Raspberry Pi Zero 1.3 (הדגם שאין לו אפילו WiFi). ישנם מחשבים זעירים נוספים שיכולים לעשות את העבודה, אך ה-Zero זמין יחסית, יש עליו המון חומר ברשת והוא מוכן לעבודה כמעט מהקופסה.

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

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

שלב 3: הדרישות הסמויות מהעין

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

ספציפית במקרה הזה, אני מדבר על מערכת ההפעלה של הרפסברי פיי. כדי לא להסתבך נבחר מן הסתם בהפצת הלינוקס הטבעית לפיי – Raspbian, וכמו כל מערכת הפעלה טובה, היא שמה לב למה שקורה במקלדת ומגיבה לצירופי מקשים כמו Ctrl+Alt+Del. זו לא בעיה ביחס לדרישות המקוריות, אבל זו כן יכולה להיות בעיה ביחס לסביבה שבה המערכת אמורה לפעול (מה שמזכיר מאוד, אגב, את הנושא של הפוסט הזה). ברגע שאנחנו מציבים מערכת כזו בחדר בריחה ונותנים לאנשים שאנחנו לא מכירים להתעסק איתה, במוקדם או במאוחר יגיע החכמולוג שילחץ על צירוף המקשים הזה, או צירוף מסוכן אחר (כגון Ctrl+C בלינוקס), וישבש את הפונקציונליות של המערכת.

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

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

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

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

מעניין, תודה.