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.
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.
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:
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)
Link per l’orientamento professionale
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:
- Obiettivo parzialmente raggiunto
- Obiettivo completamente raggiunto
- 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 l'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
Foglio di lavoro per lo studente
Scaricare, visualizzare o condividere come pagina HTML online o come PDF stampabile.