机器宠物项目:舵机、传感器与性格

机器宠物把舵机和传感器变成了孩子真心喜欢的项目:先做出身体,再用待机、反应、睡眠三个简单状态,给它编出一副性格。
要把走神的班级或提不起劲的孩子重新拉回编程,机器宠物是最靠得住的项目之一。你用一两个舵机加一个传感器搭出一只小生物,然后把大部分时间花在给它一副性格上——一套让它显得活着的行为方式。对教学来说好用的地方在于,性格无非就是一组规则,所以这个项目玩起来像在玩,其实悄悄教的是真正的编程。
机器宠物为什么能把注意力赢回来
大多数学员都会在某个节点撞上一堵墙。练习纸不起作用了,或者一个项目正确答案太多、孩子自己的成分太少。机器宠物能把这个局面重置,因为它没有唯一正确的结果。一个学员做出一只胆小、会躲起来的猫,另一个做出会追着你的手跑的小狗。下限很低,所以没人会卡住;上限很高,所以做得快的人有的继续。给宠物起名字就占了一半的动力,孩子一旦给什么东西取了名,往往就希望它真能动起来。
性格就是一台小小的状态机
你不需要行为树,也不需要任何花哨的东西。三个状态就足以让一个机器人显得活着:待机、反应和睡眠。待机时,宠物做一些轻微、略带随机的动作,每隔几秒抖一下耳朵或者转一下头,让它看起来永远不像是关着的。反应时,它对房间里发生的事情作出回应。睡眠则是在一段时间什么都没发生之后,它停下动作,安静地等着什么东西把它叫醒。
整个程序就是一个循环,只问一个问题:我现在在哪个状态,接下来该发生什么。这是对“状态”这个概念干净而诚实的入门,孩子也很快就能抓住,因为他们本来就知道,真的宠物要么在瞎折腾,要么在回应你,要么在睡觉。
传感器就是感官
最神奇的一刻,是传感器第一次自己改变了宠物的情绪。把每一路输入映射成一种感受。距离传感器意味着有人靠近,于是宠物醒来,显出好奇的样子。声音突然变大意味着一声巨响,于是它被吓一跳。光线传感器变暗意味着天黑了,于是它开始犯困。映射要简单、要读得懂,一路输入对应一种情绪;等第一个跑通了,再让学员往上加。
宠物靠舵机把情绪表现出来。一个舵机就能摇尾巴、歪头或者扇一对耳朵,这么一点点动作,能带出多得出人意料的性格。一块能同时驱动两三个舵机、又能读传感器的主控,可以让接线保持老实;sheenbot∞ 主控板两件事都能做,也就意味着这个项目的重心留在行为上,而不是花在理线上。
一个周末的搭建清单
- 一块主控板,能驱动舵机,并且至少能读一个传感器。
- 一到两个微型舵机用来做动作,比如尾巴、耳朵或者歪头。
- 一个输入传感器作为起点,距离或声音传感器都很合适。
- 一个身体,手边有什么用什么:纸板、3D 打印件或者 LEGO 骨架。
- 备用舵机臂,外加一笔应付损坏的小预算,大约是器材成本的百分之十到十五,因为运动部件确实会被掰得太狠。
如果你正在凑元件,sheen store 里的舵机和传感器和我们课上用的是同一批,孩子在学院里见到的和这个项目就能对得上。
把它放进课堂里上
不要一次把三个状态都做完。先只做待机,让宠物开始抽动。下一节课加上反应,再下一节加睡眠。这样切开,每个孩子在每节课结束时都能带走一个能动的机器人,这比在学期末拿到一个完美作品重要得多。它很适合摊在周常课的几周里;如果你更愿意一口气密集地做完,学校假期的假期工作坊也放得下。
要说结论,性格就是编程。机器宠物给了孩子在意待机循环、传感器读数和简单判断规则的理由,因为这些规则加在一起,就成了一个看上去有自己想法的东西。每当课堂的投入度往下掉,这就是我们会拿出来的项目,而它几乎每次都能把投入度拉回来。



