3 posts tagged with "英荔博客"

View All Tags

Revolution Robotics Challenge Kit: 为STEM教育注入变革的力量

种瓜

种瓜

CodeLab

本文转载自 CodeLab 社区

ROBOTICS IS FOR EVERYONE!

想象一下

设想这样一款 STEM 编程套件:

  1. 类似乐高积木的结构件和控制主机(网口)
  2. 使用树莓派作为大脑,运行 Linux
  3. 新手友好的 APP
    • 3D 视图的项目搭建引导
    • 图形化编程界面(同时显示 Python 代码)
    • 内置手柄、摇杆等控制器
  4. 使用蓝牙连接,方便在课堂、户外等环境中使用
  5. 爱好者们在社区中交流讨论并分享作品
  6. 以上这些全部开源!

我想,这是许多 STEM 教育从业者梦寐以求的开放套件。个中原因容易理解。

大家之所以偏好开放套件,无非是受够了封闭生态的掣肘;之所以梦寐以求,无非至今的探索都不如人意。

详细原因

让我们详细分析一下人们为何喜欢拥有上述特性的 STEM 套件,逐条陈述。

  1. 乐高积木拥有绝佳的可上手性,如果对此抱有怀疑,不妨看看学龄前孩子自己使用乐高动手捣鼓的东西。网口接口降低了连接的复杂性,也避免了操作过程中可能的危险。
  2. 树莓派作为控制大脑,提供了无限的可能性,树莓派的开放生态让任何创造的起步门槛都变低,同时,它又比任何精致的围墙花园(大多数的商业封闭生态)都更具想象空间,无论是语音控制、网络编程还是机器视觉,你都可以轻松添加进去。
  3. 开放性虽代表了未来的无限可能,但过多的选择,容易让初学者无所适从,开源社区因其强烈的自由主义倾向,对初学者缺乏家长式的关怀,许多初学者或许不乐意过早承担自由的重负,他们希望在一开始有更贴心的引导,尽管可能不够自由。一个足够友好的 APP 是不错的折中。
  4. 因为 ESP32/ESP8266 价廉物美,许多产品都采用它们作为通信模块,并优先支持 WIFI 模式。WIFI 有很多优点。其中最显著的一点是,设备一旦联网,就可以接入云端,之后的大多数的工作都可以在云端/Web 界面里完成。无论对学习者还是维护者,都极大方便了。例如: m5stack 和 webduino 都做得很好;使用 WIFI 的另一个优点是传输的带宽足够大,Cozmo 便基于 WIFI 来传输实时控制流和视频流(Cozmo 的大脑是分布式的!)。但基于 WIFI 有一个麻烦,对网络环境的要求较高,教育场景的网络通常是复杂的(室外环境、负载量低、带宽低、复杂的认证机制...),在这些场合,蓝牙通常是更好地选择。
  5. 社区的意义有目共睹,Imagine, Program, Share。在社区中与同伴一同远行。
  6. 只要投入足够的精力,围墙花园(封闭生态)总可以打造得优美精致。这是今天消费级商业电子产品取得成功的重要原因。但如果面向教育,情况却有不同。我们须承认,孩子的兴趣是未知的,未来将面为的问题也是未知的。这便是开放性的必要所在。有趣的是,承认世界充满未知,也正是哈耶克认为我们需要自由的理由。

登场

如果以上论述,道出了你对开放的STEM编程套件的期望,那么Revolution Robotics Challenge Kit便是为你准备的。

我喜欢 Revolution Robotics Challenge Kit 在kickstarter上亮相时所做的自我介绍:

STEM 教育中的开源革命;不仅仅是玩具机器人套件...还可以编写代码、设计、建造、驱动机器人并从中学习生活技能。

先来看一段官方的介绍视频:

套件构成

Revolution Robotics Challenge Kit 是一套完整的机器人构建套件,提供 530 多种构件, 包括

  • 基于树莓派(Raspberry Pi)的大脑
  • 五个强大的马达
  • 超声波传感器
  • 加速度计
  • 陀螺仪传感器
  • 开关
  • 齿轮
  • 轴承
  • 以及其他数百个结构件...

Revolution Robotics Challenge Kit 符合玩具制造协会的 14 项优秀 STEM/STEAM 玩具资格标准。

软件

随附的 Revolution Robotics 应用程序(APP)将为 8-13 岁的孩子提供了详尽的项目引导(3D 图)和易于使用的积木编程界面,方便他们编程和控制机器人。有经验的探索者,可以使用 Python 来对其进行编程。

开源

Revolution Robotics Foundation是一家成立于 2018 年的非营利组织,致力于使 STEM 教育机器人价格合理、开放、具有教育意义、公平和有趣。

联合创始人 Jared Schrieber 和 Jason Morrella 希望让更多的孩子参与到机器人技术中。虽然当前的解决方案在推进 STEM 教育方面显示出巨大希望,但由于专有平台的内在成本、复杂性和不公平性,阻碍了它们的前进。

Revolution Robotics Foundation创始者们希望构建一种革命性的开源平台来解决这些问题。

在开源理念之下,Revolution Robotics Foundation将其所有工作成果开放在 Github:RevolutionRobotics

无论是机器人大脑的核心源码,还是结构件的3D 打印图纸......无一保留,全部开放了出来!

这意味着,可以据此构建出真正有想象力的项目和社区。

这种彻底的开放,也意味着生态中的企业,可以基于Revolution Robotics Foundation开创性的工作,快速去生产出千姿百态的 STEM 套件,去服务更加细分的市场和更加丰富的产品。这些产品中艰难而核心工作都已经都完成了: 多平台的客户端(APP)、通用的机器人框架、固件升级、硬件设计图、结构件 3D 图纸...

内测

Revolution Robotics Challenge Kit首批产品计划在本月(2019.11)发布。

CodeLab 对Revolution Robotics Challenge Kit的理念和产品都深感兴趣。我们上个月与 Revolution CEO Rosemary Hua 和技术负责人 David Dudas 通了个电话会议,谈论Revolution Robotics Challenge Kit接入 CodeLab Adapter 和 CodeLab Neverland 的可能性。他们 2 人对我们正在做的事情也感兴趣,于是约定在正式发布之前,先给我们寄来一套。

Revolution Robotics Challenge Kit依赖于 Google 的 Firebase,目前一些功能暂时无法在国内使用,我们正在与 David 商议可能的解决方案。

测试过程中我们发现,Revolution Robotics Challenge Kit目前的蓝牙稳定性还存在一些问题,但这块属于软件问题,可以在版本迭代中完善,暂未发现硬件上的硬伤。

就技术和编程教育而言,Revolution Robotics Challenge Kit在灵活性和易用性方面的考虑有不少地方超出我的预期。

总结

这可能是迄今为止,在 STEM 领域,就易用性、开放性和完整性方面综合而言,最佳的产品之一,有可能,没有之一。

因为Revolution Robotics坚持的开放性和在产品上所付出的巨大努力,我相信Revolution Robotics Challenge Kit有望做到其名字中包含的期望Revolution:

为 STEM 教育注入变革的力量。

参考

构建并发布一个 CodeLab Adapter 插件

种瓜

种瓜

CodeLab

本文转载自 CodeLab 社区

好的软件作品,往往源自于开发者的个人需要 -- 《大教堂与集市》

前言

上一篇文章里,我们聊到开源项目与开源社区这两个话题。

本文将带着大家一起构建一个开源项目,并发布它。

我们不希望这个例子只是一个展示技术原理的hello world,那样多少有些枯燥,我们希望它跟你的日常生活有关,所以尽可放心往下阅读,它不大无聊,而且一旦你理解之后,可能会乐意对其作些修改,做一些有趣的恶作剧或日常用得到的小工具。

关于 CodeLab Adapter

CodeLab Adapter 是什么东西?

CodeLab Adapter 的文档 里对此的回答是:

CodeLab Adapter 是由 CodeLab 构建的基础项目(v2 是最新版本),致力于连接万物,无论是软件还是硬件,无论是 AI、开源硬件、现实世界的物体、还是虚拟世界的动画角色,在 CodeLab Adapter 的驱动下,皆可彼此互动。

CodeLab Adapter适合用来构建 AIoT 相关的项目。

通过前头的例子,想说明的是,在开源社区,项目的文档是一个项目的说明书,阅读文档,通常是不错的起步。

CodeLab Adapter 的文档 中,使用文档开发者文档都包含其中。

Talk is cheap,show me demo

Linux 之父 Linus Torvalds 有句名言:

Talk is cheap. Show me the code.

翻译为中文是:

废话少说,放码过来

可是,当我初次接触一个项目的时候,我是没有耐心直接阅读它的代码的,如果能给我看些视频,看看这个项目都能干些啥就好了。万一它没什么意思,可以尽早离开干点其他的事--止损是现代人的智慧。 不知你是否耐心多些,我对于不感兴趣之事,很难逼着自己在上头花心思,非强迫自己,多半也是做不好的。

我们先来看看CodeLab Adapter都能用来干嘛: https://adapter.codelab.club/user_guide/gallery/

挑两个比较好玩的 demo:


开始使用

不知道这些例子对你是否有吸引力,如果觉得它无趣极了,你应当寻找自己感兴趣的东西去,没什么比找到令你感兴趣的事更重要的了,何况大家才大二,有的是时间去折腾。

要是觉得它还挺有趣,不妨按照文档里的说明引导下载下来玩一玩。

积木化编程

前头看到的视频里,经常出现一个充满彩色小块的界面,那东西叫Scratch

CodeLab Adapter 最初的名字叫 Scratch Adapter,不知道你用没用过 Scratch,如果你小时候没用过,你的弟弟妹妹们现在很可能正在用,它是这么个东西

Scratch 是个图形化编程工具,那些没有编程经验的孩子可以很快上手,使用它创作故事、游戏、交互艺术...目前全球有超过 4000 万的孩子使用它创作了数以亿计的编程项目。

CodeLab Adapter 的最初的目标之一就是使用 Python 来增强 Scratch 的能力,让Scratch能够方便地构建与 AI、IoT、开源硬件有关的项目,它的最终目标是支持约翰·杜威提倡的:

Education is life.

构建一个微信插件吧

大家日常使用微信比较多,接下来我们将带领大家基于 CodeLab Adapter 构建一个微信插件,一旦你完成这个插件,你的弟弟妹妹们就可以在Scratch使用微信积木来创作好玩的项目了。基于你的插件,孩子们只需要在 Scratch 拖拽积木,拼拼搭搭,就能使用微信与他们的程序互动!或者构建一个新的微信聊天界面:

由于Scratch的易用性,你也可以让你奶奶基于你的插件来为微信编程。

这里头可以做的事情还有很多, 诸如同时使用微信插件和 CodeLab Adapter 社区里的 IoT 插件,你就可以使用微信控制家里的电气设备。

设想你组织了个 party,每次有人按门铃都得去开门,是不是很烦躁?

把参与者拉到一个微信群,他们一到门口,在群里吼一身芝麻开门, 门即刻自动打开。 codelab-adapter 一端连接微信,一端连接智能门锁。要做到这点,只需在 Scratch 中拖几块积木,将它们拼一起即可。

期待你的奇思妙想。

准备工作

为了编写插件程序,首先得搭建编程环境, 你需要独立完成以下工作:

  • 安装 Python 3.7.4
  • 安装 Chrome 或 Firefox 浏览器,并将其设为默认浏览器。

以上步骤若遇到问题,你应该能通过搜索引擎自行解决。如果你无法使用Google, bing(Bing Is Not Google)也是不错的选择。

安装完成之后,你应该能在命令行里(Windows 用户打开 CMD)运行python.

Python 入门

如果你是编程新手,推荐阅读深入浅出程序设计这本书。

如果你已经有过编程经验,笨办法学 Python 3能让你快速入门。

如果你已经入门了 Python,我们继续前进。

安装第三方库

为了在 Python 中和微信通信,我们需要用到这个库:ItChat, 我们稍后将使用它来构建我们的 CodeLab Adapter 微信插件。

ItChat是个 Python 库,它也是个开源项目,发布在 Github 上,它有清晰的文档,作者在 Github 里乐于解答用户的问题,是个很棒的项目。

我们可以用 pip 安装它(Windows 用户同样在 CMD 里): pip install itchat

安装成功后,就可以来写一个简单的聊天机器人了!

简单的聊天机器人

不知大家平时用什么编辑器写代码,如果还在挑选中, Sublime TextVS code是推荐的选择。

我自己的话,目前使用 VS code 和 vim 居多,但不推荐 vim。

让我们创建一个文件,叫它my_little_bot.py吧。

import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
reply = "我是机器人, 我收到如下消息: " + msg.text
msg.user.send(reply)
itchat.auto_login(hotReload=True)
itchat.run()

你的第一个简单的微信聊天机器人就做完了,它会回复微信里收到的任何消息, 并在这条消息前头加上: 我是机器人, 我收到如下消息:

开始运行它吧: python my_little_bot.py

给自己的微信号发消息来测试一下:

将收到的消息传递给 Scratch

下边来正式开始构建 CodeLab Adapter 插件。插件负责将来自微信的消息传递到 Scratch 中。

在前头的程序里(my_little_bot.py), 我们已经了学会在 Python 代码中,接受来自微信好友的消息,并自动回复。

为了将微信消息传递到 Scratch,需要做 3 件事:

  1. 构建微信插件。
  2. 下载并运行CodeLab Adapter
  3. 打开 Scratch。
  4. 运行微信插件。

先来完成第一件事: 构建微信插件, 先上源码,稍后解释:

import itchat
from codelab_adapter_client import AdapterNode
class MyFirstNode(AdapterNode):
def __init__(self):
super().__init__()
self.EXTENSION_ID = "eim/wechat"
def send_to_scratch(self, content):
message = self.message_template()
message["payload"]["content"] = content
self.publish(message)
my_first_node = MyFirstNode()
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
text = msg.text
my_first_node.send_to_scratch(text)
try:
itchat.auto_login(hotReload=True)
itchat.run()
except KeyboardInterrupt:
my_first_node.teminate()

我们将这段代码放入my_first_node.py文件里,这儿引入了新的依赖,先安装它:pip install codelab_adapter_client

这段代码的逻辑是:将微信中接收到的信息转发到 Scratch 中,my_first_node.send_to_scratch(text)负责转发消息,暂不讨论它是怎么运作的。在此只需知道通过继承AdapterNode,能获得与 Scratch 通信的能力即可。

第一步完成了,接下来:

  1. 下载并运行CodeLab Adapter

这步比较简单,只是下载运行软件。我们构建的my_first_node.py是一个 CodeLab Adapter 插件,它需要与 CodeLab Adapter 一同运行。

双击打开 Codelab Adapter。

Codelab Adapter 启动之后,将打开默认浏览器(建议将 Chrome 设为默认浏览器)。

  1. 打开 Scratch。

点击前头页面里的scratch3,或者点击这个链接CodeLab Scratch,将打开如下页面:

点击图中箭头位置,进入 Scratch 插件列表,选择微信插件,拖拽积木, 拼出图示图案, 图中紫色的积木,在左侧外观菜单里,它的功能是让角色说出内容。

以上积木的功能是: 让角色说出微信发来的内容。

  1. 运行微信插件。

python my_first_node.py

现在,可以给你的微信发信息了,这信息也会显示在 Scratch 中,虚拟角色将"说"出它来。

交响乐

微信的信息既已能够传递到 Scratch 中,我们便可以使用微信来与 Scratch 互动。

我们来构建这样一个应用: 将微信中的消息演奏为音乐。

图中演奏音符的积木来自 Scratch 插件列表里的第一个插件:音乐

发布它!

我们已经完成了第一个 CodeLab Adapter 插件!

它可以将微信的的能力积木化,使其变为 Scratch 的编程元素。

现在让我们发布这个插件,让更多的人使用它。(当然你也可以增添更多好玩的功能再发布)

发布到 Github

如果你还不熟悉 Github,建议先浏览一下:


读完这两份资料,对 Github 应该就有基本了解了(git 是另一个话题,暂且把它放一边)。

为了发布我们的新插件,需要做以下工作:

  • 注册 Github 账号
  • 创建新仓库
  • 将插件(my_first_node.py)放入新仓库中
    • 可以直接在仓库里,点击Upload files(推荐)
    • 也可以使用GitHub Desktop
  • 添加说明文档: README.md

目前我已经将完整的范例放在 Github 上了,供大家参考:codelab_adapter_wechat_node

解答使用者遇到的问题

使用者在使用你的程序的时候,如果遇到困难,鼓励他们在Github issues里提问;如果用户有改进建议,鼓励他们提交Pull Requests

FAQ

我想继续前进,该怎么做呢?

阅读开发者文档

有更完整的微信插件源码供参考学习吗?

有的, CodeLab Adapter 内置了一个微信插件:extension_wechat.py,基于这个插件,可以在 Scratch 中收发微信消息,无论来自朋友还是群聊。

CodeLab 是个啥?

CodeLab是个非营利组织,我们的使命是:

传递编程的乐趣,帮助孩子成为数字时代的创作者.

欢迎你成为我们的志愿者.

你是不是骗子,我怎么没有找到 CodeLab Adapter 的源码?

CodeLab Adapter 的所有插件源码都是公开的:codelab_adapter_extensions,核心源码也承诺公开,具体的时间规划参考:CodeLab Adapter v2

toio: 她有轮子!

种瓜

种瓜

CodeLab

本文转载自 CodeLab 社区

可是,她的轮子在哪里? -- 爱因斯坦(2 岁半)

前言

爱因斯坦 2 岁半的时候,他的妹妹出生,父母抱给他看,他以为是要给他一个玩具,问到:"可是,她的轮子在哪里?"

孩子似乎对有轮子的东西情有独钟,连特立独行的爱因斯坦都不能免俗。

toio 是孩子会喜欢那种玩具。

toio 是个惊人的玩具,不只是有轮子。

一睹为快

先来看几个我们在 CodeLab Neverland 里玩耍 toio 时拍摄的视频:

模拟生物

毛毛虫

裤子

怎么做到的

初次看到这些视频,多数人会有两个反应。

一开始,表现为兴奋: 好有趣啊!

接着满脸困惑: 它是怎么做到的?

一些小孩疑惑地拿起桌子旁边的魔杖:"是用它施的魔法吗?"

技术出身的工程师则困惑于小机器人是如何知道垫子的边界和彼此的相对位置的?

折腾过机器人的硬件工程师,则困惑于它使用了什么传感器以及如何做到这般惊人的精确度。

几乎从没有人在初次见到它的时候猜到原理。


toio 究竟是如何做到视频里的这些行为呢?

秘诀就是:

位置,方向和时间。

许多工程师听完这句话,在静静地等待你的下文,Ta 以为你只是用这句无挂紧要的俏皮话开了个头,重点内容还没开始。

就像你捧着热腾腾的排骨汤,问你的小女朋友怎么这么好喝,她脸色微醺,眼神闪烁,回答说:

煲一锅好汤的秘诀无它, 爱与时间而已。

你当然知道食材、火候都是很重要的,你的小女友当然也知道你在夸她,而不是真正想知道煲一锅好汤的技巧。

然而,与你的小女友不同,这不是打情骂俏,位置,方向和时间是一个严肃的回答,而且它没有下文,它正是利用 toio 构建各类模拟生物的技巧所在。

位置,方向和时间

toio 是一个小方块,长宽都为 32 毫米, 我们可以将小方块视为一个机器人。

把 toio 放在视频中的垫子上时,toio 能知道自身在垫子上的绝对位置。

位置,方向和时间中的第一个词,位置已经出现了。

位置

关于机器人的定位问题,有许多种方案,往 Google 一搜,能搜到25,700,000条结果。

那么 toio 是如何知道自身的绝对位置的呢?

它采用的技术比较非主流,几乎是独一无二的。用的是光学传感器,toio 的肚子下有一个光学传感器,每秒以数十次的频率扫描垫子,垫子上印有特殊纹理,纹理极为细密,任何一处的纹理都不同,通过扫描纹理。能够精确地知道自身处在垫子上的绝对位置。

方向

事实上,这些纹理还有更有趣的地方,它们极为精细,除了每个位置纹理不同,同一个位置不同方向的纹理也各不相同。于是 toio 通过扫描垫子上的纹理,不只知道所处的位置,还知道自身的朝向,精确到 1 度以内!

时间

位置,方向和时间中最后一个要素是时间?

可是, 时间是什么?

圣·奥古斯丁回答说:

没有人问我,我倒清楚,有人问我,我想给他解释,却茫然不解了。

对于一个牛顿系统,给定初始状态,我们能够知道任意时刻切面的系统状态。

如果你知道 toio 在某个时刻的位置和方向,那么你就能编排下个时刻 toio 的位置、方向,以此类推,当你为每个时刻编写关于位置、方向的剧本,你可以编排整一出舞台剧。

掌握了时间的艺术,你当然可以编排出在舞台上挪动身体的毛毛虫。你当然知道,那只是时间序列上,位置、方向组合的变化序列,它们骗过了你自作多情、喜欢拟物的认知系统,让你觉得它像一只毛毛虫。


好了, 我快编不下去了。

位置,方向和时间是制作 toio 项目的技巧,这个说法不是我提出来的,是 toio 三位主创在接受采访时提到的.

他们解释了位置、方向的技术含义,但并未对时间做出确切解释,上述关于时间的讨论是我自己的临场发挥。

但我想,应该不会有大的偏差。位置、方向只是一个时间截面上的系统状态,运动发生在时间序列中(想想动画片)。任何的行为无不如此(当然,有些激进的物理学家可能会争论时间只是一种幻觉,只是为了叙事的方便,在此不做讨论)。

运行的程序也可以视为发生在时间序列里的指令序列。

废话少说

较真的读者可能会抱怨说, 别整圣·奥古斯丁什么的,关于时间的哲学谈论我们先放一放,好好说技术。在前头的论述里,我们知道了小方块理解它自身的位置和方向,这确实解决了我们不少困惑,但依然有一个问题悬而未决:小方块是如何彼此协作的?在毛毛虫的例子里,它的头部和身体是如何相互配合来移动的?

秘诀是 toio 小方块会实时报告自身的位置和方向信息,如此一来就可以去构建多个小方块彼此协同的程序了。

超越玩具和游戏

一旦理解了 Smalltalk 的设计原则:万物皆对象,对象之间通过消息通信,你就可以使用 toio 构建复杂的系统; 一旦掌握了如何操控位置、方向和时间,便可以利用 toio 进行你的叙事,展开无穷无尽的创意。一旦理解了坐标系统,就可以在垫子上开展有趣的活动,诸如模拟新的生物。

toio 由于惊人的灵活性和精确度,可以成为非常理想的通用教学平台,无论你希望教学编程、数学还是舞台剧。

Seymour Papert 如果活到今天,也许会说 toio 是理想的 Mathland,它比 LOGO 小龟拥有更多的精度和灵活性,由于其精确的坐标系统和运动控制能力,甚至可以用于讲解微积分(复现 Seymour Papert 在《Mindstorms》里的例子)。

同化

toio 是一个简单的机器人,看起来只是一个朴实的小方块。

简单性除了是一种品味,也是一种适合于创造的白纸。

因为 toio 只是一个朴实的白色小方块,所以你可以将它变成任何东西:

  • 我想和我最喜欢的玩偶一起跳舞
  • 我想玩我自己设计的角色
  • 我想让 toio 扮演一只小狗
  • 让我们在纸上画一个城市,然后把小车套在 toio 上边吧,让它在城市里自动驾驶。

你可以用它创造自己的世界。

这让我们想到 Seymour Papert 在《Mindstorms》提到的同化概念,这个概念最初来自心理学家让.皮亚杰.

  • 一件事情,如果你能把它融会到自己的思维方式中,那它就会变得异常简单;如果不能,那它就比登天还难。

  • 对学习的理解必须是缘起性的。这就是说,它必须追溯到知识的缘起。一个人可以学到的东西,他学习的方法,取决于他现有的思维模型。那他又是怎么获取这些思维模型的呢? 如此说来,所谓“学习的法则”就是新的知识结构如何从现有的知识结构中生长出来,并在这个过程中构建逻辑性和情感联系。

  • 但是齿轮的作用不仅如此,一方面它和数学知识相连,一方面它和孩童感官动作发展所得的“身体知识”相连。你可以成为一个齿轮,你可以将自己代入到齿轮的运动中,从而理解它的机理。正是这种抽象和具象并存的双重关系,赋予齿轮一种力量,一种让人深深爱上数学的力量。用后续章节将要谈到的一个术语来说,齿轮是一个“移情对象”。

在这个意义上,当孩子使用 toio 展开创造,当他们使用 toio 的位置、方向与时间展开思考,toio 便成为 Seymour Papert 所谓的移情对象,在这个过程中构建逻辑性和情感联系。

CodeLab 的探索

在 CodeLab 中我们在用它做什么呢?

我们已经将 toio 接入到了 CodeLab Scratch,它已融入 Neverland 大家庭,它可以与 Neverland 空间中的任何事物互动。看一些例子:

给我一个 toio,我可以转动地球

在你转身之后,岁月黯淡无光

天空没有留下鸟的痕迹,但 toio 已飞过

复现 etoys 里的教程

近期在试着复现 Alan Kay 在etoys教程里设计的编程入门引导, 也许是目前最好的编程入门引导(毕竟是 Alan Kay 啊!), 在 20 分钟的体验里,初学者将接触到所有重要的概念(变量、循环、序列、条件判断、数值计算...而无需被定义之类的东西分散注意力(建构主义比较坚持这一点)

第一个例子,与 etoys 首页的例子相似。

第二个例子由 Neverland 体验者构建(第一次编程),很类似 etoys 教程里,绘制物体运动轨迹的例子。

参考