Fjernelse af rør

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

Sidst opdateret 8.9.17.

Mission

Bring ødelagte rør til basen

Se på videoen, hvordan robotten fra en startposition i basen kører ud og henter det ødelagte rør og bringer det ind i basen:

Redskab

Der skal bygges et redskab på armen, som kan løfte det ødelagte rør. Redskabet og monteringen af redskabet på robotten kan se sådan her ud (klik på billede for at se det i stor størrelse):
Der skal monteres en farvesensor foran på robotten f.eks. sådan her (klik på billede for at se det i stor størrelse:

Program

Programmet som styrer robotten på videoen, ser sådan her ud:
Programmet består af tre dele:
  • De øverste programmeringsblokke får robot til at køre ud til det ødelagte rør. Under kørslen benytter robotten den sorte linie midt på banen i nord-syd retning til at navigere frem til det ødelagte rør. Det sker i de tre brugerdefinerede programmeringsblokke: ToBlack, ToEdge og OnEdge.
  • Den næste del benytter redskabsmotoren til at løfte rører.
  • Den nederste del er tre programmeringsblokke, som bringer robotten tilbage til basen.

Brugerdefinerede programmeringsblokke: ToBlack, ToEdge og OnEdge

Hvis ikke de brugerdefinerede programmeringsblokke havde været brugt, ville programmet bestå af 16 programmeringsblokke. Det kan umiddelbart virke uoverskueligt. Ved at bruge brugerdefinerede programmeringsblokke kan nogle af blokkene grupperes til en ny programmeringsblok, der gives et navn som f.eks. ToBlack, der fortæller, at blokken får robotten til at køre indtil robotten registrerer farven sort, f.eks. en sort streg. Brugen af de tre blokke betyder, at programmet bliver mere overskueligt, da det nu består af blot 8 blokke. Se eventuelt EV3 Hjælp > Funktioner > Min blokbygger:
De tre brugerdefinerede blokke kan bruges andre steder i programmeringen af robotten. Blokkene kan findes i den turkis mappe:

ToBlack

Ved dobbeltklik på blokken ToBlack åbnes et faneblad, så indholdet af ToBlack kan ses:
Det er de tre blokke i ToBlack, som får robotten til at køre fra basen hen til den sorte streg og standse, sådan her:
Den første blok får robotten til at køre lige ud, den næste blok er en vent-blok, som får programmet til at vente på, at farvesensoren på port 3 registrerer en sort farve. Sker det, fortsætter programmet med blokken efter vent-blokken som får robotten til at standse. Se eventuelt EV3 Hjælp > Programmering > Flow-blokke > Vent:

ToEdge

Indholdet af ToEdge kan ses her:
Det er de fire blokke i ToEdge, som får robotten til at dreje mod venstre til robotten står med farvesensoren lige over den venstre kant af den sorte streg - altså hvis robotten f.eks. starter som i videoen. På den måde kommer robotten til at pege mod nord og lige mod løkken ovenpå det ødelagte rør:
Den første blok får robotten til at dreje mod venstre. Den anden blok er en vent-blok, som får programmet til at vente på, at farvesensoren på port 3 registrerer en sort farve, f.eks. den sorte streg. Programmet fortsætter med den næste vent-blok, hvilket betyder, at robotten bliver ved med at dreje indtil nummer to vent-blok registrerer en hvid farve. Når det sker, standser robotten, så robotten er klar til at køre hen til det ødelagte rør.

OnEdge

Indholdet af OnEdge kan ses her:
Det er de fire blokke i OnEdge, som får robotten til at køre i zig-zag hendad den sorte streg henimod det ødelagte rør:
Den første blok er en løkke-blok, som får robotten til at køre i zig-zag henad stregen i 3 sekunder. Det sker ved, at de blokke som er inde i løkken gentages i 3 sekunder. Se eventuelt EV3 Hjælp > Programmering > Flow-blokke > Løkke:
Inde i løkken er der en forgrening-blok med to grene. I den øverste gren ses en tankstyring-blok, som får robotten til at dreje i en bue til venstre, mens tankstyring-blokken i den nederste gren får robotten til at dreje i en bue til højre. Det er forgrening-blokken, som på baggrund af lysprocenten fra farvesensoren på port 3 vælger imellem de to grene: Øverste gren vælges, når lysprocenten er mindre end 50%, altså farvesensoren er over noget mørkt; nederste gren vælges, når lysprocenten er over eller lig 50%, altså farvesensoren er over noget lyst. Forgrening-blokken og de to tankstyring-blokke får altså robotten til at dreje til venstre over sort og til højre over hvidt. Resultatet er en zig-zag kørsel henad kanten af den sorte streg. Se eventuelt i EV3 Hjælp > Programmering > Handlingsblokke> Tankstyring:
og EV3 Hjælp > Programmering > Flow-blokke> Forgrening: