乐高MINDSTORMS头脑风暴EV3机器人核心套装

搭建 CNC 数控绘图机

设计和搭建一个机器人系统,并对其进行编程,使其绘制图案、准确执行任务并重复任务。

120+分钟
中级
9-12 年级
2_Make_a_CNC_Drawing_Machine

课程计划

课前准备
- 通读教师教学材料。
- 可根据教学需要使用 EV3 Lab 软件或 EV3 机器人编程 App 应用程序中的入门教学材料来设计课程。这将有助于学生熟悉乐高教育® MINDSTORMS® 头脑风暴 EV3 机器人套装。

参与(30 分钟)
- 结合下文发起一次讨论部分的提示,组织学生围绕本项目展开讨论。
- 解释项目。
- 将整个班级按两人一组方式进行分组。
- 为学生预留头脑风暴的时间。

探究(30 分钟)
- 让学生创建多个原型。
- 鼓励学生探索搭建和编程。
- 让每组学生搭建并测试两种方案。
- 为他们提供一张大的坐标纸和彩色铅笔或马克笔。

解释(60 分钟)
- 要求学生测试自己的方案,并选出最优的一个。
- 确保学生能够创建自己的测试表。
- 为每个团队留些时间来完成项目,并收集他们的工作记录材料。

拓展(60 分钟)
- 给学生一些时间,让他们完成自己的最终报告。
- 组织一次分享会,让每个团队展示他们的成果。

评估
- 为每位学生的课堂表现提供反馈。
- 可借助所提供的评价量表来简化此环节。

发起一次讨论

计算机数控 (CNC) 机器能够借助预编程指令,沿一个或多个轴高精度控制刀具。此类设备通常用于计算机集成制造,将计算机上的数字设计转化为实体产品。

Engage-CNC-Machine-Cover

引入头脑风暴环节。

要求学生思考下列问题:

  • 什么是 CNC 数控机器,它用在哪里?
  • 安装铅笔或马克笔的最佳方式是什么?
  • 哪种电动机制能够使铅笔或马克笔在二维空间中移动?
  • 哪些设计功能能够确保设备的运动准确且可重复?

鼓励学生记录最初想法,并解释第一个原型选用此方案的原因。要求学生描述:如何在整个项目进行过程中评估自己的想法。通过这种方式,他们在审核和修改过程中将会拥有评估自身方案的具体信息,并可籍此来决定方案是否有效。

拓展

语言艺术拓展

为了引入语言艺术能力培养环节,让学生:

选项 1

  • 通过书面方式、草图和/或照片等方式,对设计过程进行总结,并制作一份最终报告。
  • 制作一段演示设计过程的视频,从最初想法开始,到项目完成结束。
  • 制作一份跟他们程序相关的演示文稿。
  • 制作一份演示文稿,将他们的项目与类似系统的实际应用联系起来,并描述可以根据他们的创造而进行的新发明。

选项 2
在本节课中,学生将创建一台 CNC 数控绘图机。CNC 数控机器使用人工生成的计算机辅助设计 (CAD) 模型生产部件、产品和原型。这些 CAD 模型均由通过计算机存储在本地网络或云中的数据展现。

  • 讨论并记录将 CAD 绘图存储在单台计算机、本地网络和云中的优缺点。
  • 请注意,学校和教育软件供应商必须保护学生的数据(包括他们的数字 CAD 绘图),并提供说明性文字,概述数据隐私及其与学生作业在线存储的关系
  • 比较在线存储 CAD 绘图的工程公司和在线存储学生 CAD 绘图的学校的数据安全问题

数学拓展

在本节课中,学生将创建一台绘图机器。但是,如果他们的目标是创建一台能够绘制特定几何形状的机器,该怎么办?如果他们希望自己的机器在绘制特定形状方面越来越出色,该怎么办?实现这个目的的一种方法是使用一种被称为“机器学习”的人工智能。为了使用机器学习,必须向系统提供样本数据,以“教授”它什么是形状,以及如何确定自身是否精确绘制了特定形状。

为了提高数学技能,并将这些技能应用于机器学习,即使用样本数据,应要求学生:

  • 写出三种基本几何图形的定义(如圆、正方形、等边三角形),并确定如果想帮助绘图机器人绘制每种图形,他们如何更改这些定义
  • 写出特定几何图形的定义,使其能够帮助绘图机器人以特定尺寸绘制该图形
  • 查看他们刚写出的图形定义,并创建样本数据表,以向机器人教授绘制选定图形所需的动作

为进一步将数学概念和技能与本主题联系起来,请提出下列问题:

  • 什么是人工智能?它与一系列给定的指令有何不同?数学模型在区分人工智能和简单的指令列表方面有什么作用?
  • 对机器人设计进行哪些更改,可使其观察周围环境并学习如何绘制所看到的图形?

搭建要诀

搭建创意
允许学生搭建下面链接中的示例。鼓励他们探索这些系统的工作原理,并进行头脑风暴,讨论如何通过这些系统获得“设计任务”的解决方案。

测试要诀
鼓励学生设计自己的测试装置和流程,从而选择最佳方案。下列提示可以帮助学生建立他们的测试体系:

  • 在坐标纸上标记设备的位置,以确保在每次测试运行时都可以将其放置在相同的位置。
  • 使用网格线标示出 1 厘米 x 1 厘米的方格,以帮助记录每次试运行的结果。
  • 创建测试表以记录观察结果。
  • 通过对比预期结果和实际结果来评估设备的精度。
  • 至少重复测试三次。

示例方案
以下是符合“设计任务”标准的示例方案:

Pen-arm-cover
pen-arm-thumbnail

编程要诀

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)

职业连接

喜欢这节课的学生可能会对以下相关行业产生兴趣:

  • 制造与工程(机械技术)
  • 传媒艺术(数字媒体)

评估环节

教师观察清单
可根据教学需要设定等级,例如:
1.部分完成
2.全部完成
3.超额完成

请使用下列成功完成任务的标准来评估学生的进度:

  • 学生能够根据优先标准和权衡多种因素来评估竞争性设计方案。
  • 学生能够自主开发出可行且富有创意的方案。
  • 学生能够清楚表达他们的想法。

自我评估
当学生收集到所需的性能数据后,给他们一些时间反思自己的方案。通过提出如下问题来帮助他们:

  • 你们的方案是否符合“设计任务”的标准?
  • 你们的设备能够移动的更精确些吗?
  • 其他人解决这个问题时采用了哪些方法?

要求学生进行头脑风暴,并记录两种能够改进他们方案的方法。

同伴反馈
推动学生进行同伴审核,由每个小组负责评价自己及其他小组的项目。此审核过程能够培养学生提供建设性反馈的能力,提升他们的分析能力和使用客观数据支持论点的能力。

教师支持

学生将会:

  • 运用设计流程来解决实际问题

乐高教育® MINDSTORMS® 头脑风暴 EV3 机器人核心套装

一张大的坐标纸或预先印有网格线的纸张
彩色铅笔或马克笔

www.moe.gov.cn/srcsite/A26/s8001/201801/t20180115_324647.html
高中信息技术课程标准
开源硬件项目设计模块
6.4 根据设计方案,选择恰当的开源硬件,搜索相关的使用说明资料,审查与优化作品设计方案。
6.5 了解作品制作过程中各种设备与组件的安全使用规则和方法,根据设计方案,利用开源硬件、相关组件与材料,完成作品制作。
6.6 根据设计方案,利用开源硬件的设计工具或编程语言,实现作品的各种功能模块。

学生材料

学生学习单

下载、查看或分享在线 HTML 页面或可打印的 PDF 文件。