שיעור 11 - בונוס

זינוק בעזרת שלט

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

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

איך נעשה את זה?

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

 

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

קדימה לעבודה!

שלב 1: הביאו שלט

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

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

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

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

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

שלב 2: קריאת החיישן

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

שנו את הקוד על פי הסרטון:

העלו את הקוד.

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

שלב 3: שילוב החיישן בקוד המרוץ שלנו

המרוץ שלנו מוזנק על ידי לחיצה על כפתור, על מנת לבצע את הזינוק על ידי שלט, אנחנו נצטרך לעשות 3 שינויים קטנים בקוד:
1) במקום לקרוא את שן 14 (כפתור) נקרא גם את שן 10(חיישן אינפרה אדום).
2) חיישנים שונים עובדים באופן שונה,
הערך של הכפתור היה "0" כשהוא לא היה לחוץ ו"1" במצב של לחיצה.
בחיישן האינפרה אדום המצב בדיוק הפוך:
כאשר החיישן קולט אור אינפרה אדום הערך שלו הוא "0" וכשהוא לא קולט כלום הערך שלו הוא "1".
3) אנחנו צריכים להוסיף המתנה קצרה של עשירית שניה, הסיבה לכך היא שלחיישן לוקח קצת זמן לעבוד ואם ארדואינו יפנה אליו בקצב מאוד גבוהה כל פעם שהלולאה שלנו רצה (היא רצה אלפי פעמים בשניה) החיישן לא יספיק "לנוח" ויכול לספק נתונים לא נכונים.

בצעו את השינויים בקוד על פי הסרטון

שלב 4: הוספת המתנה

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

בצעו את השינויים בקוד על פי הסרטון והעלו את הקוד:

נסו להזניק מרוץ על ידי שימוש בשלט!

 

 

שלב 5: חזרה לזינוק רגיל

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

 

זהו! עכשיו אפשר להתקדם לשיעור הבא ולהציג את מספר המקצה על המסך!