Set di base MINDSTORMS EV3

Crea un robot per selezione e posizionamento

Progettare, costruire e programmare un sistema robotico in grado di prelevare un oggetto da una posizione e collocarlo in un'altra.

Oltre 120 min.
Intermedio
Dai 14 ai 18 anni
3_Make_a_Pick_and_Place_Robot

Piano di lezione

Preparazione

  • Leggi il materiale per l'insegnante.
  • Se lo ritieni necessario, pianifica una lezione utilizzando il materiale introduttivo presente nel software EV3 Lab o nell'app EV3 Programming per aiutare gli studenti a familiarizzare con LEGO® MINDSTORMS® Education EV3.

Coinvolgimento (30 min.)

  • Utilizza le idee suggerite nella sezione Avvia una discussione riportata di seguito per coinvolgere gli studenti in una discussione incentrata sul progetto.
  • Spiega il progetto.
  • Dividi la tua classe in team composti da due studenti.
  • Concedi agli studenti il tempo necessario per scambiarsi le idee.

Esplorazione (30 min.)

  • Chiedi agli studenti di creare vari prototipi.
  • Incoraggiali a esplorare sia la costruzione che la programmazione.
  • Chiedi ad ogni coppia di studenti di costruire e testare due soluzioni.
  • Consegna loro un foglio grande di carta millimetrata e matite o pennarelli colorati.

Spiegazione (60 min.)

  • Invita gli studenti a testare le proprie soluzioni e a scegliere la migliore.
  • Accertati che siano in grado di creare le proprie tabelle di test.
  • Concedi ad ogni team il tempo necessario per completare il proprio progetto e raccogliere risorse per documentare il lavoro svolto.

Elaborazione (60 min.)

  • Concedi agli studenti il tempo necessario per elaborare i report finali.
  • Avvia una sessione di condivisione in cui ogni team presenta i risultati ottenuti.

Valutazione

  • Fornisci un riscontro su ciò che ogni studente ha realizzato.
  • Per semplificare la procedura, puoi utilizzare le sezioni di valutazione fornite.

Avvia una discussione

I robot per selezione e posizionamento sono tipi di robot industriali in grado di spostare oggetti da e verso luoghi predefiniti. A seconda della forma, del peso e della fragilità degli oggetti, è possibile utilizzare diversi tipi di pinze per prelevarli e rilasciarli in modo sicuro e preciso.

Engage-Pick-and-Place-Robot-Cover

Incoraggia un processo di brainstorming attivo.

Chiedi agli studenti di riflettere su queste domande:

  • Che cosa è un robot per selezione e posizionamento e dove viene utilizzato?
  • Quale tipo di meccanismo motorizzato può essere utilizzato per prelevare l'oggetto?
  • In che modo il robot può spostare l'oggetto?
  • In che modo il robot può collocare l'oggetto in un'altra posizione con attenzione e precisione?

Incoraggia gli studenti a documentare le loro idee iniziali e a spiegare perché hanno scelto la soluzione che utilizzeranno per creare il loro primo prototipo. Invitali a descrivere la modalità di valutazione delle loro idee durante tutto il progetto. In questo modo, quando gli studenti eseguiranno la verifica e la revisione, disporranno di informazioni specifiche da utilizzare per valutare la soluzione e decidere se è stata o meno efficace.

Estensioni

Miglioramento delle capacità linguistiche

Per promuovere lo sviluppo delle capacità linguistiche, invita gli studenti a:

Opzione 1

  • Utilizzare testi scritti, disegni e/o foto per riepilogare il processo di progettazione e creare un report finale.
  • Creare un video che illustri il processo di progettazione dalle idee iniziali al progetto completato.
  • Creare una presentazione incentrata sul programma.
  • Creare una presentazione che colleghi il loro progetto ad applicazioni reali basate su sistemi simili e descriva le nuove invenzioni che potrebbero nascere da ciò che hanno creato.

Opzione 2
Per promuovere lo sviluppo delle capacità linguistiche, invita gli studenti a:

  • Ricercare diverse macchine che preparano farmaci e vaccini, quindi creare una narrazione legata al lavoro in un laboratorio automatizzato creando farmaci, inquadrando un vantaggio e punto debole dell'assemblaggio automatizzato di farmaci

  • Dal punto di vista della protezione dei dati, discutere le preoccupazioni sul copyright di potenziali "ricette" di farmaci da miliardi di dollari archiviati in un sistema online, considerando:

  • Le potenziali conseguenze che la perdita di dati sui farmaci può comportare all'azienda

  • I vantaggi derivanti dall'archiviazione di informazioni sensibili nei sistemi online

Miglioramento delle capacità matematiche

In questa lezione, gli studenti hanno creato un robot di selezione e posizionamento. Come per molti sistemi automatizzati, è fondamentale valutare e migliorare le prestazioni. Il machine learning è un processo mediante il quale i robot di selezione e posizionamento possono misurare le proprie prestazioni e apportare modifiche per mantenere o migliorare tali prestazioni.

Per incorporare lo sviluppo delle competenze matematiche ed esplorare il machine learning, chiedi agli studenti di:

  • Definire i termini accuratezza e precisione e applicare queste definizioni ai propri progetti di robotica
  • Identificare le variabili correlate all'accuratezza e alla precisione nei loro sistemi (ad esempio, la velocità del robot può influenzarne l'accuratezza, la precisione o entrambe)
  • Impostare mini-esperimenti per verificare se le variabili scelte influiscono su accuratezza, precisione o entrambe

Suggerimenti per la costruzione

Idee per la costruzione
Offri agli studenti l'opportunità di costruire alcuni esempi consultando i link forniti di seguito. Incoraggiali a scoprire come funzionano questi sistemi e a riflettere su come potrebbero ispirare una soluzione per la descrizione del progetto.

Suggerimenti per i test
Incoraggia gli studenti a progettare la propria configurazione e procedura di test per selezionare la soluzione migliore. Questi suggerimenti possono aiutare gli studenti a configurare il proprio test:

  • Segna la posizione della macchina sulla carta millimetrata per avere la certezza che occupi sempre la stessa posizione ad ogni esecuzione dei test.
  • Utilizza le linee della griglia per delimitare quadrati da 1 cm di lato e semplificare la registrazione dei risultati ad ogni esecuzione dei test.
  • Utilizza matite o pennarelli colorati per segnare la posizione prevista e quella effettiva in cui il robot posiziona l'oggetto.
  • Crea tabelle di test per prendere nota delle osservazioni.
  • Valuta la precisione del robot confrontando i risultati previsti con quelli effettivi.
  • Ripeti il test almeno tre volte.

Soluzione di esempio
Ecco una soluzione di esempio che soddisfa i criteri della descrizione del progetto:

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

Suggerimenti per la programmazione

Programma di esempio di EV3 MicroPython

#!/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)

Gli studenti che hanno apprezzato questa lezione potrebbero essere interessati ai seguenti percorsi di studio:

  • Informatica (programmazione di computer)
  • Produzione e ingegneria (tecnologia delle macchine)

Opportunità di valutazione

Checklist di osservazione per l’insegnante
Crea una scala adeguata alle tue esigenze, ad esempio:

  1. Obiettivo parzialmente raggiunto
  2. Obiettivo completamente raggiunto
  3. Obiettivo superato

Per valutare i progressi compiuti dagli studenti, utilizza i seguenti criteri:

  • Gli studenti riescono a valutare le soluzioni progettuali realizzate dai compagni in base a criteri di priorità e a considerazioni di reciprocità.
  • Gli studenti riescono a sviluppare autonomamente una soluzione funzionante e creativa.
  • Gli studenti comunicano chiaramente le proprie idee.

Autovalutazione
Concedi agli studenti il tempo necessario per raccogliere alcuni dati su ciò che hanno realizzato e per riflettere sulle loro soluzioni. Per aiutarli, potresti porre domande quali:

  • Questa soluzione soddisfa i criteri indicati nella descrizione del progetto?
  • È possibile rendere più accurati i movimenti del robot?
  • Quali sono le possibili risoluzioni del problema applicate da altri?

Chiedi agli studenti di impegnarsi in una sessione di brainstorming e di documentare due possibili miglioramenti delle loro soluzioni.

Riscontro dei compagni
Proponi una verifica tra pari, in modo che ciascun gruppo sia responsabile della valutazione dei propri progetti e di quelli degli altri. Questo processo di revisione può stimolare gli studenti a sviluppare e affinare le capacità di critica costruttiva e analisi e di utilizzo di dati obiettivi a supporto di un'argomentazione.

Supporto per insegnante

Gli studenti saranno in grado di:

  • Utilizzare il processo di progettazione per risolvere un problema inerente una situazione reale

Set di base EV3 di LEGO® MINDSTORMS® Education

Un foglio grande di carta millimetrata o quadrettata.
Matite o pennarelli colorati.

Collegamenti con il programma curricolare per Licei scientifici, Licei scientifici delle scienze applicate, e Istituti tecnici

  • utilizzare criticamente strumenti informatici e telematici per svolgere attività di studio e di approfondimento, per fare ricerca e per comunicare, in particolare in ambito scientifico e tecnologico;
  • utilizzare gli strumenti e le metodologie dell’informatica nell’analisi dei dati, nella formalizzazione e modellizzazione dei processi complessi e nell’individuazione di procedimenti risolutivi;
  • utilizzare le strutture logiche, i modelli e i metodi della ricerca scientifica, e gli apporti dello sviluppo tecnologico, per individuare e risolvere problemi di varia natura, anche in riferimento alla vita quotidiana;
  • individuare le caratteristiche e l’apporto dei vari linguaggi (storico-naturali, simbolici, matematici, logici, formali, artificiali);
  • comprendere il ruolo della tecnologia come mediazione fra scienza e vita quotidiana;
  • comprendere i campi dell’elettronica, della robotica applicata ai processi produttivi e l’automazione industriale.

Materiale per studenti

Download, view or share the student worksheet, either as an online HTML page or a printable 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.