Make a Factory Conveyor

Design, build and program a robotic system that relies on at least one motor and one sensor to move a ball along a path that includes a 90-degree turn.

120+ min.
Years 10-13

Lesson plan

- Read through this teacher material.
- If you feel that it is necessary, plan a lesson using the getting started material in the EV3 Lab Software or EV3 Programming App. This will help to familiarise your pupils with LEGO® MINDSTORMS® Education EV3.

Engage (30 Min.)
- Use the ideas in the Ignite a Discussion section below to engage your pupils in a discussion relating to this project.
- Explain the project.
- Divide your class into teams of two pupils.
- Allow your pupils some time to brainstorm.

Explore (30 Min.)
- Have your pupils create multiple prototypes.
- Encourage them to explore both building and programming.
- Have each pair of pupils build and test two solutions.

Explain (60 Min.)
- Ask your pupils to test their solutions and to choose the best one.
- Make sure that they can create their own testing tables.
- Allow some time for each team to finalise their project and to collect assets for documenting their work.

Elaborate (60 Min.)
- Allow your pupils some time to produce their final reports.
- Facilitate a sharing session in which each team presents their results.

- Provide feedback on each pupil's performance.
- In order to simplify the process, you can use the assessment rubrics that have been provided.

Ignite a Discussion

Factory conveyors transport things ranging from raw materials to finished and packaged products between different locations. The belt conveyor is most well-known, but a wide variety of conveyor systems have been developed to efficiently move all types of objects.


Encourage an active brainstorming process.

Ask your pupils to think about these questions:

  • What is a factory conveyor and where is it used?
  • Which type of motorised mechanism can be used to move a ball?
  • How can a robotic system move the ball while maintaining control of the ball?
  • What role does the sensor play? How can you measure how well your robotic system works?

Encourage your pupils to document their initial ideas and to explain why they chose the solution that they will use for their first prototype. Ask them to describe how they will evaluate their ideas throughout the project. That way, when they are reviewing and revising, they will have specific information that they can use to evaluate their solution and decide whether or not it was effective.


Language Arts Extension

To incorporate the development of language arts, have your pupils:

Option 1

  • Use their written work, sketches and/or photos to summarise their design process and create a final report
  • Create a video demonstrating their design process starting with their initial ideas and ending with their completed project
  • Create a presentation about their program
  • Create a presentation that connects their project with real-world applications of similar systems and describes new inventions that could be made based on what they have created.

Option 2
In this lesson, your pupils created a system that moved a ball along a path, mimicking the systems that are used in modern manufacturing.

  • Think about whether modern manufacturing operations should be concerned about internet security or internal data security, and write a descriptive essay about modern manufacturing and the use of cloud data
  • Describe the use of conveyor belt systems in fulfilment centres for online shopping operations
  • Discuss the pros and cons of storing consumers’ purchasing data in the cloud

Maths Extension

In this lesson, your pupils created a system that moved a ball along a path, mimicking the systems that are used in modern manufacturing. Many modern manufacturing processes utilise automation for production and quality control. A form of artificial intelligence called machine learning can be used to analyse performance data and generate new procedures to improve overall performance and efficiency. Manufacturing engineers do this by collecting vast data sets describing system performance and efficiency. Machine learning algorithms are used to analyse these data sets to help make decisions that improve performance and efficiency.

To incorporate maths skills development and explore manufacturing-related topics, such as quality control and machine learning, have your pupils:

  • Add hardware and software to their designs to measure performance, and think of ways in which they can use quantitative measures to represent their machine’s performance

  • Develop quantitative representations of ‘good enough’ for their designs while keeping in mind that when performing quality control and performance analysis, machines and humans alike must assess what's ‘good enough’

  • List as many variables as possible that might impact the machines’ performance and efficiency while keeping in mind that machine learning is the best tool to use when exploring large data sets and trying to figure out the complex relationships between machine data (i.e. the steps that it followed) and performance

Building Tips

Building Ideas
Allow your pupils the opportunity to build some of the examples from the links below. Encourage them to explore how these systems work and to brainstorm how these systems could inspire a solution to the Design Brief.

Testing Tips
Encourage your pupils to design their own test setup and a procedure for selecting the best solution. These tips can help your pupils as they set up their test:

  • Create testing tables for recording your observations.
  • Evaluate the precision of your robotic system by comparing the expected results with the actual results.
  • Repeat the test at least three times.

Sample Solution
Here is a sample solution that meets the Design Brief criteria:


Coding Tips

EV3 MicroPython Sample Program

#!/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, SoundFile
from pybricks.tools import wait
from random import randint

# Configure the belt motor, which drives the conveyor belt.  Set the
# motor direction to counterclockwise, so that positive speed values
# make the conveyor move upward.
belt_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)

# Configure the "catch" motor with default settings.  This motor moves
# the ball to either cup.
catch_motor = Motor(Port.D)

# Set up the Color Sensor.  It is used in Reflected Light Intensity
# Mode to detect when the ball is placed at the bottom of the conveyor
# belt.
color_sensor = ColorSensor(Port.S3)

# Set up the Touch Sensor.  It is used to detect when the ball reaches
# the catch at the end of the ramp.
touch_sensor = TouchSensor(Port.S4)

# Initialize the conveyor belt.  This is done by slowly running the
# motor backward until it stalls.  This means that it cannot move any
# further.  Then it resets the angle to "0."  This means that when it
# rotates backward to "0" later on, it returns to this starting
# position.
belt_motor.run_until_stalled(-300, Stop.BRAKE, 30)

# This is the main part of the program.  It is a loop that repeats
# endlessly.
# First, it waits until the ball is placed on the conveyor belt.
# Second, the ball is moved upward until it reaches the ramp where it
# rolls down to the catch.
# Finally, the ball is moved to the left or the right cup, or an error
# sound is made, chosen at random.
# Then the process starts over.  The ball can be placed at the
# beginning of the conveyor belt again.
while True:

    # Wait until the ball is placed in front of the Color Sensor.
    while color_sensor.reflection() < 5:
    # Move the ball up on the conveyor belt.
    belt_motor.run_target(250, 450, Stop.COAST, False)

    # Wait until the ball hits the Touch Sensor at the catch at the end
    # of the ramp.
    while not touch_sensor.pressed():
    # Generate a random integer between "-1" and "1" to determine what
    # to do with the ball.
    catch_command = randint(-1, 1)

    # If it generates a "1," change the light to green and move the
    # ball to the right cup.
    if catch_command == 1:
        catch_motor.run_target(400, -20)
        catch_motor.run_target(400, 0, Stop.HOLD)
    # If it generates a "0," change the light to orange and move the
    # ball to the left cup.
    elif catch_command == 0:
        catch_motor.run_target(400, 20)
        catch_motor.run_target(400, 0, Stop.HOLD)
    # Otherwise, change the light to red and play an error sound.
    # Return the conveyor belt to its starting position.
    belt_motor.run_target(250, 0)

The pupils who enjoyed this lesson might be interested in exploring these career pathways:

  • Manufacturing and Engineering (Machine Technology)
  • Science, Technology, Engineering & Mathematics (Engineering and Technology)

Assessment Opportunities

Teacher Observation Checklist
Create a scale that suits your needs, for example:

  1. Partially accomplished
  2. Fully accomplished
  3. Overachieved

Use the following success criteria to evaluate your pupils' progress:

  • The pupils are able to evaluate competing design solutions based on prioritised criteria and trade-off considerations.
  • The pupils are autonomous in developing a working and creative solution.
  • The pupils are able to communicate their ideas clearly.

Once your pupils have collected some performance data, allow them a bit of time to reflect on their solutions. Help them by asking questions, like:

  • Is your solution meeting the Design Brief criteria?
  • Can your robotic system’s movement(s) be more accurate?
  • What are some ways in which others have solved this problem?

Ask your pupils to brainstorm and document two ways in which they could improve their solutions.

Peer Feedback
Encourage a peer-review process in which each group is responsible for evaluating their own as well as others’ projects. This review process can help the pupils to develop skills in giving constructive feedback as well as sharpen their analytic skills and their ability to use objective data in order to support an argument.

Teacher Support

The pupils will:
-Use the design process to solve a real-world problem

**National curriculum in England **
Design and technology programmes of study: key stage 3 (DFE-00192-2013)

• identify and solve their own design problems and understand how to reformulate problems given to them

• test, evaluate and refine their ideas and products against a specification, taking into account the views of intended users and other interested groups

• develop and communicate design ideas using annotated sketches, detailed plans, 3-D and mathematical modelling, oral and digital presentations and computer-based tools

• understand how more advanced electrical and electronic systems can be powered and used in their products [for example, circuits with heat, light, sound and movement as inputs and outputs]

• apply computing and use electronics to embed intelligence in products that respond to inputs [for example, sensors], and control outputs [for example, actuators], using programmable components [for example, microcontrollers].

Pupil Material

Student Worksheet

Download, view or share as an online HTML page or a printable PDF.