在 dotPack 上制造「雪崩」的 N 种方法
文章目录
前言
我们在 MicroBlocks 编程案例: dotPack 讨论了如何使用 MicroBlocks 在 dotPack 上制造"雪崩"。
本文将展示在 dotPack 上制造"雪崩"的各种方法:
- MicroBlocks
- C/C++/Arduino
- MicroPython/CircuitPython
- MicroBlocks 固件 + Python 客户端
- 官方固件 + Python 客户端
- 官方固件 + Scratch
- 官方固件 + 浏览器里的 JavaScript
- 官方固件 + 浏览器中的 Python(PyScript/Pyodide)
- MicroBlocks 固件 + Squeak(Smalltalk) 客户端
- 待定…
- LISP(ulisp)
- Javascript
- Lua
- Rust
- Ruby
- Toit
- Prolog
- Forth
- Nim
在硬件层面了解 dotPack
为了在不同的编程语言中对 dotPack 进行编程,我们有必要在硬件层面了解一下 dotPack。
就可编程部分来说, dotPack 是一个由 ESP32 驱动的 16x16 NeoPixel 点阵屏, 控制引脚(Pin)为 12
。
NeoPixel 点阵屏采用 S 形走线方式。
在硬件层面,这个看起来像二维平面的点阵屏,实际是一条一维的 S 形 NeoPixel 灯带。如果你打算自己写底层固件,则一维坐标到二维平面坐标(x,y)的转化,需要自己完成。若使用官方固件,它已经为你完成了这个工作。
制造"雪崩"的 N 种方法
MicroBlocks
接下来,我们将使用 3 种不同的积木库,在 dotPack 上制造雪崩。
- 内置的 NeoPixel 库: 一维坐标
- NeoPixel Matrix: 二维坐标, 简单包装了 NeoPixel 库
- dotPack 库(推荐): 二维坐标, 修改了虚拟机
在开始制造雪崩之前,我们需要做些准备工作,将 dotPack 接入到 MicroBlocks 编程平台上。
刷入固件
为了使用 MicroBlocks 对 dotPack 编程,首先需要为 dotPack 刷入新的固件, 替代内置的官方固件。
这一过程十分简单,在 MicroBlocks 编程环境里(浏览器)即可完成所有操作:
- 将 dotPack 连接到计算机(需要 CH340 驱动)
- 点击左上角设置按钮(齿轮 ⚙️ 图标)
- 点击
升级主板固件
- 点击 ESP32
- 等待完成。
- 提醒: 使用 MicroBlocks 网页刷入 ESP32 固件时,请确保网页处于工作状态,耐心等待完成,不要切换到其他页面,否则会导致刷入的固件不完整。
完成之后,点击页面上方的 USB 图标,点击书包的串口地址,即可将 dotPack 接入硬件编程平台。
如果遇到问题,可以重新插拔下 dotPack 的 usb 线,并刷新下编程页面。
接下来就可以开始制造雪崩了!
方法 1: 内置的 NeoPixel 库: 一维坐标
首先打开内置的 NeoPixel 库
开始编程:
方法 2: NeoPixel Matrix
方法 3:dotPack 库
首先打开 dotPack 库
开始编程:
方法 4: C/C++/Arduino
接下来让我们采用 Arduino 平台制造"雪崩". 我选择 PlatformIO 编程环境。
这可能是硬件编程领域最主流的做法。
|
|
项目源码已经放到 Github: dotPack-Arduino
方法 5: MicroPython
在此使用 Thonny 编辑器。
为了使用 MicroPython 对 dotPack 编程,首先需要往 dotPack 刷入 MicroPython 固件。在 Thonny 编辑器中刷入固件的方法是:
- 打开
运行 > 配置解释器
- 点击右下角的
安装或升级固件
- 下载最新MicroPython ESP32 固件,并选择它
点击安装,等待完成。
之后就可以在 Thonny 里使用 MicroPython 对 dotPack 编程了。
|
|
值得注意的是,如果将 LED 开得过亮,过大的功耗会导致 ESP32 停机(出于保护目的)。这行代码用于调整亮度(最大亮度的 1/5): np[i] = (255//5, 255//5, 255//5)
方法 6: MicroBlocks 固件 + Python 客户端
首先需要在 MicroBlocks 中往 dotPack 刷入 MicroBlocks 固件。在 MicroBlocks 中配置好 WIFI 之后,你可以看到 dotPack 的 IP,之后我们在 Python 客户端中通过这个 IP 连接 dotPack,并对其编程。
|
|
待定…
Toit
Led Strip With Ble Device Using Esp32 And Toit
LISP(ulisp)
AVR NeoPixel driver using assembler
JavaScript
我们使用 espruino ESP32。
下载固件:espruino_2v13_esp32
|
|
在 espruino IDE 里开始编程.
|
|
Ruby
Lua
Forth
Prolog
Rust
Nim
waiting…
参考
文章作者 种瓜
上次更新 2022-05-28