Skip to main content

Kontroléry a smyčky - C++

Kontroléry a smyčky

V soutěžích musí týmy ovládat své roboty bezdrátově pomocí ovladačů. Řídicí jednotka je naprogramována tak, aby aktualizovala robota na základě vstupů od uživatele. V projektu se používají smyčky, aby robot opakovaně kontroloval aktualizované vstupní informace. Smyčky umožňují projektu rychle zkontrolovat, která tlačítka byla stisknuta nebo jak daleko byly joysticky posunuty. Jakmile je tato informace zkontrolována, je rychle předána robotovi, aby rychle reagoval na pokyny řídicí jednotky.

Následuje příklad projektu Tank Drive z VEXcode V5. Smyčkaforeverv tomto projektu kontroluje polohy os 2 a 3 navždy, aby nastavila rychlost motorů.

// 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();
  // Začátek kódu projektu.
  // Hlavní smyčka regulátoru pro nastavení motorů do poloh os regulátoru
  while (true) {
    LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
    RightMotor.setVelocity(Controller1.Axis2.position(), percent);
    LeftMotor.spin(forward);
    RightMotor.spin(forward);

    wait(5, ms);
  }

  return 0;
}

Smyčky jsou důležité i pro autonomní programování bez regulátoru. Smyčka pomáhá zjednodušit a uspořádat opakované příkazy v rámci projektu.

Ikona Rozšiřte si učení Rozšiřte si své znalosti

Pro rozšíření této aktivity požádejte studenty, aby prozkoumali rozdíly mezi ovládáním v arkádách a ovládáním tanku. Studenti mohou sledovat vzorové projekty uvedené ve VEXcode V5.

Existují čtyři příkladné projekty: Levá pasáž, Pravá pasáž, Rozdělená pasáž a Tank Drive.

Diskutujte o tom, jak fungují smyčky v programech, a také o výhodách a nevýhodách každého typu ovládání.

Chcete-li tuto aktivitu propojit s matematikou, použijte výše uvedené projekty levá/pravá arkáda (jeden joystick) a rozdělený pohon arkády/tanku (oba joysticky) k diskusi o rolích os X a Y v rámci projektu.