درس ۲۰ روبی: فاصلهسنج و حسگر distanceFront
خیلی از رباتهای واقعی با حسگر التراسونیک فاصله را اندازه میگیرند. در درس ۲۰، ربات روبی هم با distanceFront میفهمد مانع روبهرو چقدر دور است.
هدف درس فاصلهسنج
تا اینجا حسگرها یا بله و خیر میگفتند یا نام رنگ را. در درس ۲۰ روبی، حسگر یک عدد برمیگرداند. هدف این است که کودک بتواند با مقایسههای بزرگتر و کوچکتر، مثل distanceFront > 1، تصمیم بگیرد.
در پایان، دانشآموز میداند حسگر عددی چه مزیتی نسبت به frontIsWall دارد: روبی نه فقط میفهمد دیوار هست یا نه، بلکه میفهمد چقدر با آن فاصله دارد.
مفهوم برنامهنویسی: مقدار عددی و عملگرهای مقایسه
در برنامهنویسی، مقدارها فقط درست و نادرست نیستند؛ عددها هم بخش مهمی از دادهاند. عملگرهای > و < و == عدد حسگر را به یک جواب بله یا خیر تبدیل میکنند تا در if و while به کار بروند.
روبی چهار حسگر فاصله دارد: distanceFront، distanceBack، distanceLeft و distanceRight. این درس روی distanceFront تمرکز دارد. برای والدین: همین منطق در سنسور دندهعقب خودرو هم هست که با کم شدن فاصله، بوق را سریعتر میکند.
فعالیت قدمبهقدم با ربات روبی
در یک ماموریت نمونه، روبی باید دقیقاً یک خانه مانده به دیوار بایستد و بعد بچرخد. برنامه: while distanceFront > 1: forward و سپس turnRight. روبی تا وقتی فاصلهاش با مانع بیشتر از یک است جلو میرود.
در حالت بلوکی، بلوک «♾️ تا وقتی» را میگذاریم، در شرط آن حسگر distanceFront را با عدد مقایسه میکنیم و «⬆️ جلو» را داخل حلقه قرار میدهیم. بعد از حلقه «↻ راست» میآید. میتوان distanceLeft و distanceRight را هم مقایسه کرد تا روبی به سمتی بچرخد که جای بیشتری دارد: if distanceLeft > distanceRight: turnLeft else: turnRight.
- ✅ ببین روبی باید در چه فاصلهای بایستد
- ✅ عدد مناسب را در شرط while بگذار
- ✅ بعد از حلقه، تصمیم بعدی را بگیر
- ✅ نقشه را عوض کن و دوباره امتحان کن
اشتباههای رایج و راه رفعشان
رایجترین خطا، اشتباه بین > و < است؛ با while distanceFront < 1: forward حلقه از همان ابتدا اجرا نمیشود. خطای دیگر انتخاب عدد نادرست است که باعث میشود روبی یک خانه زودتر یا دیرتر بایستد.
راه رفع: قبل از اجرا، کودک عدد حسگر را در موقعیت شروع و موقعیت هدف حدس بزند و روی کاغذ بنویسد. بعد با اجرای قدمبهقدم ببیند حدسش درست بوده یا نه. این تمرین دقیقاً همان کاری است که مهندسان هنگام تنظیم حسگر انجام میدهند.
اشتباه سوم استفاده از حسگر جهت نادرست است؛ مثلاً کودک distanceBack را بررسی میکند در حالی که روبی رو به جلو حرکت میکند. یادآوری کنید که نام هر حسگر جهت آن را نشان میدهد و باید با جهت حرکت ربات روبی هماهنگ باشد.
فعالیت بدون کامپیوتر: ربات خفاشی
توضیح دهید خفاشها با صدا فاصله را میفهمند، درست مثل حسگر التراسونیک. یک کودک چشمبسته به سمت دیوار برود و همکلاسیاش در هر قدم تعداد قدمهای باقیمانده تا دیوار را بگوید. قانون این است: «تا وقتی عدد بیشتر از یک است، جلو برو».
بعد عدد قانون را عوض کنید، مثلاً «تا وقتی بیشتر از سه است» و ببینید کودک کجا میایستد. بچهها با چند بار تکرار متوجه میشوند که تغییر یک عدد در شرط، رفتار ربات را بهطور کامل تغییر میدهد. این تجربه آنها را برای انتخاب دقیق عدد در برنامهی ربات روبی آماده میکند.
نکته برای معلم و والدین
این درس را با درس ۱۶ مقایسه کنید: frontIsWall فقط در آخرین لحظه هشدار میدهد، اما distanceFront از دور خبر میدهد. پرسش «کدام حسگر برای این ماموریت بهتر است؟» کودک را به انتخاب آگاهانهی ابزار، یکی از مهارتهای مهم تفکر الگوریتمی، عادت میدهد.
برای چالش اضافه، از سریعترها بخواهید برنامهای بنویسند که روبی با مقایسهی distanceLeft و distanceRight همیشه به سمت بازتر بپیچد. این تمرین آنها را برای درس بعد آماده میکند، جایی که روبی باید بدون دانستن نقشه راه خودش را در هزارتو پیدا کند. در جمعبندی جلسه هم بپرسید کدام حسگر در کدام موقعیت کمک بیشتری کرد.
سوالهای پرتکرار
حسگر التراسونیک چیست؟
حسگری که با فرستادن صوت و شنیدن بازتاب آن فاصله را میسنجد. distanceFront در روبی شبیهسازی همین حسگر برای جهت جلو است.
روبی چند حسگر فاصله دارد؟
چهار حسگر: distanceFront، distanceBack، distanceLeft و distanceRight برای چهار جهت.
آیا کودک باید با علامتهای بزرگتر و کوچکتر آشنا باشد؟
آشنایی ریاضی پایهی چهارم کافی است. این درس در واقع کاربرد عملی همان علامتها را نشان میدهد.