דלגו לתוכן המרכזי
KitLab
שיעור קודם
כל החיישנים יחד — משתנים והחלטה משוקללת· 9 / 16
כל החיישנים יחד — משתנים והחלטה משוקללת
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

כל החיישנים יחד — משתנים והחלטה משוקללת

מה בשיעור?

  • למה חיישן אחד לא מספיק
  • משתנים — מיכל לאחסון נתונים
  • אבני set ו-change ב-MakeCode
  • משימה: תגובה שונה לחום, לרעש ולחושך

כשכל החיישנים מדברים בבת אחת

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

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


הידע שצריך

למה חיישן אחד לא מספיק

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

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

הרעיון החדש: משתנים

עד עכשיו קראתם מהחיישן והשתמשתם בערך מיד. כשיש שלושה חיישנים זה נעשה מסורבל — וכאן נכנס כלי חדש.

משתנה הוא מיכל שמאחסן נתון. נותנים לו שם, שמים בו ערך, ומשתמשים בשם במקום בערך.

תרשים זרימה — שקלול שלושה חיישנים

למה זה עוזר כאן:

  • קוראים פעם אחת, משתמשים הרבה — במקום לקרוא temperature חמש פעמים
  • הערך יציב לאורך הבדיקה — כל ההשוואות מתבצעות על אותה מדידה בדיוק
  • הקוד קריאטמפרטורה > 30 ברור יותר מסתם מספר שצץ באמצע

אבני המשתנים

יצירת משתנה חדש

Make a Variable — יוצרים משתנה ונותנים לו שם. כדאי שם שמסביר מה יש בפנים.

אבן set variable

set ... to ... — שמים ערך במשתנה. לדוגמה: set טמפרטורה to temperature.

אבן change by

change ... by ... — מגדילים או מקטינים את הערך הקיים. שימושי למונים.


משימה: עוזר חקירות אמיתי

הרובוט נוסע קדימה ב-50% ומציג GO!, ובמקביל בודק שלושה דברים:

מה קרה תגובה
טמפרטורה מעל 30℃ או מתחת ל-10℃ עוצר ומשמיע מנגינת אזעקה
רעש חזק מדי עוצר מיד ומציג אייקון
אור חלש (מתחת ל-100) מדליק פנסים לבנים ומאט ל-20%

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

התוכנית

התוכנית של שיעור 9

מריצים — שלוש בדיקות נפרדות

הדליקו את הרובוט. הוא יתחיל לנסוע ב-50% ויציג GO!. עכשיו בדקו כל חיישן בנפרד:

  1. חום — כסו את הכרטיס בכף היד. כשהטמפרטורה עוברת 30℃, הרובוט אמור לעצור ולהשמיע מנגינה.
  2. רעש — בסביבה שקטה, פתאום צעקו (או הפעילו מוזיקה חזקה בטלפון). הרובוט אמור לעצור מיד.
  3. אור — האירו עם פנס: מעל 100 הוא נוסע רגיל. הסירו את הפנס — הפנסים נדלקים לבן והמהירות יורדת ל-20%.

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


מתקדמים

אתם בודקים את הרובוט בהתרגשות: "עכשיו TinkerBott מתמודד עם אור, חום וקול — בבת אחת!"

בהובלת הרובוט, אתם והמפקח לומי ממשיכים אל האמת.


נסו בעצמכם

  • הוסיפו משתנה רביעי שסופר כמה פעמים הופעלה אזעקה. השתמשו ב-change ... by 1.
  • שנו את סדר הבדיקות בתוכנית. האם זה משנה את ההתנהגות? מתי כן?
  • מה קורה כשגם חם וגם חשוך? איזו תגובה מנצחת, ולמה?
  • הוסיפו חיישן חמישי לשקלול: המצפן. שהרובוט יתריע אם הוא פונה דרומה.

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

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