MINDSTORMS EV3 grunnsett

Lage en robot som løfter og flytter objekter

Design, bygg og programmer et robotsystem som kan løfte et objekt fra ett sted og slippe den på et annet sted.

120+ min.
Middels
6.trinn til videregående
3_Make_a_Pick_and_Place_Robot

Leksjonsplan

Forberede

  • Les gjennom dette lærermaterialet.
  • Du kan planlegge en leksjon ved bruk av Kom i gang-materialet i EV3 Lab-programvaren eller EV3 Programmering-appen, ved behov. Dette gjør at elevene blir kjent med LEGO® MINDSTORMS® Education EV3.

Engasjere (30 min.)

  • Bruk ideene i Starte en diskusjon-delen nedenfor til å engasjere elevene i en diskusjon knyttet til dette prosjektet.
  • Forklar prosjektet.
  • Del klassen i grupper på to elever.
  • La elevene få nok tid til å en idédugnad.

Utforske (30 min.)

  • Be elevene om å opprette flere prototyper.
  • Oppfordre dem til å utforske både bygging og programmering.
  • Be hver gruppe om å bygge og teste to løsninger.
  • Gi dem et stort ark med millimeterpapir og fargede blyanter eller markører.

Forklare (60 min.)

  • Be elevene om å teste løsningene sine og velge den beste.
  • Sørg for at de kan lage sine egne testtabeller.
  • La gruppene få litt tid til å avslutte prosjektet og til å samle inn informasjon for å dokumentere arbeidet.

Utdype (60 min.)

  • Gi elevene litt tid til å lage sine endelige rapporter.
  • Start en delingsøkt der hver gruppe presenterer sine resultater.

Evaluere

  • Gi tilbakemelding på elevenes arbeid.
  • Du kan bruke de vedlagte vurderingsrubrikkene for å forenkle prosessen.

Starte en diskusjon

En robot som løfter og flytter objekter er en type industrielle roboter som kan flytte objekter til og fra forhåndsdefinerte plasseringer. Ulike typer grabber kan brukes til å trygt og sikkert løfte objekter og slippe dem ned igjen, basert på form, vekt og skjørhet.

Engage-Pick-and-Place-Robot-Cover

Oppfordre til en aktiv idédugnadsprosess.

Be elevene om å tenke gjennom disse spørsmålene:

  • Hva er en løft-og-flytt robot, og hvor brukes de?
  • Hvilken type motorisert mekanisme kan brukes til å løfte objektet?
  • Hvordan kan roboten flytte objektet?
  • Hvordan kan roboten plassere objektet på et annet sted, forsiktig og nøyaktig?

Oppfordre elevene til å dokumentere sine første ideer og forklare hvorfor de valgte løsningen de vil bruke for sin første prototype. Be dem beskrive hvordan de vil evaluere ideene sine gjennom hele prosjektet. På denne måten, når elevene ser gjennom og endrer, har de spesifikk informasjon som de kan bruke til å evaluere løsningen, og avgjøre om den var effektiv eller ikke.

Flere ideer

Flere ideer til norskundervisningen

Legge til rette for utvikling av språklige ferdigheter, og be elevene om å:

Alternativ 1

  • Bruke skriftlig arbeid, skisser og/eller bilder til å oppsummere designprosessen, og lage en endelig rapport.
  • Lage en video som demonstrerer designprosessen helt fra de første ideene og til det fullførte prosjektet.
  • Lage en presentasjon om programmet sitt.
  • Lage en presentasjon som knytter prosjektet til realistiske brukstilfeller med lignende systemer, og beskriver nye oppfinnelser som kan gjøres basert på hva de har laget.

Alternativ 2
Legge til rette for utvikling av språklige ferdigheter, og be elevene om å:

  • Undersøke ulike maskiner som forbereder medisiner og vaksiner, og deretter skrive en fortelling knyttet til å jobbe i et automatisert laboratorium som produserer medisiner, der de fremhever en fordel og en ulempe ved automatisert klargjøring av legemidler

  • Diskutere, fra perspektivet til databeskyttelse, opphavsrettsbekymringene til potensielle «medisinoppskrifter» verdt milliarder av kroner, som lagres i elektroniske systemer. De tar også i betraktning:

  • De potensielle konsekvensene av at et selskap mister medisindata

  • Fordelene ved å lagre sensitiv informasjon i elektroniske systemer

Flere ideer til matematikk

I denne leksjonen laget elevene en robot som løfter og flytter objekter. Som med mange automatiserte systemer er det avgjørende å vurdere og forbedre ytelsen. Maskinlæring er en prosess der robot som løfter og flytter objekter kan måle sin egen ytelse og gjøre endringer for å opprettholde eller forbedre denne ytelsen.

Hvis du vil innlemme matematisk kompetanseutvikling og utforske maskinlæring, ber du elevene om å:

  • Definere begrepene nøyaktighet og presisjon, og bruke disse definisjonene på robotprosjektene sine
  • Identifisere variablene som er relatert til nøyaktighet og presisjon i systemene sine (f.eks. hastigheten på roboten kan påvirke nøyaktigheten, presisjonen eller begge deler)
  • Konfigurere minieksperimenter for å teste om deres valgte variabler påvirker nøyaktighet, presisjon eller begge deler

Byggetips

Byggeideer
Gi elevene muligheten til å bygge noen eksempler fra lenkene nedenfor. Oppfordre dem til å utforske hvordan disse systemene fungerer, og til å gjennomføre en idédugnad om hvordan disse systemene kan føre til en løsning på designskissen.

Tips for testing
Oppfordre elevene til å designe sine egne testoppsett og lage prosedyrer for å velge den beste løsningen. Disse tipsene kan hjelpe elevene dine når de sette opp testen:

  • Merk posisjonen til maskinen på millimeterpapiret for å sikre at dere plasserer den på samme plassering for hver testkjøring.
  • Bruk rutenett til å identifisere firkanter på 1 cm x 1 cm for å kunne registrere resultatene av hver testkjøring.
  • Bruk fargeblyanter eller markører til å markere forventet og faktisk plassering der roboten plasserer objektet.
  • Opprett testtabeller som registrerer observasjonene dine.
  • Evaluer nøyaktigheten til roboten ved å sammenligne de forventede resultatene med de faktiske resultatene.
  • Gjenta testen minst tre ganger.

Forslag til løsning
Her er et forslag til løsning som oppfyller kriteriene til designskissen:

pick-and-place-solution-bi-cover
Pick-and-Place-Solution-Cover

Programmeringstips

EV3 MicroPython Prøveprogram

#!/usr/bin/env pybricks-micropython

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

# Configure the gripper motor with default settings.
gripper_motor = Motor(Port.A)

# Configure the elbow motor.  It has an 8-tooth and a 40-tooth gear
# connected to it.  Set the motor direction to counterclockwise, so
# that positive speed values make the arm move upward.
elbow_motor = Motor(Port.B, Direction.COUNTERCLOCKWISE, [8, 40])

# Configure the motor that rotates the base.  It has a 12-tooth and a
# 36-tooth gear connected to it.  Set the motor direction to
# counterclockwise, so that positive speed values make the arm move
# away from the Touch Sensor.
base_motor = Motor(Port.C, Direction.COUNTERCLOCKWISE, [12, 36])

# Limit the elbow and base accelerations.  This results in very smooth
# motion, like that of an industrial robot.
elbow_motor.set_run_settings(60, 120)
base_motor.set_run_settings(60, 120)

# Set up the Touch Sensor.  It is used to detect when the base has
# moved to its starting position.
touch_sensor = TouchSensor(Port.S1)

# Set up the Color Sensor.  It is used in Reflected Light Intensity
# Mode to detect the white beam when the elbow is in its starting
# position.
color_sensor = ColorSensor(Port.S3)

# Initialize the elbow.  This is done by first moving down for 1 second
# and then slowly moving up until the Color Sensor detects the white
# beam.  Then the motor stops, holds its position, and resets the angle
# to "0."  This means that when it rotates backward to "0" later on, it
# returns to this starting position.
elbow_motor.run_time(-30, 1000)
elbow_motor.run(15)
while color_sensor.reflection() < 30:
    wait(10)
elbow_motor.stop(Stop.HOLD)
elbow_motor.reset_angle(0)

# Initialize the base.  This is done by first running the base motor
# counterclockwise until the Touch Sensor is pressed.  Then the motor
# stops, holds its position, and resets the angle to "0."  This means
# that when it rotates backward to "0" later on, it returns to this
# starting position.
base_motor.run(-60)
while not touch_sensor.pressed():
    wait(10)
base_motor.stop(Stop.HOLD)
base_motor.reset_angle(0)

# Initialize the gripper.  This is done by running the motor forward
# until it stalls.  This means that it cannot move any further.  From
# this closed gripper position, the motor rotates backward by 90
# degrees, so the gripper opens up.  This is the starting position.
gripper_motor.run_until_stalled(200, Stop.COAST, 50)
gripper_motor.reset_angle(0)
gripper_motor.run_target(200, -90)

def robot_pick(position):
    # This function rotates the base to the pick up position.  There,
    # it lowers the arm, closes the gripper, and raises the arm to pick
    # up the wheel stack.
    base_motor.run_target(60, position, Stop.HOLD)
    elbow_motor.run_target(60, -45)
    gripper_motor.run_until_stalled(200, Stop.HOLD, 50)
    elbow_motor.run_target(60, 0, Stop.HOLD)

def robot_release(position):
    # This function rotates the base to the drop-off position.  There,
    # it lowers the arm, opens the gripper to release the wheel stack,
    # and raises the arm again.
    base_motor.run_target(60, position, Stop.HOLD)
    elbow_motor.run_target(60, -45)
    gripper_motor.run_target(200, -90)
    elbow_motor.run_target(60, 0, Stop.HOLD)

# Define the 3 destinations for picking up and dropping off the wheel
# stacks.
LEFT = 200
CENTER = 100
RIGHT = 0

# Rotate the base to the center.
base_motor.run_target(60, CENTER, Stop.HOLD)

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, the robot waits until the Up or Down Button is pressed.
# Second, the robot waits until the Center Button is pressed.
# Finally, the robot picks up the wheel stack and drops it off in the
# center.
#
# Then the process starts over, so the robot can pick up another wheel
# stack.
while True:

    # Display a question mark to indicate that the robot should await
    # instructions.
    brick.display.image(ImageFile.QUESTION_MARK)

    # Wait until the Up or Down Button is pressed.
    while True:
        # First, wait until any button is pressed.
        while not any(brick.buttons()):
            wait(10)
        # Then store which button was pressed.
        button = brick.buttons()[0]
        # If the Up or Down Button was pressed, break out of the loop.
        if button in (Button.UP, Button.DOWN):
            break

    # Play a sound and display an arrow to show where the arm will move.
    brick.sound.file(SoundFile.AIR_RELEASE)
    if button == Button.UP:
        brick.display.image(ImageFile.FORWARD)
    elif button == Button.DOWN:
        brick.display.image(ImageFile.BACKWARD)

    # Wait until the Center Button is pressed, then display a check
    # mark to indicate that the instruction has been accepted.
    while not Button.CENTER in brick.buttons():
        wait(10)
    brick.display.image(ImageFile.ACCEPT)

    # Pick up the wheel stack. Depending on which button was pressed,
    # move left or right.
    if button == Button.UP:
        robot_pick(RIGHT)
    elif button == Button.DOWN:
        robot_pick(LEFT)

    # Drop off the wheel stack in the center.
    robot_release(CENTER)

Lenker til karrieremuligheter

Elevene som likte denne leksjonen, kan også være interessert i å utforske disse karrieremulighetene:

  • Informasjonsteknologi (dataprogrammering)
  • Produksjon og maskinteknikk (maskinteknologi)

Vurderingsmuligheter

Observasjonssjekkliste for lærer
Lag en skala som stemmer overens med behovene dine, for eksempel:

  1. Delvis fullført
  2. Fullstendig fullført
  3. Overgikk forventningene

Bruk følgende kriterier for å evaluere elevenes arbeid:

  • Elevene kan evaluere konkurrerende designløsninger basert på prioriterte kriterier og andres hensyn.
  • Elevene styrer selv utviklingen av en fungerende og kreativ løsning.
  • Elevene kan kommunisere ideene sine tydelig.

Egenvurdering
Når elevene har samlet inn ytelsesdata, kan du gi dem tid til å reflektere over løsningene sine. Hjelp dem ved å stille spørsmål som:

  • Oppfyller løsningen kriteriene til designoversikten?
  • Kan robotens bevegelse(r) bli enda mer nøyaktige?
  • Har andre løst problemet på andre måter?

Be elevene om å gjennomføre en idédugnad og dokumentere to måter de kan forbedre løsningene sine på.

Tilbakemelding fra andre
Oppmuntre til parvurdering blant elevene slik at hver gruppe er ansvarlige for å evaluere sitt eget og andres prosjekt. Denne par-vurderingen kan bidra til å utvikle elevenes ferdigheter i å gi konstruktive tilbakemeldinger, så vel som å forbedre analyseferdighetene og bruken av objektive data for å støtte et argument.

Lærerstøtte

Elevene kommer til å:

  • Bruke designprosessen til å løse problemer i den virkelige verden

LEGO® MINDSTORMS® Education EV3 Grunnsett

Stort ark med millimeterpapir eller papir med støttelinjer
Fargeblyanter eller markører

Naturfag etter 10.trinn

  • utvikle produkter ut fra kravspesifikasjoner og vurdere produktenes funksjonalitet, brukervennlighet og livsløp i forhold til bærekraftig
    utvikling

Valgfag programmering

  • omgjøre problemer til konkrete delproblemer, vurdere hvilke delproblemer som lar seg løse digitalt, og utforme løsninger for disse
  • utvikle og feilsøke programmer som løser definerte problemer, inkludert realfaglige problemstillinger og kontrollering eller simulering av fysiske objekter

Elevmateriale

Last ned, vis eller del elevarket, enten som en HTML-side eller som en utskriftbar PDF.

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.