Skip to main content

Výzva pro balíček Dash - Python

Ukázkové rozvržení pro výzvu „Package Dash“ zobrazující nakládací rampu v levém dolním rohu, tři oblasti pro umístění plechovek a startovní oblast v pravém horním rohu s Clawbotem uvnitř.
Výzva „Shánění balíčků“ (není v měřítku)

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!
     

Ikona tipů pro učitele 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ů.

Ikona sady nástrojů pro učitele Ř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ŇŮ)