搭建 CNC 数控绘图机
设计和搭建一个机器人系统,并对其进行编程,使其绘制图案、准确执行任务并重复任务。
课程计划
课前准备
- 通读教师教学材料。
- 可根据教学需要使用 EV3 Lab 软件或 EV3 机器人编程 App 应用程序中的入门教学材料来设计课程。这将有助于学生熟悉乐高教育® MINDSTORMS® 头脑风暴 EV3 机器人套装。
参与(30 分钟)
- 结合下文发起一次讨论部分的提示,组织学生围绕本项目展开讨论。
- 解释项目。
- 将整个班级按两人一组方式进行分组。
- 为学生预留头脑风暴的时间。
探究(30 分钟)
- 让学生创建多个原型。
- 鼓励学生探索搭建和编程。
- 让每组学生搭建并测试两种方案。
- 为他们提供一张大的坐标纸和彩色铅笔或马克笔。
解释(60 分钟)
- 要求学生测试自己的方案,并选出最优的一个。
- 确保学生能够创建自己的测试表。
- 为每个团队留些时间来完成项目,并收集他们的工作记录材料。
拓展(60 分钟)
- 给学生一些时间,让他们完成自己的最终报告。
- 组织一次分享会,让每个团队展示他们的成果。
评估
- 为每位学生的课堂表现提供反馈。
- 可借助所提供的评价量表来简化此环节。
发起一次讨论
计算机数控 (CNC) 机器能够借助预编程指令,沿一个或多个轴高精度控制刀具。此类设备通常用于计算机集成制造,将计算机上的数字设计转化为实体产品。
引入头脑风暴环节。
要求学生思考下列问题:
- 什么是 CNC 数控机器,它用在哪里?
- 安装铅笔或马克笔的最佳方式是什么?
- 哪种电动机制能够使铅笔或马克笔在二维空间中移动?
- 哪些设计功能能够确保设备的运动准确且可重复?
鼓励学生记录最初想法,并解释第一个原型选用此方案的原因。要求学生描述:如何在整个项目进行过程中评估自己的想法。通过这种方式,他们在审核和修改过程中将会拥有评估自身方案的具体信息,并可籍此来决定方案是否有效。
拓展
语言艺术拓展
为了引入语言艺术能力培养环节,让学生:
选项 1
- 通过书面方式、草图和/或照片等方式,对设计过程进行总结,并制作一份最终报告。
- 制作一段演示设计过程的视频,从最初想法开始,到项目完成结束。
- 制作一份跟他们程序相关的演示文稿。
- 制作一份演示文稿,将他们的项目与类似系统的实际应用联系起来,并描述可以根据他们的创造而进行的新发明。
选项 2
在本节课中,学生将创建一台 CNC 数控绘图机。CNC 数控机器使用人工生成的计算机辅助设计 (CAD) 模型生产部件、产品和原型。这些 CAD 模型均由通过计算机存储在本地网络或云中的数据展现。
- 讨论并记录将 CAD 绘图存储在单台计算机、本地网络和云中的优缺点。
- 请注意,学校和教育软件供应商必须保护学生的数据(包括他们的数字 CAD 绘图),并提供说明性文字,概述数据隐私及其与学生作业在线存储的关系
- 比较在线存储 CAD 绘图的工程公司和在线存储学生 CAD 绘图的学校的数据安全问题
数学拓展
在本节课中,学生将创建一台绘图机器。但是,如果他们的目标是创建一台能够绘制特定几何形状的机器,该怎么办?如果他们希望自己的机器在绘制特定形状方面越来越出色,该怎么办?实现这个目的的一种方法是使用一种被称为“机器学习”的人工智能。为了使用机器学习,必须向系统提供样本数据,以“教授”它什么是形状,以及如何确定自身是否精确绘制了特定形状。
为了提高数学技能,并将这些技能应用于机器学习,即使用样本数据,应要求学生:
- 写出三种基本几何图形的定义(如圆、正方形、等边三角形),并确定如果想帮助绘图机器人绘制每种图形,他们如何更改这些定义
- 写出特定几何图形的定义,使其能够帮助绘图机器人以特定尺寸绘制该图形
- 查看他们刚写出的图形定义,并创建样本数据表,以向机器人教授绘制选定图形所需的动作
为进一步将数学概念和技能与本主题联系起来,请提出下列问题:
- 什么是人工智能?它与一系列给定的指令有何不同?数学模型在区分人工智能和简单的指令列表方面有什么作用?
- 对机器人设计进行哪些更改,可使其观察周围环境并学习如何绘制所看到的图形?
搭建要诀
测试要诀
鼓励学生设计自己的测试装置和流程,从而选择最佳方案。下列提示可以帮助学生建立他们的测试体系:
- 在坐标纸上标记设备的位置,以确保在每次测试运行时都可以将其放置在相同的位置。
- 使用网格线标示出 1 厘米 x 1 厘米的方格,以帮助记录每次试运行的结果。
- 创建测试表以记录观察结果。
- 通过对比预期结果和实际结果来评估设备的精度。
- 至少重复测试三次。
示例方案
以下是符合“设计任务”标准的示例方案:
编程要诀
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 根据设计方案,利用开源硬件的设计工具或编程语言,实现作品的各种功能模块。