MINDSTORMS® EV3 코어 세트

공장 컨베이어 만들기

90도 회전 구간이 포함된 경로를 따라 공을 움직일 수 있는 로봇 시스템을 최소 하나 이상의 모터와 센서를 사용해 설계하고 조립하고 프로그래밍하세요.

120분 이상
중급
중3-고3학년
4_Make_a_Factory_Conveyor

수업 계획

준비
- 교사용 자료를 읽으세요.
- 필요에 따라 EV3 랩 소프트웨어 또는 EV3 프로그래밍 앱의 시작하기 자료를 이용해 수업을 계획하세요. 학생들이 레고® 마인드스톰® 에듀케이션 EV3와 친숙해지는 데 도움이 될 것입니다.

관심유도(30분)
- 아래의 토의 시작 섹션에 제시된 아이디어를 사용해 학생들에게 이 프로젝트에 대해 논의를 시작하게 하세요.
- 프로젝트를 설명하세요.
- 학생들이 두 명씩 팀을 이루게 하세요.
- 학생들에게 브레인스토밍을 위한 시간을 주세요.

탐구(30분)
- 학생들에게 여러 개의 프로토타입을 만들게 하세요.
- 조립과 프로그래밍을 모두 탐구하게 하세요.
- 각 팀별로 2가지 솔루션을 만들어 테스트하게 하세요.

설명(60분)
- 학생들이 생각한 솔루션들을 테스트하고 가장 최선의 솔루션을 고르게 하세요.
- 학생들에게 자신만의 테스트표를 만들게 하세요.
- 팀별로 프로젝트를 최종 완성하고 작업을 문서화하기 위해 필요한 자료들을 수집할 시간을 주세요.

정교화(60분)
- 학생들에게 최종 보고서를 작성하기 위한 시간을 주세요.
- 각 팀별로 결과를 발표하는 공유 세션을 진행하세요.

평가
- 학생 개개인의 성과에 대한 피드백을 제공하세요.
- 제공된 활동평가표를 사용하면 프로세스를 간소화할 수 있습니다.

토의 시작

공장 컨베이어는 원료부터 완성품, 포장된 제품 등의 물체를 이곳저곳으로 이송하는 기능을 합니다. 벨트 컨베이어가 가장 잘 알려져 있으며, 그 외에도 여러 종류의 물체를 효과적으로 이송하기 위해 다양한 컨베이어 시스템이 개발되었습니다.

Engage-Factory-Conveyor-Cover

적극적으로 브레인스토밍을 하게 하세요.

학생들에게 이러한 질문에 대해 생각해보게 하세요.

  • 공장 컨베이어가 무엇이며 어디에 사용되나요?
  • 공을 옮기기 위해 어떤 유형의 전동 메커니즘을 사용할 수 있나요?
  • 공의 제어를 유지하면서 로봇 시스템이 어떻게 공을 움직일 수 있나요?
  • 센서는 어떤 역할을 하나요? 로봇 시스템이 얼마나 잘 작동하는지를 어떻게 측정할 수 있을까요?

학생들에게 최초의 아이디어를 문서화하게 하고, 첫 번째 프로토타입에 사용할 솔루션을 선택한 이유를 물어보세요. 그리고 프로젝트가 진행되는 동안 자신의 아이디어를 어떻게 평가할 것인지를 설명해보라고 하세요. 이렇게 함으로써 학생들이 검토와 수정을 거치는 과정에서 솔루션을 평가할 때 활용 가능한 구체적인 정보를 얻을 수 있고 솔루션이 효과적인지 여부를 판단할 수 있습니다.

확장 요소

국어교과 확장

국어교과 기술 개발의 통합을 위해 학생들에게 다음 과제를 부여하세요.

옵션 1

  • 작성해 두었던 작업, 스케치 또는 사진을 이용해 디자인 프로세스를 요약하고 최종 보고서를 작성하세요.
  • 최초의 아이디어부터 완료된 프로젝트까지 디자인 프로세스를 보여 주는 동영상을 만드세요.
  • 프로그램에 대한 프레젠테이션을 만드세요.
  • 프로젝트와 현실 세계의 시스템을 연관지어 살펴보고 학생들의 작품을 기반으로 만들어낼 수 있는 새로운 발명품을 설명하기 위한 프레젠테이션을 제작하세요.

옵션 2
이번 수업에서는 학생들이 현대화된 제조 공정에서 사용되는 시스템을 모방하여 경로를 따라 공을 옮기기 위한 시스템을 만들었습니다.

  • 현대화된 제조 공정에서 인터넷 보안 또는 내부 데이터 보안이 어째서 우려 사항으로 대두되는지에 대해 생각을 모아보고, 오늘날의 제조 공정과 클라우드 데이터의 사용에 관한 설명이 담긴 문서를 작성하세요.
  • 온라인 쇼핑의 운영을 위해 물류 센터에서 컨베이어 시스템을 사용하는 방식에 대해 설명하세요.
  • 소비자의 구매 데이터를 클라우드에 저장하는 방식의 장점과 단점을 논의하세요.

수학교과 확장

이번 수업에서는 학생들이 현대화된 제조 공정에서 사용되는 시스템을 모방하여 경로를 따라 공을 옮기기 위한 시스템을 만들었습니다. 오늘날의 제조 공정은 대다수가 생산과 품질의 관리를 위해 자동화를 활용하며, 기계학습이라 불리는 형태의 인공지능을 이용해 성과 데이터를 분석하고 새로운 절차를 고안하여 전체적인 성능과 효율의 개선을 도모합니다. 이를 위해 제조 엔지니어는 시스템 성능과 효율에 관한 방대한 데이터 집합을 수집하며, 나아가 기계 학습 알고리즘을 사용하여 이러한 데이터를 분석하고 성능과 효율의 개선을 위한 의사 결정을 내립니다.

수학 능력 개발 활동을 통합하고 품질 관리, 기계학습 등의 제조 관련 주제를 탐구하는 차원에서 학생들에게 다음과 같은 과제를 부여하세요.

  • 하드웨어와 소프트웨어를 설계에 추가하여 성능을 측정하고 정량적 측정값을 사용하여 기계의 성능을 나타내는 방법을 생각해보세요.

  • 품질 관리와 성능 분석을 수행할 때 기계와 사람이 공히 “충분히 좋음”이 의미하는 바를 평가해야 한다는 점을 염두에 두고, 각자의 디자인이 “충분히 좋다”는 것을 정량적으로 표현할 방법을 개발하세요.

  • 기계학습이라는 도구가 대량의 데이터 집합을 조사하고 기계 데이터(즉, 기계가 따르는 단계)와 성능 사이의 복잡한 관계를 알아내고자 할 때 사용된다는 점을 염두에 두고, 시스템 내부에 상주하며 성능과 효율에 영향을 미칠 수 있는 변수를 최대한 많이 나열해보세요.

조립 팁

조립 아이디어
학생들에게 아래의 링크를 참조하여 몇 가지의 예시 모델을 조립해 볼 기회를 주세요. 이러한 시스템이 어떻게 작동하는지 살펴보고 어떻게 디자인 개요에 대한 솔루션으로 이어질 수 있을지에 대해 브레인스토밍하게 하세요.

테스트 팁
학생들에게 최상의 솔루션을 선택하기 위한 테스트를 손수 준비하고 절차를 설계하게 하세요. 학생들이 테스트를 준비하는 데 아래의 팁이 도움이 될 것입니다.

  • 테스트 표를 만들어 관찰 결과를 기록합니다.
  • 예상 결과를 실제 결과와 비교하여 로봇 시스템의 정밀도를 평가합니다
  • 적어도 세 번 이상 테스트를 반복합니다.

샘플 솔루션
디자인 브리핑 기준을 충족하는 샘플 솔루션:

Ball-Conveyor-cover
ball-conveyor-thumbnail

코딩 팁

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, 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)
belt_motor.reset_angle(0)

# 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:
        wait(10)
    wait(500)
    
    # 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():
        wait(10)
    
    # 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:
        brick.light(Color.GREEN)
        catch_motor.run_target(400, -20)
        wait(1000)
        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:
        brick.light(Color.ORANGE)
        catch_motor.run_target(400, 20)
        wait(1000)
        catch_motor.run_target(400, 0, Stop.HOLD)
    # Otherwise, change the light to red and play an error sound.
    else:
        brick.light(Color.RED)
        brick.sound.file(SoundFile.RATCHET)
        wait(1000)
    
    # Return the conveyor belt to its starting position.
    belt_motor.run_target(250, 0)

진로 연결

이 수업이 즐거웠던 학생이라면 아마 다음과 같은 진로 개발 영역에 대해서도 관심이 있을 것입니다.

  • 제조 및 공학(기계 기술)
  • 과학, 기술, 공학 및 수학(공학과 기술)

평가 기회

교사 관찰 체크리스트
교사의 요구 사항에 맞는 척도를 만드세요(아래의 예 참조).

  1. 부분적으로 달성됨
  2. 충분히 달성됨
  3. 초과 달성됨

다음의 성공 기준을 사용해 학생들의 진척도를 평가하세요.

  • 학생들이 우선 순위 기준과 상충 관계를 고려하여 경쟁 디자인 솔루션을 평가할 수 있다.
  • 학생들이 자율적인 태도로 창의적인 솔루션을 개발한다.
  • 학생들이 자신의 아이디어를 명확히 전달할 수 있다.

자기 평가
학생들이 어느 정도의 성과 데이터를 수집한 다음, 각자의 솔루션에 대해 깊이 생각해 볼 시간을 주세요. 다음과 같은 질문이 도움이 될 것입니다.

  • 솔루션이 디자인 브리핑의 기준을 충족하나요?
  • 로봇 시스템의 움직임을 더 정확하게 만들 수 있나요?
  • 다른 사람들은 이 문제를 어떤 방식으로 해결했나요?

학생들에게 솔루션을 개선할 두 가지 방법을 브레인스토밍하고 문서화하게 하세요.

동료 피드백
각 그룹이 자신과 타인의 프로젝트를 평가하는 동료 검토 프로세스를 진행하게 하세요. 이러한 검토 프로세스는 학생들이 건설적인 피드백을 제공하는 기술을 개발하고 그들의 분석 기술을 연마하며, 주장을 뒷받침하기 위해 객관적 데이터를 사용하는 능력을 향상하는 데 도움이 됩니다.

교사 지원

학생 과제:

  • 디자인 프로세스를 사용해 현실 세계의 문제를 해결하세요

2015 개정 교육과정
기술 활용[12기가05-04]
-기술 혁신을 위한 창의 공학 설계를 이해하고, 제품을 구상하고 설계한다.
추상화와 알고리즘[12정보03-03]
-복잡하고 어려운 문제를 해결 가능한 작은 단위의 문제로 분해하고 모델링 한다.
프로그래밍[12정보04-09]
-다양한 학문 분야의 문제 해결을 위한 알고리즘을 협력하여 설계한다.
컴퓨팅 시스템[12정과04-03]
-문제 해결을 위한 피지컬 컴퓨팅 시스템을 설계하고 구성한다.

학생용 자료

학생용 워크시트

온라인 HTML 페이지 또는 인쇄 가능한 PDF 형식으로 다운로드하거나 살펴보거나 공유하세요.