World Robot Olympiad 2015 - Regular

Ole Caprani
Institut for Datalogi, Aarhus Universitet,
ocaprani@cs.au.dk

Sidst opdateret 17.8.15.

Køre indtil

Under navigationen rundt på banen skal robotten ofte køre indtil en ønsket situation er registreret, f.eks. køre ligeud indtil en sort streg er registreret af den midterste farvesensor. Vent-blokken eller løkke-blokken kan bruges til at programmere en sådan køre indtil funktionalitet, se EV3 hjælp > Programmeringsblokke > Flow-blokke > Vent og Løkke:

GoToLine

Åbnes blokken GoToLine ser den sådan her ud:
Den første blok, en bevægelsesstyring-blok, benytter tilstanden Til, så robotten sættes til at køre lige ud. Umiddelbart derefter, altså mens robotten kører, bruges en variabel-blok til at læse værdien af variablen offset. I den tredie blok, vent-blokken, benyttes værdien af offset, som tærskelværdi for en sammenligning med lysværdien fra farvesensoren på port 3. Det betyder, at programmet venter i vent-blokken indtil lysværdien er mindre end tærskelværdien. Da offset er sat til at være den lysværdi farvesensoren registrerer over kanten af en sort streg, se LeftEdgeDrive, vil programmet altså vente i vent-blokken indtil den situation hvor farvesensoren er over kanten af en sort streg. Først i den situation vil programmet fortsætte med næste blok, som får robotten til at standse.

GoToLine får altså robotten til at køre ligeud indtil den midterste farvesensor registrerer en sort streg og så standses robotten. Input parametren til GoToLine bestemmer, hvor hurtigt robotten kører ligeud. Hvis input parametren er negativ vil robotten bakke.

SpinToLine

Åbnes blokken SpinToLine ser den sådan her ud:
Den første blok, en bevægelsesstyring-blok, benytter tilstanden Til, så robotten sættes til at dreje på stedet. Umiddelbart derefter, altså mens robotten drejer, bruges en variabel-blok til at læse værdien af variablen offset. I den tredie blok, vent-blokken, benyttes værdien af offset, som tærskelværdi for en sammenligning med lysværdien fra farvesensoren på port 3. Det betyder, at programmet venter i vent-blokken indtil lysværdien er mindre end tærskelværdien. Da offset er sat til at være den lysværdi farvesensoren registrerer over kanten af en sort streg, se LeftEdgeDrive, vil programmet altså vente i vent-blokken indtil den situation hvor farvesensoren er over kanten af en sort streg. Først i den situation vil programmet fortsætte med næste blok, som får robotten til at standse.

SpinToLine får altså robotten til at dreje på stedet indtil den midterste farvesensor registrerer en sort streg og så standses robotten. Input parametren til SpinToLine bestemmer, hvor hurtigt robotten drejer på stedet. Hvis input parametren er positiv vil robotten dreje på stedet mod højre, en negativ parameter værdi vil få robotten til at dreje på stedet mod venstre.

DriveToBlack

Åbnes blokken DriveToBlack ser den sådan her ud:
I løkke-blokken gentages blokken LeftEdgeDrive indtil den situation hvor farvesensoren på port 4 registrerer en sort farve. Når det sker, fortsætter programmet med den første blok efter løkken, som får robotten til at standse.

DriveToLine får altså robotten til at følge kanten af en sort streg indtil farvesensoren på port 4 er over en sort streg og så standses robotten. De to input parametre til DriveToLine, minPower og P, gives videre til blokken LeftEdgeDrive.