طرح درس کدهای لیگ خانه هوشمند
این کدها روی نسخهی 2.1.1 اجرا شدهاند. برای آموزش، نمای بالای مسابقه را روشن کنید.
شروع کار
- برنامه را باز کنید و رده را انتخاب کنید.
- از صفحهی آمادهسازی، هلپر رده یا ویرایشگر کد را باز کنید.
- کد را بسازید و «بازی با این کد» را بزنید.
- پنل 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 را اجرا کنید. |