Wat als…..#
Programmeren
30 min
1#
Nu we een van de sensoren van de robot kunnen uitlezen kunnen we die waarde gebruiken om de robot iets te laten doen. In deze workshop zal je wat basis programmeren leren zodat je je robot iets kan laten doen afhankelijk van wat ze ziet. Je robot zal stoppen ze een lijn ziet.
2#
Het programmeren van de robot gaan we uiteraard op het ‘Programmeren’ tabblad doen. In de vorige workshop heb je de waarde van de sensor 1 keer met een blok uitgelezen.
Het is natuurlijk handiger om dit een aantal keer achter elkaar te doen. Dit kunnen we doen met ‘Lussen’ (‘loops’ in het Engels). Je kan deze om het tesktblok heen zetten en op ‘play’ drukken.
3#
4#
LET OP
Als je sensoren uit gaat lezen in een ‘herhalen zolang waar’ blok moet je er ook een ‘wacht’-blok aan toevoegen. Als je dit niet doet probeert de robot zó snel de sensor uit te lezen dat ze het niet meer bij kan houden. Je zal dan zien dat de waardes van je sensor achter gaan lopen en je dus waardes terugkrijgt van vroeger.
5#
6#
Om nou een te laten stoppen als ze een zwarte lijn ziet kunnen we een ‘als-dan’ (Engels: if-else) blok gaan gebruiken en herkennen dat ze een lijn zien. Dit blok zorgt er voor dat je robot iets doet wat afhangt van een bepaalde voorwaarde (conditie).
In het voorbeeld hiernaast zal je robot doorhebben of haar sensor op een zwarte lijn staat of niet. Je kan de robot dus nu op de grond zetten en eens over de lijn laten bewegen.
LET OP
De waarde vanaf wanneer de robot dit als zwart ziet moet je zelf nog vinden en invullen.
7#
Het kan natuurlijk heel goed zijn dat je denkt dat je programma zou moeten werken, maar dat de robot niet helemaal doet wat jij denkt dat ze zou moeten doen.
In dat geval is het soms handig om je programma even te pauzeren en stap voor stap door de code heen te gaan. Dit heet (uit het Engels) ‘debuggen’. Een programma van Mirte kan je ook debuggen door op de pauzeknop te drukken:
Je programma stopt dan even en in de blokken licht het blok waar die mee straks mee bezig zal gaan op.
In Python zie je hetzelfde, alleen zie je daar aan het rode stipje welke regel hij straks uit zal voeren. Je kan deze regel/blok uit laten voeren door op ‘step’ te drukken:
De robot gaat dan die regel uitvoeren en pauzeert meteen weer bij de volgende regel. Je kan zo goed zien wat de robot aan het doen is.
8#
Opdracht: Nu moeten we de robot nog laten rijden en stoppen als ze een lijn ziet. Dit kunnen we doen door de motorblokken weer te gebruiken.
Hierin kan je zelf nog even spelen met de waardes voor de motoren, de sleep en de waarde om de lijn te detecteren. Wanneer ziet ze de lijn niet meer? En wanneer gaat die echt goed?
Lukt het je om dit programmatje nog wat compacter te krijgen?