Programmeren met Lego Mindstorms EV3

Programmeren met Lego Mindstorms EV3

Start

Robotica-wedstrijden zoals de First Lego League en de World Robot Olympiad worden gespeeld met een Lego-robot zoals de EV3 of de Spike. Hier leer je hoe je de motoren en sensoren van de EV3 kunt gebruiken om je robot te laten rijden.

https://github.com/FIRST-Tech-Challenge/FtcRobotController/releases

Motoren en sensoren

Net zoals elke andere robot, bestaat ook de Mindstorms EV3 uit verschillende onderdelen. De kern van het systeem is de EV3-steen, een programmeerbare steen, waarmee de motoren en sensoren bediend worden. De motoren worden aangesloten op de output-poorten (A, B en C), de sensoren worden aangesloten op de input-poorten (1 tot en met 4). Zonder de mechanische structuur van legoblokjes ziet de robot er zo uit.

 

Software - EV3 Classroom

Installeer nu de EV3 classroom. Stel de taal in op Nederlands.

Het programma dat we gaan gebruiken om de robot te programmeren is EV3 Classroom. Daarin kunnen we onze sensoren en motoren gaan controleren, programma’s maken en uploaden naar ons toestel.

Klik maar op nieuw project!

 

Nu ben je klaar om een programma te maken, we gaan eerst de verschillende onderdelen van het venster bekijken.

Bouw nu de robot volgens het bouwplan hieronder.  Je bouwt per 3 leerlingen 1 robot!

Software - FTC driver station en robot controller

FTC Robot Controller releases

Hardware - Riley Rover

Oefenopdrachten

Met deze oefeningen ontdek je hoe je kunt rijden en sturen. En je leert de kleine motor en de sensoren te gebruiken.

 

Kies zelf met welke onderdelen je wilt oefenen.

Kies ook zelf welke oefenopdrachten je kiest.

 

 

1 - Bewegen, draaien en stoppen

BEWEGEN

VERMOGEN AANPASSEN

We kunnen de snelheid van onze robot aanpassen om deze vlugger of sneller te laten rijden. Dit doen we door voor onze beweging deze blok in te voegen.

Je kan de beweging en de aanpassing van het vermogen ook combineren met deze blokken:

RICHTING VERANDEREN

We kunnen onze robot op verschillende manieren laten draaien. We onderzoeken hier al enkele mogelijkheden. Maar wil je je robot zeer precies laten draaien, kan je dit best doen via zijn gyrosensor. Hier komen we later nog op terug.

In bovenstaande hoofdstukken hebben we onze robot doen draaien met de functie graden. We gaan hier nog wat dieper op ingaan, want het is een methode om onze robot vlot te doen draaien.

Tijd om jouw opgedane kennis te testen!

Vraag aan de leerkracht de evaluatiefiche met de opdracht.

  • Voer met je team de opdracht uit.  
  • Ben je klaar, laat de leerkracht de opdracht controleren.
  • Vul de evaluatiefiche in en bezorg die terug aan de leerkracht.  Download je programma en plaats dit in de passende uploadzone in smartschool.
  • Deze opdracht telt mee voor je dagelijks werk!

BEWEGING STOPPEN

Je hebt het misschien al gemerkt maar niet alle programma’s stoppen automatisch. Soms start je een beweging in je programma, maar weet de robot niet wanneer hij moet stoppen. Dit kan je doen door gebruik te maken van deze blok:

Een van de programmeerblokken in het oranje tabblad is het blokje Wachten. Via dit blokje kan je het programma op iets laten wachten voor het verder gaat met het volgende blok in het programma. Je kan het programma een bepaalde tijd laten wachten of laten wachten tot een sensor een bepaalde waarde bereikt.

In de volgende hoofdstukken gaan we zien, dat we de robot nog kunnen laten reageren op andere gebeurtenissen. 

2 - Medium Motor

DE MEDIUM MOTOR GEBRUIKEN

Bij deze oefeningen hangt het af welke robot je hebt om deze actie uit te voeren. Je gebruikt hiervoor de medium motor, maar de actie kan verschillend zijn.

De medium motor in onze robot zorgt ervoor dat onze robot een actie kan uitvoeren. Naargelang het type robot waarmee je nu aan het testen bent, kan deze actie anders zijn. Bij de ene robot gaat deze een grijparm bedienen, bij de andere een rad laten draaien,…

Net zoals de blokken Tankbesturing en Richting veranderen heeft deze blok een aantal keuzemogelijkheden in de moduskiezer. Het eenvoudigste is werken met Aantal seconden Aan.

De medium motor werkt dan maar een aantal seconden en gaat dan verder met het programma. Werk je met Aantal graden Aan of Aantal rotaties Aan dan kan het voorkomen dat de medium motor de grijparm naar beneden blijft duwen ook al is zijn onderste positie al bereikt.

Dit kan gebeuren als het aantal rotaties of graden dat je hebt opgegeven niet bereikt is vooraleer de grijparm al onderaan gekomen is.

Tip:

Als je wilt dat de hendel van de robot naar beneden gaat, zet je hem voor het starten van het programma helemaal naar omhoog.

Als het programma speelt, mag je de hendel niet meer handmatig verzetten.

 

Tijd om jouw opgedane kennis te testen!

Vraag aan de leerkracht de evaluatiefiche met de opdracht.

  • Voer met je team de opdracht uit.  
  • Ben je klaar, laat de leerkracht de opdracht controleren.
  • Vul de evaluatiefiche in en bezorg die terug aan de leerkracht.  Download je programma en plaats dit in de passende uploadzone in smartschool.
  • Deze opdracht telt mee voor je dagelijks werk!

3 - Herhalen en schakelen

HERHALEN EN ONDERBREKING HERHALING

Als programmeurs proberen we ons programma zo kort mogelijk te maken. Dit kunnen we doen door bepaalde stukken code te gaan herhalen. Hierdoor hebben we minder programmeerblokken nodig en blijft onze code heel overzichtelijk. Bij de eerste soort herhaling kan je een programma code een aantal keer uitvoeren.

Soms willen we dat onze code blijft herhalen tot er een bepaalde gebeurtenis heeft plaatsgevonden of een sensor een bepaalde waarde heeft  behaald. Hiervoor gebruiken we deze blok:

Hier zal het stukje code zich herhalen tot iemand van de gebruikers de middelste knop gaat indrukken op de steen. 

SCHAKELEN: als-dan-anders

In het oranje tabblad vind je ook het verloopblok Schakelen. Vaak wordt het blok Herhalen in combinatie met het blok Schakelen gebruikt.

In het schakelblok kan je 2 of meer programmeerblokken zetten. Je kan voorwaarden stellen aan de acties die moeten gebeuren. Net zoals bij het blok Wachten kan je in de moduskiezer een keuze maken tussen de verschillende sensoren.

Voor de volgende opdrachten maken we gebruik van het blok Schakelen in de modus Tastsensor. In onderstaand programma werd de volgende voorwaarde ingesteld: ‘Als de tastsensor ingedrukt (1) wordt’.

Indien de tastsensor ingedrukt wordt, voert het programma de bovenste actie uit. Indien de tastsensor niet ingedrukt wordt, voert het programma de onderste actie uit.

4 - Sensoren gebruiken

GYROSENSOR

Eerder in de cursus leerde je al dat je de robot kon laten draaien over een bepaalde hoek door de blokken Richting veranderen of Tankbesturing te gebruiken. Als je de robot wil laten draaien over een exacter aantal graden, dan kan je hiervoor het wachtblok gebruiken in de modus Gyrosensor.

Het blok bewegen starten zorgt ervoor dat de robot naar rechts zal draaien. Het blok Gyrosensor wacht tot hoek zorgt ervoor dat de robot pas de volgende blok gaat uitvoeren als de robot 60 graden heeft kunnen draaien.

Als de robot over een hoek van 60° heeft gedraaid, gaat hij over naar het volgende programmeerblokje Stoppen met bewegen, waardoor hij tot stilstand komt.

Dit kan je ook bereiken door het blok Richting veranderen te wijzigen in het blokje Tankbesturing. Let wel op dat je dan tegengestelde vermogens kiest om te kunnen draaien.

Tijd om jouw opgedane kennis te testen!

Vraag aan de leerkracht de evaluatiefiche met de opdracht.

  • Voer met je team de opdracht uit.  
  • Ben je klaar, laat de leerkracht de opdracht controleren.
  • Vul de evaluatiefiche in en bezorg die terug aan de leerkracht.  Download je programma en plaats dit in de passende uploadzone in smartschool.
  • Deze opdracht telt mee voor je dagelijks werk!

TASTSENSOR

Je kan het blokje Wachten ook instellen op de modus Tastsensor – Vergelijken - Status. De tastsensor detecteert of de knop vooraan ingedrukt is. De tastsensor heeft 3 modi: Ingedrukt (0), Vrijgeven = niet ingedrukt (1)  of Geraakt = ingedrukt en losgelaten (2).

In onderstaand programma rijdt de robot tot de tastsensor ingedrukt wordt.

KLEURSENSOR/LICHTSENSOR

Je kan de robot ook laten wachten tot de kleursensor kleuren detecteert of een wijziging van de ene kleur naar een andere. In onderstaand programma werd het blokje Wachten tot kleur gewijzigd is gebruikt. Hierdoor blijft de robot rijden tot hij een andere kleur detecteert.

Tip: Zorg er bij het uittesten van dit programma voor dat je de kleursensor naar beneden richt.

LICHTSENSOR/KLEURSENSOR KALIBREREN

Voor een goede werking van de lichtsensor is het nodig om de sensor te gaan kalibreren. We moeten de minimum- en maximum waarde van de kleuren instellen om deze zo correct mogelijk in ons programma op te nemen. De robot heeft het soms moeilijk met het onderscheiden van verschillende soorten van een bepaalde kleur.

Om dit correct te doen moeten we 3 verschillende programma’s maken. De eerste twee programma’s zorgen voor de instelling van de minimum en maximum waarde van onze kleuren. Het derde programma is het programma dat onze robot zal doen rijden.

Hiervoor gebruiken we de knoppen van onze EV3 steen, en koppelen er een waarde aan.

Ons programma om de robot de lijn te doen volgen ziet er dan zo uit:

Maak dit programma en test uit.

ULTRASONE SENSOR

Deze sensor gebruik je wanneer je de afstand wilt meten vanaf de sensor tot een voorwerp dat zich ervoor bevindt.

Om de afstand te kunnen bepalen mag het voorwerp niet dichter dan 3 cm staan en niet verder dan 2,50 m.

5 - Bedieners en bediening

LIJNVOLGER

Tutorials: YouTube video's

Basics

Lijn volgen

EV3 Classroom (les 2 t/m 7)

Les 2 - Software intro

Les 3 - Moving Basics

Les 4 - Types of turning

Les 5 - Lift medium motor

Les 6 - Pseudocode (voor lange programma's)

Les 7 - Wait for Touch

  • Het arrangement Programmeren met Lego Mindstorms EV3 is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Auteur
    Kees Hooyman Je moet eerst inloggen om feedback aan de auteur te kunnen geven.
    Laatst gewijzigd
    2023-05-08 14:14:22
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding 4.0 Internationale licentie.

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Toelichting
    Robotica-wedstrijden zoals de First Lego League en de World Robot Olympiad worden gespeeld met een Lego-robot zoals de EV3 of de Spike. Hier leer je hoe je de motoren en sensoren van de EV3 kunt gebruiken om je robot te laten rijden.
    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
    Studiebelasting
    4 uur en 0 minuten

    Bronnen

    Bron Type
    Installeer nu de EV3 classroom. Stel de taal in op Nederlands.
    https://education.lego.com/en-au/downloads/mindstorms-ev3/software
    Link
    FTC Robot Controller releases
    https://github.com/FIRST-Tech-Challenge/FtcRobotController/releases
    Link
    https://youtu.be/WoOCbVUkx2Y
    https://youtu.be/WoOCbVUkx2Y
    Video
    https://youtu.be/9-cocmCAXN4
    https://youtu.be/9-cocmCAXN4
    Video
    Les 2 - Software intro
    https://youtu.be/Do-CvY5Nojk
    Video
    Les 3 - Moving Basics
    https://youtu.be/zczXDUwMNJE
    Video
    Les 4 - Types of turning
    https://youtu.be/3QcFyG01F2o
    Video
    Les 5 - Lift medium motor
    https://youtu.be/57cqmE38wIs
    Video
    Les 6 - Pseudocode (voor lange programma's)
    https://youtu.be/g2AHOl8_LU0
    Video
    Les 7 - Wait for Touch
    https://youtu.be/eEPS9gGnUs4
    Video

    Gebruikte Wikiwijs Arrangementen

    Verlee, Stijn. (2023).

    Programmeren met mindstorms

    https://maken.wikiwijs.nl/194869/Programmeren_met_mindstorms

  • Downloaden

    Het volledige arrangement is in de onderstaande formaten te downloaden.

    Metadata

    LTI

    Leeromgevingen die gebruik maken van LTI kunnen Wikiwijs arrangementen en toetsen afspelen en resultaten terugkoppelen. Hiervoor moet de leeromgeving wel bij Wikiwijs aangemeld zijn. Wil je gebruik maken van de LTI koppeling? Meld je aan via info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan.

    Maak je al gebruik van LTI? Gebruik dan de onderstaande Launch URL’s.

    Arrangement

    Oefeningen en toetsen

    Test jezelf!

    IMSCC package

    Wil je de Launch URL’s niet los kopiëren, maar in één keer downloaden? Download dan de IMSCC package.

    QTI

    Oefeningen en toetsen van dit arrangement kun je ook downloaden als QTI. Dit bestaat uit een ZIP bestand dat alle informatie bevat over de specifieke oefening of toets; volgorde van de vragen, afbeeldingen, te behalen punten, etc. Omgevingen met een QTI player kunnen QTI afspelen.

    Versie 2.1 (NL)

    Versie 3.0 bèta

    Meer informatie voor ontwikkelaars

    Wikiwijs lesmateriaal kan worden gebruikt in een externe leeromgeving. Er kunnen koppelingen worden gemaakt en het lesmateriaal kan op verschillende manieren worden geëxporteerd. Meer informatie hierover kun je vinden op onze Developers Wiki.