World Robot Olympiad 2016 - Regular

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

Sidst opdateret 9.7.16.

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

GoToLine bruges f.eks. sådan her for at få robotten til at køre med Power = 20 til farvesensoren på port 3 er over kanten af en sort streg:
Å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 farvesensoren på port 3 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.

DriveToColor

DriveToColor bruges f.eks. sådan her for at få robotten til at køre med Power = 20 til farvesensoren på port 4 er over en farve med koden 1, altså over sort:
Åbnes blokken DriveToColor 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. I den næste blok, vent-blokken, benyttes værdien af den anden input parametren Color, som kode for en farve, der sammenlignes med den aktuelle, registrerede farve fra farvesensoren på port 4. Farvekoderne kan ses under EV3 hjælp > Generelt > Brug af sensorer > Farve:
Vent-blokken får altså programmet til at vente indtil den registrerede farve er lig farvekoden i parametren Color. Først i den situation vil programmet fortsætte med næste blok, som får robotten til at standse.

DriveToColor får robotten til at køre lige ud indtil farvesensor på port 4 registrerer den farve, hvis kode er angivet i parametren Color og så standses robotten. Den første input parametren til DriveToColor bestemmer, hvor hurtigt robotten kører ligeud. Hvis input parametren er negativ vil robotten bakke.

DriveEdgeSec

DriveEdgeSec bruges f.eks. sådan her for at få robotten til at følge venstre kant af en sort streg i 4 sekunder med minPower = 20 og P = 0,2:
Åbnes blokken DriveEdgeSec ser den sådan her ud:
I løkke-blokken gentages blokken LeftEdgeDrive indtil der er gået det antal sekunder, som er angivet i den tredie input parameter Seconds. Når det sker slutter løkken.

DriveEdgeSec får altså robotten til at følge kanten af en sort streg et antal sekunder. De to første input parametre til DriveEdgeSec, minPower og P, gives videre til blokken LeftEdgeDrive.

DriveEdgeTo

DriveEdgeTo bruges f.eks. sådan her for at få robotten til at følge venstre kant af en sort streg med Power = 20 og P = 0,2 indtil farvesensoren på port 4 er over en farve med koden 1, altså over sort. Derefter standser robotten:
Åbnes blokken DriveEdgeTo ser den sådan her ud:
I løkke-blokken gentages blokken LeftEdgeDrive indtil den situation hvor farvesensoren på port 4 registrerer en farve som er lig den farve, hvis kode er angivet som den tredie input parameter Color. Når det sker, fortsætter programmet med den første blok efter løkken, som får robotten til at standse. Farvekoderne kan ses under EV3 hjælp > Generelt > Brug af sensorer > Farve:

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