מותאם לתוכנית הלימודים
פרק רביעי, חלק שני כיתה ה'
מעודכן לשנת הלימודים תש"ף
עמודים: 189, 197, 203-204, 207, 224-227
בתכנית הלימודים
180 דקות עיוני משולב מעשי
חיישן מגע, לולאות ותנאים.
הקדמה:
בשיעור הקודם הילדים למדו מהם חיישנים ומה המשותף להם ולחושים שלנו.
הכרנו לילדים את המושגים בקרה בחוג פתוח ובקרה בחוג סגור והתקנו את חיישן המגע על הרובוט. בשיעור זה נכיר את חיישן המגע ונתכנת אותו תוך חזרה על נושא התנאים והלולאות שנלמד בכיתה ד'.
בשיעור הקודם התקנו את חיישן המגע על הרובוט, עתה הרובוט שלנו משתמש בבקרה בחוג סגור, הוא יכול לנוע בסביבה ולהגיב לקלט שיתקבל מחיישן המגע ואנו נתאים את התגובה הרצויה לנו בפלט הרובוט.
חיישנים יכולים להיות דיגיטליים או אנאלוגיים. רכיב דיגיטלי הוא רכיב המחזיר אחת מבין שתי אפשרויות-
כן או לא, 1 או 0 , אמת או שקר וכו'
חיישן המגע, מאפשר לנו לזהות מגע עם חפצים בסביבה. החיישן מכיל לחצן אדום בצורת צלב והוא כולל חריץ להכנסת ציר מוצלב.
החיישן קולט קלט דיגיטאלי. לחיצה על המתג האדום בחיישן המגע, סוגרת מעגל חשמלי, המעביר אות חשמלי המציין מגע . עיקרון הפעולה הוא סגירת מעגל חשמלי כשהוא נלחץ ופתיחתו כשהוא לא לחוץ.
החיישן מעביר לנו שני סוגי מידע:
לחוץ- מחזיר את המזפר 1
משוחרר- מחזיר את המספר 0
כדי לראות את הפלט 0 או 1 יש לדפדף בבקר הרובוט בעזרת החיצים, בחירה תעשה בעזרת כפתור הבחירה (הכפתור האמצעי).
בקשו מהילדים ללחוץ על החיישן ולראות בעצמם את השינוי מ-0 ל-1 בעת שהם לוחצים על חיישן המגע.
1 משמעותו חיישן לחוץ
0 משמעותו חיישן אינו לחוץ
כדי להקל על הילדים בתכנות, נוצרה לבנת תכנות "חיישן מגע לחוץ" כך שהילדים לא צריכים ליצור משוואה בעזרת המפעילים. ברגע שהם בוחרים בלבנת התכנות הזו, ברירת המחדל היא שחיישן המגע לחוץ. בלוק התכנות הזה ישמש אותנו בצירוף עם בלוקים נוספים של תנאים ולולאות.
עתה הרובוט החכם שלנו מוכן לנוע בסביבה עם מערכת בקרה בחוג סגור. הרובוט יקלוט מידע מהסביבה, אם חיישן המגע נלחץ או לא ויפעל בהתאם לקלט המתקבל. כדי לקבוע את סוג התגובה בהתאם לקלט עלינו להשתמש בתנאים.
אם התשובה שהוחזרה היא חיישן לחוץ מה תהיה תגובת (פעולת) הרובוט?
אם התשובה שהוחזרה היא חיישן משוחרר מה תהיה תגובת (פעולת) הרובוט?
התנאים בתוכנית יעזרו לנו לשלוט על מהלך התכנית. הם מאפשרים לנו לומר לתכנית להפעיל, או לא להפעיל פקודות מסוימות בהתאם לתנאים שהגדרנו. נוכל לגרום לתכנית "לקבל החלטות" במהלך הרצתה. בתכנות חיישן המגע, נשתמש בתנאי בוליאני, תנאי שתוצאתו יכולה להיות אמת (true) או שקר (false). כאשר התנאי מתקיים = אמת, תופעל פקודת התכנות הבאה אחריו. כאשר התנאי אינו מתקיים = שקר, התכנית לא תבצע את הפקודות הכתובות לאחר התנאי ותמשיך לפעול כפי שפעלה עד עתה.
בואו נזכר מה זה תנאי? תנו דוגמאות לתנאים.
דוגמאות:
נשאל- מה חשיבות התנאי בעבודה עם תכנית מחשב?
תנאי בתכנית מחשב, מאפשר לנו ליצור בקרה (שליטה) על רצף התכנית.
אם תנאי מסוים יתקיים, התכנית תמשיך ממקום מסוים ואם לא יתקיים, פעולה אחרת בתכנית תפעל.
נבחר במשחק המוכר לילדים:
בקשו מהילדים לבצע את משימה 1 "אבן, ניר ומספרים"בדף העבודה.
השלימו את התנאים:
כדי לתכנת את הרובוט יחד עם תנאים נחזור גם בקצרה על נושא הלולאות. בקשו מהילדים לבצע את תרגיל 2 בדף העבודה.
הביטו בתכנית הבאה וענו על השאלות הבאות:
א. אילו שורות בתכנית חוזרות על עצמן?
ב. מה הפלט של השורות החוזרות?
ג. כמה פעמים השורות הזהות חוזרות על עצמן?
ד. מה לדעתכם יהיה פלט הרובוט לתכנית זאת?
כתבו תכנית בה אורות הרובוט יפעלו ברצף של שלושה אורות שונים, בהגדרת "פועם", שיוצגו במרווחים של שניה אחת. הרצף יחזור על עצמו שש פעמים.
רשמו את האלגוריתם ולאחר מכן תכנתו את תכנית בסביבת Scratch והפעילו ברובוט.
הארה: ביציאה מהלולאה יש לכבות את צבע האור האחרון שהגדרתם.
בתרגילים הקודמים הילדים חזרו על לולאת חזור מספר פעמים.
נחזור ונגדיר את מושג הלולאה
לולאה היא סדרת פקודת החוזרות על עצמן. לולאה היא מבנה בקרה, כלומר, מבנה המארגן את זרימת ביצוע פקודות בתכנית מחשב/תסריט.
הילדים השתמשו ב- לולאת ' ח ז ו ר _ פ ע מ י ם '
לולאת 'חזור _פעמים' היא לולאה המתבצעת מספר פעמים ידוע מראש. בתרגיל שבצעתם עתה בדף העבודה, הרובוט שלנו יצר נסיעה בצורת ריבוע. לאחר מכן יצרנו לולאה שתפעל ארבע פעמים לביצוע אותן פקודות ליצירת צלע אחת וסיבוב של 90 מעלות.
לולאה המוגבלת על ידי מספר,
הלולאה מאפשרת חזרה על קבוצת פקודות מספר פעמים הנדרש לנו.
בואו ננסה לתת דוגמא מחיי היומיום:
אם המורה אומר לתלמיד לצאת החוצה מהכיתה למשך 15 דקות, ניתן לומר שהתלמיד פועל בלולאה החוזרת על עצמה 15 פעמים (כל דקה ציפייה בחוץ). סדרת הפקודות החוזרת על עצמה היא: חכה דקה מחוץ לכיתה.
התנאי לסיום הלולאה: עברו 15 דקות.
באופן זה, כל עוד לא עברו 15 דקות, ימשיך התלמיד ויבצע את פקודת “הישאר בחוץ”. לאחר שיסתיימו 15 הדקות תסתיים הלולאה והתלמיד יוכל להמשיך בתוכנית, כלומר להיכנס חזרה לכיתה.
קיימים כמה סוגי לולאות בהתאם לאופי התנאי המביא לסיומן:
אפשר לשאול את התלמידים:
האם אתם מכירים דוגמאות לפלט של מכשירים הפועלים בלולאות?
דוגמה:
רמזור פועל תחת לולאה, סידרת הפעולות אדום, כתום, ירוק חוזרת על עצמה כל הזמן.
מהו התנאי להפסקתה? אין תנאי, זוהי לולאה אינסופית כלומר ממשיכה ללא סוף- לולאת לעולמים.
מבנה
בקרה המאפשר ביצוע חוזר ללא סיום של קבוצת פקודות. הלולאה תתבצע אינסוף פעמים
ועצירתה תהיה על ידי לחיצה על כפתור חזור ברובוט שלנו.
הערה למורה-
בדרך כלל, מתכנתים, לא משתמשים במבנה של לולאה אינסופית- 'לעולמים', לעיתים זה אירוע של שגיאה שכותב הקוד לא הבחין שתנאי הלולאה לא מתקיים ויש ביצוע אינסופי. בשפת סקרטץ' ובמיוחד בתכנות משחקים ואנימציות יש שימוש יותר תדיר בלולאה 'לעולמים'. אנחנו נשתמש בלולאת 'לעולמים' במסגרת תכנית רובוטיקה ובמיוחד בהקשר לנושא חיישנים.
התכניות שכתבנו עד עתה, פעלו בצורה זהה בכל פעם שהרצנו אותן. למשל רובוט נוסע ישר למשך 5 שניות ועוצר, יבצע את אותו הפלט בכל פעם שנריץ את התכנית. דרך תכנות זאת נקראת תכנות במבנה סדרתי, תכנית מסוג זה כוללת הוראה אחת או יותר, המתבצעות על פי סדר הופעתן.
לדוגמה:
תכנית הבנויה במבנה תנאי , תכיל בתוכה תנאי שישפיע על מהלך התכנית.
נתחיל עם התנאי "חכה עד ש"
תרגיל "חכה עד ש"
התבוננו בתוכנית הבאה:
א. תארו מה יבצע הרובוט?
ב. השלימו את אלגוריתם הרובוט בשימוש עם התנאי חכה עד ש…
הרובוט ייסע ישר כל__________________________________________________________ כאשר התנאי יתקיים __________________________________________________________.
כאשר נשלב פקודה זאת בתכנית, כל הפקודות עד פקודה זו יבוצעו, הרובוט יבדוק אם התנאי מתקיים. רק אם הוא יתקיים יופעלו הפקודות הרשומות לאחר מכן.
כלומר, מבנה זה, "חכה עד ש…" מאפשר לנו לחזור על הפעולות הרשומות לפני התנאי שוב ושוב (מעין לולאה אינסופית) עד שהתנאי לו אנו מחכים יתממש, כלומר חיישן מגע ילחץ ויחזיר ערך 1. ברגע שהתנאי התממש הרובוט ימשיך בפלט הפקודות שנרשמו לאחר התנאי.
בפקודת "חכה עד ש…" יש מעין לולאתuntil שיש לה תנאי יציאה. "אם חיישן מגע לחוץ- צא מהלולאה ותמשיך לפקודה הבאה.
בקשו מהילדים לתכנת את התכנית ולבדוק האם היא מתבצעת כמצופה, הזכירו להם להגדיר את היציאה בחיישן המגע ל-1.
התכנית שרשמנו למעלה בעזרת "חכה עד ש.. יכולה להתבצע באופן דומה גם עם לולאת התנאי חזור עד ש…
לולאה מסוג "עד ש (until) מתרחשת כל עוד לא מתקיים תנאי הלולאה.
חזור עד ש... לולאה עם תנאי יציאה.
לולאת חזור עד ש... זהה בעצם לפקודת חכה עד ש... אך מאפשרת לנו להכניס אפשרויות נוספות בתוך הלולאה למשל נגן צליל, הבהב אורות שיופעלו בלולאה וכדומה.
עליכם להשתמש בבלוק בקרה "לולאת חזור עד ש" תכנתו והריצו את הרובוט.
האלגוריתם:
בתוך לולאת "חזור עד ש.." נרשמו פקודות התלויות בתנועת מנוע לאורך זמן. מבחינה לוגית התוכנית תבוצע על פי הסדר ורק לאחר ביצוע שלושת הפקודות, יבדק תנאי חיישן מגע לחוץ. כדאי שהילדים יבינו זאת מבחינה לוגית אם יתקלו בכך שילחצו על חיישן המגע ויראה להם שאינו מגיב מיידית כפי שאולי יצפו.
משפט 'אם' הוא מבנה בקרה על זרימת ביצוע תסריט. כשהמחשב מבצע קבוצת פקודות בכל שפת תכנות הוא מבצע את הפקודות באופן סדרתי, כלומר פקודה אחר פקודה. אולם לעיתים צריך לבדוק האם התרחש מצב מסוים ולפעול בהתאם לתוצאת הבדיקה. משפט 'אם' מאפשר, בשילוב ביטוי לוגי, לבצע קבוצת פקודת מסוימות רק אם התנאי שנבדק הוא 'אמת'.
התנאים "אם אז", "אם אז, אחרת"- מאפשרים לרובוט לבצע קבלת החלטות.
לולאת "אם אז" - מבנה בקרת זרימת ביצוע תוכנית של משפט זה מאפשר כתיבת קבוצת פקודות. אם התנאי אכן התקיים (אמת), יתבצעו הפקודות בתוך הלולאה. אם התנאי לא התקיים (שקר) התכנית תמשיך בביצוע הפקודות שהוצבו לפני התנאי.
אנחנו משלבים הוראות ביצוע בהתאם לתוצאת התנאי שנבדק. כדי שלולאת התנאי הנ"ל תבדוק את התנאי יותר מפעם אחת, עלינו להשתמש בלולאה שתקבע את מספר הפעמים בו התנאי ייבדק או להשתמש בלולאת לעולמים.
נגדיר את התנאי, לדוגמה חיישן מגע לחוץ , אם התנאי מתקיים, כלומר "אמת" תתבצענה הפקודות שרשומות במחיצה זו. אם התנאי אינו מתקיים והתכנית איננה בלולאה היא תסתיים.
לולאה זו מאפשרת לנו לקבל תשובה 'אמת' או 'שקר' למצבים שנבדקים בהוראות אלו, ואנחנו משלבים הוראות ביצוע בהתאם לתשובה מתנאי הבדיקה.
נגדיר את התנאי, לדוגמה חיישן מגע לחוץ , אם התנאי מתקיים, כלומר "אמת" תתבצענה הפקודות שרשומות במחיצה זו. אם התנאי אינו מתקיים, כלומר "שקר", תתבצע הפקודות הרשומות באזור האחרת.
כדי לחזור על ולתרגל את שני התנאים האלה, הפנו את הילדים למשימה 6 בדף העבודה:
הסבר :
הרובוט יסע ישר עד שמה שהגדרנו כתנאי, למשל עד שהחיישן נלחץ, יתקיים. הרובוט לא ימשיך לנסוע לאחר הלחיצה כי פקודות הפעל המנוע הן לפני התנאי ואינן בלולאה. לכן ויבוצעו עד קיום התנאי בלבד.
הסבירו לילדים שכאשר אנו שמים את התנאי בלולאת לעולמים, השאלה נשאלת שוב ושוב ושוב.
עתה נבקש מהילדים לבצע את תרגיל 7- תרגיל אבחנה בקוד הנכון.
א. רשמו את האלגוריתם לתוכנית א'
ב. מה שונה באלגוריתם תוכנית ב'?
ג. איזה תוכנית נכונה לדעתך? הסבר/י מדוע.
דיון כיתתי תרגיל 8 בדף העבודה
חיישן המגע הוא החיישן הראשון עמו עבדנו. החיישן מאפשר לרובוט לקבל משוב מהסביבה ולהגיב בהתאם לתכנית שנכתבה לו מראש.
כדי שנוכל להפיק תועלת מהמידע הנקלט על ידי החיישן עלינו לתכנת תכנית המאפשרת תנאים שונים הנבדקים מעת לעת ומאפשרים תגובה מתאימה לקלט שנקלט בחיישן.
כדי לחזור על בדיקת התנאים שוב ושוב עלינו להשתמש בלולאות המאפשרות חזרה על פקודות באופן מבוקר.
בפרק הבא נכיר חיישן חדש, חיישן אולטראסוניק.