Skip to main content

Výzva Groove Machine - Python

Drápový robot VEX V5 se zdviženou paží a otevřeným drápem.
VEX V5 Clawbot se zvednutou paží a otevřeným drápem.

Výzva Groove Machine

V této výzvě se rozdělíte do týmů a naprogramujete svého robota tak, aby s využitím znalostí smyček prošel taneční rutinou. Váš učitel stanoví časový limit pro vývoj/otestování tance a časový limit pro délku tance. Všichni, kdo nepatří do soutěžících tanečních týmů, budou tance hodnotit a hlasovat pro tým, který považují za nejlepší.

Pravidla:

  • Každý Clawbot bude tančit jeden po druhém v oblasti 1x1 metr.
  • Tanec pokračuje, dokud se na obrazovce Braina nestiskne tlačítko Stop, které zastaví běh projektu.
  • Rameno musí být zvedáno a spouštěno.
  • Dráp se musí otevírat a zavírat.
  • Clawbot se musí otáčet doleva a doprava.
  • Clawbot musí jet dopředu i dozadu.
  • Projekt je třeba okamžitě zastavit, pokud Clawbot s něčím narazí nebo se převrátí. To je prohraný tanec.

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele

Hodnocení v této soutěži by mohlo probíhat několika způsoby. Jedním ze způsobů, jak zvýšit zapojení, je nechat studenty natočit taneční soutěž na video a nechat studenty z jiných tříd hlasovat o vítězi. Pokud je to příliš ambiciózní, zvažte před zahájením této soutěže jmenování panelu nestranných porotců nebo přizvání dalších studentů, učitelů či zaměstnanců.

Níže uvedené řešení je pouze kombinací všech tří příkladných tanečních pohybů dohromady.

# Knihovna importuje
z vex import *

# Začátek kódu projektu
while True:
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    arm_motor.set_stopping(BRAKE)
    
    for repeat_count in range(3):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        
        for repeat_claw in range(2):
            claw_motor.spin_for(REVERSE, 90, DEGREES)
            claw_motor.spin_for(FORWARD, 90, DEGREES)
            wait(5, MSEC)
            
        drivetrain.turn_for(LEFT, 90, DEGREES)
        for repeat_claw in range(2):
            claw_motor.spin_for(REVERSE, 90, DEGREES)
            claw_motor.spin_for(FORWARD, 90, STUPNĚ)
            wait(5, MSEC)
            
        wait(5, MSEC)

    for repeat_count in range(2):
        arm_motor.spin_for(VPŘED, 300, STUPNĚ)
        arm_motor.set_stopping(BRZDA)
        drivetrain.turn_for(DOPRAVA, 90, STUPNĚ)
        
        for repeat_turn in range(9):
            drivetrain.turn_for(DOLEVA, 10, STUPNĚ)
            wait(5, MSEC)
            
        arm_motor.spin_for(ZADNÍ TOČKA, 300, STUPNĚ)
        wait(5, MSEC)

    arm_motor.set_velocity(80, PROCENTO)
    drivetrain.set_turn_velocity(65, PROCENTO)
    
    for repeat_count in range(2):
        arm_motor.spin_for(VPŘED, 300, STUPŇŮ)
        
        pro repeat_turn v rozsahu(3):
            drivetrain.turn_for(VLEVO, 90, STUPŇŮ)
            drivetrain.turn_for(VPRAVO, 90, STUPŇŮ)
            wait(5, MSEC)
            
        arm_motor.spin_for(ZADNÍ TOČENÍ, 300, STUPŇŮ)
        wait(5, MSEC)