0

制作一根属于你自己的魔杖🪄

 7 months ago
source link: http://wwj718.github.io/post/%E7%BC%96%E7%A8%8B/microblocks-snap-wand/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

制作一根属于你自己的魔杖🪄

2024-02-06

WandGuide3.jpg

Jackson 资助的两次美国之行, 都对我产生了深刻影响。

第一次是参加 Open edX 大会。 之后拜访了 MIT Media LabThe Clubhouse Network, 途中还去了趟洛杉矶环球影城

第二次是参加 CES。 之后拜访了计算机历史博物馆Dynamicland

这篇文章与洛杉矶环球影城有关。

霍格沃茨村的魔杖 🪄

环球影城里最受欢迎的景点之一,是霍格沃茨村。

坐落在霍格沃茨城堡脚下,这个被白雪覆盖的巫师村庄充满了魔法商店、诱人酒馆…

在这个魔法村子里, 你可以使用互动魔杖施展法术.

只需轻轻一抖手腕和念出正确的咒语(Incendio!),就可以在霍格沃茨村的十几个地点施展咒语。当心! 这些咒语将直接作用于你身处的现实世界!

为了实施魔法, 你得有一根自己的魔杖 🪄。任何上过魔法学校的人都知道,不仅是你在挑选魔杖,魔杖也在挑选你.

这个视频展示了一个孩子在霍格沃茨村购买魔杖的过程,仪式感十足。

魔法的背后

我在石头上蚀刻了一幅图案,内有几何图形种种,在不明者眼中,显得神秘而又复杂,但我明白,只要布局正确,这块石头将被赋予一种特殊的能力,对一种至今无人说过的咒语作出反应。我用这种语言提问,石头会显灵应答: 那是一个我用符咒创造的世界,一个在石头图案内想象的世界。
几百年前,在我的新英格兰故乡,我所干的这种事,说出来也许会把我送上火刑架。然而我的工作丝毫不涉及巫术。我从事计算机设计和计算机编程。那石头是硅芯片,那咒语是程序…… – 《通灵芯片》

计算和魔法有着惊人的相似性, 上述话语中很好地捕捉了这种相似性。

霍格沃茨村的魔法由计算提供支持。那儿的魔法是一种物理计算 – 作用于现实世界的计算。

令人意外的是, 这些魔杖没有任何计算装置, 没有芯片也没有传感器。

那么计算究竟是如何发生的?

环球影城没有公开更多的技术细节, 根据网上的分析, 我们得知计算发生在环境中。环境里提供了两种计算能力(在不同的场景中使用):

特定的魔法景点周围,暗藏了红外摄像头,它们设计得相当隐蔽,这样做是为了不破坏你的沉浸感。魔杖头部涂有一种材料,能够很好地反射红外光, 这样摄像头就能够跟踪它的轨迹,识别出咒语。

那些受魔法影响的物件通常由计算机驱动舵机来控制它们。

看来魔法就只是一些机器视觉/语音识别 + 物理计算! 我们似乎可以使用 MicroBlocks 来复现它们 !

之前的尝试

从霍格沃茨村回到 Neverland(CodeLab 的办公室), 我制作了几种不同的魔杖:

这些魔杖的实现各有不同, 有些基于机器视觉,有些基于惯性传感器。

在遇到 Kano Wand 之后, 发觉这些尝试都不如人意。

Kano Wand

Neverland 里有许多不同的魔杖 🪄, Kano Wand 是我最喜欢的一根。

Kano Wand 内置了惯性传感器, 能够精准地跟踪其运动轨迹, 使得实施魔法的过程非常逼真细腻。它的软件设计得十分出色, 实时显示的咒语轨迹加上出色的音效配合, 使得整个体验充满戏剧性。

Kano Wand 是如此地出色, 很快我们就不满足于内置的软件功能, 我们迫切渴望将魔杖带到更广阔的天地,使其影响现实世界! 就像所有巫师 🧙 那样!

因此,我们必须破解它 ! 解除它的封印, 将它从封禁的软件世界里解救出来。

破解后的魔杖,就能够将魔法自由地作用于 Neverland 里头任何事物。

这就有点霍格沃茨村的味道了。 由于 Kano Wand 内置了传感器, 可以更加自由地实施魔法, 不像霍格沃茨村,需要在在固定位置施咒。

由于 Kano Wand 的出色体验及其昂贵的价格,以至于很长的一段时间里我都想自己制作一根与其相似的魔杖。

microblocks-snap-wand-01.png

我希望自己制作的魔杖易于理解也易于破解, 这样我们就能够将它混合到更多的想法中。

困于硬件编程能力不足,迟迟没有实施。

好在现在我们有了 MicroBlocks !

制作像 Kano Wand 那样魔杖, 需要完成以下几个部分:

  • 硬件(MicroBlocks)
  • 软件(Snap!)
  • 外形(3D 打印)

我们接下来分别讨论它们。

硬件(MicroBlocks)

Kano Wand 内置了一个微控制器(NRF52832), 以及惯性传感器。

这个硬件单元对外提供出蓝牙(BLE)服务, 当蓝牙客户端连接它之后, 它会源源不断地向客户端广播坐标信息。

由于 MicroBlocks 过去几个月在无线编程方面取得的进展, 我们得到了一个非常强大而通用的基础设置。

使用最新的 MicroBlocks 固件,在没有进行任何编程的情况下,我们几乎免费得到了制作一根魔杖的基础设置:

  • 可供选择的多种微控制器。 考虑到成本, 我偏向于使用 ESP32-C3(支持蓝牙, 只要几块钱! )
  • 通用的无线编程固件, 支持多种客户端: Scratch/Snap!/Python…
  • 内置的惯性传感器驱动(MPU6050, MPU6886…)

更为重要的是, 使用 MicroBlocks , 在图形化环境中就能够完成所有工作。 这使得没有计算机背景的人能够轻松理解并参与其中(计算的民主化)。

MicroBlocks 中的硬件编程部分只负责向客户端报告坐标信息,至于咒语如何识别,则由软件部分(Snap!)负责.

如何通过惯性传感器获得设备的位置坐标呢? 可参考这篇文章

软件(Snap!)

前边说道:

它(Kano Wand)的软件设计得十分出色, 实时显示的咒语轨迹加上出色的音效配合, 使得整个体验充满戏剧性。

microblocks-snap-wand-02.png

通过分离硬件(下位机)和软件(上位机)的职责, Kano Wand 提供了出色的用户体验。我们可以学习这种架构。

在硬件层面使用 MicroBlocks, 软件层面使用 Snap! 。

我查看了 Kano Wand 的软件代码, 它的外表虽光鲜亮丽, 内部却非常复杂和笨重, Kano 团队为此投入了巨大精力。

由于 Snap! 出色的"活性"和强大的能力, 我们完全可以在积木层面完成所有工作(部分是因为我们之前在 Snap! 构建了许多强大的 primitives)

在 Snap! 里工作不仅更加愉快和高效,而且拥有极其出色的可理解性, 你可以把轨迹识别算法的实施细节直观地介绍给任何入门者 !

咒语的轨迹识别算法, 我偏好使用华盛顿大学在这篇论文里贡献的算法, 它简单而通用, 识别效果非常好。你可以在这里体验

Jens(Snap! 的作者) 在 Snap! 中已经实现了这个算法, 他不仅分享了项目源码, 而且录制了一个细致而充满热情的教学视频

算法并不关心坐标信息是如何输入的, 因此我们可以使用 Snap! 来替代 Kano Wand 的软件, 仅用到 Kano 的传感器数据:

甚至直接使用手指施咒:

魔杖的外形可以通过 3D 打印完成。 许多 3D 打印的社区都有现成的魔杖模型: thingiverse: wand

多段打印可能比较容易实施。手持的一段需要是空心的,用于放置硬件模块,具体设计可以模仿 Kano Wand: 电路板设计为长条型, 2 节 7 号电池并排放置。

制作一根能够作用于现实世界的魔杖 🪄 是我一直以来的愿望。 这也是 物理计算 的绝佳用例。

使用 MicroBlocks 和 Snap! 可以制作出一根属于你自己的魔杖, 它拥有以下特质:

  • 低成本。 Kano Wand 最新的售价是 1500+。 让我们将价格打下来! 基于本文制作的魔杖, 硬件成本大约是 20 块钱, 加上 3D 打印的外壳和七七八八的其他东西, 50 块钱似乎可以搞定!
  • 可理解性。 魔杖的硬件部分(固件)和软件部分(客户端)都完全在图形化编程中完成, 可以被任何的入门学习者理解 !
  • 项目式风格。 魔杖的制作过程是项目式的,涉及不同领域的协作: 软件、硬件、3D打印。不同的部分很容易模块化, 可以按需替代, 如果想要引入神经网络相关知识,可以在软件部分,将咒语识别算法,替换成基于神经网络的版本。 因此围绕魔杖主题,可以源源不断推出有趣的教学内容。如果你见识过环球影城中孩子们对魔杖的喜爱程度,很可能认为这样的课程将大受追捧。
  • 可扩展性。 也许可以持续不断地推出不同的 Wand Kit, 魔法可以作用在不同的物理计算设备上。甚至可以构建一个大型 Kit: 包含舞台剧中的大多数道具,这些道具都可以被魔法影响!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK