Hands connecting wires to a board

什么 MicroBlocks

MicroBlocks 是一种免费的、类似于 Scratch 的图形化编程语言,可利用它结合具有教育属性的微控制器主板,如 micro:bit、Adafruit Circuit Playground Express 等,进行物理计算学习。

  • MicroBlocks 不要求使用者有任何编程语言的学习经验,小至 9 岁的孩童也能迅速开始使用

  • 当然,MicroBlocks 不是仅为初学者而设计的「玩具」。它可用于学习电子电路,进行科学实验,设计智能化家居场景等,带来更多可能。

为什么说 MicroBlocks 与众不同?

虽然有其他可用于微控制器的积木编程语言,但真正使 MicroBlocks 与众不同的是它结合了实时编程和自动烧录。其他积木编程语言不能够同时兼顾两者,最多支持其中之一——如果有,请给我们发邮件,我们很乐意与之交流。

MicroBlocks 是如何工作的?

MicroBlocks 系统有三个组成部分。

  • 编辑器,代码开发期间在电脑上运行。
  • 虚拟机,在微控制器上运行并执行用户的代码。
  • 通信系统,在用户编辑脚本时更新主板上的代码。

编辑器允许用户创建和编辑积木代码。它还管理着提供额外功能的 MicroBlocks 库。一些库支持传感器或输出设备,如伺服机和 NeoPixels。其他库提供了处理文本、列表和音乐的 API。库本身也是用 MicroBlocks 编写的,用户可以对其进行探索、修改和扩展。

像 MicroPython 一样,MicroBlocks 代码被编译成字节码,由微控制器上运行的虚拟机执行。字节码是类似于机器代码的低级指令,但与任何特定的处理器架构无关。这种设计使 MicroBlocks 更容易支持多种类型的 32 位微控制器。事实上,MicroBlocks 虚拟机并不局限于微控制器;它也可以在 Linux 计算机上运行,如树莓派。

如果你想了解更多关于字节码的信息,请看维基上的虚拟机页面。如果你启用了「高级积木」,可以在脚本的右键菜单中查看自己脚本所生成的指令和字节码。这是一个深入了解计算机如何执行代码的好方法。

通信系统将脚本的字节码发送到虚拟机上,并在用户编辑脚本时更新这些字节码。由于脚本被重新编译并以增量同步方式发送到虚拟机上,因此代码可以立即投入使用。更方便你测试和改进代码。

通信系统还会发送命令来启动脚本,并处理来自微控制器的信息,这些信息指示脚本何时停止或返回结果。这使得编辑器能够以图形的方式反馈出微控制器上正在发生的事件。

学习传感器的关键是实时查看其效果。例如,当你抛出和接住 micro:bit 时,加速度是如何变化的?通信系统允许传感器的数值和计算结果显示在一个小的「对话气泡」中。它还支持实时绘制传感器数据的图表。数据可视化是一个强大的工具,让观测者可以用符合直觉的方式理解物理和电气特性的实时变化。