我没有时间写一封短信,所以写了一封长信 -马克·吐温

前言

提醒: 本文首发在 MicroBlocks 中文主页, 不久可能会以连载的方式发布在 MicroBlocks 官方博客上

我们的目标是让 MicroBlocks 成为最直观、最吸引人的物理计算工具,并围绕它创建一个全球学习者和教育者社区。

MicroBlocks 在中国日渐流行, MicroBlocks 团队希望我们写一篇文章分享中国的 MicroBlocks 爱好者在做的事情.

I wanted to ask you, if you would like to do a blog post on MicroBlocks in China. You are doing so many wonderful things and I think it would be great if we gave that a spot on the MicroBlocks blog.
(问下你,是否愿意写一篇关于 “MicroBlocks 在中国” 的博客文章。你们正在做许多很棒的事情,把它放在 MicroBlocks 博客上会很棒。)

Maybe a short piece about yourself. How you got in contact with MicroBlocks. How you got others interested in MicroBlocks. Why you think it got so popular in China. All the robot competitions. Furthermore a lot of pictures, that is always great.
(也许可以写一段你的故事, 如何接触到 MicroBlocks, 如何让其他人对 MicroBlocks 感兴趣, 为什么它在中国如此受欢迎, 以及各种机器人比赛等。此外,搞很多图片放文章里,肯定不错。)

我的故事

你无法在前瞻中连接这些点,只有在回顾时才能串联起它们 – 乔布斯《毕业典礼演讲》

和许多其他的故事一样,开始于偶然.

当时我在非营利组织 CodeLab 里构建可编程空间:

《理想国》里说:「言语是一种比蜡还容易随意捏造的材料」, 它如此灵活,能够用来与朋友逗乐,用来表达你的思想,用来创造诗歌与小说;编程就像言语,它同样可以用来表达你的想法,用来与朋友逗乐,以及,用来表达和创造。它让你与世间的万物沟通,你可以用它指挥一台飞行器,制作一个体感游戏。或者在朋友生日那天,在 Ta 进门的一刻,将手中的魔杖一挥,在空中划一个字母 L 的轨迹,瞬间,点亮房间里五彩的灯光。 在 CodeLab,你将轻松做出这样的魔杖,并对周围的世界施以魔法。如果你愿意,可以将 CodeLab 看作霍格沃茨。

为了让房间里的各种事物变得可编程, 我们经常需要接管各种硬件设备, 为此, 我们构建了CodeLab Adapter

致力于连接万物,无论是软件还是硬件,无论是 AI、开源硬件、现实世界的物体、还是虚拟世界的动画角色,接入 CodeLab Adapter,皆可彼此互动。

有一天, CodeLab 成员 @kaikai 提出他遇到一个项目, 在硬件编程方面做得比我们更好。

这个项目叫 MicroBlocks.

起初, 自尊心让我不愿承认人家做得更好. 但随着深入使用,我意识到岂止是「做得更好」,简直是里程碑式地更好! 我确信它是未来,足以在这个领域开创 Scratch 那样的辉煌。

于是我便参与其中. 既像黑客那样为 MicroBlocks 贡献代码,又像布道者那般热衷于分享使用 MicroBlocks 的愉快体验,并试着在国内推广它。

几年的合作后, 正式成为 MicroBlocks 团队成员. 我在 MicroBlocks 项目上的主要工作包括:

推广大使邵悦

Projects, Peers, Passion, Play

MicroBlocks 之所以在中国日渐流行, 有很多原因. 其中最重要的 2 点, 我认为是:

  1. MicroBlocks 本身的卓越设计
  2. 邵悦

有些人做事很卖力, 有些人做事卓有成效. 在中国推广 MicroBlocks 这件事上, 没有任何人比邵悦更加卖力, 也没有任何人比邵悦更加卓有成效.

以下部分来自邵悦的分享:

第一次了解 MicroBlocks 还是从 CodeLab 群的种瓜那里。那个时候我在课外机构围绕 Scratch 给小学生上图形化编程课。机构刚起步希望找到差异化的课程,所以就想到了在 Scratch 中加入硬件,实现软硬结合的互动课。

2020 年主要还是在用 micro:bit + 小喵的 kitten block 在做硬件编程。在使用过程中希望能找到一个更开放的平台, 可以自己扩展传感器。询问种瓜是否有图形化控制硬件的工具, 然后 2021 年就第一次听到了 MicroBlocks。当时还去 X(那时叫 twitter) 上搜了一下, 发现似乎关注的人不多,而且看不出有什么特点。所以第一次没有打开使用就放弃了。后来种瓜在群里又一次推荐了 MicroBlocks , 还介绍了 John Maloney 和 Scratch 的关系。这次才真正开始使用 MicroBlocks。

2021 年 12 月 8 日种瓜分享了第一个 MicroBlocks 项目: 用 micro:bit 接管 xlight 的项目。

MicroBlocks 中文网站上线后,我觉得应该做一些事让更多人了解这么有意思的 MicroBlocks 平台。

在 2022 年开始每周六做关于 MicroBlocks 的分享,没想到 MicroBlocks 这么好玩, 就一直坚持到了现在,目前已经发布到 B 站的视频有 90 多期了。之后除了 MicroBlocks , 也分享 Snap! 以及其他与个人计算有关的话题。但绝大多数的分享还是围绕 MicroBlocks 展开。

除了每周六的分享,我还把学习和使用 MicroBlocks 的相关项目和经验分享到了 B 站,截止 2024/11/11 , 也有了 180 多段视频。

MicroBlocks 的线下活动

MicroBlocks 在 2023 年有机会参与了北京召开的中小学 STEAM 教育大会,在这次大会上第一次展示了 MicroBlocks 无线编程和调试的能力,让参会的老师眼前一亮。

电力大会之家酿俱乐部:

RTE 展会:

当你第一次获得某种掌控力

之前很难想象我可以自己写硬件驱动库, 甚至于给硬件板子写 MicroBlocks VM 固件。当我发现给 MicroBlocks 写驱动库没有那么难,就开始各种硬件驱动的搬运的工作。找到自己用的传感器, 把对应的 Arduino 或者 MakeCode pxt 驱动程序太概搞明白,然后变成 MicroBlocks 的驱动库。

发现自己有能力在 MicroBlocks 中写传感器驱动,还是小激动了一下。然后就去把各种自己有的或者能用上的传感器驱动搬运到 MicroBlocks 平台。这其中学到了不少关于 I2C 协议的基础操作。以及不同传感器如何使用 i2c 进行数据指令传输。学会写驱动可以引入更多的传感器到的 MicroBlocks 平台。通过 MicroBlocks 平台也了解了很多国内的开源硬件企业。比如 M5 Stack,在 2021 年版本的 MicroBlocks 平台中就有 core stickC , atom, Matrix 三块 M5 的板子了。但 M5 产品更新很快,后续又更新了 core2, core3, stickPlusC2, atomS3 等硬件。为了能在 MicroBlocks 中玩这些板子,我也开始学习写 MicroBlocks 的固件。还好在同种瓜, 汤老师, 计老师, 叶老师的一起讨论中。完成了几块常见板子的固件编写,比如掌控板,matrixbit,乾坤板,小喵未来版 lite。后来经吴博士介绍开始支持腾讯公益盒的硬件项目,为主控(cocorobo)编写固件以及对应的积木库。并作为 MicroBlocks 技术支持方进入对应的公益项目答疑群。腾讯公益的这个项目应该覆盖了 200+ 的学校,数千学生通过这个项目接触到了 MicroBlocks 图形化编程。

通过第一年的调查反馈来看,老师和同学还都对这个硬件项目很感兴趣。但因为这项目是多方参与,在课程设计和文档教案方面都还有很多提升空间。很高兴能有这样的机会接受到第一线老师的使用反馈。后续腾讯公益盒 2.0 项目换了主板,我也为腾讯公益盒 2.0 版本写了对应的固件和积木库。

在 2023 年底的中小学 steam 大会上,受到吴博士和组委会的邀请,MicroBlocks 也非常荣幸能在教育系统的会议中做了一次在线的分享。刚好那个时候 MicroBlocks 无线 BLE 编程刚上线,接着 MicroBlocks 无线编程和种瓜和我的精彩分享,让 MicroBlocks 的第一次亮相很抢眼。也是在那次分享会上,见到 XGO 陆吾智能的刘鹏飞。经过简单沟通,后续 XGO 机器狗的操作界面顺利的迁移到了 MicroBlocks 中。有了 MicroBlocks 无线编程的加持,XGO 在后续的信息素养 A 类比赛中斩获颇丰。

课题教学: 在小学课程中使用 MicroBlocks + micro:bit

个人计算与计算机先锋考古

在使用 MicroBlocks 之前,CodeLab 群中种瓜就会分享很多关于个人计算的人物和故事。比如 Alan Kay, Seymour Papert, 最早认识种瓜的时候就有聊到 Notion, 聊到 Bret Vector。发现 MicroBlocks 创始人 John Maloney 就是那个年代的先锋人物! 有机会和这样的人物一起做一件有意义的项目。那感觉真是太棒了! 特别是, 当你有问题提了 issue 之后, John 会用超级细致翔实的内容给你作答,感觉像有个计算机先锋人物在给你做一对一的辅导,让你真的有 VIPkid 的感觉。

MicroBlocks 与闲鱼

因为有 MicroBlocks 也让消费降级下的我有更多买买买选择:闲鱼淘硬件板子。从最早的 Seeed 传感器, 到后来的各种失败的硬件项目过气后流落到闲鱼的套装。比较超值类似 mi:node,星际某方,学某思的掌机主板等。有了新的捡漏来的主板, 有能力的老师的积极参与, 共同完成了固件的编写和疑难问题的解决。这个过程还真是有点变废为宝,重塑新希望的感觉。廉价的板子是闲鱼创客一个驱动力。

探究式学习环境

无论是驱动的编写还是固件的编写,很多时候都是需要自己去通过查看前人的代码来学习。在 MicroBlocks 社区中很多库和固件都是各位老师一起努力完成的。包括从想法到提出,验证,薅板子羊毛,驱动的需求,库封装,主板固件的调试修改…曾经掌控板 OLED 屏的驱动搬运大家都没有经验。经过了 1 个月的不断尝试,分享交流,最终不但完成了 OLED 屏幕的驱动,还完成了汉字显示! 汉字显示也是各位老师不断重新造轮子的努力,让现在 MicroBlocks 各种图形界面都有了对应的汉字显示功能。在这个过程中,所以参与的老师都完成了一个相当有收获的 PBL。

2024 Maker Faire Shenzhen

11 月 16 日 11 月 17 日 MicroBlocks 在深圳 MakerFaire 出摊儿啦。带上了 Cocube 项目和其他 ESP32 的板子在现场 demo 了 MicroBlocks 的实时编程调试能力,引起很多厂商和个人用户的注意。很多小朋友都超喜欢 MicroBlocks + CoCube 项目。

2024 M5Meetup

在 M5Meetup 上作为 M5 社区一员做了“当 M5Stack 遇到 MicroBlocks” 的分享。

MicroBlocks 爱好者怎么说

如果你想走得快,一个人走; 如果你想走得远,一群人走。

MicroBlocks 爱好者们在 这份协作文档上分享了他们与 MicroBlocks 的故事, 我将这些故事摘录到本文中(大致以大家接触 MicroBlocks 的前后时间排序).

银禧

简单介绍一下自己,我非计算机科班出身,毕业后直到 2020 年前都是在做视频剪辑和拍摄的工作,后来我们英荔公司和种瓜合作后,他带来一系列好玩有趣的东西,非常清楚的记得, 第一次接触图形化编程是种瓜介绍可以使用 Scratch 做动画,从此我就走上编程之路。

相遇

与 MicroBlocks 的相遇是通过种瓜 2021 年中的一次分享会(MicroBlocks 编程案例: 使用 micro:bit 接管 xlight),在使用 MicroBlocks 前,我主要使用 MakeCode 作为硬件的编程软件,每次做项目时需要接线到主板下载程序再反复插拔进行调试。记得那时候只能作为最基础的用户,等待开发者和硬件公司发布对应传感器的扩展才能去使用,虽然那时候我也做了一些关于「Makecode 构建扩展流程」的调研,不过对于那时候的我有点不太友好,面对如此陌生的内容,一时难以理解,渐渐的没什么兴趣就会产生抗拒。

记得在种瓜的分享会中,印象非常深刻的是「MicroBlocks 使得交互式的可理解性和离线的实时性可以兼得! 在 Microblocks 中对 micro:bit 编程是非常简易的,就像使用 Scratch 一样简易直观」从那时起, 我对 Microblocks 就产生了很大的兴趣,以致后来我有很大的动力去学习和研究 Microblocks,也做了一些项目:

  1. 红外控制器
  1. 六足机器人

相识

在使用 MicroBlocks 做项目的过程中,它的实时性给项目的调试带来很多便利,但对于一个新传感器( MicroBlocks 没有直接可使用的积木库)或和新的硬件需要在 MicroBlocks 上使用时,如果缺少对应的 ubl 库就无法享受平台带来的交互式编程、多任务处理、拔掉插头即可启动程序等好处. 这时我就有了更进一步学习欲望,而且 MicroBlocks 又给我了一个大大的惊喜,原来 MicroBlocks 很多的传感器积木库都是都过积木拼搭出来的,这些不就是很好的学习的资料吗?于是我学习了种瓜编写的一个积木库(悟空扩展板)

经过一段时间的学习,我也开始共享了一些积木库「六足机器人」、「英荔比特」、「哪吒套装」、「XGO」、「麦克纳姆轮小车」

随着 MicroBlocks 中国社区的慢慢壮大,我也参与到了其中,也在社区贡献了一些积木库:

随着 MicroBlocks 的不断发展,我从中也学习了非常多,我所在的英荔公司也全面拥抱 MicroBlocks,我也为每一届赛事和课程所需的传感器编写了对应的积木库,到目前已近超过了 70 余个,后续也计划在中文社区上进行分享。

MQTT 系列项目:

  1. 烟花灯带(scratch 与 MicroBlocks 相互通讯)
  2. 音乐灯带(scratch 与 MicroBlocks 相互通讯)
  3. 手势灯带(Python 与 MicroBlocks 相互通讯)
  4. 嘿!Siri(Siri 与 MicroBlocks 相互通讯)
  5. RVR databot 控制器(scratch 与 MicroBlocks 相互通讯)
  6. 颜色识别器(Python 与 MicroBlocks 相互通讯)

相知

使用 MicroBlocks 编写了一系列传感器的积木库后,发现某些功能使用积木难以实现,也看到 MicroBlocks 陆续更新了很多版本,支持了无线编程等新功能,回头望去,之前在 MicroBlocks 中所掌握的技能已经满足不了自己,所以就有了进一步的探索欲望,进入到的 MicroBlocks 底层代码中进行学习。另外惊喜的是,MicroBlocks VM 中的代码也非常整洁,让我有一直阅读和学习的兴趣,经过一段时间的学习,也陆续掌握了一些技能,可以为公司自研主板(Longan Core 1.0(基于 ESP32)、Longan Core 2.0(基于 ESP32-S3)、 Elite Core 基于 ESP32))编写了代码。

最后再分享一些 Demo:

  1. 智能灯光画(使用 MQTT 让 scratch 与 MicroBlocks 相互通讯)
  2. 隔空钢琴
  3. 正中靶心(Python 与 MicroBlocks 相互通讯)

当然,所做的项目还有很多很多,在 MicroBlocks 项目上收获了非常多,这个过程离不开 John、种瓜、以及中文社区很多小伙的帮助,希望 MicroBlocks 能被更多的人使用和喜爱。

tom 汤

我是一名高中通用技术教师,大概从 2022 年开始在智能家居课堂教学中使用 MicroBlocks 编程工具。我发现 MicroBlocks 非常容易上手,门槛很低,即使没有任何硬件编程基础的学生,短时间内也能用 MicroBlocks 创作出一些创客作品,学生可以将主要精力放在作品的创新设计上,而不是放在如何编程上,以下是学生利用瓦楞纸结合 ESP32 开发板设计的简易送餐机器人作品。

MicroBlocks 除了可以用来设计小的作品还可以用来设计大的真实的产品原型。

去年开始,我尝试让学生设计载人小车作品,由于 MicroBlocks 提供了蓝牙无线编程方式,使得调试载人小车的过程非常方便。而且由于 MicroBlocks 支持多任务并行处理,用户可以实现较复杂的功能。

使用 MicroBlocks+ESP32 开发板+移动端 AI,载人小车实现了既可手动驾驶又可自动驾驶功能,学生们非常喜欢这个项目!

今年 10 月, 我的这个载人自动驾驶小车项目获得全国第十届全国中小学实验教学说课活动现场展示机会,在展示现场受到众多老师的围观,大家都对这个项目非常感兴趣。

总之,MicroBlocks 是一个低门槛高天花板的开源物理计算工具。它的在线调试、实时性、多任务并行处理等特性使得中学生也能实现复杂的控制。特别是蓝牙功能使得单片机编程和调试更加方便,同时也方便单片机与其他系统对接,极大拓展了使用场景。总而言之,它是一款非常适合教育者使用的物理计算工具。

Patch

用例 1: 蓝牙寻宝

在 MicroBlocks 实现了 BLE 无线通讯的突破性功能后,我使用具备蓝牙功能的主控板制作了蓝牙寻宝程序,用来与周围小朋友一起玩寻宝游戏。

这个游戏需要蓝牙 beacon,这类小的 BLE 蓝牙广播设备只需要很低廉的价格(10 元人民币)就可以在淘宝上买到。我准备了一些 beacon,每次游戏的过程如下: 设定一个公共区域为寻宝场所,我们经常选择的是人少的公园、创意园区,在北京有很多这类场所,事先把蓝牙 beacon 隐藏到区域内的不同地点,在地图上大致标记藏宝位置。

很多学习硬件编程孩子使用不同设备编程,比如 micro:bit、M5Stack、掌控板、学而思掌机:

他们可以用 MicroBlocks 把相同的程序下载到自己的设备上(我在我组织的编程课上也利用这个案例教授了 BLE 通信的课程),就可以带着自己的设备参与到寻宝活动里了。即便没有编程主控板,也可以用手机参与这个游戏,利用手机里的蓝牙扫描仪 BLE Scanner 提供的过滤特定地址蓝牙设备的功能,同样可以接收并识别出作为宝物的蓝牙 beacon 信号。

目前每周末我都会组织一次这样的蓝牙寻宝游戏,下面列几个活动的链接:

一些照片:

一个需要解谜的藏宝图:

用例 2: MicroBlocks 中文字库

作为 MicroBlocks 中国大陆地区核心支持者所在的 “CodeLab 候车室” 这个群,是在 2023 年中开始关注如何在 MicroBlocks 中编程显示汉字的问题,最初的关键讨论可以参看 MicroBlocks 分享会的这个视频:

在讨论中基本确定了这些事项:

  1. OLED 中图片显示的方法是图片点阵化并记录为 16 进制字符串,MicroBlocks 将字符串还原为点阵显示出来
  2. 利用 MicroBlocks 官网 wiki 上的 Snap!示例,可以将图片生成正确的字符串用于 MicroBlocks 显示,示例见下: SNAP To MicroBlocks - Image & Code Transfer
  3. 中文可以通过取字模工具将点阵化的文字转为 16 进制字符串

最终的问题卡在了通过中文取模工具获得的 16 进制字符串,放进 MicroBlocks 里显示,某些笔画出现错乱,显然中文取模工具和 MicroBlocks 使用的转码顺序不同.

我和二毛从这个基础上开始研究如何正确获得中文字模的方法。因为我以前在 Scratch 里做过将图片作为点阵图取出每个点颜色信息的程序,所以稍作修改就可以实现把文字扫描为点阵字符串的功能,扫描的顺序是问题的关键。

二毛尝试用简单的图片,通过各种不同扫描顺序生成字符串,依次拿到 MicroBlocks 里测试,最终实验出了正确的扫描顺序,如下面所示:

于是根据这个研究成果,我们用 Scratch 完成了 自动获取汉字 16 点阵字模 的扫描方案.

还有这个 16 点阵字体设计工具

并参照 OLED 图片显示的方法,在 MicroBlocks 里实现了 TFT 屏汉字显示的积木库:

这个方案部分实现了用 MicroBlocks 任意汉字的显示,但是需要每次显示前,先去 Scratch 中生成每个汉字的字模,还是有些不便。

如果能把常用汉字放进字库文件,每次直接从字库中取字,才是最方便和常规的做法。但是,用 Scratch 做全部常用汉字的扫描工作,有些超出了它的能力范围。

直到今年开始,我跟着 CodeLab 候车室的脚步,进入到 Snap!的实际使用中来,才豁然打开了思路。

Snap! 的灵活性和可扩展性,使得它具备你可以想象的任意编程能力,大量扫描汉字?no problem。它提供了 unicode 与字符之间转换的简单积木,利用它就可以实现所有汉字的批量转换了。

那么扫描程序是现成的,从 Scratch 中拿过来用就可以了(我在一个积木一个积木地搬运 Scratch 程序到 Snap!后,才在一次偶然机会从种瓜那知道,有一个直接把 Scratch 文件转为 Snap!格式的网页应用)。

unicode 是二毛的玩物,我不用去查资料,他熟练地在输入法中调出 unicode 表,指导我 unicode 中各种字符所在区位,帮我找到常用汉字的起始位置。

批量扫描开始,2 万多常用字扫描一遍 6 分钟。然后种瓜提出了几个多线程操作的优化方案,并立即投入测试,并且在几分钟时间得出测试结果:多线程操作无法提高太多,因为单线程已经让机器算力近乎饱和。然后他立刻又提出了另一个改进思路:Snap!自带的图片像素化功能可以替代扫描过程,这一个改进立即把扫描时间减少了一半。

还有没有可优化空间?当然,比如字库的大小。每个字实际上是 16X16 点阵图,可以用 256 位二进制数表示,8 位一个字节,一共是 32 字节。MicroBlocks 里用 16 进制数组成的字符串来还原字型,每个字需要用 64 个字符才可以表达 32 字节内容,这其中产生了一半空间的浪费。如果制作字库时用二进制方法保存,而不用文本方式,就可以节约至少一半空间。

二进制文件操作用什么来实现呢?在 Snap!里可以直接调用 js 或者 python 代码,问一下 AI 就可以了,ChatGPT 给出了一个简单的 js 实现的二进制数保存文件的方法,照搬进 Snap!即可

MicroBlocks 端所需要做的,只是读取文件时,从原来每个字读取 64 字节改为 32 字节就可以了。

That’ s all!

P.S. 写这篇回顾的时候,又看了一遍开头提到的 MicroBlocks 分享会视频,里面讲的 Snap!生成 OLED 图像编码的程序,就是用的像素化方法将点阵图直接读进列表然后按特定顺序编码而成。可以说,我们做的工作就是在一项轮子发明专利书的帮助下,重新发明了一遍轮子。因为原来看不太懂专利书,只好一步一步摸索。在发明完成后,终于看懂专利书了。好在,用 MicroBlocks、Scratch、Snap!这些工具搞发明,是一件无比开心的事,即便是重新发明轮子,也变得不那么令人沮丧了。

换一种角度来看,这个重新发明的过程,其实依然是站在无数旁人的肩膀上完成的,发明的过程就是学习的过程,传承的过程,这个过程不断滚动下去,就是文明前进的过程。

叶常春

我和许杰,开发了多款基于 ESP32+MicroBlocks 的科创项目,包括 DIY 水果电子琴、像素动画创作、音乐魔法棒、挑战十秒和电子沙漏等。

今年 8 月,在位于长沙的湖南省妇女儿童活动中心,我和许杰作为公益活动志愿者,指导 25 位小学生(以及他们的母亲)开展 DIY 水果电子琴活动。水果电子琴是把 ESP32 开发板的 8 个触摸引脚连接到 8 颗圣女果,人手触摸圣女果就会弹奏音符。ESP32 开发板插在由曾望成设计的扩展板上。开发板内运行 9 段积木组成的 MicroBlocks 程序,每一段各含 3 块积木。

学生们对触碰圣女果弹奏歌曲表现出好奇和兴趣。25 位学生中,年龄最小的是 6 岁,最大的是 10 岁,都是第一次接触 MicroBlocks。MicroBlocks 门槛低,上手快,加上母亲的协助,科创活动顺利完成。

9 月份,在长沙市青少年宫,两位志愿者指导 28 位小学生(以及他们的家长)做了同样的事情。10 月份,在湖南省青少年活动中心,两位志愿者指导 45 位学生开展像素动画创作科创活动。

像素动画创作活动的目标是在 8×8 像素屏上创作 9 个跳舞小人的舞姿,由 MicroBlocks 程序控制像素屏连续播放 9 个舞姿,由此生成跳舞动画。这一活动引领学生认识像素画艺术,知晓像素和分辨率的概念,了解动画原理和程序的作用,学习编程的核心概念。活动过程中,当观察到像素屏被点亮之际,学生们满脸欣喜。授课老师因此受到鼓舞。

DIY 水果电子琴:

像素动画创作项目:

我认识到,公益性电子科创活动既要好玩有趣,又要有益有价值,还要低成本易实施。MicroBlocks+ESP32 无疑是一个优质的解决方案。MicroBlocks 的学习门槛低,天花板高——发挥空间大。

作为长期的使用者,我们期望 MicroBlocks 对移动端的支持能够更加完善。比如,平板电脑里运行 MicroBlocks IDE 的话,向积木的输入框内输入数字或字符存在 Bug,输入中文将遇到更多问题。另外,MicroBlocks 需要更灵活的翻译机制,避免蹩脚的中文表述出现在积木内。

梅晓璇

在高中物理实验中使用 MicroBlocks, 基于 MicroBlocks + Micro:bit 制作了一门课程《Micro:bit 物理实验创作实践研修》, 纳入朝阳区“十四五”教师研训选修课程资源库.

MicroBlocks 为物理实验走出传统的实验室、学生能拥有一种平易的传感器实验创作方式开发自己的实践探究提供了无限的创意和可能性!其他的东西很难替代!小伙伴们通过 MicroBlocks 实现了可见的思维和创意!

曾祥潘

曾祥潘老师之前做过一个在 MicroBlocks 社区有名的测试: 他测试了 Arduino、MicroBlocks、MiroPython 翻转 rpi pico 引脚的速度, 出人意料的是, MicroBlocks 的速度大约是 MiroPython 的 3 倍, 这和结果令 John Maloney 也为之震惊! 以下是测试结果:

  • Arduino: 885 kHz
  • MicroBlocks: 251.67 kHz
  • MiroPython: 88.83 kHz

以下是曾老师与 MicroBlocks 的故事.


我是一名小学信息科技教师,2012 年开始把开源软硬件编程引入自己的教学工作,期间用过很多种图形化编程工具。第一次接触 MicroBlocks 大概是 2023 年初,当时在微信群里见到有人转发 MicroBlocks 的研讨资料。喜爱新技术的我也尝试用一下,立刻发现这软件给学生做硬件编程教学太合适了。这一年我主持的广州市中小学名教师工作室也开始招收教师学员,独乐乐不如众乐乐,我准备把 MicroBlocks 推荐给工作室的老师们学习,也希望他们在自己的学校开展 MicroBlocks 教学。工作室组织了一次 MicroBlocks + 树莓派 Pico 基础教程录制活动。通过下达研修任务促使老师们边学习边录制视频,最后修改并整理成一套包含 11 节内容的视频教程。

为了进一步降低学生和老师使用硬件的门槛,我自主设计了一套名为 CTPico 的开源硬件教学套件。这套件的核心部分是树莓派 Pico 与扩展板,再搭配常用的传感器和执行器。套件设计重点在于降低插拔传感器、执行器的难度与出错概率,减轻套件收纳整理工作强度。传感器等元器件可以直接插到扩展板,也可以用杜邦线连接。搭配 MicroBlocks 使用,教学体验非常好。该套件的设计与使用分享见以下链接。

CTPico 硬件设计与教学分享:

硬件问题解决后,开始着手教学实践活动。通过工作室研修为抓手,组织老师们开展研讨课教学活动,并邀请区域内的各学校信息科技教师参与听评课。以此拓展 MicroBlocks 的影响力。

2024 年 5 月份工作室集中研修,蓝天源、冯志满两位老师上了研讨课。

2024 年 6 月工作室到乡村学校送教活动,顾洪萍老师上研讨课。

为了加强老师们的教学经验交流,在工作室研修活动中设置了教学经验分享环节。

2024 年 10 月工作室集中研修,陈淑君、冯志满老师分享了 MicroBlocks+CTPico 教学实践情况。

为了进一步提升老师们在 MicroBlocks+CTPico 教学实践与科研水平,我带着工作室的老师们申报了一项 2025 年广州市教育科学规划课题,课题名称“面向计算思维培养的人工智能软硬件编程 5E 教学模式实践研究”。课题借助 MicroBlocks+CTPico 这一软硬件组合,开展教学研究,培养学生的计算思维。该课题经广州市教育局审核,通过立项。2024 年 11 月,召开课题开题论证会,得到了华南师范大学教育信息技术学院尹睿教授等专家的指导。计划两年内完成课题研究任务,期间将孵化出 MicroBlocks 系列教学案例。

Bingo

  1. 在科技馆开一些公益课推广使用 MicroBlocks, 如: 2024 年暑假在台州市(地市级)科技馆使用 Microblocks 开展了"奇思妙想创客营"科苗班的公益科技培训,活动开始官方报道

  1. 在教师中融合《信息科技(浙教版)》教材推广 Microblocks 进行课堂实验。

CoCube 机器人-梁帅

2024 年 7 月,中美青年创客大赛上海赛区组织了为期两天的中小学体验赛道中美创客公益特训营,十几名孩子每个人控制一台 CoCube 机器人,用 MicroBlocks 控制小车,共同编出 Co-Making the Future 的队形。

CoCube 的起源

尽管 CoCube 机器人项目正式开始于 2021 年,但和 MicroBlocks 一样,它也是建立在之前的思考、实践之上。

2014~2015 年,我在读高二时加入了学校机器人社团,并参加了 FTC 科技挑战赛。由于社团缺少资金,我在王平老师的指导下,学习各种工具的使用,用铝板、密度板、山西的槐木、硅胶等便宜的材料,搭建了一个独一无二的机器人。也就是在那时,我接触到了 Arduino、EV3 等硬件,也接触到了 ArduBlock、Labview 等图形化编程界面。从此以后,做一名好的创客老师,一直是我最大的梦想。

进入大学之后,我开始在各种课程项目中做一些比较有趣的创客作品,也一直在创客教育方面进行探索。本科时担任上海交通大学航模队队长,参与了很多航空科普教育活动;研究生时,担任上海交通大学《工程学导论》总助教,指导大一学生如何基于 Arduino、3D 打印等技术完成一个创客项目,并利用自己做过的项目开展案例教学。

2019~2020 年,我和朋友们成立尖椒创课,举办了数期科创夏令营活动,希望将大学里前沿的科创活动带给青少年们。我认为机器人是激发孩子们硬件编程兴趣的最好平台,于是,我与交大 RoboMaster 的前队长唐雷一同设计了机器人主题的趣味课程。我们教学生们组装机器人并编写 Mind+程序,最后的任务是在机器人前部绑一根竹签,在尾部粘一只气球,让学生们操控机器人相互格斗,就像大学生的 RoboMaster 比赛一样,深受孩子们的喜欢。

然而我发现,当孩子们把机器人带回家之后,就再也不会玩了。因为机器人的尺寸比较大,需要找合适的场地才能玩;机器人基础功能比较有限,孩子们在用杜邦线增加新的模块时也很容易出错;回家后独自操控机器人,远没有在课堂中一起玩的氛围。另外,对于大学生而言,多机器人集群是非常有吸引力的研究方向,然而学校里的 RoboCup、RoboMaster 等机器人赛事平台,机器人本身十分昂贵,对场地也有很高的要求,限制了更多学生的参与。

因此,我开始思考,是否可以开发一个低门槛、高天花板的平台,让小学生、中学生到大学生都负担得起、并且喜欢使用。

2021 年春季,受 Hermits 论文的启发,我最终明确了解决思路,设计了一款面向青少年科创教育、高校多机器人集群控制研究的机器人,具备以下特点:

  • 桌面级——降低成本的同时,还可以降低机器人对场地的要求,可以随时随地使用。
  • 可重构——通过磁吸连接不同外接模块的方式,轻松地为机器人拓展更多功能。
  • 群控——对于青少年教育场景而言,群控意味着很多孩子可以一起参与;对于科研场景而言,群控则意味着机器人可以作为前沿算法部署的平台。这也意味着机器人应当具备简单、易用的定位方式。

从 2021 年春季学期的研究生复杂机电系统设计课程项目出发,我和同学们构建了第一版机器人原型,用 Mind+软件开发了最基础的图形化编程功能。而后,我将其作为自己的研究生课题,和朱松毅等朋友一起迭代了十余个版本,终于在硬件层面达到了预期的目标。

在 2023 年 3 月研究生毕业时,我们已经实现了这款桌面级可重构机器人的基本功能,机器人尺寸仅有 43mm 宽,前部设计有小巧的磁吸接口,可以基于定位垫实现亚毫米级别的精准定位,并开发了多机编队等群控功能。我们将机器人取名“CoCube”(Collaborative-Cube),寓意着它是一款用于多机器人协作研究的小方块儿,也寓意着本项目是众多小伙伴们添砖加瓦、共同协作的成果。项目开展期间,得到了导师张执南教授、ROS 领域教育专家张瑞雷老师的指导,并获得了上海市科委的资助。

然而,如何让 CoCube 成为青少年能理解、易上手的机器人平台,还是摆在我们面前的问题,加上自己研究生毕业、工作、申请读博等事情,CoCube 项目一度进展缓慢。

与 MicroBlocks 的不解之缘

2022 年 12 月,在张瑞雷老师的介绍下,第一次了解到了 MicroBlocks,有幸认识了种瓜。在第一次参与邵悦老师组织的 MicroBlocks 线上分享会中,惊奇地发现 CoCube 和 MicroBlocks 的设计理念非常契合——CoCube 拓展不同外接模块的功能,可以在 MicroBlocks 中轻松实现,而无需从底层一遍一遍编译代码、烧录固件;MicroBlocks 实时操作和及时调试的能力,非常适合孩子们探索学习。将 MicroBlocks 引入 CoCube,也极大加速了 CoCube 各种功能的开发过程。

2024 年 5 月开始,我重新在 CoCube 项目上投入了精力,希望这次能将它真正落地。为了使 CoCube 满足科研方向的需要,我先是将 CoCube 接入 ROS,耗费了 3 周多时间开发 micro-ros 固件,但发现固件的拓展性十分差——任何一个功能、消息接口的增加和修改都需要接触底层代码。

2024 年 6 月,受尽 micro-ros 折磨的我再一次将目光转向了 MicroBlocks,重新编写了基础的驱动,并将显示 ArUco 标签等科研中可能需要的功能也编写在了 MicroBlocks VM 中,开发过程十分顺利。时隔一年多,再次参加 MicroBlocks 线上分享会,种瓜非常自豪地向我介绍了 MicroBlocks 的新特性——BLE 无线编程,这是国外很多基于 MicroPython 编程的机器人目前向 MicroBlocks 平台迁移的最大的动力,非常适合移动机器人使用。

与 MicroBlocks 再次结缘后,CoCube 机器人一切都变得明朗起来。

会后我邀请种瓜一同参加中美青年创客大赛,在种瓜的帮助下,结合 MicroBlocks 清晰的代码框架,以及便捷的调试方法,短短 2 天不到的时间,CoCube 库以及外接模块库就上线 MicroBlocks 中文社区,并可以在 MicroBlocksfun.cn 中直接烧录固件。考虑到集群控制的需求,种瓜很快在 Snap!中开发了 CoCube 库,当发现这个库的大多数工作都是通用的后, 种瓜又进一步开发了 Snap! 中的 MicroBlocks Client 库。在项目推进过程中,种瓜和我与 John Maloney 紧密交流,共同排查问题,更让我体会到了参与开源项目的乐趣。

2024 年 7 月 10 日~12 日,CoCube 团队在上海市长宁区华阳街道社区组织了为期两天的中美青年创客大赛中小学生体验赛道暨公益体验营。基于 CoCube 和 MicroBlocks,十余名小学生的创造力超乎所有人想象。第一天上午,孩子们独立探索 CoCube+MicroBlocks 的各种功能,很快就可以玩转。下午,孩子们 2~3 人组队,合作完成一个小的展示项目,孩子们开始互相分享自己的编程技巧。晚上孩子们把机器人带回家后,用 CoCube 讲故事,还给我发来了相当精彩的视频。第二天上午,学生们自发用 CoCube 摆出了“Co-Making The Future”的队形。下午,当评委老师们前来我们组时,孩子们帮助我们完成了一场无比精彩和生动的答辩。最终,CoCube 团队也因此荣获上海赛区特等奖(第一名)。

2024 年 7 月 14 日,我们为 120 名高一学生开设了为期 3 小时的 CoCube 体验课程,两名学生一组,共同使用一台 CoCube 进行自主学习。在课堂中,学生们需独立探索 CoCube 的各项功能,并录制视频与其他同学分享自己的项目和代码实现,我们发现,CoCube 配合 MicroBlocks,在大型课堂教学中也表现出色。

2024 年 7 月下旬,我们与中美青年创客大赛的李滨老师一起走进青海省玉树藏族自治州治多县小学,捐赠了 20 台 CoCube 机器人,希望 CoCube 与 MicroBlocks 能够从社区走到山区,激发山区孩子们对科技的好奇心与想象力。

2024 年 8 月 2 日,CoCube 团队受邀参加由上海市教育委员会、上海市科学技术委员会、上海科普教育发展基金会主办的“青博会”科技教育资源嘉年华。凭借独特的设计理念和卓越的功能,CoCube 成为活动中的亮点,赢得了参会教育机构、国内外教师和学生的广泛赞赏与认可。

2024 年 8 月,我们开始探索科研方面的落地。在种瓜开发的 Dynatalk_BLE 的基础上,又进一步开发了 Dynatalk_UDP 接口,上位机可以通过 Python 方便地调用 MicroBlocks 设备的各个积木功能,并且保持相当高的实时性,仅仅一个月不到的时间,我们完成了包括 8 机速度避让、8 机物品分拣、32 机队形变换等多机器人场景。

2024 年 9 月,基于 CoCube 和 MicroBlocks 的成功应用,我们撰写了会议论文《CoCube: A Tabletop Modular Multi-Robot Platform for Education and Research》,这篇论文应该是第一篇将 MicroBlocks 用于多智能体的论文。论文中有一小节取名为“Meet MicroBlocks”,致敬了 John Maloney 论文《Programs in the Palm of your Hand——How Live Programming Shapes Children’s Interactions with Physical Computing Devices》中的对应章节。

2024 年 10 月,CoCube 回顾之前用户的反馈,完善了量产设计,并吸引了更多大学生们参与到 CoCube 以及 MicroBlocks 项目中,我相信不久的将来,越来越多科研项目会基于 MicroBlocks 进行开发。

2024 年 11 月,CoCube 团队将与 MicroBlocks 中国大使邵悦老师一同前往 Maker Faire 深圳展示作品。

如果一切顺利,CoCube 将于 2024 年 12 月正式发布。

使用感受

1.体会到了开源共创的意义

MicroBlocks 好多新的功能需求,最初都来自于一线的用户。CoCube 从 2024 年 6 月正式结合 MicroBlocks,每举办一次活动都能收集到不少新的用户反馈,并在下次活动前对其功能完成优化。例如,用同一台电脑控制多个 CoCube、用键盘控制 CoCube,都来源于用户的创意和需求。 让我感觉更有意思的一点是,这些创意想法通过我们实现、变成 CoCube 的基础功能后,之后的用户可以站在巨人的肩膀上,又会有更多的想法迸发了。

2.低门槛、高天花板、宽围墙

种瓜在比较图形化硬件编程平台的博文中,谈到 MicroBlocks 是最具“低门槛、高天花板、宽围墙”特点的图形化编程平台。在 CoCube 与 MicroBlocks 结合并迸发新的创意的过程中,我自己也深切的体会到了这一点。

CoCube 用在高校院所的科研场景,例如多机器人编队集群,经过适当的调整,就可以变成孩子们的趣味课程;同时孩子们提出的键盘控制 CoCube,也启发我们可以基于此做一些 AI 算法的研究。

一土学校-俊俊

俊俊是一土学校 STEAM 课程老师, 他在 我在一土学校运营 STEAM “社群”的那些事 ~ 一文里, 细致地分享了将 MicroBlocks 带入一土学校的前因后果, 推荐感兴趣的朋友阅读原文! 这里摘录其中的部分.

将 MicroBlocks 带入一土学校 STEAM 课程

在 23 年春季学期,我在一土教初中和高中(具体看这里)。虽然我擅长前后端开发,但对硬件的了解还算个新手。

说起硬件的实验,我第一次玩硬件不是用 MicroBlocks,而是在深圳 AdaLab 参加了三天两夜的 hackathon。我们小组开发的产品拿了第一名,奖品是 Arduino 和一个 128X64 的显示屏。于是从零基础开始学,满网上搜教程,拿着杜邦线一个个接引脚,卡了好久终于找到了一本书,告诉我每根线怎么插。搞了四五个小时,终于点亮了显示屏,那感觉就像第一次学 Java 在控制台打出 “hello world” 一样爽。

接着,我又想要显示一些图案或者文字,需要用软件创作图案,然后取模再调试程序,搞了五六个小时终于成功显示出来了,虽然已经是凌晨四五点,但内心超级激动。这些实验过程让我对硬件越来越感兴趣,几天后,我不满足于静态图案,想让它动起来跟动画一样,于是折腾到早上七点,包括剪辑和发到视频号的时间。

在一土的课堂上,我会和孩子们一起玩 MicroBlocks + 硬件 + 软件 + AI。而在课外我自己有时候甚至玩到凌晨三四点,做出一些非常好玩的项目(看这里),比如创作音乐和灯光的魔幻组合、导航回家的小工具、用 Siri 开灯等等。相比传统写代码,MicroBlocks 有很多优势,比如:

我感觉 MicroBlocks 相比编写字符代码有很多优势,我根据自己的体感结晶了一些亮点:

  • 方便,无需安装复杂的编译环境、浏览器中就可直接打开
  • 无需传统编译再运行,MicroBlocks 可以实时反馈
  • 图形化环境,拖拽方便,可短时间内实现原型的 MVP 设计
  • 支持 HTTP、MQTT 等网络协议,可以结合 WEB 等 制作出很多更有趣的项目
  • MicroBlocks 可以与 CodeLab 平台联动,还可以与 TeachableMachine 的进行连接。

成长除了显性还有隐性,手脑心循环

在春季期末作品展时,每个孩子都有大大小小的作品:

  • AI Car:通过硬件和编程制作了一辆可行走的小车,利用姿态识别和距离检测实现方向控制与紧急制动,适用于智能交通场景,难度体现在多技术的整合。
  • AI 交通灯:结合 AI 模型和灯带实现远程手势控制的智能灯光系统,适用于恶劣天气下的交通指挥,复杂度在于手势识别与灯光联动的实现。
  • 自动的翻盖储物空间:设计了能感应物体接近并自动开合的储物装置,适合日常生活中的智能收纳场景,复杂度在于精确的感应和机械响应设计。
  • 自动电风扇:通过人体感应控制电风扇的开关,实现节能环保的家居自动化,复杂度在于精准的感应和机械同步。
  • 缤纷灯带制作的多场景应用:利用灯带设计了适配小屋、舞台和高速公路等多场景的光影效果,展现出从零到一的创意与技术融合能力,复杂度体现在场景化灯光设计。

这些作品有很多亮点也有不足,但我想说,作品的复杂度并不决定成长的多少。每个孩子基础不同,有的从没接触过电脑,连安装浏览器和驱动都觉得困难,但只要主动寻求解决方法,这些困难都是可以克服的。成长不一定看作品多复杂,学术评分也不是唯一标准,更多的是在解决问题的过程中,如何用结构化思维解决遇到的挑战,如何和同伴合作,如何在不断的调试中调整心态。这些,都是成长啊。

STEAM PBL× 互助教学

STEAM PBL 课程体系

在课程的初期阶段,我们会提供一段系统性的基础课程,也可以称之为入门课程。那么,为什么需要这些基础课程呢?

举个例子,假如你一开始就想制作一个通过人体姿态来控制小汽车的项目,这听起来确实很酷!但当你真的着手去做时,可能完全不知道该从哪里入手,甚至不清楚需要学习哪些知识。面对这些新奇而复杂的想法,基础课程的作用就是帮助你打好认知的基础并知道如何学习。

在每个系统课程中,不仅仅设定基础目标,还会加入一些开放性的内容或参考项目,鼓励探索更多的可能。

在课程的后期,学习将转向更加开放的形式,主要以孩子们自主制作各种项目为主。此时,他们已经对硬件、编程等有了初步的理解,掌握了如何检索信息、如何自学新内容的方法,接下来会围绕自己的目标而去探索新的知识,敢想敢做!

互助教学

这学期的孩子们有些“闹腾”,没能设置小组长的情况下,我常常面对学生们高频率提问的挑战。为了应对这种“高并发”的压力,我想出了一个新办法——借助费曼学习法。根据“完成目标即可下课”的原则,我决定增加一个考核环节,以确保孩子们是否真正达成了学习目标。

这个考核的形式不是对我展示学习成果,而是通过帮助其他需要支持的孩子来验证自己是否掌握了知识。我要求他们在辅助同学时,不能直接给出答案,而是通过苏格拉底式的提问方式,引导对方找到问题的解决方法。这种引导不仅培养了学生们的表达与思考能力,还提升了他们对知识的理解深度。

这个方法真的很有效,不仅大大缓解了我解答问题的压力,还让整体的学习完成率超过了 95%。这种互助教学的模式让孩子们在彼此帮助中共同成长,学习氛围也更加积极有趣。

我在 STEAM “社群”的角色

实验者和资料整理者

其实,我对硬件以及其他有趣事物的了解,并不是一开始就非常深入和全面的,而是经历了多个阶段的积累和探索。我自己常常在空闲时动手折腾一些有意思的硬件。有些硬件我能够自己搞定,了解它的基本操作,至于需不需要深入研究,那就看我的需求和兴趣。当我掌握了基础之后,这个实验就算是成功了。

在 STEAM 课程中,几乎所有内容都是我的实验成果的延续——硬件 + AI + 软件的结合,始终在不断地实验和探索之中。我不仅是一名实验者,也是一个资料整理者,将探索的过程和经验沉淀下来,与孩子们分享。而我也乐于在这个过程中不断学习。

共学者

“共学者”听起来很有意思,好像意味着我们和孩子们可以实现一种双赢的关系——没错,是这样的。我提供一些成功的实验,而孩子们可以在这些实验的基础上创造出更有趣的东西。

每个孩子在不同领域的水平都不尽相同,这让我们的共学过程充满了多样性和灵感。比如在对蜂鸣器(一个可以发出声音的硬件)进行创作时,有几个孩子会弹钢琴。于是,我和他们一起讨论,来验证我关于音符和音阶的猜想是否正确。通过讨论,我们不仅验证了猜想,还一起创作出了一些非常有趣的音乐作品。

指引他们做项目以及和他们一起做项目

在指引孩子们做项目方面,我已经积累了一些经验。比如,在使用 OKRA 这套目标管理模板时,制定清晰的目标尤为重要。如果有孩子想要做一个游戏项目,我会继续追问:“做游戏的最终目标是什么?”接着,一起定义关键结果。比如,有孩子说:“我想做一个好玩的游戏。”这样的目标太模糊了,我会引导他们明确具体的指标:“什么样的游戏体验才是‘好玩’的?能不能给出一些实际的标准?”

而关于“和他们一起做项目”,这并不意味着我从头到尾参与其中,而是更多地在他们需要帮助的时候,在他们身边一起讨论,检索信息,找到有用的工具,给予他们建议和“心”的支持。我希望在他们遇到挑战时,不仅能获得方法上的指导,更能感受到精神上的鼓励与陪伴。

体系化 SETAM 课程

目前,我正在将 SETAM 课程体系化,通过创新项目的创作来解决限时生活中的实际问题。该体系注重培养孩子们的底层能力,强调手、脑、心的协同发展与循环。

未来,计划将这一教学理念推广至社区和学校,进一步扩展其影响力,使更多的孩子从中受益。

结语

在一土学校的 STEAM 课程中,我所探索和践行的,不仅仅是一个个项目的完成,更是一种全新的学习方式:以“社群”为核心,共同学习、相互启发。我们不再拘泥于传统课堂上“老师讲、学生听”的单向模式,而是在一个自由开放的学习环境中,共创与共学。

正如这篇文章中所讲述的,无论是费曼学习法引导下的互助教学,还是师生共同完成的创意项目,这种“社群式共学”让每个人的角色都变得丰富而多元。作为“实验者”,我愿意探索未知,将自己的经验分享给学生;作为“共学者”,我与孩子们一同成长,在每一次互动中碰撞出新的火花。而孩子们,则在这个充满信任与支持的环境中,学会了自主探索,彼此成就。这也是我 STEAM 课程的独特价值!

视频 & 照片

计老师

缘起-误解

在 B 站搜到了邵悦的视频, 看到 Scratch2.0 风格的 UI 我还吐槽了一番,心里想这又是国内哪家厂商或者个人魔改的 Scratch。

sky

后来看到 sky 学习 Patch 老师使用 CodeLab 做遥控器远程控制小车。我想复刻一下, sky 发了程序,这才开始使用 MicroBlocks。一开始属实是上不了手,对于使用过市面上几乎所有图形化编程工具的我来说有点不可思议。原因一是没养成看 wiki 的习惯,原因二是 MicroBlocks 的操作逻辑是打破惯性的。再后来在官网看了一些 wiki 和创始人的介绍,才反应过来这个工具来头不小,有了继续探索的好奇。通过 sky 加入候车室之后奇幻美妙的旅程就开始了。

ESP8266

之前在网上买过几个 ESP8266 开发板,因为焊接了排针后测试有问题所以无法退货,吃灰已久。用其他编程工具烧写程序或者固件成功率很低,用 MicroBlocks 却一次成功了,我很惊讶,很兴奋,也跟大家分享了这件小事。然后就用这几片 ESP8266 做了第一个完整的项目——微信小程序炫彩灯环。

在这里不得不再次夸奖邵悦和种瓜,很难想象邵悦有多美好才能做到如此,比几乎所有的编程工具的官方服务人员还要负责和 nice,两位的有问必答和 nice 使得群里的学习氛围异常的好。

pico

在学习使用一段时间 MicroBlocks 之后,基于 MicroBlocks 的种种优点尤其是它的活性,我开始有换掉我们机器人课程里面的主控板的想法. 刚好合宙出了 9.9 元的 pico2040 开发板,在邵老师和其他老师确认了支持 MicroBlocks 的默认 pico2040 固件之后,我开始进行了测试。测试之后发现,引脚数量和板子尺寸都非常的合适。于是制作 PCB 进行验证。

picoS3

在无线编程功能出来后,我也是第一时间进行了体验,并且为了在同样 9.9 元的 esp32C3 上面体验无线编程,还在种瓜,邵悦,汤老师等朋友的帮助下学会了编译固件。

由于 picoW 价格实在是太贵是中国产 pico2040 的好几倍,教具主控板无法体验无线编程。最近发现了一块外形尺寸和电源引脚兼容 pico 的 esp32S3 板子,准备把 pico2040 换成 picoS3,板子已经打样测试,基本使用没有问题。未来有机会会把他推荐给同行们。(我们教具为加盟品牌,全国校区几百家)

仔爸(paul)

我与 MicroBlocks 的美妙相遇

接触 MicroBlocks 也是因为一个偶然的机会. 那还是一年前吧,邵悦在我加入的某个群里经常贴出周六晚上分享会的链接,我当时在想,这个人这么执着地推荐着一个我以及我周围的人并不熟悉的软件,究竟是怎样的一个软件呢?我当时因为好奇,打开看了一下 MicroBlocks,结果发现与 Scratch 有点像,但又有所不同,看过后就没再使用。这是与 MicroBlocks 的第一次邂逅,但并没有擦出火花。

后来因为想帮中小学校教师推荐一款小巧的适用于硬件的图形化编程软件,我再次接触 MicroBlocks,这一次接触就喜欢上了它,而且变得一发而不可收拾,尤如打开了一个迷宫,不断地发现宝藏(它的优点),边学习边使用,同时“热烈”地在群里参与讨论。

我的分享交流活动

接触了一年多的时间,很多次在周六参与了邵悦发起的分享会,但我始终作为一名听众在参与,从未自告奋勇地站出来作为分享嘉宾,直到 10 月底周茂华老师看了我写的几篇使用 MicroBlocks 为掌控板编程的文章,请我在网上分享一下,我才算是第一次踏上了分享的舞台。为了这次分享,我把最近阶段的所学、所思进行了梳理,也是为了让更多的人,特别是中小学校的师生能了解 MicroBlocks。虽然国内也有许多适合于硬件编程的软件和平台,但因为有了 MicroBlocks 而多了一个选择,它的生命力越来越旺盛,因为我看好它,所以我想把它分享给更多的人。

我目前并不在一线从事教学,所以接触不到学生,无法直接用 MicroBlocks 进行面向学生的教学。但有时候我会为老师们做一些分享活动。在 2024 年 11 月,我在线下进行了二次集中分享活动,第一次是为我所在的浙江省慈溪市的 40 多名中小学教师(非信息科技教师)进行了分享。通过分享,我发现他们虽然不是信息教师,但完全有能力使用 MicroBlocks 对硬件进行编程,而且可以根据自己的学科内容,制作一些适用于自身学科的小作品。

第二次是为建德市的 50 多名中小学信息教师进行了线下分享。这次分享之前,我想可能会比上一次取得更好的效果,但由于硬件环境(电脑教室)准备得不是十分充分,分享活动仅限于我个人的讲解,老师们动手的机会不多,离我设定的目标有点距离。不过,我希望今后有机会分享的话,一定能取得更好的效果,同时也让参与的老师带领自己的学生去使用 MicroBlocks 进行创客教育。

我用文字写教程

我有一个个人的微信公众号(公众号:仔爸在线),平时会在上面分享一些儿童编程方面的文章,以及评测硬件的教程。目前我已经在我的公众号上分享了与 MicroBlocks 相关的文章共 6 篇,尤其是最近我写的 MicroBlocks 与掌控板相结合的教程,我想把它写成一个系列。考虑到掌控板是一款集成了多个传感器的硬件,同时在中小学校拥有较大保有量,所以我觉得会是一个比较好的切入口。

如果有可能,我会更加深入地研究 MicroBlocks 与多款硬件相结合的教程,让更多的人了解 MicroBlocks 强大的适配硬件的能力,与其他软件 (如 Snap!等软件)协同工作的能力。正是因为它的可扩展性,以及兼容性,让它支持越来越多的硬件。很多朋友也在不断探索 MicroBlocks 接管新硬件,且为此感到无比地欣喜。之前要让自己具备为硬件开发驱动程序的能力是不可想象的,而现在因为 MicroBlocks 而瞬间变得简单起来。我相信,今后一定会有更多的老师和学生使用 MicroBlocks 的这个能力。

我的教学尝试

我主持本市的一个中小学 STEAM 名师工作室,我会让工作室的成员了解和学习 MicroBlocks,同时请他们尝试使用它来进行教学。我也会教我的小儿子使用 MicroBlocks 进行编程,并用它开发许多创客小作品。或许有机会,我会录制一些视频发布在网上。等我的教程写得差不多了,我会整理一些用于开发一门 MicroBlocks 的网络课程,放在网上的平台上。我想,作为一名教师,只有在使用 MicroBlcocks 进行教学时,才能更加深入地体会它是否适合中小学师生,是否能用它创造出更加美妙的作品。

放放的教室(newfun)

我很深刻的记得在一个中国春节期间 CodeLab 微信群里 MicroBlocks 的话题就突然增加了,从那时候起几乎每天都有与它相关的聊天,很久很久没有发现一款软件有如此高度的讨论,确定得益于它优秀的设计与开放性。在此之前用过 mixly,mind+,Kittenblock,makecode,总是遇到一些不愉快的经历,修改烧录再修改再烧录,一个项目可能要反反复复好多次才可以完成。在使用 MicroBlocks 的 2 年里,自己做了很多有趣的项目,偶尔会参加每周的分享,有时候觉得用 MicroBlocks 来分享简单的作品案例简直有点拿不出手,因为稍微懂一点硬件编程,都能很轻松的使用 MicroBlocks 完成项目。

本次分享几个我个人觉得有意思项目

案例一:蓝牙手柄与蓝牙键盘

在 24 年 3 月的一次分享会上,得知了蓝牙键盘固件,恰好之前有在 b 站上刷到有人给残障人士制作使用脚控制的键盘。在成本可控的情况下,可扩展性与便捷性没有自己 diy 方便,于是就有了这个想法。利用简单的按钮,就可以轻松的制作一个自定义的蓝牙键盘,可以是工作上的快捷键,可以是专业软件的自定义键盘,可以是给残障人士使用的脚控键盘,甚至可以是一个简易的游戏手柄。

案例二:文件系统的分享

文件系统我觉得非常的方便有趣,可以记录很多数据其中,一下是我制作过的几个案例。

1.利用文件系统实现野外无人值守环境的数据记录

存在一种场景户外社会实践我们需要长时间的记录我们想检测的数据,比如温度,光线,声音信息,在没有网络环境的情况下,我们就可以利用文件系统来记录数据,等我下次再去的时候取会我的设备从电脑中读取数据文件。我曾尝试使用 3 节 AA 电池记录了一整夜的温度数据。

2.利用文件系统制作 RTTTL 音乐播放器

音乐播放器我觉得特别有意思,也是我第一个研究文件系统的项目,虽然我平时不喜欢听音乐,但是这种复古的铃声非常好玩,在制作项目的过程中我发现当脚本文件太大的时候无法上传到主板,在一次分享会上邵老师分享可以在文件系统中存储图片,我想到那 rtttl 本来就是文字,岂不是更可以存储在文件中,

3.利用文件系统实现在 esp32 上多网页的切换

将不同的网页存储到文件文件系统中,通过超链接到形式可以打开各个不同的页面,在一些智能家居的项目中希望展示一些数据可能用得上。

余 LM

我目前主要是带我儿子学习 micro:bit,以及整理相关的教案。主要使用的是 makecode 编写硬件的程序,使用 mind+做人机交互应用。后来在姜老师的介绍下,进入了 CodeLab 候车室群。随后接触到了 MicroBlocks,用它编写 micro:bit 的程序,并且与 CodeLab 结合,做了一些有趣的互动项目。

在我看来,MicroBlocks + CodeLab Scratch 或 Snap! 是一个人机交互创作平台。

以往在 mind+ 中,我需要两块 micro:bit,一台连接电脑负责通信,一台作为随身操控设备,编程过程中需要多次插拔设备,极其容易烧写错误,导致频繁烧写固件,效率并不高。当然 mind + 也带给我很多创作的快乐,是一款非常出色的软件。

在 MIT Scratch 中,虽然可以使用蓝牙进行交互,但是不支持 V2 版本的硬件,且能用的功能有限,不能使用外接设备,只能做简单的应用,大大限制了创作。

而在 CodeLab Scratch 中,虽然也不能直接为 micro:bit 的外设编程,但是可以和 MicroBlocks 无缝结合。MicroBlocks 负责编写硬件程序,通过 BLE 无线连接,超高效率的在线调试;CodeLab Scratch 或 Snap! 负责编写人机交互程序,丰富的三方库应用,再加上 CodeLab 候车群里面几位热心老师“24 小时”的在线交流,学习起来简直不要太爽。基于这样的软件组合可以轻松做出很多有趣的项目。

因为编写程序的难度大大降低,功能又很丰富,所以我能在一天内制作出一辆由 AI 控制的具有自动寻找目标功能的小车。这在以前是不可想象的。

在学习过程中,我还要和 MicroBlocks 继续磨合,慢慢掌握它的思维方式和熟悉指令。在我的学习过程中,也会越来越频繁的使用 MicroBlocks。希望 MicroBlocks 越来越好,在适应我们的阅读习惯上做的更本土化。

案例: 恶魔狙击战

这篇文章里分享了详细的制作流程

海豚 Dolphin

我是做软件开发的,以 Java 为主。2018 年开始陆续买了一些智能硬件,和开发板子,主要是跟孩子玩。包括 mbot 小车,microbit 套件,核桃硬件编程,编程猫小车。但这些套装智能教具都有一个共同的问题,就是孩子上完规划的课程后,这些硬件就吃灰了,很难再发挥作用。这一个过程也用过不少硬件编程的 IDE 工具,包括厂家的 mblock, mind+,和开源的 arduino ide, mixly 等。厂家的 IDE 比较稳定,就是需要买它的硬件才能玩,绑定机制不开放。开源的很灵活,但是稳定性较差,需要投入较多时间在解决安装环境、编译错误等问题上,对智能硬件创造是很不友好的。

2022 加入 CodeLab 群后,开始了解到 MicroBlocks IDE 编程工具。MicroBlocks IDE 通过 PC usb 线与硬件连接,对 esp 等主板编程,速度飞快,实现秒 刷新,这个特性深深打动了我。我把吃灰多年的板子,包括 microbit, esp32 UNO,都采用 MicroBlocks 来编程。在群里众多老师分享中,我深受感染,陆续买了更多硬件,包括合宙 rp2040, esp32 c3,以及咸鱼的宝贝。

1. 快速制作智能小车(基于掌机)

在群里老师分享下,也买了几个掌机,刷了 MicroBlocks 固件,结合 MicroBlocks 的无线编程,十分灵活、方便。同时我将玩具小车的部件(TT 电机)和掌机结合起来,制作了智能小车,加入了红外避障模块,在调试前、后、左、右时确保小车行走平顺,及遇到障碍物能后退且有适合的角度转向再继续向前… 等等,这些调试,在 MicroBlocks 上能很快完成,这是以前我用其他 IDE 编程工具无法做到的。

同时在种瓜推荐下,我采用了 MicroBlocks 蓝牙广播积木,实现了一个很酷的功能:一个掌机做遥控器,发出蓝牙广播消息:前进、后退、向左、向右、停止;两个小车(掌机+电机),接收蓝牙广播消息,执行消息对应的动作;从而实现了 1 个遥控,同时控制 2 个智能小车,小车虽然简陋,带着孩子玩的过程还是十分开心。

2. 制作一个 smallvm 板子固件

在和群里老师一起交流,一起分享玩掌机、和其他硬件的互动过程中,我学到了很多以前想都不敢想的事情,例如:制作单片机的固件(firmware.bin)。以前玩 mp3、路由器、电视盒子等硬件,都是找厂家的固件,或者论坛中的高手修改好的固件,进行刷机,体验更多新功能。

在玩 MicroBlocks 和掌机硬件过程中,看到邵悦、计老师分享的固件,即刷即用,觉得十分神奇,同时也找种瓜、计老师获取到了 smallvm 源码,它是在 vscode +platformio 环境下编译的,对软件开发人员来说是十分友好,编译速度很快。阅读 smallvm 源码后,我看到了 tftPrism.cpp 中对 xesgame 板子的 ST7735 屏幕针脚的定义,联想到最近用面包板做的 ESP32 对话 AI 板子上对 tft 屏幕针脚的连线,好像看懂了一点点。

如何制作一个新固件?可以刷到用手上的 ESP32 板子 +ST7735, 和 RP2040 板子+ST7789 上,让它们可以用 MicroBlocks 无线编程呢?阅读了计老师在 smallvm 上对 xesgame 的修改,我参照 mingbai 板固件制作了 mingbai-v2,刷到 ESP32 板子上;参照 ttgo-rp2040 板固件制作了 ttgo-rp2040-v2,刷到了 RP2040 上,它们都可以与 MicroBlocks 进行编程了。这个过程十分开心,以前想都不敢想的开发固件工作,现在居然可以在 vscode 中对 smallvm 的少量文件进行修改,就可以编译固件,刷固件到板子上了。

3. ESP32 对话硬件装置与 Microblocks 集成(未完成)

之前参照 CSDN 的文章,制作了一个 ESP 板子,通过对讯飞问答、百度 TTS 请求,实现的对话装置。可以问它天气、古诗、天文、地理… 硬件搭建简单,趣味性很强。

分析它的代码通过 vscode platformio 进行编译、刷机,与 smallvm 开发过程十分相似,理论上是可以在 smallvm 中创建一个固件,刷到板子上,实现相同的对话 AI 功能。因此尝试把这个程序、做成 samllvm 固件,在 microblocks 提供编程积木,那将更灵活,更具有可玩性。

参照的 tft 引脚,修改成与 xesgame 接口相同,顺利把固件刷到掌机上了,掌机能正常显示对话内容。接下来还需给掌机接麦克风声音输入,和声音到喇叭的播放,以及在 microblocks 进行 http 请求,来完成向讯飞、百度请求。分析了 smallvm 中,对 i2s 的能力有请求的是 databot 固件,进行了 smallvm 固件修改,后续还需进一步调试。

Leon

今年早些时候在为我们研发的小黑轮足机器人寻找图形化编程的技术方案,看到 Mixly,Scratch 的图形化编程方式,也很希望小黑也能拥有类似的能力,从底层实现来看,lua,micropython,都是我们想要尝试的方案.

但在经过仔细技术评估过后,发现由于小黑机器人所有功能实现基本已经把单颗 esp32 的资源和性能压榨到极致(双 bldc foc 控制算法,oled 表情系统和 UI 交互,机器人姿态位置以及足部关节闭环控制,小规模 odom,wifi app+web 控制,sbus 接收解析控制,电压电流电量监控,web ota 升级,以及系统参数管理),于是前面两个消耗资源相对较多的方案在实践测试中慢慢被排除掉.

终于有一天在 b 站闲逛的时候刷到了邵悦的 MicroBlocks 的讲解视频,接着我私信大概说明了我的想法,后面加了 V,从此他便成了我的领路人把我拉进 CodeLab 候车室的大家庭.

来到这里慢慢对 MicroBlocks 有了更深入的了解,也看到各个行业的伙伴们在这里为了打造理想图形编程方式而发光发热,其中种瓜尤其给我留下了很深的印象,他是一个富有远见的开拓者,对图形化编程至下而上有很系统的理解和认知,他一直在努力的为实现心中理想的图形化编程方式不断探索和实践,虽然没有见过本人,但在他的周会分享讨论中,足以感受到他对自己所做工作的专注和热爱.

随着学习的深入,也越来越觉得 MicroBlocks 里面的 smallvm 设计得非常精巧,配合 web 端的编程方式,是一套非常轻量级可配置的灵活体系,我突然跳出一种想法,将 smallvm 从 MicroBlocks 中剥离出来以一个组件的方式嵌入到我们轮足机器人中运行,我们原本机器人系统内部已经实现了 Mavlink 通讯体系的适配,于是我努力把 smallvm 封装成类似 Mavlink 的模组嵌入到机器人系统中.

为了实现这一目标,我开始深入学习 smallvm 的实现原理,在邵悦的指引下我了解到了更多 smallvm 的技术细节,最后经过仔细打磨优化,smallvm 终于成功以内嵌模组的形式在平衡机器人上运行了起来,拥有了 smallvm 的加持,小平衡机器人的很多功能得以延伸到更为简单易用的网页图形编程领域,非常开心能遇到 MicroBlocks 这个大家庭,我也相信 smallvm 的精巧设计一定能成长成为一个广泛的跨平台 vm 架构,感谢邵悦,感谢默默付出的伙伴们,感恩一切相遇!

写在最后: 一点点积累,一步步实现,让稀疏平常的东西发光发亮!

更多分享

我在做校外培训,在试玩 MicroBlocks,现在可以逐步支持移动端包括无线编程实在太酷了, 想尝试未来做一套使用平板电脑进行硬件编程的课程 – 汤圆

因为 Mixly 上传太慢,软件太大,上传各种问题,很不适合新手。MicroBlocks 就非常合适新手……准备大力推广,写一套关于 esp32(创客超能板)与 MicroBlocks 的课程,并用于培训教学 ^_^ – 创客~景林

MicroBlocks 太妙了,在 vm 运行脚本,不用重新编译,不用在意底层细节,而且又很快又方便 – 星空长夜

使用 MicroBlocks 的企业

英荔教育

英荔教育是中国第 1 家拥抱 MicroBlocks 的企业, MicroBlocks 在中国的第 1 家企业合作伙伴, 也是为 MicroBlocks 提供捐赠的第 1 家中国企业.

合作伙伴

英荔教育在公司的许多项目中深度使用 MicroBlocks , 从课程内容体验项目, 从NOC 赛事AI 运动会.

NOC 赛事

英荔教育与 MicroBlocks 团队的协作始于 NOC 赛事.

这是赛事相关的一些数据(每支队伍有 1 名指导老师和 2 名学生)

  • 21-22 赛季: 378 支队伍
  • 22-23 赛季: 410 支队伍
  • 23-24 赛季: 892 支队伍

英荔教育在21-22 赛季首次将 NOC 赛事平台从微软的 MakeCode 切换到了 MicroBlocks.

这项合作为英荔教育和 MicroBlocks 双方都带来了许多收益.

在英荔方面, MicroBlocks 用户级别的可扩展性为英荔带来了巨大价值: 积木库的编写和发布变得极其简单, 完全无需开发团队的介入, 产品团队自己就能完成, 甚至任何的普通用户都能完成! 教学方面的价值也是巨大的, 由于用户使用的积木是在图形化环境中定义的, 这使得好奇的学生可以自由探索, 根据自己的兴趣, 在图形化环境中去弄懂系统底层是如何工作的. 这在其他任何图形化环境中(也许 Snap! 除外)都是不可思议的!

此外, MicroBlocks 是自由软件, 其出色的架构使它极为灵活, 企业可以根据自己的需求, 在任何层面按照自己的意愿定制它, 因此英荔可以快速地推出自己的编程套件, 为它量身定制 MicroBlocks 虚拟机, 并在用户环境中为它编写驱动库, 这些工作的大部分都是由产品团队完成的, 换句话说是由非技术背景的用户完成的!

在 MicroBlocks 方面, 来自英荔的赛事应用场景和早期用户反馈, 帮助 MicroBlocks 发现了许多潜在 bug , 并推动了许多新的功能特性.

举例来说, 光是英荔团队中的 1 位成员就报告并协助 MicroBlocks 团队解决了这么多问题, 这些改进最终合并到主分支, 不仅使英荔的用户收益, 也是使 MicroBlocks 全球社区的所有用户受益.

一些导致 MicroBlocks 进行重大改进的其他反馈和讨论:

这些讨论产生的成果(诸如对大型项目编程体验最关键的优化:增量加载积木!)使得今天的 MicroBlocks 适合用于许多大型的赛事项目, 这进一步吸引了更多公司将 MicroBlocks 用于赛事活动.

以下是英荔教育分享的一些赛事截图:

英荔与 MicroBlocks 的合作很好地展示了: 企业如何受益于开源社区, 又如何回馈开源社区.

AI 运动会

英荔 AI 运动会是一项融合了人工智能和体感技术的创意运动项目。通过结合各种软硬件,参与者可以与虚拟角色进行互动,体验竞技的乐趣。

其中的与硬件相关的部分, 由 MicroBlocks 驱动.

  1. 掰手腕
  2. 飞盘射击
  3. 划艇比赛
  4. 滑板比赛
  5. 100 米短跑
  6. 打水漂
  7. 乒乓球大战
  8. 投篮大师
  9. 谁是大力士
  10. 耐力跳跃

划艇比赛为例, 对其做个简单介绍:

脚蹬拉力器上方平防止一个「Elite Core(基于 esp32)」,体验者用力拉伸脚蹬拉力器时,其上传感器的加速度会发生变化,舞台区的虚拟角色做出相应划船动作,拉伸脚蹬拉力器检测到的速度越快, 虚拟角色的划船频率便越快,抵达终点用时最少者优胜。

企业捐赠

英荔教育是国内第 1 家为非营利组织 MicroBlocks 提供捐赠的企业.

英荔教育最初决定为非营利组织 MicroBlocks 提供捐赠的往来邮件(@Finn 起草了这封邮件):

This email aims to express our gratitude to the amazing works you have done in MicroBlocks and offer translators, content creators, spreading the word and financial support.
(这封电子邮件旨在表达我们对您在 MicroBlocks 中所做的出色工作的感激之情,我们愿意提供翻译、内容制作、传播和资金上的支持。)

John Maloney 在邮件里回复说:

It’s nice to meet you. I’m cc-ing the rest of the core MicroBlocks team: Bernat (Barcelona), Turgut (Turkey), and Kathy (Silicon Valley). I am in Boston, the birthplace of Scratch. :-)
I’m glad that you love MicroBlocks and I am happy that you want to make it more widely available in China.
MicroBlocks is a non-profit, open-source effort driven by a small team of people who, like you, are passionate about inspiring youth to discover the joys of creating with technology.
We believe physical computing is a great way to introduce students to coding, electronics, and physical making, and that MicroBlocks allows a wide range of students get started with physical computing quickly. At the same time, MicroBlocks is powerful enough to allow advanced users to explore advanced topics and create more complex projects…
很高兴认识你们. 我抄送给了 MicroBlocks 核心团队的其他成员: Bernat(在巴塞罗那)、Turgut(在土耳其)和 Kathy(在硅谷)。我在波士顿,这里是 Scratch 的诞生之地。:-)
很开心你们喜欢 MicroBlocks,并且希望让更多人能够在中国接触到它。
MicroBlocks 是一个非营利的开源项目,由一小群充满热情的团队成员推动,他们和你们一样,希望激励年轻人去探索技术创造的乐趣。
我们相信,物理计算是引导学生学习编程、电子学和动手制作的绝佳方式,而 MicroBlocks 可以帮助广泛的学生群体快速入门物理计算。同时,MicroBlocks 功能强大,足以支持高级用户探索更深入的主题和创建更复杂的项目…

MicroBlocks 的全球伙伴关系与外联负责人 Kathy Giori 在邮件中回复说:

Indeed thanks! One of our visions for using donations is to host a grant program for educators all over the world who need hardware…
确实感谢!我们的一项愿景是利用捐款为全球需要硬件的教育工作者举办资助项目…

最终这笔捐赠按照 MicroBlocks 团队的意愿, 以开源硬件的形式提供.

决策的过程

所谓今天,乃是昨天所做决策和所采取行动的结果 – 彼得·德鲁克《卓有成效的管理者》

作为国内第 1 个吃 MicroBlocks 这只螃蟹的企业, 我邀请了英荔团队的两位成员分享选择 MicroBlocks 的原因:

@李懿:

当我们最初关注到 MicroBlocks 时,其特性以及为爱好者带来的功能和便捷性,着实让英荔眼前一亮。然而,作为一家公司,要决定是否在公司内推广 MicroBlocks,甚至考虑是否舍弃市场上已被广泛接受的 「主流」 平台,将其作为公司未来发展方向之一,我们需要深思熟虑。

特别是在 MicroBlocks 发展初期,不可忽视的是,它在满足我们本地化需求和适应多样化使用场景方面尚存在诸多问题。其中一些问题的复杂性和隐蔽性,或许是 MicroBlocks 研发团队在设计伊始都未曾预见的。在衡量其 「优势」与「劣势」 的过程中,天平时常摇摆不定,「用还是不用」这一艰难的抉择引发的讨论在公司内部持续萦绕,从未停歇。

值得庆幸的是,英荔有一群优秀的同事,他们思想开放、技术精湛且乐于接受新事物。每当遇到可能让公司放弃 MicroBlocks 的重大问题时,他们都能高瞻远瞩,考量是否符合公司的使命和愿景,是否遵循始终从孩子角度出发这一原则,怀着坚定的信念和积极包容的心态来面对和解决问题,并持续挖掘更多 MicroBlocks 的潜力。

至今,英荔使用 MicroBlocks 已有三年,我们很高兴看到越来越多的个人用户和组织为 MicroBlocks 的发展助力。希望未来 MicroBlocks 在中国能有更好的发展,让更多人感受到它的魅力。感谢遇见 MicroBlocks,让英荔在教育创新之路上不断前行。


@唐永裕(Kirving):

英荔教育连续四年作为青少年机器人竞赛的器材提供商,我们承办的比赛包括 2021-2022 年少年硅谷——全国青少年人工智能教育成果展示大赛、2022-2024 学年全国中小学信息技术创新与实践大赛(简称 NOC)。 2021 年,我们使用的器材是 micro:bit 系列的机器人竞赛器材,当然我们无容置疑地选择了 MakeCode 作为编程工具,它是微软针对 micro:bit 做的一个免费开源编程平台。选择它的原因不外乎两点:

  1. 我们在承办比赛时还没有开发出专门的机器人比赛器材。一部分比赛器材需要依赖恩孚科技提供,恩孚科技在 micro:bit 电子模块生态上已经深耕多年;
  2. MakeCode 作为官方的 micro:bit 编程软件,许多器材厂家都为其提供功能全面扩展库、有趣好玩的应用案例。基于这两点能让我们快速进入市场,让我们的比赛进入正轨。

2021 年末,经过种瓜的介绍,我们首次接触到 MicroBlocks。经过一段时间的探索,我们发现它具有闪光点,如实时编程功能,这种体验非常棒,在 Debug 阶段也更快速方便地帮助我们找出 bug。程序并行,我可以给每个任务编写单独的程序,并同时运行它们。使用积木编程就能建立你自己的 UBL 库,它同时提供官方的电子模块编程积木库,稍作改动就能创建属于自己的 UBL 库,还可以使用更高级的积木减少代码量。因此,我们首次将 MicroBlocks 作为全国青少年人工智能教育成果展示大赛——火星环境探测挑战赛的官方编程软件。

2022 年末,我们自主研发了针对机器人竞赛主控制器——Longan Core。这是一款基于 ESP32 开发的主控制器,ESP32 模组以比较合适的价格和更强大的性能在中国十分受欢迎。很庆幸的是 MicroBlocks 也支持对 ESP32 编程。此后我们彻底放弃 MakeCode,带着全新的竞赛器材去拥抱 MicroBlocks。2023 年的 NOC 比赛已经全面使用 MicroBlocks 作为编程工具。在这段时间里,我们的确收到较多负面的评价,如烧录速度慢、界面简陋不够精致、连接不算稳定等评价。这些评价也让我们差点放弃 MicroBlocks。

十分感谢 John 以及它的团队能倾听我们的反馈,不断地优化 MicroBlocks。升级后的 MicroBlocks 加快了烧录速度和蓝牙连接,这让学生得到前所未有的编程、机器人调试过程。

自此以后,英荔教育在往后的比赛中都坚定地使用 MicroBlocks 作为编程工具。截至 2024 年 10 月,共有 1680 支比赛队伍,约 5040 名学生、老师使用 MicroBlocks。同时,我们在自主研发的一系列新产品,如 Elite Core、Game Block、智慧城市沙盘、AI 展示框也无容置疑地使用 MicroBlocks 作为编程工具。相信这些产品也因 MicroBlocks 变得更加出彩。

作为国内第一家大规模使用 MicroBlocks 的企业,英荔教育完全沉浸在它开放的环境,祝愿 MicroBlocks 在中国能有更好的发展。

ELECFREAKS

ELECFREAKS 自 2011 年在中国深圳成立以来,专注于 micro:bit 开发套件和配件的全方位服务,包括研究、制造和销售。作为 BBC micro:bit 基金会的官方合作伙伴及中国区的交付伙伴,我们在 2023 年拓展了产品线,涉足树莓派系列产品。我们推出了基于 Raspberry Pi Pico/Pico W 的 WuKong2040 扩展板,并基于此开发了 Wukong2040 Inventor’s Raspberry Pi Kit。在选择图形化编程平台以支持这些新套件时,我们经过深思熟虑后选择了 MicroBlocks 平台。

选择 MicroBlocks 平台的理由如下:

  1. 兼容性:MicroBlocks 平台已支持 micro:bit、Raspberry Pi Pico/Pico W 等多种主板,只需烧录相应固件即可在该平台进行编程,大大减轻了我们的适配工作。
  2. 易开发:该平台使得开发产品软件库变得简单,无需高深编程技术,通过图形化方式即可快速开发软件库。
  3. 技术支持:在接入 MicroBlocks 的过程中,John、种瓜老师和邵悦老师给予了我们巨大的帮助,及时解答了我们遇到的各种问题。
  4. 无线编程:与 makecode 平台相比,MicroBlocks 支持无线编程,通过蓝牙连接,无需每次更改程序后都重新下载到 micro:bit 主板,极大地方便了程序调试,并使程序执行情况一目了然,有助于学生直观学习编程。

展望未来,我们计划将更多新产品如 Nezha Pro Breakout Board 和 PlanetX Smart Brick Motor 接入 MicroBlocks 平台,并计划在各类比赛中推广使用 MicroBlocks,以扩大其影响力并为更多用户提供便利.

陆吾智能

2023 年年底, XGO 团队在经历了树莓派图形化编程平台复杂难用的一年后,发现了非常适合 XGO 产品架构的 Microblocks 平台. 我们在 11 月份接触到 MicroBlocks,3 个月内便推出相应的硬件和竞赛方案,在 24 年一整年为全国 300 个左右的 XGO 队伍提供了坚实的软件支撑。

在 XGO 机器人使用过中,我觉得 Microblocks 给我们带来以下几点惊喜是革命性的。

  1. 可以蓝牙调试机器人。对于 XGO 这样的机器人,蓝牙调试实在是太方便了,很多老师刚开始会抗拒使用蓝牙,但是用了之后如果偶尔蓝牙出现问题就会抱怨为什么蓝牙功能有问题。
  2. 可以实时观察到机器人的状态,尤其是各个关节位置的变化,会让青少年很快理解仿生机器人的底层逻辑。
  3. 平台的兼容性和易用性非常好,24 年更期待 IOS 和安卓两个移动端。

2025 年我们会继续在信息素养实践活动机器人 A 类赛和世界机器人大赛 WRC 比赛中推广和使用 Microblocks.

近期, MicroBlocks 与 MIT APP Inventor 正在展开合作

想象一下,有了可以与现实世界互动的移动应用,你会做些什么。你可以通过手机控制一只机器狗或可怕的万圣节灯光秀。或者,应用可以告诉你家里的植物什么时候缺水,然后让你只需点击一下按钮就可以浇水。

XGO 机器人成为这项合作中备受欢迎的新宠:

近期将在 CSAIL(麻省理工学院计算机科学与人工智能实验室) 拍摄一段视频, 内容围绕机器人教育, 涉及如何使用 MicroBlocks 和 MIT APP Inventor 对机器人进行操作, XGO 机器人将在视频中出现.

艾克瑞特: MicroBlocks 在 ICBricks

艾克瑞特一直在努力开发既好玩又能让孩子学到东西的新玩意儿。ICBricks 就是我们特别为 1-2 年级的小朋友们设计的一款超级有趣的动力积木套装。它不仅有传统积木的基本特性,还加入了激光距离传感器、手势识别模块、陀螺仪、编码器和伺服电机等高科技组件,让孩子们能做很多互动性强、好玩的项目。

我们把 ICBricks 和 MicroBlocks 结合起来。

MicroBlocks 使用起来非常方便,而且考虑到在 vm 运行脚本,不用重新编译,不用在意底层细节,而且又很快又方便,小朋友就算没学过编程也能很快上手。

我和团队一起开发了一些新的积木块,并调整了 MicroBlocks 的一些设置,包括积木库,MicroBlocksVM 和 多国语言翻译(目前正在测试)确保它们可以无缝配合。

积木库目前包含了主控器、传感器、执行器:

MicroBlocksVM 针对 IC Bricks 支持,例如 A,B 按键、积木库支持、iic、离线运行/中断程序执行等.

这样一来,小朋友们可以用这些硬件组件实现各种创意想法,还能通过 MicroBlocks 的学习社区不断进步。

我们也在行业内交流中分享 MicroBlocks:

更多合作

中美青年创客大赛上海赛区

MicroBlocks 正与 中美青年创客大赛上海赛区组委会 建立合作:

  1. 与中美青年创客大赛上海赛区组委会展开全面合作,依托上海交通大学、复旦大学、同济大学、华东师范大学等赛事联合承办高校的中美青年创客交流中心共同开展系列大学生创客社团活动和 2025 长三角中美青年创客特训营;
  2. 与中美青年创客大赛上海赛区组委会联合发起 2025 中小学体验赛道,支持举办系列中小学生 MicroBlocks 体验赛事活动和优秀创客赴美研学交流。

这项合作由 @Brent 李 发起和推动.