Hands connecting wires to a board

什么 MicroBlocks

MicroBlocks 是一种免费/自由的、类似于 Scratch 的图形化编程语言,支持许多具有教育属性的微控制器主板,如 micro:bit、ESP32/ESP8266、树莓派 Pico 等,欢迎使用 MicroBlocks 来学习物理计算。

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

  • MicroBlocks 不是仅为初学者而设计的「玩具」。它可用于学习电子电路,进行科学实验,家庭自动化等,以及更多其他可能。

是什么让 MicroBlocks 与众不同?

虽然有其他可用于微控制器的积木编程语言,但真正使 MicroBlocks 与众不同的是它结合了实时编程和自主运行。其他积木编程语言只能支持其中之一,不能够同时兼顾两者。

MicroBlocks 是如何工作的?

MicroBlocks 系统有三个组成部分:

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

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

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

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

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

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

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