这是结业项目。学生要挑一项任务(配送、搜救、检测、分拣或无障碍辅助),把整门课的东西都汇到一起:一份规划书、一张标注好的草图、一张「输入、处理、输出」示意图、一张流程图、一套能动起来的机械设计、至少一个传感器,以及一个用到顺序、循环和条件、并带有安全停车行为的程序。他们要跑三轮测试,记录一处改进,并说明自己的机器人是怎样帮上忙的。
这一周结束时,你将能够
- 把一个真实的需求变成一项带需求和约束的机器人任务
- 用一份规划书、一张标注草图、一张「输入、处理、输出」示意图和一张流程图来规划一台机器人
- 搭出或模拟出一台至少用一个传感器、并且能稳稳当当跑起来的机器人
- 写一个用到顺序、循环、条件和安全停车的程序
- 把机器人测试三遍,记录一处改进,并说明它是怎样帮上忙的
学习
把整门课汇到一起
结业项目不是什么新想法,而是这门课里所有想法同时开工。你的机器人要感知(第 4 周)、用循环和条件作决定(第 5 周)、在稳固的底盘上行驶(第 2 周)、照着规划好的顺序走(第 3 周)、经过测试和改进(第 6 周),并完成一次安全的自主任务(第 7 周)。
从任务出发,倒着往回推:这件活儿要求机器人感知什么、判断什么、做什么?
挑一项真有意义的任务
好的任务是为真实的人解决一个小而真实的问题。「把一张纸条送到教室的另一头」比「什么都干」要好,因为你真的能把它做出来、也能测试。
挑一项你在手头这点时间里做得完的任务,而且要配得上你真正拥有的传感器和零件。
例如:配送; 搜救; 检测; 分拣; 无障碍辅助
先规划,再动手
专业的工程师都是先在纸上规划。你的规划书要点明任务、需求(它必须做到什么)和约束(时间、尺寸或材料之类的限制)。
接着你要画一张标注好的草图、一张「输入、处理、输出」示意图,以及程序的流程图。先规划,就不用后面推倒重来。
测试、改进、讲清楚
把你的机器人跑三遍,逐次记录发生了什么,而不是只记「成没成」。真实的机器人是按能不能可靠地把活儿干好来评判的,不是靠碰巧成功的那一次。
找一处可以改进的地方,改掉它,并记下结果。最后,用几句话说明你的机器人是怎样帮上忙的,以及你凭什么知道它管用。
要认识的词
- 任务:
- 你为自己的机器人挑的那一件有用的活儿。
- 规划书:
- 动手之前写下的一份简短方案,说明任务、需求和约束。
- 「输入、处理、输出」示意图:
- 一张图,画出你的机器人感知什么、怎样作决定、以及做了什么。
- 流程图:
- 你程序的分步示意图,用方框表示动作、用菱形表示判断。
- 迭代:
- 通过测试你的设计、找出问题、再作出改动,把它变得更好。
- 安全停车:
- 一种行为:任务完成或有东西挡路时,让机器人安全地停下来。
- 评分量表:
- 一张表格,说明入门、发展中、熟练和优秀的作品各是什么样子。
注意安全
这一周动手搭建或运行机器人之前,先把这些读一遍。
- Caution:为测试运行留出一块干净、没有障碍物的区域,并远离转动的部件。
- Caution:做纸板模型时请使用儿童安全剪刀,并在大人陪同下进行。
- Note:常常保存你的程序和日志,免得刷新浏览器把成果弄丢。
动手做
选择你的路线
这门课你可以用机器人套件、浏览器模拟器,或者不插电、只用家里的材料来上。挑一条就行,随时可以换,你的成果不会丢。
设计、搭建、编程并测试你的帮手机器人
机器人套件把挑好的任务从方案一路做成一台经过测试和改进的机器人,其中要用到传感器、顺序、循环、条件和安全停车。
- 先把规划书填完:任务、需求、约束。然后画出标注草图、「输入、处理、输出」示意图和流程图。
- 把机器人搭好或配置好,让它跑得稳,并且至少用一个传感器。写出带顺序、循环、条件和安全停车的程序。
- 跑三轮测试,逐轮记录,作出一处改进,并写下你关于机器人怎样帮上忙的最终说明。
在机器人套件上搭建并编写这项任务
你需要:至少带一个传感器的机器人套件, 规划页、流程图页和测试记录页
步骤
- 1在碰套件之前,先把规划书和各张示意图做完。
- 2为你的任务搭一个稳固的底盘,并装上你需要的那个传感器。
- 3编写一段能把活儿干完的顺序指令、一个不停查看传感器的循环、一个作出反应的条件,以及结尾处的安全停车。
- 4做三次测试,逐轮记录,改进一处,再测一遍。
做成了是什么样:一台用套件搭的机器人,在三轮测试里至少两轮完成任务,并且安全停下。
- 至少用了一个传感器
- 程序里有顺序、循环和条件
- 有安全停车
- 记录了三轮运行
- 记录了一处改进
安全:测试运行时请远离转动的部件。 给机器人一块干净、没有障碍物的测试区域。
如果不管用
- 机器人成功了一次,之后就不行了
- - 照第 6 周的可靠性清单来一遍:同样的起始位置、换新电池、重新核对传感器阈值。
- 机器人对传感器毫无反应
- - 把传感器读数显示出来,确认你的阈值落在真实数值正确的那一侧。
再往前一步:再加一个传感器或一个计数器,让机器人去挑战这项任务更难的版本。
给机器人编程
Build a program from blocks, then run it on the simulator. On the kit path, use the same steps in your robot's app; unplugged, act the blocks out on a floor grid. Your program saves on this device.
最终任务程序
运行你所选任务的那个程序:一段顺序、一个循环、一个传感器条件,以及一次安全停车。
添加积木块
事件与执行
移动
控制
数据
输出
变量与计数器
你的程序
- 前进
- 机器人(箭头指向它的朝向)
- 终点区(虚线框)
地图:一片 5 × 1 的网格。 机器人从第 1 列、第 1 行出发,朝向右。 终点区在第 5 列、第 1 行。
就绪.
可以运行了。 · 0 steps
机器人状态
- 列
- 1
- 行
- 1
- 朝向
- 右
- 前方距离
- 4 格
- 触碰
- 没有接触
- 在线上
- 否
- 光线
- 80
- 在终点区内
- 否
- 碰撞次数
- 0
- 步数
- 0
机器人在第 1 列、第 1 行,朝向右。 前方距离:4 格。 触碰:没有接触。 在线上:否。 光线:80。 不在终点区内。
日志输出
还没有记录任何内容。
- Heads up: This program has no safe stop behavior. Add a safe stop so the robot stops when it is done or blocked.
预测
Commit to a guess before you test - then see how close you were. Your predictions save automatically.
怎样验证:把你的预测和三轮测试里真正出问题的地方对照一下。
测试与改进
最终任务的三次运行测试
从同样的初始布置把整项任务跑三遍。逐轮记录发生了什么,以及任务有没有完成。
要测量的:任务有没有完成,以及两轮之间改动了什么
| Run | 发生了什么 | 任务完成了吗?(是/否) | 该改什么 |
|---|---|---|---|
知识检测
检验一下你能否说清楚结业项目背后的那些选择。
1. 工程师为什么要在动手做之前写规划书、画流程图?
2. 你的程序里必须有一个条件。条件让你的机器人能做什么?
3. 为什么要把任务跑三遍,而不是一遍?
4. 什么是「安全停车」行为?
已答 0 / 4
反思
你的反思会自动保存。
课程结束之后
你把这门课学完了:现在你已经能设计、搭建、编程、测试并改进一台能帮上忙的机器人了。
- 把你的机器人拿给家人或同学看看,讲讲它是怎么工作的。
- 把你的规划书和流程图留着;它们就是你下一个机器人项目的起点。
- 从清单里挑一个你这次没选的任务,试一试。
完成结业项目
完成以下内容,即可结束本周并解锁下一周:
- 完成规划书、草图、「输入、处理、输出」示意图和流程图 (not done yet)
- 搭出或配置出一台能跑、并且至少用一个传感器的机器人 (not done yet)
- 写出一个带顺序、循环、条件和安全停车的程序 (not done yet)
- 跑三轮测试,并记录一处改进 (not done yet)
- 写下关于机器人怎样帮上忙的最终说明 (not done yet)