طرح درس کدهای لیگ خانه هوشمند

این کدها روی نسخه‌ی 2.1.1 اجرا شده‌اند. برای آموزش، نمای بالای مسابقه را روشن کنید.

شروع کار

  1. برنامه را باز کنید و رده را انتخاب کنید.
  2. از صفحه‌ی آماده‌سازی، هلپر رده یا ویرایشگر کد را باز کنید.
  3. کد را بسازید و «بازی با این کد» را بزنید.
  4. پنل Sensors را روشن کنید تا عددها زنده دیده شوند.

چرخ راست تندتر یعنی پیچ به چپ. گوشه‌ی بالا-چپ نمای مسابقه (0,0) است و y رو به پایین زیاد می‌شود. heading برابر ۰ راست، ۹۰ پایین، ۱۸۰ چپ و ۲۷۰ بالاست.

First Step: واکنش با سه چشم

کجا اجرا شود: هلپر AI یا هلپر بلاکی FS.

if bumperfront == 1 and movetime == 0:
    wheelleft = -8
    wheelright = -25
    movetime = seconds(0.6)
elif front < 60 and movetime == 0:
    wheelleft = 18
    wheelright = -18
    movetime = seconds(0.5)
elif frontleft < 45 and movetime == 0:
    wheelleft = 18
    wheelright = -18
    movetime = seconds(0.3)
elif frontright < 45 and movetime == 0:
    wheelleft = -18
    wheelright = 18
    movetime = seconds(0.3)
else:
    wheelleft = 25
    wheelright = 25

ربات چه می‌کند: با تمام سرعت جلو می‌رود. به دیوار نزدیک شود به راست می‌چرخد و مانع هر سمت را با چرخش به سمت مخالف رد می‌کند.

U14: رنگ، قطب‌نما و اتاق

کجا اجرا شود: هلپر AI یا هلپر بلاکی U14. در هر دو، حرکت «بچرخ تا جهت» با قطب‌نما کار می‌کند.

elif color == green:
    state = 2
    timer = 10
    wheelleft = -25
    wheelright = -25

ربات چه می‌کند: رنگ سبزِ جلوی نوک را می‌بیند، یک ثانیه با قوس عقب می‌رود و به تمیزکاری برمی‌گردد.

U14: شماره‌ی اتاق به چه درد می‌خورد؟

room می‌گوید ربات کجای خانه است: ۰ هال، ۱ آشپزخانه، ۲ و ۳ و ۴ اتاق‌خواب، ۵ سرویس. clean2 می‌گوید چند درصد اتاق ۲ رنگ تیم شده. با این دو، ربات می‌فهمد کی اتاق را رها کند.

کجا اجرا شود: دکمه‌ی «آموزش» در برنامه، رده‌ی U14، درس ۷.

if room == 2 and clean2 > 8:
    err = 0 - heading
    if err < -180:
        err = err + 360
    if abs(err) > 12:
        wheelleft = -18
        wheelright = 18
        if err > 0:
            wheelleft = 18
            wheelright = -18

ربات چه می‌کند: اتاق را تمیز می‌کند، رو به در می‌چرخد و بیرون می‌رود. جهت در را باید از نقشه خواند.

خروج با هلپر: در هلپر AI یا بلاکی U14، بخش «خروج از اتاق تمام‌شده» را باز کنید. اتاق را انتخاب کنید، درصد را ۶۰ بگذارید و «افزودن» را بزنید. ربات وقتی آن درصد از اتاق را تمیز کرد، با دو حرکت قطب‌نمایی از در بیرون می‌رود. این مسیرها برای خانه‌ی پیش‌فرض اندازه‌گیری شده‌اند.

خط اشتباه: اگر خطی درست نباشد، بازی شماره‌ی همان خط را نشان می‌دهد، از آن رد می‌شود و ربات ادامه می‌دهد.

U19: مسیر، باتری و آب

کجا اجرا شود: هلپر Route. دکمه‌ی «مسیر نمونه‌ی آزموده‌شده» را بزنید، کارت قوانین را بخوانید و «بازی با این مسیر» را بزنید.

if bumper == 1 and rec == 0:
    rec = 12
if battery < 55 and charging == 0 and rec == 0:
    charging = 1
    start_trip()
if rec > 6:
    rec = rec - 1
    wheelleft = -22
    wheelright = -8
elif rec > 0:
    rec = rec - 1
    wheelleft = 8
    wheelright = 24
elif charging == 1:
    go_charge()
else:
    follow_route()

ربات چه می‌کند: نقطه‌به‌نقطه از درها می‌گذرد و تا جایی که راه باشد از آب دور می‌ماند. به مانع بخورد عقب می‌رود و از کنارش رد می‌شود. زیر حد باتری از مسیر امن به شارژر می‌رود و بعد ادامه می‌دهد.

سوپرتیم

کجا اجرا شود: هلپر Route سوپرتیم. روش مثل U19 است. زمان تمرین ۲۴۰ ثانیه است، زمان رسمی را داور اعلام می‌کند و جریمه‌ی جابه‌جایی ۵، ۱۰ و سپس ۱۲ کاشی است.

اشکال‌یابی

نشانهراه‌حل
برنامه‌ی قدیمی جور دیگری می‌پیچدچپ و راست در 2.1.1 اصلاح شد؛ برنامه را دوباره تست کنید.
چرخش با قطب‌نما برعکس استکد را از هلپر جدید دوباره بسازید.
باتری زود تمام می‌شودهشدار کارت قوانین Route را اجرا کنید.