World Robot Olympiad 2017 - Regular

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

Sidst opdateret 13.8.17.

InitGrab

Blokken InitGrab sørger for at nulstille omdrejningstælleren for den mellemstore motor på port A i en situation hvor grabben er helt lukket. Blokken bruges i starten af en kørsel:
På videoen ses hvordan InitGrab bevæger grabben i starten af en kørsel, så den lukker sig helt sammen inden grabben åbnes helt:

Åbnes blokken InitGrab, ser den sådan her ud:

Den første blok lukker grabben helt sammen, den næste blok venter 2 sekunder inden den tredie blok nulstiller omdrejningstælleren for den mellemstore motor. Den sidste blok åbner grabben helt. Bemærk, at der er benyttet sekunder i den sidste blok i stedet for grader. Det sikrer, at programmet ikke blokerer, hvis grabben ikke helt kan bevæge sig et givet antal grader. Se eventuelt EV3 hjælp > Programmeringsblokke > Handlingsblokke > Mellemstor motor og EV3 hjælp > Programmeringsblokke > Sensorblokke > Motoromdrejninger.

Detect

Blokken Detect benyttes til at registrere størrelse og farve af en kube i "Technology Base and Technology Decider Location":
På de to videoer ses og høres hvordan Detect benytter grabben til at registrere størrelse og farve af den røde og den gule kube. To forskellige bib lyde benyttes til at signalere om en base kube eller en decider kube er registreret:

Åbnes blokken Detect, ser den sådan her ud:

Den første blok Base afgør om grabben lukker om en base kube eller en decider kube. I blokken sættes en logisk variabel Base til sand, hvis der er tale om en base kube ellers sættes Base til falsk. Den næste blok ColorId afgør farven på kuben. I blokken sættes en numerisk variabel ColoiId til koden for den registrerede farve. Den tredie blok er en forgrening som på basis af størrelsen af kuben, altså værdien af Base, sætter en af to variable, nemlig BaseColor eller DeciderColor til den farvekode som lige er registreret i variablen ColorId.

Se eventuelt EV3 hjælp > Programmeringsblokke > Flow-blokke> Forgrening og EV3 hjælp > Programmeringsblokke > Data-blokke> Variabel.

Base

Åbnes blokken Base, ser den sådan her ud:
Den første blok lukker grabben, den næste blok fastholder grabben omkring kuben, den tredie blok venter 2 sekunder, inden forgreningen i den fjerde blok afgør om grabben fastholdes om en base blok eller en decider blok. Det sker på basis af værdien af omdrejningstælleren for den mellemstore motor på port A. Er værdien mindre end 18 udføres blokkene i den øverste gren, som sætter den logiske variabel Base til falsk, svarende til at grabben holder om en lille kube, en decider kube. Derefter spilles en kort høj bib lyd. Er omdrejningstælleren større eller lig 18 vælges den nederste gren, Base sættes til sand, svarende til at grabben holder om en stor kube, en base kube. Derefter spilles en lang lav bib lyd. Blokken efter forgreningen åbner grabben igen.

Se eventuelt EV3 hjælp > Programmeringsblokke > Flow-blokke> Forgrening, EV3 hjælp > Programmeringsblokke > Data-blokke> Variabel og EV3 hjælp > Programmeringsblokke > Handlingsblokke> Lyd.

ColorId

Åbnes blokken ColorId, ser den sådan her ud:
Den første blok løfter grabben ved hjælp af den store motor på port D, den næste blok fastholder grabben løftet, den tredie blok registrerer farvekoden for farven ud for farvesensoren på port 3. Den registrerede værdi af farvekoden føres via et datakabel over i en numerisk variabel ColorId og gemmes. Farvekoden bruges som input til den femte blok, ColorName, som "siger" navnet på den registrerede farve. Den sidste blok sørger for at grabben sænkes igen.

Se eventuelt EV3 hjælp > Programmeringsblokke > Sensorblokke> Farve, EV3 hjælp > Generelt > Datakabler og EV3 hjælp > Programmeringsblokke > Data-blokke> Variabel.

ColorName

Åbnes blokken ColorName, ser den sådan her ud:
På basis af input parametren ColorId sørger en forgrening for, at der afspilles en lyd svarende til den aktuelle værdi af ColorId. Lyden "Uh-oh" afspilles hvis ColorId er 0, altså Ingen Farve, som det ses under EV3 hjælp > Generelt > Brug af sensorer > Farve:
I forgreningsblokken benyttes faneinddelt visning, som er bekvemt, når der som her er mange grene i forgreningen. Se eventuelt EV3 hjælp > Programmeringsblokke > Flow-blokke> Forgrening.