Skip to main content

Geautomatiseerde uitdaging - C++

Het grondplan voor de Automed Challenge inclusief gebiedsaanduidingen als volgt: Apotheek, Kamer 1, Kamer 2, Kamer 3, Start en Lift. Kamer 2 en kamer 3 bevinden zich op de tweede verdieping, alle andere kamers bevinden zich op de eerste verdieping. Metingen zijn gemarkeerd, waarbij de gehele plattegrond in een rechthoek van 2 meter bij 1,8 meter past.
Automed Challenge ziekenhuisindeling met afmetingen

Geautomatiseerde uitdaging

In deze uitdaging moet je je robot programmeren om door een ziekenhuis te navigeren, omdat hij medicijnen levert aan patiënten in verschillende kamers.

Tips voor leraren-pictogram Tips voor leraren

Vergroot de betrokkenheid door een achtergrondverhaal over het ziekenhuis te creëren! Wat voor soort ziekenhuis is het en wat voor soort patiënten behandelt het ziekenhuis?

Uitdagingsregels

  • De robot moet beginnen en eindigen in de Start Zone.

  • De hele robot moet zich in de apotheek, lift en patiëntenkamers bevinden en op de volgende tijden wachten om de acties te voltooien:

    • Apotheek: Wacht minstens 5 seconden om medicijnen op te halen.

    • Lift: Wacht minstens vijf seconden om een andere verdieping te bereiken.

    • Patiëntkamer: Wacht ten minste 3 seconden om medicijnen af te geven.

  • De robot mag niet in contact komen met of over muren gaan.

  • De robot moet eerst naar de apotheek gaan om medicijnen voor patiëntenkamers op te halen.

  • De robot moet elk van de patiëntenkamers bezoeken (in willekeurige volgorde) om medicatie af te leveren.

  • Veel plezier!

Icoon Toolbox voor docenten Teacher Toolbox - Oplossing

Een programmeerrubriek om studenten te beoordelen is hier te vinden (Google / .docx / .pdf ).

Bekijk hieronder een voorbeeldoplossing van VEXcode V5 C++:

int main() {
  // Robotconfiguratie initialiseren. NIET VERWIJDEREN!
  vexcodeInit();
    // Begin projectcode

    // Ga naar apotheek
    Drivetrain.driveFor(forward, 900, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 1350, mm);
    Drivetrain.turnFor(right, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    wait(6, seconds);

    // Ga naar kamer 1
    Drivetrain.driveFor(reverse, 600, mm);
    Drivetrain.turnFor(right, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    wait(5, seconds);

    // Ga naar lift
    Drivetrain.driveFor(reverse, 600, mm);
    Drivetrain.turnFor(right, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    wait(6, seconds);

    // Ga naar kamer 2
    Drivetrain.driveFor(reverse, 800, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 1000, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 800, mm);
    wait(5, seconds);

    // Ga naar kamer 3
    Drivetrain.driveFor(reverse, 800, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    Drivetrain.turnFor(right, 90, degrees);
    Drivetrain.driveFor(forward, 800, mm);
    wait(5, seconds);

    // Ga naar lift
    Drivetrain.driveFor(reverse, 800, mm);
    Drivetrain.turnFor(left, 90, degrees);
    Drivetrain.driveFor(forward, 600, mm);
    Drivetrain.turnFor(right, 90, degrees);
    Drivetrain.driveFor(forward, 800, mm);
    wait(6, seconds);

    // Ga terug naar de startzone
    Drivetrain.driveFor(forward, 1500, mm);

}