הסבר מורחב
לקחנו פקודה ירוקה ממפעילים, פקודת שווה, בתוכה שמנו את פקודת מדוד חיישן צבע ובאופציות שיש בפקודה נבחר את "צבע" שזה המצב בו הוא מודד צבע. מצב "עוצמת אור" הוא המצב בו החיישן ישמש כמד עוצמת אור.
אנחנו נחכה עד ש… חיישן צבע יחזיר ערך 5 אותו מדדנו מקודם בבקר ובדקנו במפתח הצבעים שהוא שווה לצבע אדום. הלוגיקה העומדת מאחורי התוכנית היא כזאת:
הפקודה הראשונה מדליקה את המנועים וגורמת לרובוט לנסוע ישר ללא הגבלת זמן/סיבובי מנוע/מעלות מנוע. את מהירות המנועים קבענו ל-30 כדי שהביצוע יהיה מדויק יותר. במהירות 100 זמן העצירה יכול לגרום לכך שהרובוט לא ייעצר על הצבע עצמו.
המנועים ימשיכו לפעול עד ש יתקיים התנאי בפקודת "חכה עד ש…" למעשה התוכנית נתקעת בפקודת חכה עד ש. ובודקת שוב ושוב מה הצבע של המשטח, רק כאשר החיישן יראה צבע אדום התוכנית תמשיך לפקודה האחרונה והרובוט יעצור.
אם נרצה לעצור על פס בצבע אחר כל מה שנצטרך לעשות הוא לשנות את ערך התנאי בחכה עד ש…
בואו נראה ביצוע של שתי תוכניות כאלה. בסרטון הראשון הרובוט נוסע עד זיהוי צבע אדום ובשני נוסע עד זיהוי צבע ירוק.