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

הצגת מספר המקצה

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

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

מה זה משתנים?

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

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

אנחנו יכולים להוציא את המספר ״1״ , ולהכניס במקומה מספר אחר, נניח ״2״ או ״3״.

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

מתי משתמשים במשתנים?

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

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

שלב 1: יצירת משתנה

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

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

שלב 2: הגדרת ערך התחלתי

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

הגדירו ערך התחלתי למשתנה על פי המוצג בסרטון:

שלב 3: הגדלת ערך המשתנה

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

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

שלב 4: הצגת מספר המקצה על המסך

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

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

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

העלו את הקוד וזו התוצאה שתראו על המסך לאחר שתלחצו על כפתור הזינוק (תראו איך המספר משתנה כאשר אתם מזניקים מקצים נוספים):

שלב 5: עיגול!

תוכנת mBlock מתייחסת למשתנים כמספרים עשרוניים ולכן מספר המקצה מוצג עם שתי ספרות אחרי הנקודה.
כמובן שזה לא כל כך הגיוני ואנחנו צריכים להציג כאן מספר שלם, לשם כך נשתמש בבלוק ״עיגול״.
הבלוק הזה יעגל את מספר המקצה למספר שלם, לדוגמה 1.00 יהפוך ל1, 2.00 יהפוך ל2 וכך הלאה.

בצעו את השינויים בקוד:

זו התוצאה שתקבלו:

שלב 6: שיפור התצוגה

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

זו התוצאה שנרצה לקבל:

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

תחת התפריט ״מסך LCD" יש שני בלוקים מאוד דומים, נסביר את ההבדל ביניהם:

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

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

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

סיימנו! 

כל הכבוד! סיימתם את השיעור.

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