Výzva pro balíček Dash - Python
Výzva k balíčku Dash
V této výzvě naprogramujete svého robota tak, aby co nejrychleji zvedl balíky a dovezl je na nakládací rampu!
Pravidla výzvy:
- Robot musí zahájit výzvu ve startovní zóně.
- Balíčky (hliníkové plechovky) se mohou dotknout pouze knih, drápu Clawbota a nakládací rampy.
- Pokud je balík shozen na pozemku skladu, musíte resetovat pole a začít znovu.
- Čas pro každý běh začíná, jakmile se robot pohne.
- Čas se zastaví, jakmile je poslední balík vhozen do nakládací rampy.
- Při resetování pole by se vše mělo vrátit na přesné místo, odkud začalo.
- Bavte se!
Tipy pro učitele
- Zvyšte zapojení tím, že vytvoříte příběh nebo účel skladu! O jaký druh skladu se jedná? Jaké typy balíků se nacházejí ve skladu? Komu patří sklad?
- Umožněte studentům vytvářet různé trasy nebo strategie, které jim umožní efektivněji přepravovat plechovky.
- Porovnejte nejen časy potřebné k dokončení, abyste určili vítěze této výzvy (pokud ji organizujete jako soutěžní), ale také použité navigační techniky, aby studenti mohli zvážit řešení ostatních týmů.
Řešení
–
pro učitele – sada nástrojů
Programovací rubriku pro hodnocení studentů naleznete
Následuje jedno z možných řešení problému. Řešení se mohou lišit v závislosti na počáteční poloze robota a zvolené dráze. Existuje několik cest, které mohou vést k přesunu všech balíčků.
# Začátek projektu s kódem
# Bezpečné spuštění motoru Claw a vyzvednutí prvního balíku
claw_motor.set_timeout(2, sekundy)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.drive_for(FORWARD, 215, MM)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# Jeďte k nakládací rampě pro vyložení prvního balíku
drivetrain.drive_for(REVERSE, 110, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 920, MM)
drivetrain.turn_for(VLEVO, 90, STUPŇŮ)
drivetrain.drive_for(VPŘED, 2300, MM)
drivetrain.turn_for(VLEVO, 90, STUPŇŮ)
drivetrain.drive_for(VPŘED, 750, MM)
arm_motor.spin_for(ZADNÍ CHOD, 315, STUPŇŮ)
claw_motor.spin_for(ZADNÍ CHOD, 120, STUPŇŮ)
# Vyzvednutí druhého balíčku
drivetrain.drive_for(ZADNÍ CHOD, 200, MM)
drivetrain.turn_for(VLEVO, 170, STUPŇŮ)
drivetrain.drive_for(VPŘED, 900, MM)
drivetrain.turn_for(VPRAVO, 90, STUPŇŮ)
drivetrain.drive_for(VPŘED, 2300, MM)
arm_motor.spin_for(VPŘED, 315, DEGREES)
claw_motor.spin_for(VPŘED, 120, DEGREES)
# Jeďte k nakládací rampě a vyložte druhý balík
drivetrain.drive_for(VPŘED, 900, MM)
drivetrain.turn_for(PRAVÝ, 90, DEGREES)
drivetrain.drive_for(VPŘED, 960, MM)
arm_motor.spin_for(ZADNÍ TOČKA, 315, DEGREES)
claw_motor.spin_for(ZADNÍ TOČKA, 120, DEGREES)
# Vyzvedněte třetí balík
drivetrain.drive_for(ZADNÍ TOČKA, 150, MM)
drivetrain.turn_for(VLEVO, 90, DEGREES)
drivetrain.drive_for(VPŘED, 490, MM)
arm_motor.spin_for(VPŘED, 315, STUPŇŮ)
claw_motor.spin_for(VPŘED, 120, STUPŇŮ)
# Jeďte k nakládací rampě a vyložte třetí balík
drivetrain.drive_for(ZADNÍ JÍZDA, 490, MM)
drivetrain.turn_for(PRAVÝ JÍZD, 90, STUPŇŮ)
drivetrain.drive_for(VPŘED, 150, MM)
arm_motor.spin_for(ZADNÍ JÍZDA, 315, STUPŇŮ)
claw_motor.spin_for(ZADNÍ JÍZDA, 120, STUPŇŮ)