
我们在 MicroBlocks 编程案例: dotPack 讨论了如何使用 MicroBlocks 在 dotPack 上制造"雪崩"。
本文将展示在 dotPack 上制造"雪崩"的各种方法:
为了在不同的编程语言中对 dotPack 进行编程,我们有必要在硬件层面了解一下 dotPack。
就可编程部分来说, dotPack 是一个由 ESP32 驱动的 16x16 NeoPixel 点阵屏, 控制引脚(Pin)为 12。
NeoPixel 点阵屏采用 S 形走线方式。

在硬件层面,这个看起来像二维平面的点阵屏,实际是一条一维的 S 形 NeoPixel 灯带。如果你打算自己写底层固件,则一维坐标到二维平面坐标(x,y)的转化,需要自己完成。若使用官方固件,它已经为你完成了这个工作。
接下来,我们将使用 2 种不同的积木库,在 dotPack 上制造雪崩。
在开始制造雪崩之前,我们需要做些准备工作,将 dotPack 接入到 MicroBlocks 编程平台上。
为了使用 MicroBlocks 对 dotPack 编程,首先需要为 dotPack 刷入新的固件, 替代内置的官方固件。
这一过程十分简单,在 MicroBlocks 编程环境里(浏览器)即可完成所有操作:
升级主板固件
完成之后,点击页面上方的 USB 图标,点击书包的串口地址,即可将 dotPack 接入硬件编程平台。
如果遇到问题,可以重新插拔下 dotPack 的 usb 线,并刷新下编程页面。
接下来就可以开始制造雪崩了!
首先打开内置的 NeoPixel 库

开始编程:


接下来让我们采用 Arduino 平台制造"雪崩". 我选择 PlatformIO 编程环境。
这可能是硬件编程领域最主流的做法。
|
|
项目源码已经放到 Github: dotPack-Arduino
如果你选择 Arduino IDE 作为 Arduino 编程环境, 可参考Installing ESP32 Board in Arduino IDE 2.0
在此使用 Thonny 编辑器。
为了使用 MicroPython 对 dotPack 编程,首先需要往 dotPack 刷入 MicroPython 固件。在 Thonny 编辑器中刷入固件的方法是:
运行 > 配置解释器安装或升级固件
点击安装,等待完成。
之后就可以在 Thonny 里使用 MicroPython 对 dotPack 编程了。

|
|
值得注意的是,如果将 LED 开得过亮,过大的功耗会导致 ESP32 停机(出于保护目的)。这行代码用于调整亮度(最大亮度的 1/5): np[i] = (255//5, 255//5, 255//5)
首先需要在 MicroBlocks 中往 dotPack 刷入 MicroBlocks 固件 (这个固件的 dotPack 驱动是早期版本,可能已经失效)。在 MicroBlocks 中配置好 WIFI 之后,你可以看到 dotPack 的 IP,之后我们在 Python 客户端中通过这个 IP 连接 dotPack,并对其编程。
|
|
如果你之前将固件刷为了第三方固件(如MicroBlocks/MicroPython),需要将固件重新刷回官方固件, 方法如下:

烧录的过程不要离开当前页面。完成之后断开连接,重新插拔板子 USB 接口。
如果一切正常,你应该能够在板子上看到滚动显示的 “dotPack”。
接下来我们就可以使用 Python 客户端对其进行编程了。
推荐使用 JupyterLab 作为编程环境。
开始之前,需要先在 JupyterLab 中安装 dotpack 库: !pip install dotpack
为了对 dotPack 进行编程,首先需要知道它的蓝牙地址, 书包里有一个铭牌写了书包地址. 也可以通过以下脚本发现书包的蓝牙地址:
|
|
有了书包地址,就可以开始对它进行编程了(开机3分钟之内允许被发现和连接)。
|
|
由于官方主推使用 Python 对 dotPack 进行编程, dotPack 主页和文档 对此有更多介绍。
todo…
AVR NeoPixel driver using assembler
我们使用 espruino ESP32。
下载固件:espruino_2v13_esp32
|
|
在 espruino IDE 里开始编程.
|
|
DeviceScript: TypeScript for Tiny IoT Devices (ESP32, RP2040, …)
waiting…

我们在 MicroBlocks 编程案例: dotPack 讨论了如何使用 MicroBlocks 在 dotPack 上制造"雪崩"。
本文将展示在 dotPack 上制造"雪崩"的各种方法:
为了在不同的编程语言中对 dotPack 进行编程,我们有必要在硬件层面了解一下 dotPack。
就可编程部分来说, dotPack 是一个由 ESP32 驱动的 16x16 NeoPixel 点阵屏, 控制引脚(Pin)为 12。
NeoPixel 点阵屏采用 S 形走线方式。

在硬件层面,这个看起来像二维平面的点阵屏,实际是一条一维的 S 形 NeoPixel 灯带。如果你打算自己写底层固件,则一维坐标到二维平面坐标(x,y)的转化,需要自己完成。若使用官方固件,它已经为你完成了这个工作。
接下来,我们将使用 2 种不同的积木库,在 dotPack 上制造雪崩。
在开始制造雪崩之前,我们需要做些准备工作,将 dotPack 接入到 MicroBlocks 编程平台上。
为了使用 MicroBlocks 对 dotPack 编程,首先需要为 dotPack 刷入新的固件, 替代内置的官方固件。
这一过程十分简单,在 MicroBlocks 编程环境里(浏览器)即可完成所有操作:
升级主板固件
完成之后,点击页面上方的 USB 图标,点击书包的串口地址,即可将 dotPack 接入硬件编程平台。
如果遇到问题,可以重新插拔下 dotPack 的 usb 线,并刷新下编程页面。
接下来就可以开始制造雪崩了!
首先打开内置的 NeoPixel 库

开始编程:


接下来让我们采用 Arduino 平台制造"雪崩". 我选择 PlatformIO 编程环境。
这可能是硬件编程领域最主流的做法。
|
|
项目源码已经放到 Github: dotPack-Arduino
如果你选择 Arduino IDE 作为 Arduino 编程环境, 可参考Installing ESP32 Board in Arduino IDE 2.0
在此使用 Thonny 编辑器。
为了使用 MicroPython 对 dotPack 编程,首先需要往 dotPack 刷入 MicroPython 固件。在 Thonny 编辑器中刷入固件的方法是:
运行 > 配置解释器安装或升级固件
点击安装,等待完成。
之后就可以在 Thonny 里使用 MicroPython 对 dotPack 编程了。

|
|
值得注意的是,如果将 LED 开得过亮,过大的功耗会导致 ESP32 停机(出于保护目的)。这行代码用于调整亮度(最大亮度的 1/5): np[i] = (255//5, 255//5, 255//5)
首先需要在 MicroBlocks 中往 dotPack 刷入 MicroBlocks 固件 (这个固件的 dotPack 驱动是早期版本,可能已经失效)。在 MicroBlocks 中配置好 WIFI 之后,你可以看到 dotPack 的 IP,之后我们在 Python 客户端中通过这个 IP 连接 dotPack,并对其编程。
|
|
如果你之前将固件刷为了第三方固件(如MicroBlocks/MicroPython),需要将固件重新刷回官方固件, 方法如下:

烧录的过程不要离开当前页面。完成之后断开连接,重新插拔板子 USB 接口。
如果一切正常,你应该能够在板子上看到滚动显示的 “dotPack”。
接下来我们就可以使用 Python 客户端对其进行编程了。
推荐使用 JupyterLab 作为编程环境。
开始之前,需要先在 JupyterLab 中安装 dotpack 库: !pip install dotpack
为了对 dotPack 进行编程,首先需要知道它的蓝牙地址, 书包里有一个铭牌写了书包地址. 也可以通过以下脚本发现书包的蓝牙地址:
|
|
有了书包地址,就可以开始对它进行编程了(开机3分钟之内允许被发现和连接)。
|
|
由于官方主推使用 Python 对 dotPack 进行编程, dotPack 主页和文档 对此有更多介绍。
todo…
AVR NeoPixel driver using assembler
我们使用 espruino ESP32。
下载固件:espruino_2v13_esp32
|
|
在 espruino IDE 里开始编程.
|
|
DeviceScript: TypeScript for Tiny IoT Devices (ESP32, RP2040, …)
waiting…