Programmering af LEGO robot sumo bryder

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

Sidst opdateret 22.3.17.

Simpelt sumo bryder program

Den simple EV3 baserede sumo bryder, sumoBot, eller den NXT baserede mini sumo bot:
kan begge, altså både EV3 og NXT kontrolenheden, programmeres ved hjælp af det grafiske programmeringsværktøj EV3-G til EV3. I EV3 brugervejledning, side 36 forklares, hvordan værktøjet installeres på en computer og hvilke introduktioner til programmering, som værktøjet indeholder, bl.a. Quick Start og Robot Educator.

Programmeringsværktøjet kan læres gennem brug. Start f.eks. med det simple program, som er foreslået til at styre den NXT baserede Mini sumo bot. En EV3-G udgave af programmet, som får f.eks. sumoBot til at holde sig på en bane med en hvid kant, kan ses her:

Programmet findes i EV3 projektet Sumo.ev3 med navnet SumoBot. De to motorer skal være forbundet til port B og C, mens farvesensoren skal være forbundet til port 3.

Begynd med at overføre projektet til EV3/NXT kontrolenheden og start programmet SumoBot. En kørsel med sumoBot ser f.eks. sådan her ud:

Ved at observere robottens opførsel på videoen kan det ses, hvilken virkning de enkelte programmeringsblokke i programmet har på robottens opførsel.

SumoBot programmet består af 5 programmeringsblokke: En løkke-blok samt 4 programmeringsblokke, som løkke-blokken omslutter. Se eventuelt under EV3 hjælp > Programmeringsblokke > Flow-blokke > Løkke:

Løkke-blokken har den virkning, at robotten gentager de handlinger, som de 4 programmeringsblokke inde i løkke-blokken får robotten til at udføre. De handlinger som robotten gentager er:
  • at køre fremad og ligeud indtil robotten møder kanten og
  • at bakke et stykke væk fra kanten og at dreje på stedet en smule til højre.
Den første blok i løkke-blokken er en bevægelsesstyring-blok, som får robotten til at køre fremad og ligeud. De to sidste blokke er også bevægelsesstyring-blokke. Den næstsidste blok får robotten til at bakke, den sidste blok får robotten til at dreje på stedet en smule til højre. Se eventuelt under EV3 hjælp > Programmeringsblokke > Handlingsblokke> Bevægelsesstyring:
Mens robotten kører fremad og ligeud, igangsat af den første bevægelsesstyring-blok, benytter robotten farvesensoren til at holde øje med om robotten er kommet hen til den hvide kant. Farvesensoren bruges altså i programmet til at registrer farven på den overflade, som robotten kører på lige nu. Når hvid farve registreres er robotten ved den hvide kant. I programmets anden blok, en vent-blok, venter programmet indtil farvesensoren har registreret hvid. Når det sker går programmet videre til den næste blok, som jo får robotten til at bakke væk fra kanten. Se eventuelt EV3 hjælp > Programmeringsblokke > Flow-blokke > Vent:
Indstillingen af vent-blokken til Farvesensor-Sammenlign-Farve sker sådan her: