MINDSTORMS EV3 coreset

Maak een sorteermachine

Ontwerp, bouw en programmeer een machine die minstens drie verschillende kleuren van LEGO® elementen kan herkennen en deze kan sorteren naar verschillende locaties.

120+ min.
Gevorderd
Het derde tot zesde jaar
1_Make_a_Sorting_Machine

Lesplan

Voorbereiden

  • Lees deze informatie voor jou als docent door.
  • Als je denkt dat het nodig is, bereid dan een les voor met behulp van het ‘Aan de slag’-materiaal in de EV3 Labsoftware of EV3-programmeerapp. Daardoor raken je leerlingen vertrouwd met LEGO® MINDSTORMS® Education EV3.

Activeren (30 min.)

  • Maak gebruik van de ideeën in het deel Start een gesprek hieronder om met je leerlingen een gesprek over dit project te voeren.
  • Leg het project uit.
  • Verdeel de klas in teams van twee leerlingen.
  • Laat de leerlingen enige tijd brainstormen.

Onderzoeken (30 min.)

  • Laat de leerlingen meerdere prototypes maken.
  • Moedig ze aan om zowel het bouwen als het programmeren uit te proberen.
  • Laat elk duo twee oplossingen bouwen en testen.
  • Geef leerlingen kopjes of bakjes om de gesorteerde objecten in te doen.

Uitleggen (60 min.)

  • Vraag de leerlingen om hun oplossingen te testen en de beste te kiezen.
  • Zorg ervoor dat ze hun eigen testtabellen kunnen maken.
  • Geef de teams wat tijd om hun project af te ronden en om gegevens te verzamelen voor een verslag over hun werk.

Uitbreiden (60 min.)

  • Geef de leerlingen wat tijd om hun definitieve verslag te maken.
  • Organiseer een bespreekmoment waarin elk team zijn resultaten presenteert.

Evalueren

  • Geef elke leerling feedback over zijn of haar prestaties.
  • Je kunt gebruikmaken van de meegeleverde suggestie voor evaluatierubrieken om dit eenvoudiger te maken.

Start een gesprek

Sorteermachines kunnen voorwerpen sorteren op basis van eigenschappen als grootte, gewicht, kwaliteit of kleur. Met behulp van verschillende sensoren kunnen ze deze eigenschappen registreren en vervolgens ieder voorwerp in de juiste categorie plaatsen.

Engage-Sorting-Machine-Cover

Moedig een actief brainstormproces aan.

Vraag de leerlingen na te denken over deze vragen:

  • • Welke kleuren ga je sorteren?
  • • Welke grootte zullen de te sorteren elementen hebben?
  • • Welk soort gemotoriseerd mechanisme kan die elementen verplaatsen?
  • • Hoe kan de machine verschillende locaties registreren?
  • • Welke ontwerpkenmerken zorgen ervoor dat de bewegingen van de machine nauwkeurig en herhaalbaar zijn?

Moedig de leerlingen aan om hun eerste ideeën op te schrijven en uit te leggen waarom ze kiezen voor de oplossing die ze voor hun eerste prototype gaan gebruiken. Vraag ze om te beschrijven hoe ze hun ideeën tijdens het project gaan evalueren. Daardoor hebben ze achteraf specifieke informatie die ze kunnen gebruiken voor het evalueren van hun oplossing en om te kunnen beslissen of deze al dan niet efficiënt was.

Uitbreidingen

Taaluitbreiding

Optie 1
Laat de leerlingen voor de ontwikkeling van hun taalvaardigheid:

  • gebruikmaken van hun aantekeningen, schetsen, en/of foto's om hun ontwerpproces samen te vatten en een eindverslag te maken.
  • een video maken, waarin hun ontwerpproces te volgen is, vanaf hun eerste ideeën tot het voltooide project.
  • een presentatie maken over hun programma.
  • een presentatie maken waarin zij hun project vergelijken met realistische toepassingen van soortgelijke systemen en waarin ze beschrijven welke nieuwe uitvindingen kunnen worden gedaan op basis van wat ze hebben gemaakt.

Optie 2
In deze les hebben je leerlingen een sorteermachine gemaakt. In de voedsel- en landbouwindustrie worden sorteermachines gebruikt om de productie en distributie op grote schaal te beheren.
Laat de leerlingen voor de ontwikkeling van hun taalvaardigheid:

  • de schaal van de lokale en regionale voedsel- en landbouwindustrie beschrijven
  • een specifiek levensmiddel of landbouwproduct kiezen met een bepaalde schaal, van een klein bedrijf/landbouwbedrijf tot een nationaal of mondiaal productieniveau, en laat ze onderzoek doen naar risico’s met cyberveiligheid voor de voedsel- en landbouwindustrie (bijvoorbeeld: hoe zorg je voor een veilige, betrouwbare voedselproductie)

Rekenuitbreiding

In deze les hebben je leerlingen een robotsorteermachine gemaakt die objecten kan sorteren op basis van kleur. Machine learning is een techniek die technici kunnen gebruiken om machines te bouwen die voorwerpen kunnen sorteren op basis van kenmerken die nog complexer zijn dan kleur. Hiervoor gebruiken ontwikkelaars een proces dat classificatie heet.
Laat de leerlingen voor de ontwikkeling van hun rekenvaardigheid en inzicht in het machine-learningproces van classificatie:

  • verschillende soorten objecten verzamelen (zoals stenen, fruit en armbandjes) en laat ze vervolgens een gegevenstabel opstellen met daarin de kwalitatieve en kwantitatieve verschillen tussen de objecten
  • noteren welke geconstateerde verschillen tot de sorteercriteria ‘gewenst’ en ‘ongewenst’ (zoals gewicht, kleur, grootte en imperfecties) zullen leiden voor een bepaalde categorie objecten
  • een voorstel doen voor en eventueel opstellen van een nieuw algoritme voor het sorteerontwerp en de programmering van hun robots waarmee ze op basis van extra kenmerken zoals gewicht en grootte kunnen sorteren

Bouwtips

Bouwideeën
Geef de leerlingen de gelegenheid om enkele voorbeelden te bouwen die via onderstaande links te vinden zijn. Moedig ze aan om te onderzoeken hoe deze systemen werken en te brainstormen hoe deze systemen kunnen bijdragen aan een oplossing voor het ontwerpplan.

Tips voor het testen
Moedig de leerlingen aan om een eigen testopstelling en testprocedure te ontwerpen om de beste oplossing te kunnen selecteren. Deze tips kunnen de leerlingen helpen bij het opzetten van hun test:

  • Markeer de locatie om aan te geven waar de machine de voorwerpen moet plaatsen.
  • Gebruik kopjes of bakjes om de gesorteerde objecten in te doen.
  • Maak testtabellen om je waarnemingen in te noteren.
  • Beoordeel de precisie van de machine door de verwachte resultaten met de daadwerkelijke resultaten te vergelijken.
  • Herhaal de test minstens drie keer.

Voorbeeldoplossing
Hieronder vind je een voorbeeldoplossing die voldoet aan de criteria uit het Ontwerpplan:

sorting-machine-solution-bi-cover
Sorting-Machine-Solution-Cover

Programmeertips

EV3 MicroPython Voorbeeldprogramma

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor, ColorSensor
from pybricks.parameters import (Port, Button, Color, ImageFile,
                                 SoundFile)
from pybricks.tools import wait

# The Color Squares are red, green, blue, or yellow.
POSSIBLE_COLORS = (Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW)

# Configure the belt motor with default settings.  This motor drives
# the conveyor belt.
belt_motor = Motor(Port.D)

# Configure the feed motor with default settings.  This motor ejects
# the Color Squares.
feed_motor = Motor(Port.A)

# Set up the Touch Sensor.  It is used to detect when the belt motor
# has moved the sorter module all the way to the left.
touch_sensor = TouchSensor(Port.S1)

# Set up the Color Sensor.  It is used to detect the color of the Color
# Squares.
color_sensor = ColorSensor(Port.S3)

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, it moves the 2 motors to their correct starting positions.
# Second, it waits for you to scan and insert up to 8 Color Squares.
# Finally, it sorts them by color and ejects them in their correct
# positions.
#
# Then the process starts over, so you can scan and insert the next set
# of Color Squares.
while True:
    # Initialize the feed motor.  This is done by running the motor
    # forward until it stalls.  This means that it cannot move any
    # further.  From this end point, the motor rotates backward by 180
    # degrees.  This is the starting position.
    feed_motor.run_until_stalled(120)
    feed_motor.run_angle(450, -180)

    # Initialize the conveyor belt motor.  This is done by first
    # running the belt motor backward until the Touch Sensor is
    # pressed.  Then the motor stops and the angle is reset to "0."  
    # This means that when it rotates backward to "0" later on, it
    # returns to this starting position.
    belt_motor.run(-500)
    while not touch_sensor.pressed():
        pass
    belt_motor.stop()
    wait(1000)
    belt_motor.reset_angle(0)

    # Clear all the contents from the Display.
    brick.display.clear()

    # Scanning a Color Square stores the color in a list.  The list is
    # empty to start.  It will grow as colors are added to it.
    color_list = []

    # This loop scans the colors of the objects.  It repeats until 8
    # objects are scanned and placed in the chute.  This is done by
    # repeating the loop while the length of the list is less than 8.
    while len(color_list) < 8:
        # Display an arrow that points to the Color Sensor.
        brick.display.image(ImageFile.RIGHT)

        # Display how many Color Squares have been scanned so far.
        brick.display.text(len(color_list))

        # Wait until the Center Button is pressed or a Color Square is
        # scanned.
        while True:
            # Store "True" if the Center Button is pressed or "False"
            # if not.
            pressed = Button.CENTER in brick.buttons()
            # Store the color measured by the Color Sensor.
            color = color_sensor.color()
            # If the Center Button is pressed or one of the possible
            # colors is detected, break out of the loop.
            if pressed or color in POSSIBLE_COLORS:
                break

        if pressed:
            # If the button was pressed, end the loop early.  It will
            # no longer wait for any Color Squares to be scanned and
            # added to the chute.
            break
        else:
            # Otherwise, a color was scanned, so it is added (appended)
            # to the list.
            brick.sound.beep(1000, 100, 100)
            color_list.append(color)

            # It should not register the same color again if it is
            # still looking at the same Color Square.  So, before
            # continuing, wait until the sensor no longer sees the
            # Color Square.
            while color_sensor.color() in POSSIBLE_COLORS:
                pass
            brick.sound.beep(2000, 100, 100)

            # Display an arrow pointing down and wait 2 seconds to
            # allow some time to slide the Color Square into the
            # motorized chute.
            brick.display.image(ImageFile.BACKWARD)
            wait(2000)

    # Play a sound and display an image to indicate that scanning is
    # complete.
    brick.sound.file(SoundFile.READY)
    brick.display.image(ImageFile.EV3)

    # Now sort the bricks using the list of colors that have been
    # stored.  Do this by looping over each color in the list.
    for color in color_list:

        # Wait for 1 second between each sorting action.
        wait(1000)

        # Run the conveyor belt motor to the position that corresponds
        # to the stored color.
        if color == Color.BLUE:
            brick.sound.file(SoundFile.BLUE)
            belt_motor.run_target(500, 10)
        elif color == Color.GREEN:
            brick.sound.file(SoundFile.GREEN)
            belt_motor.run_target(500, 132)
        elif color == Color.YELLOW:
            brick.sound.file(SoundFile.YELLOW)
            belt_motor.run_target(500, 360)
        elif color == Color.RED:
            brick.sound.file(SoundFile.RED)
            belt_motor.run_target(500, 530)

        # Now that the conveyor belt is in the correct position, eject
        # the colored object.
        feed_motor.run_angle(1500, 90)
        feed_motor.run_angle(1500, -90)

Leerlingen die deze les leuk vonden, zijn misschien geïnteresseerd in een van de studierichtingen:

  • Land- en tuinbouw (landbouwmechanica en -technologie)
  • Productie en techniek (machinetechnologie)

Evaluatiemogelijkheden

Observatiechecklist docent
Maak naar eigen inzicht een schaalverdeling, bijvoorbeeld:

  1. Gedeeltelijk uitgevoerd
  2. Volledig uitgevoerd
  3. Boven verwachting uitgevoerd

Gebruik de volgende criteria om de voortgang van je leerlingen te beoordelen:

  • Leerlingen kunnen verschillende ontwerpoplossingen beoordelen aan de hand van welke criteria het zwaarst moeten wegen en welke voor- en nadelen ze bieden.
  • Leerlingen kunnen zelfstandig een werkende en creatieve oplossing ontwikkelen.
  • Leerlingen kunnen hun ideeën duidelijk communiceren.

Zelfevaluatie
Geef de leerlingen de tijd om over hun oplossingen na te denken als ze eenmaal een aantal gegevens over de prestaties van hun oplossingen hebben verzameld. Help ze daarbij door vragen te stellen als:

  • Voldoet jullie oplossing aan de criteria uit het Ontwerpplan?
  • Is het mogelijk de machine nauwkeuriger te laten bewegen?
  • Welke oplossingen hebben anderen gebruikt?

Vraag de leerlingen om te brainstormen en twee manieren op te schrijven waarmee ze hun oplossingen zouden kunnen verbeteren.

Feedback van elkaar
Laat leerlingen elkaars werk evalueren en maak elk team verantwoordelijk voor de evaluatie van zowel hun eigen project als het project van anderen. Dit evaluatieproces kan de leerlingen helpen bij het ontwikkelen van vaardigheden voor het geven van opbouwende kritiek en bij het verbeteren van hun analysevaardigheden en het gebruik van objectieve gegevens ter ondersteuning van een argument.

Ondersteuning voor de leraar

De leerlingen:

  • passen het ontwerpproces toe om een realistisch probleem op te lossen

LEGO® MINDSTORMS® Education EV3 Basisset

Kopjes of bakjes om de gesorteerde objecten in te doen
Tape om locaties te markeren.

HAVO/VWO Natuurkunde/NLT

A6.6 De kandidaat kan in contexten op basis van een gesteld probleem een technisch ontwerp voorbereiden, uitvoeren, testen en evalueren en daarbij relevante begrippen, theorie en vaardigheden en valide en consistente redeneringen hanteren.

VMBO NASK1

NASK1/K/3: natuurkundige apparatuur gebruiken, daarmee experimenten uitvoeren en de resultaten interpreteren en

  • de computer gebruiken om met meetprogramma’s experimenten uit te voeren en te interpreteren, om met applets en simulaties onderzoek te doen en om natuurkundige informatie te selecteren en te verwerken.
  • een onderzoek doen en een ontwerpproces uitvoeren en evalueren, daarbij ook rekening houdend met de veiligheid.

Materiaal voor de leerlingen

Download, bekijk of deel het leerlingenwerkblad als HTML-pagina of als PDF om zelf te printen.

LEGO, the LEGO logo, the Minifigure, DUPLO, the SPIKE logo, MINDSTORMS and the MINDSTORMS logo are trademarks and/or copyrights of the LEGO Group. ©2020 The LEGO Group. All rights reserved. Use of this site signifies your agreement to the terms of use.