Gör en sorteringsmaskin
Designa, bygg och programmera en maskin som kan identifiera minst tre olika färger på LEGO® delar och sortera dem till olika platser.
Lektionsplanering
Förberedelser
- Läs igenom det här lärarmaterialet.
- Om du tror att det behövs planerar du en lektion med hjälp av kom igång-materialet i EV3 Lab Software eller EV3-programmeringsappen. På så vis får eleverna bekanta sig med LEGO® MINDSTORMS® Education EV3.
Engagera (30 minuter)
- Använd idéerna i avsnittet Starta en diskussion nedan för att få eleverna att diskutera projektet.
- Förklara projektet.
- Dela in klassen i par.
- Ge eleverna tid för att komma på idéer.
Utforska (30 minuter)
- Låt eleverna skapa flera prototyper.
- Uppmuntra dem att utforska både byggande och programmering.
- Låt varje par bygga och testa två lösningar.
- Ge eleverna muggar eller andra behållare till de sorterade föremålen.
Förklara (60 minuter)
- Be eleverna att testa sina lösningar och välja ut den bästa av dem.
- Se till att de kan skapa sina egna testtabeller.
- Ge paren tid att avsluta sina projekt och samla in material för att dokumentera sitt arbete.
Utveckla (60 minuter)
- Ge eleverna tid att skapa slutrapporter.
- Skapa en möjlighet att dela där varje grupp får presentera sina resultat.
Utvärdera
- Ge återkoppling kring varje elevs prestation.
- Du kan använda utvärderingsmatrisen som ingår för att förenkla processen.
Starta en diskussion
Sorteringsmaskiner kan sortera föremål utifrån egenskaper som storlek, vikt, kvalitet eller färg. De använder en mängd olika sensorer för att mäta dessa egenskaper och sedan sortera varje föremål i rätt kategori.
Uppmuntra eleverna att aktivt komma på idéer.
Be eleverna att fundera kring följande frågor:
- Vilka färger ska sorteras?
- Vilken storlek har de föremål som ska sorteras?
- Vilken typ av motoriserad mekanism kan användas för att flytta föremålen?
- Hur kan maskinen känna av olika platser?
- Vilka konstruktionsegenskaper säkerställer att maskinens rörelser blir exakta och upprepningsbara?
Uppmuntra eleverna att dokumentera sina första idéer och förklara varför de valde den lösning de kommer att använda till sin första prototyp. Be dem att beskriva hur de kommer att utvärdera sina idéer under projektet. Det ger dem specifik information att använda när de i gransknings- och revideringsskedet utvärderar sin lösning och fastställer om den fungerar eller inte.
Utvidgning
Fördjupning i språkfärdighet
Alternativ 1
För att integrera utveckling i språkfärdigheter kan du låta eleverna:
- Använda text, skisser och/eller foton för att sammanfatta designprocessen och skapa en slutrapport.
- Skapa en film som skildrar designprocessen – från de allra första idéerna till det färdiga projektet.
- Skapa en presentation om sina program.
- Skapa en presentation som kopplar deras projekt till verkliga applikationer av liknande system och beskriva nya innovationer som skulle kunna göras utifrån deras modell.
Alternativ 2
I den här lektionen skapade eleverna en sorteringsmaskin. I livsmedels- och jordbruksindustrierna används sorteringsmaskiner för att hantera storskalig produktion och distribution.
För att integrera utveckling i språkfärdigheter kan du låta eleverna:
- Beskriva omfattningen av lokala och regionala livsmedels- och jordbruksföretag
- Välja en viss livsmedels- eller jordbruksprodukt i ett spektrum från småskaliga/lokala verksamheter till nationella eller globala företag, och utforska cybersäkerhet för sådana livsmedels- och jordbruksföretag (till exempel hur man säkerställer tillförlitlig livsmedelsproduktion)
Fördjupning i matematik
I den här lektionen byggde eleverna en robot som sorterar föremål utifrån färg. Maskininlärning är en teknik som kan användas för att bygga maskiner som sorterar föremål utifrån mer avancerade egenskaper än färg. För att bygga en sådan maskin kan utvecklarna använda en maskininlärningsprocess som kallas ”klassificering”.
För att integrera utveckling inom matematik och utforska maskininlärningsprocessen för klassificering, kan du låta eleverna:
- Samla ett antal sorterbara föremål (till exempel stenar frukt, armband) och sedan fylla i en datatabell med observerbara kvalitativa och kvantitativa skillnader mellan de insamlade föremålen
- Definiera vilka observerbara skillnader som leder till önskade eller oönskade sorteringskriterier (till exempel vikt, färg, storlek, defekter) för en viss kategori av föremål
- Föreslå och eventuellt bygga ett ny sorteringskonstruktion och en programmeringsalgoritm för sina robotar, så att de kan sortera utifrån fler egenskaper, exempelvis storlek eller vikt
Byggtips
Byggidéer
Ge eleverna möjlighet att bygga några exempel från länkarna nedan. Uppmuntra dem att utforska hur dessa system fungerar och att använda dem som inspiration för att komma på idéer till en lösning på konstruktionsbeskrivningen.
Testningstips
Uppmuntra eleverna att designa en egen testmetod för att välja den bästa lösningen. Följande tips kan hjälpa eleverna att utforma sina tester:
- Markera platsen där maskinen ska placera föremål.
- Använd muggar eller andra behållare till de sorterade föremålen.
- Skapa testtabeller för att dokumentera iakttagelser.
- Utvärdera maskinens precision genom att jämföra förväntade resultat med faktiska resultat.
- Upprepa testet minst tre gånger.
Exempellösning
Här är ett exempel på en lösning som uppfyller kriterierna i konstruktionsbeskrivningen:
Kodningstips
EV3 MicroPython exempelprogram
#!/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)
Yrkeslänkar
Elever som uppskattar den här lektionen kan vara intresserade av att utforska följande yrkesval:
- Jordbruk och trädgårdsskötsel (lantbrukare och trädgårdsarbetare)
- Tillverkning och konstruktion (maskintekniker)
Möjligheter till utvärdering
Checklista för lärarobservationer
Skapa en skala som passar dina behov, t.ex.:
- Delvis genomfört
- Helt genomfört
- Genomfört över förväntan
Använd följande kriterier för att utvärdera elevernas prestationer:
- Eleverna kan utvärdera konkurrerande designlösningar utifrån prioriterade kriterier och med avseende på kompromisser.
- Eleverna kan självständigt utveckla en fungerande och kreativ lösning.
- Eleverna kan på ett tydligt sätt kommunicera sina idéer.
Självutvärdering
Ge eleverna tid att reflektera kring sina lösningar när de har samlat in data från sina resultat. Hjälp dem genom att ställa frågor som:
- Uppfyller lösningen kriterierna i konstruktionsbeskrivningen?
- Kan maskinens rörelse(r) göras mer exakt?
- Hur har andra löst uppgiften?
Be eleverna att komma på idéer och dokumentera två sätt att förbättra sina lösningar.
Gemensam återkoppling
Uppmuntra eleverna att granska varandras arbeten och l åt varje grupp ansvara för att utvärdera sitt eget och andras projekt. Det utvecklar deras förmåga att ge konstruktiv feedback, att analysera och att använda objektiva data som stöd för sina argument.
Stöd för lärare
Eleverna kommer att:
- Använda designprocessen för att lösa ett verklighetsbaserat problem
LEGO® MINDSTORMS® Education EV3 Startset
Muggar eller andra behållare till de sorterade föremålen
Tejp för att markera platser
Läroplan för gymnasieskolan (Gy11)
Kap 1 Skolans värdegrund och uppgifter - Gymnasieskolans uppdrag.
”Skolan ska stimulera elevernas kreativitet, nyfikenhet och självförtroende samt vilja att pröva och omsätta idéer i handling och att lösa problem. Alla elever ska få utveckla sin förmåga att ta initiativ och ansvar och att arbeta både självständigt och tillsammans med andra. Skolan ska bidra till att alla elever utvecklar kunskaper och förhållningssätt som främjar entreprenörskap, företagande och innovationstänkande vilka ökar elevernas möjligheter till framtida sysselsättning, genom företagande eller anställning.”
Kap 2.1 Kunskaper
”Det är även skolans ansvar att varje elev som har slutfört ett nationellt program eller annan nationellt fastställd utbildning…
- kan använda sina kunskaper som redskap för att formulera, analysera och pröva antaganden och lösa problem, lösa praktiska problem och arbetsuppgifter,
- kan använda såväl digitala som andra verktyg och medier för kunskapssökande, informationsbearbetning, problemlösning, skapande, kommunikation och lärande.”
Kurser - Centralt innehåll
Nedan finns ett urval på kurser där delar av det centrala innehållet överensstämmer med lektionens innehåll. EV3 erbjuder möjligheten till en kursöverskridande samverkan.
- Konstruktion 1, 100 p (Kurskod: KOTKOS01)
- Matematik 1C, 100p (Kurskod: MATMAT01c)
- Programmering 1, 100 p (Kurskod: PRRPRR01)
- Svenska 1, 100 p (Kurskod: SVESVE01.Motsvarande finns även i SVASVA01).
- Teknik 1, 150 p (Kurskod: TEKTEK01)
- Tillämpad programmering, 100 p (Kurskod: TIATIL00S)