NLT Robotica Deel 3 - Level 2 V

Vergelijkbare documenten
NLT Robotica Deel 2 - Level 1 V

NLT Robotica Deel 1 - Level 1 V

NLT JuniorSoccer Robot NXT 2015

Introductiekaart Niveau B Installatie software

Programmeren met lego mindstorms.

Introductiekaart Niveau B Installatie software

Je kunt de mbot ook draadloos programmeren via Bluetooth of met 2.4G Wireless. Bekijk de instructies op mbot draadloos.

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

g. Je kan nu door op de play knop te drukken je programma versturen naar de EV3 brick waarna het zal uitgevoerd worden.

Mindstorms NXT practicum

Stap 1. Batterij aansluiten. We gaan uit van een accu en niet van batterijen

Over Betuwe College. Lego Mindstorm project

MINDSTORM LEGO ROBOTS

Mindstorms NXT practicum

MINDSTORM LEGO ROBOTS

De interface (stuurmodule)

Scratch. Gemaakt door: Déjan van Noordt en Leroy van den Driesche Leerlingen HAVO 5 SG Spieringshoek Als onderdeel voor het vak Informatica

Programmeerstructuren met App Inventor

Scratch les 3: Quiz! Je eigen spelshow

INHOUDSTAFEL... 2 VOORWOORD... 3 INLEIDING... 4 GEBRUIK VAN MOTOREN... 8 DE HERHAALFUNCTIE... 9 SAMENVATTENDE OEFENING... 10

Mindstorms-Ev3 Robot

INHOUDSTAFEL... 2 VOORWOORD... 3 INLEIDING... 4 GEBRUIK VAN MOTOREN... 9 DE HERHAALFUNCTIE ZELF EEN BLOK MAKEN... 11

Maqueen. robot. MAQUEEN: EENVOUDIG PROGRAMMEERBARE ROBOT VOOR STEM (Science Technology Engineering Mathematics) ONDERWIJS MET DE MICRO:BIT.

Doorlopende Leerlijn Robotica. Robotica. Doorlopende leerlijn

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

techniek Motor en as LEGO O P D R A C H T Maak het programma van rechtsboven na, op het open stuk van het scherm.

De lichtvolger en LabVIEW

Van A naar B. Hoe je een auto maakt met DC-motoren en je het kunt programmeren door. de tijd, snelheid en afstand te meten! Naam. Je leert...

Getting-started tutorial. Versie 1.0

Fable bedienen met een keyboard

Workshop Engino. 1 Aanvang workshop. 2 Bouwen. 1.1 Wat kan ik voor de workshop doen?

Handleiding HOOS. - Het Online Onderneem Systeem

Scratch Rekenen & programmeren

LES 4: Scrollen achtergrond en tegels gebruiken

Stroomschema s maken in Word

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

WAAROM? Zelf, of juist met hulp...

Gebruikers Toevoegen. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

Zelf een spel maken met GameMaker Les 5: een platformspel

Duurzame energie. Aan de slag met de energiemeter van LEGO

HANDLEIDING VIEW DESKTOP. Handleiding VIEW Desktop. P. de Gooijer. Datum: Versie: 1.3

Ga naar en remix het spel.

Nascholing voor leerlingen. Software-ontwikkeling met behulp van Lego Mindstorms

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Installatie Steam. 2 Open Internet Explorer. 3 Typ de volgende link in de navigatiebar :

De mbot. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

In dit lespakket maken we gebruik van de studentenversie van LabVIEW 7.1

Handleiding Icespy MR software

Windows is het meest gebruikte besturingssysteem ter wereld.

technologisch LEGO Control Lab en Coach Junior LEGO Control Lab en Coach Junior Bijlage bij DOCENTENHANDLEIDING vmbo-t/havo/vwo leerjaar 2

MBLOCK + MBOT. is een project van

Flappy Bat. Om te beginnen ga je naar en remix je het spel.

Routes voor Sygic maken en aanpassen met ITN Converter

Muse Stappenplan Interactieve vormgeving en productie

Kant patroon in Embird Studio.

Klonen. Het doel is om de appel op te eten. Iedere keer dat de slang de appel eet, groeit hij één vakje langer.

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1

BEGINNER EV3 PROGRAMMEER LES

Boe-Bots - Arduino robots

Scratch les 3: Spirograaf

Voeler ingang van de ilog recorder. Stop de temperatuurvoeler

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

199 Kruidvat

Scratch: Introductie. Wat is Scratch? Lekker dansen!

AAN DE SLAG MET DE MBOT!

BLOCKLY VISUEEL PROGRAMMEREN LEVEL 2

Handleiding Zorgverzekeraar Winmens versie 7.29

Opnieuw starten met de Fiscaalbox.

Opladen Opmerkingen Vragen?... 11

Game Maker: Avonturier en skelet

Module 2: Wat is Scratch?

Hoe moet je een prachtige presentatie maken?

De Deskline configurator Advanced handleiding

Hanwell temperatuur / vocht logger handleiding

9.18 Macro s: oefeningen

TIPS EN HINTS VOOR BEGINNERS. Klik nu in de Menu balk op het menu item ELEMENT. Onder het woord Element gaat er nu vervolgens nu een sub menu open

ewon Reset en Recovery

BRICONweb voor de club

Handleiding help Sinterklaas!

Scratch les 1 Rekenen

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

HANDLEIDING INFOBOARD SOFTWARE

NXT Snelstartgids. door Rob Widger

Handleiding website SVNL voor evenementenverkeersregelaars

draaimolen programmeren PC

GEVORDERDE PROGRAMMEER LES

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

De eenparige rechtlijnige beweging

Netwerk Interfacing Data Logging.

Bijlage bij Kidspiration Getting Started Guide International English Edition Version 3

Voeler ingang van de ilog recorder. Stop de temperatuurvoeler

LCD scherm ipad mini Reparatie handleiding

Computervaardigheden training. Hoofdstuk 4 e-learning. CH4-v1.0. daar gaan we werk van maken! 2007 ITpreneurs Nederland BV. All Rights Reserved

Cursus Powerpoint 2003

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

Gemaakt door: Tessa Romviel & Pepijn t Hoen Leerlingen VWO 6 SG Spieringshoek Als onderdeel voor het vak Informatica

Handleiding registratiesysteem Kleuterplein. versie 1.0

Over Betuwe College. Lego Mindstorm project

Transcriptie:

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 retail versie en de educatieve versie. De thuisversie 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 Home Edition 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 aan 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 Verkeerde tekst in title gewijzigd 1

Workshop Robotica Level 2 Deze workshop Robotica is bedoeld voor Level 2 volgens de RoboDidactics opzet. Dit level noemen we ook wel het Fysieke niveau, waarin leerlingen meer zelfstandig programma s leren te maken. Op Level 1 (het conceptuele niveau) werden veel dingen al voorbereid in de vorm van myblocks. Dat is op dit niveau veel minder het geval. In dit derde deel worden daardoor (paradoxaal genoeg) veel eenvoudiger programma s gemaakt dan op Level 1. Maar in het vierde deel keren we terug naar de myblocks en wordt uitgelegd hoe de myblocks uit Level 1 worden gemaakt. Deze workshop bestaat uit 8 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 te beschikken. Omdat het maken van het programma enige tijd vergt kunnen meerdere cursisten gebruik maken van dezelfde robot. Deze workshops op Level 2 maken gebruik van het robotje met twee lichtsensoren, waardoor de robot sneller kan rijden en ook de kleuren op het veld kan onderscheiden. Deze workshop op Level 2 is op een aantal punten eenvoudiger dan Deel 2 van Level 1. De verschillen zijn de volgende: De kalibratie gebeurt vanaf één punt met de kleur groen. De andere kleuren worden hiervan afgeleid. Er wordt gebruik gemaakt van een veel simpelere lijnvolger waar zelf wel meer aan geprogrammeerd moet worden. Er wordt veel minder gebruik gemaakt van het display. Het zoeken van het blikje gebeurt via de UltraSone sensor. 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 level leren je, 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 via 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. In Level 2 is het de bedoeling dat je programma s zoveel mogelijk zelf maakt. Daarom hebben we alle functies die je op Level 1 hebt gebruikt vereenvoudigd, zodat je die nu zelf kunt gaan maken. Hiernaast zie je een programma dat de kalibratie uitvoert. Het is een beetje anders dan het kalibratie programma dat we eerder zagen, omdat we nu maar één kleur registreren en daar de andere kleuren van afleiden. De bedoeling is dat je dit programma zelf gaat maken, zodat de drie kleuren worden geregistreerd. Om dat te kunnen doen, gaan we stap- voor- stap het programma doorlopen en laten we zien wat er gebeurt. Je gaat aan de hand daarvan vervolgens het programma verder aanpassen, zodat je de kleurinformatie daarna kunt gaan gebruiken in de resterende programma s. Omdat het proces nogal ingewikkeld is, behandelen we het stap voor stap en probeer daarom na iedere stap je programma uit, voordat je verder gaat. Het belangrijkste doel is om inzicht te krijgen in de manier waarop de sensoren omgaan met de gelezen waardes. Dat is van groot belang om de missie met succes te volbrengen. 1

1 Als het programma nog niet is gestart, dubbelklik dan op het EV3 icoontje op je bureaublad. Dit programma voert de kalibratie uit, zoals je ook in Level 1 al gezien hebt, alleen lezen we maar één kleur. 2 Kies uit het menu File.. Open Project en kies NLT_D3_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_D3_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. Dit is hetzelfde programma als in deel 1 en 2, alleen is de kalibratie hier anders. 3 Dubbelklik op het blauwe icoontje met de naam Calibrate. 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. Voordat we iets gaan veranderen bekijken we eerst wat de rest van het programma doet. Maar eerst wordt op de onderste regel van het display (12) de tekst CAL, CHK en RUN afgedrukt. Dat is het menu, waaruit je kunt kiezen wat de robot moet gaan doen. Dit is hetzelfde menu programma dat we op Level 1 gebruikten. 4 In dit stukje programma wordt gekeken welke knop er wordt ingedrukt. Als de linker knop (CAL) wordt ingedrukt, wordt het bovenste icoontje uitgevoerd, waarin de robot de kleur van beide sensoren gaat uitlezen waar hij op dat moment boven staat. De middelste knop wordt niet gebruikt en de rechter knop dient om het programma te starten. Dubbelklik op het blauwe icoontje met de naam CalReadCol. 5 Deze sterk vereenvoudigede versie van het inlezen van de kalibratiewaarde doet nu nog niet veel anders dan de linker en de rechter sensor uitlezen en daarna geeft hij een piepje. Hij drukt ook een waarde op het scherm af, maar de waarden worden nog niet gebruikt. Dat ga je nu aanpassen. 6 Kies het programma Les1 en stuur dit naar de robot via het schermpje rechts onderaan. Zet de robot ergens op een groen vlak en druk dan op de CAL knop. Op het schermpje zie je nu alleen de tekst Color. We gaan zorgen dat hij de waardes gaat lezen. 7 Kies uit de rode icoontjes de Variable en zet er vier op de plaatsen zoals je in het plaatje ziet. Daarna kies je in het vakje rechts bovenaan de naam van de variabele en vult daar bovenaan BlkLft en YelLft. Op de onderste rij verander je de namen in BlkRht en YelRht. De namen voor die variabelen bestaan al, dus hoef je alleen de naam te kiezen uit het lijstje dat verschijnt. 8 We gaan nu eerst de waarde laten zien op het scherm. Verbind daarom de output van de sensor met de input (met de T) van de groene Display functie. Dit zorgt dat de ingelezen waarde zichtbaar wordt gemaakt. 9 Zet de robot op het groene vlak en voer de kalibratie uit. Je ziet op het scherm de waarde van de linker en de rechter sensor verschijnen. Noteer die waarde goed. Zet daarna de robot op het gele vlak en voer de kalibratie opnieuw uit. Schrijf die waarden ook op en herhaal dit dan met zwart. Je hebt nu de waardes voor alle drie de kleuren voor links en rechts. 2

2. Registreer de kleuren Geel en Groen Leg de kleuren vast tijdens de kalibratie NLT Robotica Deel 3 - Level 2 V0.1 2015 Je kalibratie programma leest dus alleen de waarde voor groen in en gaat dan op basis daarvan de waarden voor zwart en geel uitrekenen. Hiernaast zie je het gedeelte dat die berekeningen uitvoert. Voor Zwart wordt er een waarde afgetrokken en voor Geel wordt er iets bijgeteld. Hoeveel er moet worden afgetrokken en hoeveel er moet worden bijgeteld wordt bepaald door de metingen voor Groen, Geel en Zwart die je net hebt uitgevoerd voor Links en Rechts en die je van je scherm hebt afgelezen. Dit is een veel eenvoudiger manier om de kalibratie waarden vast te stellen dan we gedaan hebben met de automatische kalibratie op Level 1. Het doel van Level 1 was om ze snel en eenvoudig mogelijk een werkend programma te krijgen. Het doel op Level 2 is om te leren om zelf programma s te maken. Die houden we daarom zo eenvoudig mogelijk. De manier om de waarden voor Geel en Zwart af te leiden uit die voor Groen is om eerst alle drie de waarden uit te lezen en op te schrijven. Stel dat we voor Groen de waarde 30 lezen en voor Zwart 15 en voor Geel 50. We moeten dan zorgen dat we een waarde voor Zwart kiezen die tussen 15 en 30 ligt, bijvoorbeeld 20. Het onderscheid tussen groen en zwart moet groot genoeg zijn. Datzelfde doen we met Geel. Die waarde moet tussen 30 en 50 liggen. De programma s die de kleuren gebruiken testen altijd op een waarde die lager ligt dan die wordt opgeslagen in BlkXXX en bij Geel moet de waarde altijd hoger zijn dan de waarde in YelXXX. Die berekeningen gaan we nu uitvoeren en het programma verder aanpassen. 3

1 Open Les 2 en dubbelklik weer op Calibrate. Dubbelklik daarna weer op CalReadCol. 2 Als je de drie waarden voor iedere sensor nog niet hebt uitgelezen en genoteerd, doe dat dan alsnog. Start het programma van Les 2 (is hetzelfde als Les 1) en noteer de twee waarden van Groen en vervolgens van Geel en Zwart. 3 Selecteer uit de rode icoontjes de Math functie en zet twee ervan achter de display van de linker en rechter sensor. Doe hetzelfde met de regel eronder voor sensor 1. 4 Kies nu uit de rode icoontjes de Variable en plaats er een na iedere van de vier Math functies, die je net hebt gemaakt. Zorg ervoor dat ieder van de vier variabelen de functie Read Numeric krijgt en dat de namen op de eerste regel BlkLft en YelLft worden. Op de tweede regel wordt dit BlkRht en YelRht. 5 Nu moet je alle inputs van de Math functies (veldje A) verbinden met de sensor output en met de T ingang van de display. Dat doe je door eerst op het output vakje van de sensor te gaan staan met je muis. Je ziet dan een klosje verschijnen. Dat klosje sleep je mee naar de T en laat het daar los. Vervolgens ga je weer naar de output van de sensor en sleep het klosje naar de A van de eerste Math functie. Daarna doe je hetzelfde met de tweede Math functie. Herhaal dit op de tweede regel, zodat alle vier de Math functies en de Display functies allemaal verbonden zijn met de sensor outputs. 6 Neem de genoteerde waarde voor Groen en Zwart en zet de helft van het verschil tussen beide in het vakje B van de Math functie. Dus als Groen 15 is en Zwart is 7, dan trek je er dus 4 vanaf. Kies in het eerste vakje de min om het getal van de sensor waarde af te trekken. Verbind daarna de output met de input van de Variable. Doe dit voor BlkLft en BlkRht. 7 Neem de genoteerde waarde voor Groen en Geel en zet ook hier de helft van het verschil tussen beide in het vakje B van de Math functie. Dus als Geel 30 is, zet je een waarde van 8 in het vakje B. Gebruik alleen hele getallen en rond ze af naar boven. Verbind de output van de Math functie met de input van de Variable. Doe dit voor beide velden YelRht en YelLft. 8 Op de voorkant van deze kaart zie je het hele programma. Controleer goed of alles klopt en goed is verbonden. 9 Save je programma en ga terug naar Les 2 en upload het naar de robot. Voer de kalibratie opnieuw uit. Dat doe je altijd als de lichtomstandigheden zijn veranderd. Als alles hetzelfde is gebleven hoef je niet steeds opnieuw te kalibreren, tenzij je de robot tussentijds hebt uitgezet. 10 Zet de robot op het gele vlak in de richting van de zwarte lijn en druk op RUN. De robot gaat nu rijden en moet stoppen als hij de zwarte lijn ontdekt. Je kunt het programma aanpassen om de robot ook op een andere kleur of een andere sensor te laten stoppen. Kijk of je robot goed werkt en de kalibratie goed heeft uitgevoerd. 11 Als je de uitgerekende waarden in Calibrate bij de default waardes invult met dezelfde waarden die je zelf hebt berekend, kun je altijd de kalibratie overslaan door direct op RUN te drukken. 4

3. Volg de zwarte lijn NLT Robotica Deel 3 - Level 2 V0.1 2015 De lijnvolger met twee sensoren In deel 1 heb je al gezien wat een lijnvolger doet. Je gaat nu zelf een eenvoudige lijnvolger maken. Je eerste programma gebruikt de SimpleFollower en dat programma ga je bekijken en vervolgens aanpassen. De SimpleFollower werkt met twee sensoren en 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 de andere kant op draaien. Deze eenvoudige lijnvolger werkt alleen met standaard instellingen, waarmee je alleen het eerste deel van het parcours kunt volgen. Je gaat dus eerst de SimpleFollower bekijken en daarna op het speelveld uitproberen. In de lessen daarna maken we het wat interessanter door er nieuwe onderdelen aan toe te voegen. Dit is een zeer eenvoudige versie van de lijnvolger. We gaan hem stap voor stap bekijken en daarna gebruiken. Hij werkt wel maar is niet zo handig te gebruiken omdat hij geen parameters heeft en dus alleen veranderd kan worden door hem aan te passen.. Dat gaan we in de volgende lessen verder behandelen. Maar eerst gebruiken we de SimpleFollower, die de gekalibreerde waarden voor Zwart en Geel nodig heeft om goed te kunnen werken. 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 nu op de SimpleFollower en bekijk wat het programma doet. 2 Het programma start met het op nul zetten van een timer. Daarna wordt een loop gestart, waarbinnen de lijnvolger wordt uitgevoerd. 3 Aan het eind van de loop (helemaal aan de rechterkant) wordt gecontroleerd of de timer al langer dan 20 sec draait. Zo ja, dan stopt de lijnvolger en worden de motoren gestopt. 4 Binnen de Loop wordt eerst gekeken of de rechter sensor (1) een waarde leest die lager ligt dan 10. We nemen even aan dat dit de waarde voor Zwart is. Als dat het geval is, maakt de motor een bochtje naar rechts. Als de rechter sensor geen Zwart registreert, wordt de onderste tak van deze eerste Switch genomen. 5 Binnen de Switch (dus alleen als Rechts GEEN Zwart ziet) wordt gekeken of de Linker sensor (4) dan Zwart registreert. Als dat het geval is wordt de bovenste tak uitgevoerd, waarbij de robot een bochtje naar Links maakt. Ziet de Linker sensor ook GEEN Zwart, dan wordt de onderste tak uitgevoerd, waarbij de robot rechtuit rijdt. Deze drie condities samen zorgen dat de lijnvolger de lijn tussen de twee sensoren in houdt en steeds corrigeert als een sensor de zwarte lijn ontdekt. Als jouw robot een hogere waarde voor zwart heeft, dan kun je het beste deze twee waardes hier aanpassen, anders werkt de lijnvolger niet. We gebruiken hier dus nog niet de gekalibreerde waardes voor Zwart. 6 De twee Switch icoontjes samen controleren dus voortdurend of de sensoren de zwarte lijn ontdekken. Maar je moet hier de waarde voor Zwart dus zelf invullen. Iedere keer als de lichtomstandigheden veranderen kan het nodig zijn dat je de waarde die hier staat moet aanpassen. Dat is dus niet zo handig. Ook de snelheid en de grootte van de bocht die de robot maakt om de correctie uit te voeren moet je met de hand instellen. Dat is ook niet handig. We gaan deze lijnvolger eerst uitproberen en daarna gaan we hem wat flexibeler maken. 7 Ga terug naar Les 3 en upload het programma naar de robot en start het programma. Je hoeft niet te kalibreren, want de lijnvolger gebruikt de gekalibreerde waarden toch niet. Kijk of het werkt en pas eventueel de waarde voor Zwart aan in de twee Switches. 6

4. De lijnvolger laten stoppen NLT Robotica Deel 3 - Level 2 V0.1 2015 Volg de zwarte lijn tot aan de gele lijn We willen dat de robot de lijn volgt en daarbij gebruik maakt van de gekalibreerde waardes. Daarnaast willen we de lijnvolger gemakkelijker kunnen aanpassen. Maar hoe kunnen we de robot laten stoppen zonder dat we steeds de tijd in de lijnvolger moeten aanpassen. De robot gaat het eerste deel van het parcours afleggen en stopt bij de gele lijn door de tijd vanuit het programma aan te passen. We hebben een speciale versie van de lijnvolger gemaakt, die als input een aantal z.g. parameters accepteert. Dit zijn variabelen die een waarde krijgen als we de lijnvolger in het programma aanroepen en die alleen binnen de lijnvolger worden gebruikt. Aan het begin van het programma staat een blokje met daarin de parameters die kunnen worden doorgegeven. De doorgegeven waardes worden opgeborgen in een variabele die we dan in de lijnvolger kunnen gebruiken. Als eerste gaan we de Time parameter gebruiken om de lijnvolger gemakkelijker te laten stoppen. Als we de lijnvolger nu in ons programma gebruiken verschijnen de parameters als vakjes, waar we een waarde in kunnen vullen. We moeten er nu voor zorgen dat de lijnvolger die doorgegeven waarden gaat gebruiken. 7

1 Laad het programma uit Les 4. Bij de LineFollower zie je dat er bij Time een waarde van 10 is ingevuld. Dubbelklik op de LineFollower zodat je kunt zien wat de LineFollower doet. 2 Als eerste wordt in het programma de waarde van de Time parameter opgeborgen in de variabele Time. Deze variabele is een zogenaamde Lokale variabele, die alleen die waarde heeft, zolang de LineFollower aan het werk is. 3 We moeten nu zorgen dat de 20 seconden, die de lijnvolger intern gebruikt, wordt veranderd, zodat de waarde van de Time parameter wordt gebruikt. 4 Uit de rode icoontjes kiezen we de Variable en plaatsen hem vlak vóór de Timer aan het eind van de Loop. Selecteer in het vakje rechts bovenin nu de naam Time. In het vakje links onderaan staat een potloodje. Dat betekent dat er iets naar de Variabele wordt geschreven. Maar dit keer willen we de inhoud lezen. 5 Kies daarom de functie Read en dan Numeric. Daarmee lezen we de doorgegeven waarde uit en we moeten die nu verbinden met de input van de Timer. 8 Zet de muis op het vakje in de Variable. Er verschijnt een klosje. Sleep het klosje naar het laatste vakje van de Timer (waar nu 20 staat) en laat het daar los. 9 We hebben er op deze manier voor gezorgd, dat eerst de tijd wordt ingevuld in het programma, dat de LineFollower aanroept. Daar staat de waarde 10 in. Vervolgens krijgt de LineFollower controle en neemt de doorgegeven waarde op en zet deze in de lokale variabele Time. Aan het eind van de Loop wordt de inhoud van de variabele Time uitgelezen en doorgegeven aan de Timer, die controleert of de waarde al is bereikt. Als dat het geval is, wordt de loopt beëindigd. Dat wordt gedaan door het groene draadje. 9 Upload het programma naar de EV3 en start het programma direct door op RUN te drukken. De robot gaat de lijn volgen en stopt na 10 seconden. Als we hem bij de gele lijn willen laten stoppen moet je tellen hoeveel seconden hij erover doet en dan de 10 seconden in Les 4 veranderen. 8

5. De zwarte lijnvolger Volg de zwarte lijn en gebruik de gekalibreerde waarden en parameters De lijnvolger werkt nu, maar gebruikt de gekalibreerde kleuren niet. Iedere keer moeten we dan de waarde van Zwart in het programma aanpassen. We willen dat de lijnvolger net als de Time parameter nu ook de gekalibreerde kleuren maar ook de doorgegeven Snelheid en Hoek gaat gebruiken. We hebben al gezien dat we dat doen door een variabele te gebruiken en we gaan daarom nu eerst de gekalibreerde kleuren gebruiken. De waarde voor Zwart staat in BlkRht en BlkLft en die variabelen gaan we gebruiken in plaats van de waarde die in de lijnvolger staat. Een waarde die hard in het programma is opgenomen noemen we een constante. Als we iets kunnen veranderen noemen we het een variabele. We gaan dus de constante voor Zwart veranderen in een variabele. Als tweede gaan we de doorgegeven parameters voor Speed en Angle gebruiken. Speed is de snelheid waarmee de robot rijdt. Dat moeten we op drie plaatsen aanpassen, bij rechtuit rijden en bij de correctie links en rechts. Angle is de hoek waarmee de correctie wordt uitgevoerd. Dat is vergelijkbaar met het stuur in een auto. Komt er een scherpe bocht dan moeten we meer stuur geven dan bij een flauwe bocht. Hoe hoger de Angle, hoe meer de robot zal gaan zigzaggen en dat maakt dat de robot langzamer gaat rijden. 9

1 Laad het programma Les 5. Verander daar de parameters voor Speed en Angle in 60 en 50. 2 We gaan nu zorgen dat alle drie de motor opdrachten niet meer de constante waarde gebruiken maar de variabelen Speed en Angle gaan gebruiken. 3 Voeg uit de rode icoontjes twee variabelen toe en kies de namen Speed en Angle. Verander daarna in het vakje links onder in Read Numeric. 4 Verbind de outputs van de variabelen met de inputs van het Motor Block. 5 Maar bij de linker sensor hebben we een probleem. Daar staat namelijk bij de constante voor de Angle een negatieve waarde, omdat de robot dan de andere kant op moet corrigeren. De Angle wordt doorgegeven als een positieve waarde en die moeten we dus veranderen. 6 We selecteren dan een rood Math Block en zetten dat tussen de Angle en het Motor Block in. 7 In het Math Block trekken we de waarde van de Angle in B af van de constante 0, zodat de waarde negatief wordt gemaakt. Vervolgens verbinden we weer de Speed en de nieuwe Angle met het Motor Block. 8 We hebben nu alle Motor Blocks gebruik laten maken van de parameters Speed en Angle. Nu moeten we nog de kleur Zwart gaan koppelen aan het uitlezen van de sensoren. Plaats eerst weer een Variabel block, vlak vóór de plaats waar de sensor wordt uitgelezen. Zorg dat de variabele wordt gelezen via Read Numeric en verbind de outputs ook weer met de inputs. 9 Upload het programma naar de robot en test of de lijnvolger goed werkt. 10

6. Stop bij de gele lijn NLT Robotica Deel 3 - Level 2 V0.1 2015 Volg de zwarte lijn en stop bij de gele lijn De robot volt nu de zwarte lijn en gebruikt de gekalibreerde kleuren en de parameters. Maar nu willen we hem ook laten stoppen als hij de gele lijn tegenkomt. We hebben dat tot nu toe gedaan door te tellen maar als we een ander parcours zouden hebben, dan weet je niet waar de gele lijn dan is. Daarom is het beter om de sensoren te gebruiken om te ontdekken of we op een bepaalde plaats zijn aangekomen. Omdat de controle of we een bepaalde kleur tegenkomen moet gebeuren binnen de lijnvolger, kunnen we die test dus niet buiten de lijnvolger uitvoeren en moeten we de lijnvolger zelf aanpassen. Aan het eind van iedere cyclus in de Loop moeten we dus gaan kijken of de sensor aan de linkerkant de kleur geel ziet. Omdat daar al een test aanwezig is of de tijd is verstreken moeten we daar een conditie aan toevoegen, zodat de lijnvolger stopt als de stopkleur wordt ontdekt OF wanneer de tijd is verstreken. 11

1 Open het programma Les 6. Dubbelklik weer op de LineFollower. Voeg nu aan het eind, vlak vóór de test of de tijd is verstreken een nieuwe Variable op en kies de naam YelLeft, zodat we met de linker sensor kunnen testen of de gele lijn wordt ontdekt. Zorg dat de variabele wordt gelezen. 2 Voeg nu uit de oranje icoontjes de Switch toe. Kies uit het vakje links onderin eerst Color Sensor, dan Compare en in de derde box Reflected Light Intensity. Zorg dat in het vakje rechts bovenin sensor 4 wordt gekozen. Selecteer in het Compare Type de code voor Groter Dan. Wat dit vakje doet is de lichtsensor uitlezen en vergelijkt de sensorwaarde met een getal. Als de gemeten waarde hoger is dan de opgegeven waarde wordt in de Switch de True tak uitgevoerd. Anders wordt de Else tak uitgevoerd. 3 Verbind nu de output van de variabele YelLft met de input van de Switch, zodat de sensorwaarde wordt vergeleken met de gekalibreerde waarde voor Geel aan de linkerkant. Nu moeten we zorgen dat als de kleur geel gedetecteerd wordt, de Loop wordt gestopt. 4 We gebruiken hier de Time variabele. Als de gele lijn wordt ontdekt, zorgen we dat de variabele Time op nul wordt gezet, zodat de test op de timer daarna altijd hoger uitvalt en daardoor de Loop stopt. We maken daarom in de True tak van de Switch een variabele met de naam Time en zorgen dat hij op Write Numeric wordt gezet. In de waarde zetten we de waarde nul. 5 Als we nu de lijnvolger gebruiken, zal bij het volgen van de zwarte lijn stoppen, zodra de gele lijn wordt ontdekt. Test het programma en opnieuw zal de lijnvolger stoppen bij de gele lijn en een piepje geven. Maar nu niet omdat we geteld hebben hoe lang de robot rijdt, maar omdat hij de gele lijn ontdekt. Als neveneffect zal bij het laatste deel van het parcours ook automatisch het moeras worden ontdekt, omdat daar ook de kleur geel wordt ontdekt. Ga terug naar Les 6 en upload het programma en test of alles goed werkt. 6 Als het niet lukt Als het te ingewikkeld geworden is, gebruik dan het myblock BlackFollower in plaats van je eigen programma. Bestudeer dit en vergelijk het met je eigen lijnvolger. Kijk of je het verschil ontdekt en je de fout in je programma ontdekt. Bij het maken van programma s zal je ontdekken dat je het grootste deel van je tijd bezig bent om je eigen fouten op te sporen. Dat is heel gewoon bij programmeren. Er zijn te gewoon veel manieren waarop iets verkeerd kan gaan. 12

7. Volg de gele lijn NLT Robotica Deel 3 - Level 2 V0.1 2015 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 maken, die de gele lijn gebruikt en die stopt bij de zwarte lijn. Dat is precies hetzelfde als de lijnvolger die we al hebben, alleen zijn nu de kleuren omgekeerd. Maar er is een extra complicatie. Zodra we de gele lijn gaan volgen en we kijken of de zwarte lijn weer 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 direct gebeurt, maar pas na een korte periode. We gaan eerst een kopie van de lijnvolger maken, en passen die aan om er een gele lijnvolger van te maken. Als dit onderdeel problemen oplevert, dan kun je het ook in zijn geheel overslaan en verder gaan met de volgende les, waarin het blikje wordt gezocht. Je volgt dan gewoon de zwarte lijn tot aan het moeras en slaat de gele lijn gewoon over. Zorg er wel voor dat de stopconditie in de zwarte lijnvolger kijkt naar de rechter sensor, anders zal hij stoppen bij de gele lijn en niet pas bij het moeras. 13

1 Open het programma Les 7. Voeg hier de YellowFollower aan toe. Maar YellowFollower is nog niet gemaakt. Maak daarom eerst een kopie van de LineFollower en noem die YellowFollower. Hoe doe je dat? 2 Kies het vakje helemaal links met de moersleutel erin. Je krijgt dan een lijst te zien met alle MyBlocks. Kies je LineFollower en kies de Copy knop. Er wordt dan een LineFollower2 gemaakt. Ga terug naar Les 7. 3 Kijk in de balk bovenin en kies het vakje Program List. Kies uit die lijst LineFollower2, die net is aangemaakt. In de kop zie je de naam staan LineFollower2. Als je in dat vakje dubbelklikt wordt de naam zwart. In dat zwarte veld kun je nu de naam veranderen. Verander de naam in YellowFollower. 4 Je kunt nu uit de blauwe icoontjes je nieuwe YellowFollower kiezen en in je programma opnemen. Dubbelklik nu op de YellowFollower. We moeten nu zorgen dat deze lijnvolger de gele lijn gaat volgen. Daarvoor moeten we een aantal dingen aanpassen. 5 Verander bij het uitlezen van de sensoren de namen van de variabelen in YelRht en YelLft. Zorg ook dat de vergelijking veranderd wordt in Groter Dan (>). Zorg dat aan het eind van de Loop de sensor aan de rechterkant (Poort 1) controleert op BlkRht. 6 Test je nieuwe Gele Lijnvolger uit. Laat hem het eerste stuk afleggen en daarna de gele lijn volgen. Het is handig om een piepje te laten horen zodra de robot de gele lijn heeft ontdekt. Daarna gaat het programma verder met het volgen van de gele lijn. Dat gaat in veel gevallen mis en de robot gaat gewoon door alsof hij de gele lijn niet heeft gezien. Als je een piepje hebt opgenomen weet je dus, dat dit niet klopt, omdat hij WEL de gele lijn heeft gezien. Maar waarom gaat hij dan gewoon door met het volgen van de zwarte lijn? Probeer het programma eerst uit. Denk eerst eens goed over na voordat je verder gaat. Dit probleem heb je in het vorige deel ook al opgelost. 7 Het probleem is dat bij het begin van de gele lijn de zwarte lijn nog zichtbaar is. De lijnvolger denkt daarom dat het eind van de gele lijn al is bereikt. Je moet dus zorgen dat de gele lijnvolger iets later start om dit op te lossen. 14

8. 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. Je moet zorgen dat je het hele veld doorzoekt en terwijl je dat doet, duw je het blikje voor je uit, het veld uit. In deel 1 heb je dat gedaan door zigzag door het moeras te rijden, maar in dit deel gaan we daarvoor de ultrasone sensor gebruiken. Het programma dat je gaat maken laat eerst de robot helemaal naar rechts draaien en moet daarna een draai over het hele veld maken. Tijdens die draai kijkt de robot met zijn ultrasone sensor voortdurend of hij het blikje ziet. Als hij het blikje heeft gelokaliseerd rijdt de robot er recht op af tot hij op een afstand van ongeveer 4 cm aankomt. Daarna duwt hij het blikje voor zich uit, totdat de sensor ontdekt dat de robot niet meer in het moeras rijdt. Dan stopt het programma. 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 nog een derde deel, waarin wordt uitgelegd hoe je zelf myblocks kunt maken. Je hebt dan alle belangrijke onderdelen van de Lego EV3 software onder de knie. 15

1 Maak een nieuw programma en noem het Les 8. Dit programma gaat het blikje zoeken en als hij het heeft gevonden gaat de robot er recht op af. 2 We beginnen met de kalibratie en drukken een berichtje af op het scherm dat het zoeken is begonnen 3 Daarna maakt de robot een draai naar rechts, zodat hij het hele veld kan bestrijken. Omdat hij altijd in het midden van het moeras uitkomt, zal hij alleen naar rechts moeten draaien om het begin van het moeras te kunnen zien. Daarna maakt de robot een langzame zwaai over het hele veld. Die beweging wordt in gang gezet zonder een tijdsduur aan te geven. 4 Daarna kijken we met de ultrasone sensor of we een object zien op een afstand van minder dan 50 cm. Dat moet dan het blikje zijn. Zodra dat het geval is, weten we in welke richting het blikje staat en moeten we de zwaaibeweging direct stoppen. 5 We voegen een Loop toe en daarbinnen laten we de robot recht op het blikje af rijden. De Loop stopt als het blikje op een afstand van ongeveer 4 cm wordt genaderd. 6 Maar tijdens het zoeken van het blikje heeft het even geduurd voordat de robot kon stoppen. Daardoor zal hij een stukje te ver naar links zijn gedraaid en moet hij een heel klein stukje terugdraaien om precies het midden van het blikje te vinden. Dit punt is heel moeilijk omdat je de afstand niet precies weet. 7 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, waarvoor je een cijfer krijgt en laat zien wat je in dit deel hebt geleerd. 8 Hiermee heb je het eind van dit tweede deel bereikt en ben je klaar om mee te doen met de RoboCupJunior wedstrijden als je dat leuk lijkt. Er is nog een vervolgdeel, waarin aan de hand van de voorbeelden uit deel 1 wordt uitgelegd hoe de myblocks van dat deel gemaakt worden. Die programma onderdelen zijn veel ingewikkelder dan wat we hier behandeld hebben, omdat het maken van programma s die eenvoudig te gebruiken zijn vaak veel moeilijke te bouwen zijn. Het omgekeerde is ook waar. Programma s die gemakkelijk te bouwen zijn worden door gebruikers vaak als niet erg behulpzaam ervaren. 16