CNC 드로잉 머신 만들기
패턴을 그리고 작업을 정확히 수행하고 작업을 반복하는 기계를 설계하고 조립하고 프로그래밍하세요.
수업 계획
준비
- 교사용 자료를 읽으세요.
- 필요에 따라 EV3 랩 소프트웨어 또는 EV3 프로그래밍 앱의 시작하기 자료를 이용해 수업을 계획하세요. 학생들이 레고® 마인드스톰® 에듀케이션 EV3와 친숙해지는 데 도움이 될 것입니다.
관심유도(30분)
- 아래의 토의 시작 섹션에 제시된 아이디어를 사용해 학생들에게 이 프로젝트에 대해 논의를 시작하게 하세요.
- 프로젝트를 설명하세요.
- 학생들이 두 명씩 팀을 이루게 하세요.
- 학생들에게 브레인스토밍을 위한 시간을 주세요.
탐구(30분)
- 학생들에게 여러 개의 프로토타입을 만들게 하세요.
- 조립과 프로그래밍을 모두 탐구하게 하세요.
- 각 팀별로 2가지 솔루션을 만들어 테스트하게 하세요.
- 대형 그래프 용지와 색연필 또는 마커를 학생들에게 나눠주세요.
설명(60분)
- 학생들이 생각한 솔루션들을 테스트하고 가장 최선의 솔루션을 고르게 하세요.
- 학생들에게 자신만의 테스트표를 만들게 하세요.
- 팀별로 프로젝트를 최종 완성하고 작업을 문서화하기 위해 필요한 자료들을 수집할 시간을 주세요.
정교화(60분)
- 학생들에게 최종 보고서를 작성하기 위한 시간을 주세요.
- 각 팀별로 결과를 발표하는 공유 세션을 진행하세요.
평가
- 학생 개개인의 성과에 대한 피드백을 제공하세요.
- 제공된 활동평가표를 사용하면 프로세스를 간소화할 수 있습니다.
토의 시작
컴퓨터 수치 제어(CNC) 기계는 미리 프로그래밍된 지시사항에 기초하여 하나 이상의 축을 따라 공구를 매우 정밀하게 제어합니다. 이 기계는 컴퓨터 통합 생산 분야에서 컴퓨터의 디지털 디자인을 물리적 물체로 바꾸기 위한 용도로 널리 사용됩니다.
적극적으로 브레인스토밍을 하게 하세요.
학생들에게 이러한 질문에 대해 생각해보게 하세요.
- CNC 기계가 무엇이며 어디에 사용되나요?
- 연필이나 마커를 장착하는 가장 좋은 방법이 무엇일까요?
- 연필이나 마커를 2차원적으로 움직이기 위해 어떤 유형의 전동 메커니즘이 사용될 수 있나요?
- 기계가 정확하고 반복 가능한 동작을 수행하게 하려면 어떤 디자인 기능이 필요할까요?
학생들에게 최초의 아이디어를 문서화하게 하고, 첫 번째 프로토타입에 사용할 솔루션을 선택한 이유를 물어보세요. 그리고 프로젝트가 진행되는 동안 자신의 아이디어를 어떻게 평가할 것인지를 설명해보라고 하세요. 이렇게 함으로써 학생들이 검토와 수정을 거치는 과정에서 솔루션을 평가할 때 활용 가능한 구체적인 정보를 얻을 수 있고 솔루션이 효과적인지 여부를 판단할 수 있습니다.
확장 요소
국어교과 확장
국어교과 기술 개발의 통합을 위해 학생들에게 다음 과제를 부여하세요.
옵션 1
- 작성해 두었던 작업, 스케치 또는 사진을 이용해 디자인 프로세스를 요약하고 최종 보고서를 작성하세요.
- 최초의 아이디어부터 완료된 프로젝트까지 디자인 프로세스를 보여 주는 동영상을 만드세요.
- 프로그램에 대한 프레젠테이션을 만드세요.
- 프로젝트와 현실 세계의 시스템을 연관지어 살펴보고 학생들의 작품을 기반으로 만들어낼 수 있는 새로운 발명품을 설명하기 위한 프레젠테이션을 제작하세요.
옵션 2
이번 수업에서는 학생들이 CNC 드로잉 머신을 만들어보았습니다. CNC 기계는 사람이 설계한 컴퓨터 지원 설계(CAD) 모델을 이용해 부품, 제품 및 프로토타입을 만들어냅니다. 그리고 이러한 CAD 모델은 로컬 네트워크의 컴퓨터 또는 클라우드에 저장된 데이터로 표시됩니다.
- CAD 도면을 한 대의 컴퓨터, 로컬 네트워크 또는 클라우드에 저장할 경우 각기 어떤 장점과 단점이 있을지에 대해 논의하고 주요 내용을 기록하세요.
- 학교 및 교육용 소프트웨어 제공업체가 디지털 CAD 도면을 비롯한 학생 데이터를 보호하고, 데이터 보호에 관한 정보 문서를 작성하고, 그것이 학생 과제물의 온라인 스토리지와 어떻게 관련되는지를 설명해야 한다는 점에 유념하세요.
- CAD 도면을 온라인에 저장하는 엔지니어링 회사와 학생들의 CAD 도면을 온라인에 저장하는 학교의 데이터 보안 우려 사항을 비교 내지 대조해보세요.
수학교과 확장
이번 수업에서는 학생들이 드로잉 머신을 만들어보았습니다. 만일 특정한 기하학적 형상을 그려낼 수 있는 기계를 만들고 싶다면 어떻게 해야 할까요? 또한 시간이 갈수록 특정한 형상을 그리는 작업을 점점 더 잘하게 되는 기계를 만들고 싶다면? 이를 실현하는 방법 중 하나가 바로 이른바 기계학습이라는 인공지능입니다. 기계학습을 사용하려면 우선 시스템에 학습 데이터를 입력하고, 어떤 형상이 필요한지와 특정 형상을 정확히 만들어냈는지 여부를 어떻게 판단할 것인지를 “가르쳐야” 합니다.
수학 능력 개발 활동을 통합하고 이러한 기술을 기계학습 주제에 적용하는 방법(특히 학습 데이터의 활용 방법)을 연습하는 차원에서 학생들에게 다음 과제를 부여하세요.
- 세 가지 기본적인 기하학적 형상(예: 원, 정사각형, 등변삼각형)의 정의를 글로 적고, 드로잉 머신 로봇이 각각의 형상을 만들어낼 수 있도록 하기 위해 이러한 정의가 어떻게 바뀌어야 할지를 조사하세요.
- 드로잉 머신 로봇이 특정 크기의 형상을 그리는 데 도움이 되게끔 특정 기하학적 형상의 정의를 글로 적으세요.
- 방금 작성한 정의를 살펴보고, 지정된 형상을 만드는 데 필요한 동작을 로봇에게 가르쳐주기 위한 학습 데이터 표를 만드세요.
수학적 개념과 기술을 추가로 연결하여 이 주제를 확장하는 차원에서 다음과 같은 질문을 제시하세요.
- 인공지능이 뭔가요? 지정된 명령 집합과 어떻게 다른가요? 인공지능과 간단한 명령 목록을 구별함에 있어 수학적 모델이 어떤 역할을 하나요?
- 로봇이 주변을 관찰하고 자신이 본 형상을 그리는 방법을 배울 수 있게 로봇의 디자인을 변경하려면 어떻게 해야 할까요?
조립 팁
조립 아이디어
학생들에게 아래의 링크를 참조하여 몇 가지의 예시 모델을 조립해 볼 기회를 주세요. 이러한 시스템이 어떻게 작동하는지 살펴보고 어떻게 디자인 개요에 대한 솔루션으로 이어질 수 있을지에 대해 브레인스토밍하게 하세요.
테스트 팁
학생들에게 최상의 솔루션을 선택하기 위한 테스트를 손수 준비하고 절차를 설계하게 하세요. 학생들이 테스트를 준비하는 데 아래의 팁이 도움이 될 것입니다.
- 그래프 용지 위에 기계의 위치를 표시하여 매번 테스트를 수행할 때마다 기계를 같은 위치에 배치할 수 있도록 합니다.
- 눈금선을 사용하여 1cm x 1cm 정사각형을 식별하여 매 테스트마다 수행 결과를 기록하는 데 도움이 되도록 합니다.
- 테스트 표를 만들어 관찰 결과를 기록합니다.
- 예상 결과를 실제 결과와 비교하여 기계의 정밀도를 평가합니다.
- 적어도 세 번 이상 테스트를 반복합니다.
학생들에게 최상의 솔루션을 선택하기 위한 테스트를 손수 준비하고 절차를 설계하게 하세요.
샘플 솔루션
디자인 브리핑 기준을 충족하는 샘플 솔루션:
코딩 팁
EV3 MicroPython 샘플 프로그램
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait
# Configure the turntable motor, which rotates the arm. It has a
# 20-tooth, a 12-tooth, and a 28-tooth gear connected to it.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
# Configure the seesaw motor with default settings. This motor raises
# and lowers the Pen Holder.
seesaw_motor = Motor(Port.C)
# Set up the Gyro Sensor. It is used to measure the angle of the arm.
# Keep the Gyro Sensor and EV3 steady when connecting the cable and
# during start-up of the EV3.
gyro_sensor = GyroSensor(Port.S2)
# Set up the Color Sensor. It is used to detect whether there is white
# paper under the drawing machine.
color_sensor = ColorSensor(Port.S3)
# Set up the Touch Sensor. It is used to detect when it is pressed,
# telling it to start drawing the pattern.
touch_sensor = TouchSensor(Port.S4)
def pen_holder_raise():
# This function raises the Pen Holder.
seesaw_motor.run_target(50, 25, Stop.HOLD)
wait(1000)
def pen_holder_lower():
# This function lowers the Pen Holder.
seesaw_motor.run_target(50, 0, Stop.HOLD)
wait(1000)
def pen_holder_turn_to(target_angle):
# This function turns the arm to the specified target angle.
# Run the turntable motor until the arm reaches the target angle.
if target_angle > gyro_sensor.angle():
# If the target angle is greater than the current Gyro Sensor
# angle, run clockwise at a positive speed.
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
# If the target angle is less than the current Gyro Sensor
# angle, run counterclockwise at a negative speed.
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
# Stop the motor when the target angle is reached.
turntable_motor.stop(Stop.BRAKE)
# Initialize the seesaw. This raises the Pen Holder.
pen_holder_raise()
# This is the main part of the program. It is a loop that repeats
# endlessly.
#
# First, it waits until the Color Sensor detects white paper or a blue
# mark on the paper.
# Second, it waits for the Touch Sensor to be pressed before starting
# to draw the pattern.
# Finally, it draws the pattern and returns to the starting position.
#
# Then the process starts over, so it can draw the pattern again.
while True:
# Set the Brick Status Light to red, and display "thumbs down" to
# indicate that the machine is not ready.
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
# Wait until the Color Sensor detects blue or white paper. When it
# does, set the Brick Status Light to green and display "thumbs up."
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
# Wait until the Touch Sensor is pressed to reset the Gyro Sensor
# angle and start drawing the pattern.
while not touch_sensor.pressed():
wait(10)
# Draw the pattern.
gyro_sensor.reset_angle(0)
pen_holder_turn_to(15)
pen_holder_lower()
pen_holder_turn_to(30)
pen_holder_raise()
pen_holder_turn_to(45)
pen_holder_lower()
pen_holder_turn_to(60)
# Raise the Pen Holder and return to the starting position.
pen_holder_raise()
pen_holder_turn_to(0)
진로 연결
이 수업이 즐거웠던 학생이라면 아마 다음과 같은 진로 개발 영역에 대해서도 관심이 있을 것입니다.
- 제조 및 공학(기계 기술)
- 미디어 및 커뮤니케이션 아트(디지털 미디어)
평가 기회
교사 관찰 체크리스트
교사의 요구 사항에 맞는 척도를 만드세요(아래의 예 참조).
- 부분적으로 달성됨
- 충분히 달성됨
- 초과 달성됨
다음의 성공 기준을 사용해 학생들의 진척도를 평가하세요.
- 학생들이 우선 순위 기준과 상충 관계를 고려하여 경쟁 디자인 솔루션을 평가할 수 있다.
- 학생들이 자율적인 태도로 창의적인 솔루션을 개발한다.
- 학생들이 자신의 아이디어를 명확히 전달할 수 있다.
자기 평가
학생들이 어느 정도의 성과 데이터를 수집한 다음, 각자의 솔루션에 대해 깊이 생각해 볼 시간을 주세요. 다음과 같은 질문이 도움이 될 것입니다.
- 솔루션이 디자인 브리핑의 기준을 충족하나요?
- 기계의 움직임을 더 정확하게 만들 수 있나요?
- 다른 사람들은 이 문제를 어떤 방식으로 해결했나요?
학생들에게 솔루션을 개선할 두 가지 방법을 브레인스토밍하고 문서화하게 하세요.
동료 피드백
각 그룹이 자신과 타인의 프로젝트를 평가하는 동료 검토 프로세스를 진행하게 하세요. 이러한 검토 프로세스는 학생들이 건설적인 피드백을 제공하는 기술을 개발하고 그들의 분석 기술을 연마하며, 주장을 뒷받침하기 위해 객관적 데이터를 사용하는 능력을 향상하는 데 도움이 됩니다.
교사 지원
학생 과제:
- 디자인 프로세스를 사용해 현실 세계의 문제를 해결하세요
대형 그래프 용지 또는 눈금선이 미리 인쇄된 용지
색연필 또는 마커
2015 개정 교육과정
기술 활용[12기가05-04]
-기술 혁신을 위한 창의 공학 설계를 이해하고, 제품을 구상하고 설계한다.
추상화와 알고리즘[12정보03-03]
-복잡하고 어려운 문제를 해결 가능한 작은 단위의 문제로 분해하고 모델링 한다.
프로그래밍[12정보04-09]
-다양한 학문 분야의 문제 해결을 위한 알고리즘을 협력하여 설계한다.
컴퓨팅 시스템[12정과04-03]
- 문제 해결을 위한 피지컬 컴퓨팅 시스템을 설계하고 구성한다.