Skip to main content

Výzva Groove Machine - C++

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ří vzorových tanečních pohybů dohromady.

// Zahrnutí knihovny V5
#include "vex.h"

// Umožňuje snadnější použití knihovny VEX
pomocí jmenného prostoru vex;

int main() {
  // Inicializace konfigurace robota. NEODSTRAŇUJTE!
  vexcodeInit();
  
  while (true) {
    ArmMotor.spinFor(vpřed, 300, stupňů);
    ArmMotor.setStopping(brzda);

    repeat(3) {
      Drivetrain.turnFor(vpravo, 90, stupňů);

      repeat(2) {
        ClawMotor.spinFor(vpřed, 90, stupňů);
        ClawMotor.spinFor(vzad, 90, stupňů);
      }

      Drivetrain.turnFor(vlevo, 90, stupňů);

      repeat(2) {
        ClawMotor.spinFor(vpřed, 90, stupňů);
        ClawMotor.spinFor(vzad, 90, stupňů);
      }
    }

    repeat(2) {
      ArmMotor.spinFor(vpřed, 300, stupňů);
      ArmMotor.setStopping(brzda);
      Drivetrain.turnFor(vpravo, 90 stupňů);

      repeat(9) {
        Drivetrain.turnFor(vlevo, 10 stupňů);
        wait(.5 sekund);
      }

      ArmMotor.spinFor(vzad, 300 stupňů);
    }

    ArmMotor.setVelocity(80 procent);
    Drivetrain.setTurnVelocity(65 procent);

    repeat(2) {
      ArmMotor.spinFor(vpřed, 900 stupňů);

      repeat(3) {
        Drivetrain.turnFor(vlevo, 90 stupňů);
        Drivetrain.turnFor(vpravo, 90 stupňů);
      }

      ArmMotor.spinFor(vzad, 900 stupňů);
    }
  }
}