فاصلهسنجهای روبی: چند خانه تا دیوار؟
حسگر دیوار فقط بله یا خیر میگوید؛ فاصلهسنج یک عدد میدهد. ربات روبی با آن میفهمد دیوار چقدر دور است.
فاصلهسنج چه کار میکند؟
distanceFront از خانهی جلوی روبی شروع میکند و خانههای باز را میشمارد تا به لبهی نقشه، یک مانع سفت یا آب برسد. اگر درست جلوی روبی دیوار باشد، عدد صفر است. distanceBack، distanceLeft و distanceRight همین را برای پشت سر، چپ و راست روبی انجام میدهند.
این فاصلهسنجها مثل حسگر التراسونیک یک ربات واقعی حداکثر تا ۲۰ خانه را اندازه میگیرند. شکل کوتاهتر Front، Back، Left و Right هم وجود دارد که سقف بالاتری دارد. فاصلهسنج یک عدد است و با عملگرهای کوچکتر، بزرگتر و مساوی با یک عدد مقایسه میشود؛ اگر تنها در شرط بیاید، بزرگتر از صفر بودن معنی میدهد.
شکل بلوکی و شکل کد
فاصلهسنجها مخصوص حالت کد هستند. در آزمایشگاه آزاد روبی یک پنل زنده مقدار هر چهار فاصلهسنج را هنگام حرکت ربات نشان میدهد.
- ✅ جلو: distanceFront یا Front یا جلو_فاصله
- ✅ پشت: distanceBack یا Back
- ✅ چپ و راست: distanceLeft و distanceRight یا Left و Right
- ✅ مقایسه: if distanceFront < 2:
یک مثال کوچک با ربات روبی
روبی باید درست یک خانه مانده به دیوار بایستد: while distanceFront > 1: forward. یا برای انتخاب راه بازتر در یک دوراهی: if distanceLeft > 3: left، else: right. این برنامهها روی نقشههای مختلف بدون تغییر کار میکنند.
برای دیدن عددها هنگام حرکت، برنامه را در آزمایشگاه آزاد اجرا کنید و پنل حسگرها را تماشا کنید.
اشتباههای رایج
Left و Right در شرط یعنی فاصله، اما left و right بهتنهایی در یک خط یعنی چرخش. این دوگانگی برای تازهکارها گیجکننده است؛ اسم کامل distanceLeft خواناتر است.
- ✅ انتظار اینکه فاصله تا خود دیوار هم شمرده شود؛ عدد فقط خانههای باز است
- ✅ مقایسهی فاصله با چیزی غیر از عدد
- ✅ فراموش کردن سقف ۲۰ خانه در نقشههای بزرگ
در کدام درسها و لیگها استفاده میشود؟
فاصلهسنج موضوع اصلی درس ۲۰ «فاصلهسنج» است و در درس ۲۱ «هزارتو» برای انتخاب مسیر هم کاربرد دارد. در تمرینهای لیگ ۳ و لیگ ۴ هم کنار حسگرهای موقعیت دیده میشود.
نکته برای والدین و معلم
از کودک بخواهید قبل از اجرا عدد فاصلهسنج را پیشبینی کند و بعد با پنل زنده مقایسه کند. پیشبینی و سنجش، همان چرخهی آزمایش علمی است و ریاضی را هم وارد بازی میکند.
سوالهای پرتکرار
بیشترین عدد distanceFront چند است؟
۲۰ خانه؛ مثل حسگر التراسونیک یک ربات واقعی.
اگر جلوی روبی دیوار باشد distanceFront چند است؟
صفر.
آیا آب هم فاصلهسنج را متوقف میکند؟
بله؛ آب، مانع سفت و لبهی نقشه همه پایان شمارش هستند.