Docenten Informatie Voorbereidingen Workshop Voordat met de workshop kan worden begonnen, dienen er een aantal zaken te zijn geregeld: 1. De EV3 software moet zijn geïnstalleerd op de computers van de leerlingen. Van deze software zijn twee versies: de thuisversie en de educatieve versie. De Home Edition is gratis te downloaden http://www.lego.com/nl- nl/mindstorms/downloads/software/ddsoftwaredownload/. De educatieve versie wordt geleverd door dezelfde leveranciers waar ook de EV3 en NXT kan worden besteld. Voor deze workshop maakt het niet uit met welke versie er wordt gewerkt, hoewel voor de thuisversie wel apart het block voor de ultrasone sensor moet worden geladen. Deze is te vinden op http://www.lego.com/nl- nl/mindstorms/downloads/ev3- blocks/ultrasonic/ 2. De robot moet worden gebouwd. Voor deel 1 is de ultrasone sensor nodig en de lichtsensor. Voor deel twee is een extra lichtsensor nodig. Het is belangrijk dat de motoren en sensoren op de juiste poorten zijn aangesloten. Hoewel de poorten ook in het programma kunnen worden aangepast wordt dit niet aangeraden omdat er heel veel plaatsen zijn waar de poortnummers worden gebruikt. Het maakt niet veel uit welk model er wordt gekozen voor de robot. Het eenvoudigst is om het model te gebruiken dat bij deze workshop wordt meegeleverd, maar andere modellen zijn ook goed te gebruiken. 3. Het is handig om de robots éénmalig in elkaar te zetten en ze voor alle lessen ongewijzigd te gebruiken. Niet alleen kost het in elkaar zetten veel tijd, maar de ervaring leert dat bij het herhaald in elkaar zetten en weer uit elkaar halen er altijd onderdelen verdwijnen, die dan weer moeten worden vervangen. Voor leerlingen die speciale projecten willen uitvoeren is het handig om een complete set te reserveren, waar ze na het volgen van de lessen mee kunnen experimenteren. 4. Vaak zijn er op school enkele leerlingen die al met Lego MindStorms hebben gewerkt en voor wie dit lesmateriaal veel te eenvoudig is. De onderlinge verschillen tussen leerlingen zijn vaak heel groot. Als er leerlingen zijn die goed met de robot kunnen omgaan verdient het aanbeveling om ze in te zetten als assistent om de andere leerlingen te helpen. Sensor/Motor Poort Motor rechts B Motor links C Lichtsensor rechts 1 Lichtsensor links 4 Ultrasone sensor 3 lichtsensor. Belangrijk: zorg dat de motoren en sensoren op de aangegeven poorten zijn aangesloten. De poorten zijn zodanig gekozen dat de lichtsensoren altijd op de buitenste twee poorten zijn aangesloten en de motoren op de binnenste twee. De ultrasone sensor wordt aangesloten direct naast de linker Links en rechts wordt bekeken vanaf de positie van een denkbeeldige bestuurder. Wijzigingen in versie 0.1 Kalibratie geheel herzien. Leerlingen passen niet meer de kalibratie aan maar leren meer over het correct uitvoeren van de kalibratie. Daardoor zijn enkele lessen vervallen en eenvoudiger geworden. 1
Workshop Robotica Deze workshop Robotica wordt gebruikt om docenten én leerlingen vertrouwd te maken met Robotica op school. De workshop bestaat uit 7 lessen, die ieder één tot twee uur duren. Er zijn over het algemeen grote onderlinge verschillen tussen leerlingen, daarom maken we gebruik van leskaarten zodat de leerlingen in hun eigen tempo kunnen werken. Deze eerste leskaart is bedoeld voor de docenten of begeleiders en legt uit, wat de bedoeling is en hoe de workshop moet worden voorbereid. Daarnaast wordt gebruik gemaakt van het programma van de EV3 dat bij de consumentenversie gratis wordt bijgeleverd. Bij de educatieve versie moet deze software apart worden aangeschaft. Als er robotjes worden gebruikt dienen die van te voren te worden gebouwd met Lego MindStorms. Deze cursus is ook te vinden op de RoboCupJunior website (www.robocupjunior.nl) onder de NLT Robotica download sectie. Zoek naar de NLT RoboDidactics lessen. De resterende leskaarten zijn bedoeld voor de cursisten. Op de voorkant staat een korte beschrijving van de opdracht. Op de achterkant staan stap- voor- stap instructies, die gevolgd dienen te worden. Tijdens de workshop dienen één of meer begeleiders rond te lopen om de cursisten te helpen. Om de gemaakte programma s te testen is het nodig over een EV3 of NXT te beschikken. Omdat het maken van het programma enige tijd vergt kunnen meerdere cursisten gebruik maken van dezelfde robot. Deze workshop maakt gebruik van een robotje met twee kleursensoren (op de NXT twee lichtsensoren). Daarmee kan de robot sneller rijden en ook de kleuren op het veld onderscheiden. In de docentenversie van het programma is ook een voorbeeld opgenomen van het gebruik van de ultrasone afstandssensor om het blikje te vinden. Voor deze module geldt een Creative Commons Naamsvermelding-Nietcommercieel-Gelijk delen 3.0 Nederland Licentie. Het lesmateriaal is ontwikkeld door RoboCupJunior in samenwerking met SLO. http://creativecommons.org/licenses/by-nc-sa/3.0/nl. 2
1. Kalibratie Laat de robot de kleuren van het speelveld leren De lessen van dit tweede deel laten je zien, hoe je de robot kunt programmeren om de rescue missie uit te voeren. Het robotje moet de lijn volgen tot aan de gele lijn en daarna bij de gele lijn de bocht afsnijden. Vervolgens volgt hij de lijn tot aan het moeras. In het moeras wordt een blikje geplaatst, dat een gevaarlijke container voorstelt, die uit het moeras moet worden geduwd. Om deze missie uit te kunnen voeren, moet de robot eerst weten, wat de waarden voor zwart, groen en geel zijn voor ieder van de twee lichtsensoren. Dat proces heet kalibreren en heb je in deel 1 al gezien voor het herkennen van de zwarte lijn. De bedoeling is om de robot op de plaats te zetten, die je in het plaatje ziet. Vanaf die positie gaat hij een klein stukje rijden en komt dan eerst geel, vervolgens groen en tenslotte zwart tegen. Hiernaast zie je het programma dat deze kalibratie uitvoert. Het is een beetje anders dan het kalibratie programma uit deel 1, omdat hij nu zelf de lijn opzoekt. De bedoeling is dat je met dit programma leert hoe de kalibratie wordt uitgevoerd. We gaan daarom het programma doorlopen en laten zien wat er gebeurt. Omdat het proces nogal ingewikkeld is, behandelen we het stap voor stap en probeer daarom na iedere stap het programma uit, voordat je verder gaat. Het belangrijkste doel is om inzicht te krijgen in de manier waarop het programma omgaat met de waardes die de sensoren weergeven. Dat is van groot belang om de missie met succes te volbrengen. Als de kalibratie niet goed wordt uitgevoerd zal de lijnvolger niet goed kunnen werken. Kijk dus altijd goed na iedere kalibratie of alle gegevens goed zijn doorgekomen. Als je dat goed begrijpt is het gebruiken van de lijnvolger een stuk eenvoudiger. 1
1 Als het programma nog niet is gestart, dubbelklik dan op het EV3 icoontje op je bureaublad. Anders ga je door naar stap 2. Dit programma voert de kalibratie uit, zoals je ook in deel 1 al gezien hebt, alleen gaat de robot nu zelf rijden om de drie kleuren op te zoeken. 2 Kies uit het menu File.. Open Project en kies NLT_D2_EV3_2015_V01.ev3. Er is ook een versie voor de NXT robot. Omdat de EV3 robot meer mogelijkheden heeft zijn de programma s een beetje verschillend. Kies voor de NXT: NLT_D2_NXT_2015_V01.ev3 Zodra het programma is opgestart kies je Les 1 en je ziet dan een programma, dat eerst de kalibratie uitvoert en daarna de robot laat rijden, tot hij de zwarte lijn tegenkomt. 3 Dubbelklik op het blauwe icoontje met de naam AutoCalibrate. Aan het begin van dat programma zie je een rijtje icoontjes staan. De eerste twee zijn BlkLft en BlkRht voor Black Left en Black Right. Er staat een waarde in van 15. Dit is de default waarde, die we aannemen als we de kalibratie zouden overslaan. Daarna staan er ook variabelen voor groen (GrnLft en GrnRht) en voor geel (YelLft en YelRht). De Margin leggen we later uit en Line geeft aan op welke regel van het display tekst mag worden afgedrukt. 4 Daarna wordt op de onderste regel (12) de tekst CAL, CHK en RUN afgedrukt. Dat is het menu, waaruit je kunt kiezen wat de robot moet gaan doen. 5 Een stukje naar beneden zie je aan de linkerkant het begin van een zogenaamde Lus of Loop die steeds wordt herhaald. Daarin wordt gekeken of de linker knop wordt ingedrukt. Dit is de knop onder de tekst CAL en die zorgt ervoor dat de kalibratie wordt uitgevoerd. 6 De kalibratie begint door de robot langzaam vooruit te laten rijden en vervolgens wordt via CalReadYellow, CalReadGreen en CalReadBlack de kleur van de ondergrond gelezen en bewaard in het geheugen van de robot. Daarna stopt de robot. 5 Als de middelste knop wordt ingedrukt laat de robot een piepje horen. De CHK routine hebben we nog niet gemaakt en dat piepje herinnert ons daaraan. Als de rechter knop wordt ingedrukt, stopt dit eerste deel van het programma en gaat hij dus terug naar het oorspronkelijke programma. 6 Ga terug naar het programma Les 1 en stuur dit naar de robot via het schermpje rechts onderaan. Het middelste icoontje met de pijl rechts zorgt dat het programma wordt geladen en direct wordt gestart. Zet de robot op het gele vlak van het veld en druk op de knop onder CAL. De robot laat een piepje horen bij iedere kleur die hij ziet en stopt op de zwarte lijn. Daarna zet je de robot een stukje naar achteren en drukt op RUN, waarna hij gaat rijden en stopt weer op de zwarte lijn. 2
Registreer de drie kleuren Leg de kleuren vast tijdens de kalibratie Je kalibratie programma moet voor ieder van de drie kleuren een waarde uitlezen voor de linker en rechter sensor. Dat gebeurt in CalReadBlack, CalReadGreen en CalReadYellow. We gaan nu eerst kijken wat voor waardes de sensoren zien bij de verschillende kleuren. Daar heeft de EV3 een faciliteit voor, zowel op de robot zelf als in het EV3- G programma dat wij gebruiken. Als je de robot aansluit via de USB kabel of via Bluetooth kun je in het venster rechts onderaan de waarde van de kleurensensors uitlezen. Houd er rekening mee dat op de NXT dit net een beetje anders werkt. kiezen. Daarna kun je dan de waardes zien. De EV3 heeft automatische sensor herkenning en laat dus direct zien welke sensoren er zijn aangesloten en wat de waardes zijn. Bij de NXT moet je eerst handmatig het type sensor We gaan nu eerst bekijken hoe de sensoren de kleuren zien als we de sensoren als lichtsensor gebruiken. De EV3 sensoren kunnen ook als kleurensensor gebruikt worden, maar in deze lessen beperken we ons tot de lichtsensor. Zorg bij het kalibreren altijd dat de robot aan beide zijden tegelijkertijd eerst de kleur Geel zien, vervolgens Groen en daarna Zwart. Er zijn maar een paar plaatsen op het veld waar dat mogelijk is. Als de robot bijvoorbeeld schuin de zwarte lijn nadert, zal hij met zijn sensoren niet alle kleuren goed kunnen detecteren. Zet hem daarom bij voorkeur op de plaats zoals in het plaatje is aangegeven. Zet ook de sensoren niet te ver uit elkaar anders lukt het niet goed om te kalibreren. 3
1 Bij de NXT moet je eerst met de hand het type sensor kiezen, voordat je de waardes te zien krijgt. Om een beetje te begrijpen wat de verschillen tussen de kleuren zijn sluit je de robot aan via de USB kabel of via BlueTooth. Gebruik het schermpje helemaal rechts onder en druk op het middelste vakje links (Port View). Je ziet dan de waarden van sensor 1 en 4. Zet je robot op het speelveld en noteer welke waarden je ziet bij ieder van de kleuren voor zowel de linker als de rechter sensor. Draai de robot ook in verschillende richtingen en zie hoe de waarden verschillen. Het kalibratieprogramma probeert op dezelfde manier die waarden vast te leggen in het programma. 2 Het eerste dat je zal zien is dat de waardes van de linker en rechter sensor niet hetzelfde zijn bij dezelfde kleur op het veld. Alle sensoren zijn onderling een beetje verschillend. Daarnaast kan de lichtinval en de schaduw onder de sensor van invloed zijn. In de meeste gevallen zal je voor zwart een waarde lezen ergens tussen 7 en 15. Voor groen liggen de waardes ergens rond de 30 en voor geel meestal boven de 50. Maar bij iedere sensor is dat weer verschillend. Het is belangrijk dat je die waardes voor jouw robot een beetje gaat onthouden, zodat je kunt zien of de robot de kleuren goed heeft geregistreerd. 3 Open Les 2 en dubbelklik op AutoCalibrate. In dat programma gaan we nu uitleggen wat er tijdens het kalibreren gebeurt. In het AutoCalibrate programma dubbelklik je op CalReadYellow, het programma dat de kleur geel gaat registreren. 4 Eerst wordt op de bovenste regel de tekst Calibrating afgedrukt. Vervolgens wordt de waarde van sensor 4 uitgelezen en doorgegeven aan de berekening die daarop volgt. 5 In het programma gebruiken we nooit direct de waarde die de sensor leest omdat er te veel storende factoren zijn die tijdens het volgen van de lijn een invloed kunnen hebben. Daarom gaan we een veiligheidsmarge inbouwen, zodat we wat betrouwbaarder de kleuren kunnen herkennen. 6 1. De sensorwaarde wordt vermenigvuldigd met de marge. 2. Het resultaat wordt gedeeld door 100 3. Dat wordt dan van sensorwaarde afgetrokken. (Bij zwart en groen wordt de marge er bij opgeteld) We verlagen de gelezen waarde met de Margin (standaard staat die op 25%), zodat een waarde van bijvoorbeeld 50 wordt verlaagd tot 37.5. Deze Margin zorgt ervoor dat verschillen in de lichtinval en schaduwen worden uitgefilterd. Om geel goed te herkennen moet de gelezen kleur dus hoger zijn dan 37.5. Maar dat is bij jouw sensoren waarschijnlijk een andere waarde. De op die manier berekende waarde wordt opgeslagen in YelLft. Eronder zie je precies dezelfde formule, maar nu voor sensor 1, de rechter sensor en die slaat de waarde op in YelRht. Omdat sensoren onderling kunnen verschillen moeten we de waarde van iedere sensor afzonderlijk vastleggen. 7 Na het kalibreren zien we op het schermpje voor iedere kleur twee getallen. Een voor Links en een voor Rechts. De waarde kan door de berekening ook cijfers achter de komma krijgen. 8 Zet het programma terug op Les2 en upload het naar de robot. Voer dan de kalibratie uit. Daarna zet je de robot ergens op het groene deel van het veld en druk op RUN. De robot moet vooruit rijden en stoppen als de rechter sensor (op poort 1) de kleur geel ontdekt. Je kunt het programma aanpassen voor de kleur groen en voor de sensor aan de andere kant. Controleer steeds op het schermpje welke aangepaste waarden de robot heeft gevonden voor iedere kleur. 4
2. Volg de zwarte lijn De lijnvolger met twee sensoren In deel 1 heb je al gezien wat een lijnvolger doet. Je gaat nu een lijnvolger gebruiken met twee sensoren. De SimpleFollower probeert de lijn precies tussen de twee sensoren te houden. Zodra de linker sensor de lijn detecteert, moet de robot naar links gaan, bij de lijn vandaan en als de rechter sensor de lijn ziet, moet hij juist de andere kant op draaien. Aan de lijnvolger kunnen we vertellen, hoe snel hij moet rijden en hoe lang hij moet blijven rijden. Verder kunnen we de hoeveelheid stuur (Angle) aanpassen. Zo kunnen we scherpe bochten beter nemen en kunnen we stoppen als de robot een bepaald punt heeft bereikt. We gaan eerst de SimpleFollower bekijken en daarna op het speelveld uitproberen. In de lessen daarna maken we het geheel wat interessanter door een uitgebreidere lijnvolger te gebruiken. Hieronder zie je hoe de SimpleFollower er uit ziet. 5
1 Laad het programma voor Les 3. Dit programma roept eerst weer het kalibratieprogramma aan en legt de sensorwaarden vast. Daarna roept het de SimpleFollower aan en gaat 20 sec de lijn volgen en wacht vervolgens nog 30 seconden. Dubbelklik op de SimpleFollower en bekijk wat het programma doet. 2 De SimpleFollower heeft drie vakjes, waarin de volgende dingen vanuit het programma aan de lijnvolger worden doorgegeven: Speed Dit is de snelheid waarmee de robot de lijn moet volgen. Hoe sneller hij rijdt, hoe groter de kans is dat hij de lijn kwijtraakt. De waarde is tussen 0 en 100. Angle Dit is de hoeveelheid stuur die de robot geeft. Hoe hoger de waarde, hoe meer de robot zal gaan zigzaggen. Bij een scherpe bocht moeten we meer stuur geven dan bij een rechte weg, maar mee stuur betekent ook dat de robot door het slingeren langzamer vooruit komt. De waarde is tussen 10 en 100. Time Dit is het aantal seconden dat de robot de lijn blijft volgen. Als de tijd is verstreken zal het programma de volgende stap uitvoeren. 2 Dubbelklik op de SimpleFollower. Het programma van de lijnvolger wordt dus aangeroepen vanuit het hoofdprogramma (Les 3) en geeft door wat de snelheid, stuur en tijdsduur is. Dit noemen we de parameters van de lijnvolger. Die parameters zie je in het eerste blokje. Door het doorgeven van parameters kunnen we de lijnvolger de ene keer snel en de andere keer langzaam laten rijden en ook de hoeveelheid stuur aanpassen en laten tellen waar hij ongeveer op het veld is. 3 Deze constructie komen we dus heel vaak tegen en bij het maken van een zogenaamd myblock, ook wel een subroutine of een functie genoemd. We kunnen met het doorgeven van parameters vanuit het ene deel van het programma het gedrag van een ander deel van het programma beïnvloeden. Dat maakt een programma flexibel en kunnen veel voorkomende onderdelen hergebruikt worden. 6 De drie parameters die worden doorgegeven worden door het programma opgeslagen in een variabele, die vervolgens gebruikt wordt om de snelheid van de motoren te regelen. Helemaal aan het begin van het programma wordt een Timer gestart en aan het eind wordt in een Loop steeds gekeken of de tijd al verstreken is. Via de parameters kan hetzelfde programma daarom steeds aangepast worden aan de situatie op het veld. 7 Ga weer terug naar Les 3 en upload je programma naar de robot. Kalibreer eerst de robot weer. Zet hem daarna aan het begin van de zwarte lijn en druk op RUN. De robot gaat de lijn volgen maar stopt na 20 seconden. Onderweg zal hij waarschijnlijk de lijn kwijtraken omdat de Angle op 50 staat. Dat is bij scherpere bochten te weinig stuur. 8 Pas het programma aan, zodat het wat beter de lijn kan volgen. Maar blijf hier niet te lang aan werken, want in de volgende les laten we een betere lijnvolger zien die minder moeite heeft om de lijn goed te volgen. 6
3. De lijnvolger laten stoppen Volg de zwarte lijn tot aan de gele lijn We willen dat de robot de lijn volgt en daarbij gebruik maakt van de doorgegeven parameters voor de snelheid en de hoek. Maar hoe kunnen we de robot laten stoppen bij de gele lijn. Tot nu toe gaven we aan de lijnvolger door hoe lang hij moet blijven rijden, maar als we de robot wat sneller laten rijden, moeten we ook steeds de tijd weer aanpassen om bij de gele lijn te stoppen. Veel beter is het als we hem ook kunnen laten stoppen door de sensoren te gebruiken. Dat betekent dat naast de stopconditie met de tijd er een tweede stopconditie nodig is, die kijkt naar de kleur die de linker of rechter sensor ziet. Daarvoor moeten we twee extra parameters doorgeven, de poort van de sensor die naar de grond kijkt en de kleur, waarop de lijnvolger moet stoppen. Dat doen we in het LineFollower myblock: Aan dat block geven we het poortnummer door van de sensor en in het laatste vakje de StopColor. Die kleur heeft de Kalibratie routine geregistreerd en we gaan die waarde doorgeven aan de lijnvolger. In plaats van de lijnvolger bijvoorbeeld 10 seconden te laten werken, vertellen we hem nu dat bij moet stoppen als de linker sensor de kleur geel detecteert. Omdat we ook nog een tijd meegeven, moeten we wel zorgen dat deze tijd langer is dan hij nodig heeft om de gele lijn te vinden, anders stopt hij al voordat hij bij de gele lijn is. Mocht de robot de gele lijn missen, dan stop hij als de tijd verstreken is. 7
1 We gaan gebruik maken van de sensoren om te kijken of de gele lijn ontdekt wordt. We hoeven dan niet de tijd te tellen en we kunnen dan gemakkelijker de snelheid aanpassen. Om dat te kunnen doen, moeten we een extra stopconditie opnemen, op basis van het uitlezen van een sensor. Dus voegen we twee extra parameters toe: Port en StopColor. Je gebruikt in je programma nu de nieuwe LineFollower in plaats van de SimpleFollower 2 Om de kleur door te geven gebruiken we een variabele. Kies uit de rode icoontjes de Variable en plaats die vóór de LineFollower. Kies rechts bovenin de naam YelLft voor de gekalibreerde Gele kleur van de linker sensor. Kies daarna links onderin de optie Read Numeric. 3 Ga met de muis op het vakje met het koffertje staan. Er verschijnt een klosje. Sleep dit klosje naar de StopColor in de LineFollower en laat het daar los. Er wordt dan een gele lijn gekoppeld tussen beide icoontjes. Een gele lijn geeft een Data verbinding aan. 4 Om zeker te weten dat je robot de gele lijn ook ontdekt neem uit de groene icoontjes een piepje op. 5 In het laatste vakje van het piepje geef je aan dat de piep slechts één keer moet worden uitgevoerd. (Waarde 1). Bij de waarde 0 zal de robot wachten tot de piep voorbij is, voordat hij verder gaat. De oranje wachtopdracht daarachter nemen we op, zodat we na afloop van het programma nog kunnen zien wat er op het display is afgedrukt. Doen we dat niet, dan verschijnt direct het menu weer en zijn we de mededelingen op het scherm kwijt. 6 Probeer je programma uit. Zorg dat de robot stopt als hij de gele lijn heeft gevonden. Controleer eerst weer op het schermpje of de kalibratie de juiste waarden heeft gevonden. 8
4. Volg de gele lijn Volg de gele lijn en stop weer bij de zwarte lijn Nu het robotje de gele lijn heeft gevonden, willen we dat hij de gele lijn gaat volgen en dat hij daarna weer stopt aan het eind van de gele lijn. We moeten een nieuwe lijnvolger gebruiken, die de gele lijn volgt en die stopt bij de zwarte lijn. Dat is hetzelfde als de lijnvolger die we al hebben, alleen zijn daarin de kleuren omgekeerd. Hier is de weg geel en dus moet de kleur HOGER zijn dan het omringende veld. Dat kan niet met de bestaande lijnvolger. Daarnaast willen we dat de gele lijnvolger aan de andere kant van de gele lijn stopt, als de robot aan de rechterkant de zwarte lijn weer ziet. Dat doet de YellowFollower voor ons. Maar er is een extra complicatie. Zodra we de gele lijn gaan volgen en we kijken of de zwarte lijn aan de rechterkant wordt ontdekt, is het eind van de zwarte lijn aan het begin van de gele lijn ook nog te zien. Daardoor denkt de robot dat hij al klaar is met het volgen van de gele lijn, nog voordat hij is begonnen. We moeten dus zorgen, dat het testen op de zwarte lijn niet meteen gebeurt, maar pas nadat de robot voorbij de zwarte lijn bij de gele splitsing is. Bij de YellowFollower hebben we geen extra stopconditie, omdat de gele lijnvolger altijd de zwarte lijn aan de rechterkant heeft. Dat is standaard in de YellowFollower opgenomen. Bij de zwarte lijnvolger willen we zowel aan de linker- als aan de rechterkant kunnen testen of de kleur geel wordt gevonden. 9
1 Open het programma van Les 5. Dit is een kopie van het programma uit les 4. Voeg daar zelf de YellowFollower uit de lichtblauwe icoontjes aan toe. 2 Test eerst je nieuwe Gele Lijnvolger uit. Laat hem het eerste stuk afleggen en daarna moet hij de gele lijn gaan volgen. Maar in veel gevallen gaat het mis en gaat de robot gewoon door alsof hij de gele lijn niet heeft gezien. Aan het piepje kun je horen dat hij de gele lijn wel heeft gezien. Maar waarom gaat hij dan gewoon door met het volgen van de zwarte lijn? Probeer het programma eerst uit. Denk er eerst eens goed over na voordat je verder leest. 3 Zodra de zwarte lijnvolger de gele lijn ontdekt, stopt deze en keert terug naar het hoofdprogramma dat daarna de gele lijnvolger zal opstarten. De gele lijnvolger stopt zodra hij aan de rechterkant de zwarte lijn ontdekt. Maar als we dat doen, dan zal deze direct weer stoppen omdat de zwarte lijn bij de kruising op de gele lijn nog zichtbaar is. Het robotje denkt dat dit het eind van de gele lijn is en stopt. We moeten dus eerst een opdracht geven om een klein bochtje naar links te maken, zodat we vrij komen van de zwarte lijn en pas daarna gaan we de gele lijnvolger starten. We zorgen dat dit bochtje niet langer duurt dan 0.5 seconde en dan zal het robotje vrij zijn van de zwarte weg en de gele weg gaan volgen. 4 Lukt het niet, dan kun je het robotje ook een klein stukje vooruit laten rijden, maar het belangrijkste is dat hij vrij komt van de zwarte lijn aan de rechterkant, zodat hij de gele lijn helemaal vrij heeft. Maak het programma af met een volgende lijnvolger, die de scherpe bochten neemt en aan het eind controleert of hij het gele moeras heeft bereikt en dan stopt. 5 Houd er rekening mee dat als je direct na de gele lijn een zwarte lijnvolger opneemt die met de linker sensor kijkt of hij het gele moeras ziet, je aan het eind van de gele lijn hetzelfde probleem krijgt als aan het begin. Daarom moet je de rechter sensor gebruiken om dat te voorkomen. Maar nog beter is het om het laatste stuk op te splitsen in een aantal lijnvolgers, die beter zijn afgestemd op het rechte stuk en daarna op de scherpe bochten. 10
5. Het blikje vinden Het evacueren van de container Als je aan het eind van de zwarte lijn bent gekomen, kom je uit in het moeras dat je herkent aan de kleur geel. Je moet nu op zoek naar het blikje maar je kunt ook een aantal bekertjes in het veld plaatsen. Je moet zorgen dat je het hele veld doorzoekt en terwijl je dat doet, duw je de bekertjes voor je uit, het veld uit. Je gaat eerst een stukje vooruit rijden tot aan de groene rand. Zie je die, dan ga je met een klein bochtje naar achteren en daarna weer naar voren. Zo bezoek je het hele veld. Als alles goed is gegaan heb je de missie volbracht en kun je meedoen met de rescue wedstrijd. Het programma dat je gemaakt hebt is niet erg snel. Veel leerlingen hebben al aan dit probleem gewerkt en sommigen hebben het voor elkaar gekregen om de hele missie in 16 seconden te volbrengen. Dat kun je bereiken door je lijnvolgers te optimaliseren en aan het eind bij het zoeken van het blikje gebruik te maken van de ultrasone sensor. Maar dat laten we aan je inventiviteit over als afsluiting van deze lessen. Er is ook nog een derde deel, waarin wordt uitgelegd hoe je zelf een lijnvolger maakt. In het vierde deel wordt uitgelegd hoe je zelf myblocks kunt maken. 11
1 Open het programma vanles 6. Dit programma gaat het moeras doorzoeken en terwijl dat gebeurt wordt het blikje uit het veld geduwd. Deze eenvoudige versie kijkt dus niet waar het blikje zich bevindt. 2 Als eerste maak je een loop direct na het starticoontje. In deze loop gaan we nu het moeras doorzoeken. Zet vóór de Loop eerst de kalibratie routine. Binnen de loop laat je de robot vooruit rijden, totdat hij niet langer de kleur geel ziet. Kijk daarvoor ook naar het plaatje van het programma op de voorkant van deze leskaart. 3 Je laat de robot dan achteruit rijden tot hij het gele vlak verlaat. 4 Daarna laat je hem achteruit rijden en een bochtje maken. Dit zorgt ervoor dat de robot kris- kras door het gele moeras rijdt. Door de snelheid en de tijd dat hij achteruit rijdt en de bocht die hij maakt aan te passen kun je zorgen dat hij overal komt. 4 Bij de stopconditie aan het eind van de loop neem je een getal op, dat het aantal keren aangeeft dat hij de loop doorloopt. Zorg ervoor dat het getal hoog genoeg is om het hele moeras te doorzoeken. 5 Test dit programma in zijn eentje uit en als het helemaal goed werkt, dan voeg je het toe aan je programma uit les 5. Daarmee kan je programma de hele missie volbrengen. 6 Compacter is het om de SearchSwamp routine te verpakken als een eigen myblock. Hoe je dat doet, behandelen we in deel vier. In dit deel kun je ook het al aanwezige myblock voor SearchSwamp gebruiken en toevoegen aan je programma uit Les 5. 7 Natuurlijk is het sneller en mooier als je een sensor gebruikt om het blikje te vinden. Dat doe je door bij het bereiken van het moeras eerst een beweging te maken van links naar rechts waarbij je de ultrasone sensor gebruikt om te zien waar het blikje staat. Heb je dat eenmaal gevonden, dan rijdt de robot in een rechte lijn naar het blikje toe en duwt het dan uit het moeras. Om niet voorbij het blikje te rijden, moet je onder het rijden blijven kijken of het blikje nog steeds te zien is. Raak je het blikje onderweg kwijt, dan moet je bijsturen. Dat is moeilijker dan het lijkt, omdat je niet weet waar je het blikje kwijtraakt, dus soms zal je opnieuw moeten zoeken. Die opdracht is de laatste uit dit deel en is tegelijkertijd je eindopdracht, waarin je laat zien wat je in dit deel hebt geleerd. 12