Skip to main content

Automatizovaná výzva - C++

Půdorys Automed Challenge včetně vymezení plochy následovně: Lékárna, Místnost 1, Místnost 2, Místnost 3, Start a Výtah. Pokoj 2 a pokoj 3 jsou ve druhém patře, všechny ostatní pokoje jsou v prvním patře. Měření jsou označena, přičemž celý půdorys se vejde do obdélníku o rozměrech 2 x 1,8 metru.
Automed Challenge rozvržení nemocnice s rozměry

Automatická výzva

V této výzvě musíte naprogramovat svého robota, aby navigoval v nemocnici, protože dodává léky pacientům v několika různých místnostech.

Ikona tipů pro učitele Tipy pro učitele

Zvyšte zapojení tím, že vytvoříte příběh o nemocnici! O jaký typ nemocnice se jedná a jakým typům pacientů nemocnice slouží?

Pravidla výzvy

  • Robot musí začínat a končit v počáteční zóně.

  • Celý robot musí být uvnitř lékárny, výtahu a pacientských pokojů a čekat na následující časy, aby mohl dokončit akce:

    • Lékárna: Na vyzvednutí léků počkejte alespoň 5 sekund.

    • Výtah: Počkejte alespoň 5 sekund, než se dostanete na další patro.

    • Pacientský pokoj: Vyčkejte alespoň 3 sekundy, než odešlete léky.

  • Robot nesmí přijít do styku s žádnými stěnami ani přes ně nesmí přejít.

  • Robot musí nejprve navštívit lékárnu, aby vyzvedl léky pro pacientské pokoje.

  • Robot musí navštívit každou z pacientských místností (v žádném konkrétním pořadí), aby mohl odevzdat léky.

  • Bavte se!

Ikona sady nástrojů pro učitele Řešení – pro učitele – sada nástrojů

Programovací rubriku pro hodnocení studentů naleznete zde (Google / .docx / .pdf ).

Níže si prohlédněte ukázkové řešení VEXcode V5 C++:

int main() {
  // Inicializace konfigurace robota. NEODSTRAŇUJTE!
  vexcodeInit();
    // Začátek projektu s kódem

    // Jít do lékárny
    Drivetrain.driveFor(vpřed, 900, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 1350, mm);
    Drivetrain.turnFor(vpravo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    wait(6, sekund);

    // Jít do místnosti 1
    Drivetrain.driveFor(reverse, 600, mm);
    Drivetrain.turnFor(vpravo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    wait(5, sekund);

    // Jít k výtahu
    Drivetrain.driveFor(vzad, 600, mm);
    Drivetrain.turnFor(vpravo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    wait(6, sekund);

    // Přejít do místnosti 2
    Drivetrain.driveFor(vzad, 800, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 1000, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 800, mm);
    wait(5, sekund);

    // Přejít do místnosti 3
    Drivetrain.driveFor(vzad, 800, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    Drivetrain.turnFor(vpravo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 800, mm);
    wait(5, sekund);

    // Jít k výtahu
    Drivetrain.driveFor(vzad, 800, mm);
    Drivetrain.turnFor(vlevo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 600, mm);
    Drivetrain.turnFor(vpravo, 90, stupňů);
    Drivetrain.driveFor(vpřed, 800, mm);
    wait(6, sekund);

    // Návrat do startovní zóny
    Drivetrain.driveFor(vpřed, 1500, mm);

}