探索 MicroLua:RP2040 的 Lua 编程

探索 RP2040 的 MicroLua 标题图片

您是否曾经想深入 Lua 编程世界并探索 RP2040 微控制器的功能?MicroLua 为您提供了一个令人兴奋的机会!

在本文中,我将深入探讨 MicroLua 是什么,它是如何工作的,以及为什么我认为它对开发人员来说是一个超级有价值的工具。

我想向以下人员致以最崇高的敬意 雷米-布兰克 开发 MicroLua 并与世界共享。Remy 采用 MIT 许可(Lua 本身也采用 MIT 许可)发布了该软件,从而使 MicroLua 成为人人可用的软件。

我很想在未来的项目中使用它。

什么是 MicroLua? 什么是 RP2040?

因此,MicroLua 使用 Lua 实现并对其进行打包。

Lua 是一种动态类型的多范式语言。当然,它也是速度最快的脚本语言之一。它的体积也超小(源代码和文档加起来只有 1.3 MB!)。

因此,它速度快、体积小,非常适合在大型应用程序中嵌入某些内容。

Lua 还有 21 个高亮关键字和相当简单的语法,因此学习起来相对简单。

但是,如果你不熟悉 Lua,那么大家都会抱怨它是一种基于 1 索引的语言。老实说,我每次都会被这一点所困扰。

下面是一个 Lua 的示例,大家可以看看:

来自 Lua.org 的 Lua 示例
学分 lua.org.

Remy 专门为 RP2040 微控制器设计了 MicroLua 程序。

RP2040 微控制器是 Raspberry Pi 的内部芯片,可驱动一个 皮克.不过,Raspberry Pi 还可以销售 RP2040 芯片 另外因此,您还可以在其他电路板中找到 RP2040,例如 Adafruit Feather.

因此,MicroLua 为这些电路板打包了 Lua。在这种情况下,MicroLua 集成了最新的 Lua 解释器(5.4 版)和以下接口 Pico 软件开发工具包 并包括一个合作线程库。

通过将 Lua 解释器与 Pico 接口相结合,MicroLua 可让您访问 GPIO 引脚和定时器。我非常喜欢 Remy 提供的合作线程库。因此,如果你有一个 Pico,就可以同时使用两个内核。

此外,MicroLua 还支持 Fennel,所以如果你喜欢 Lisp(比如我),你仍然可以使用 MicroLua。想在 Raspberry Pi Pico 上使用类似 Lisp 的语言?雷米让这一切变得简单得令人发指。

MicroLua 入门

要设置 MicroLua,您需要克隆 智囊团初始化子模块,并按照提供的构建说明进行操作。

GitHub 上有以下代码,可以启动并运行测试套件:

# Configure the location of the Pico SDK. Adjust for your setup.
$ export PICO_SDK_PATH="${HOME}/pico-sdk"

# Clone the repository and initialize submodules.
$ git clone https://github.com/MicroLua/MicroLua.git
$ cd MicroLua
$ git submodule update --init

# Connect a Picoprobe to the target, on the UART and optionally on the debug
# port. Then view the Picoprobe's UART connection in a separate terminal.
# The "term" script uses socat.
$ tools/term /dev/ttyACM0

# Build the unit tests.
$ cmake -s . -B build -DPICO_BOARD=pico
$ make -j9 -C build/lib

# Start the target in BOOTSEL mode and flash it with picotool.
$ picotool load -v -x build/lib/mlua_tests.elf

# Alternatively, start the target in BOOTSEL mode and copy to its boot drive.
$ cp build/lib/mlua_tests.uf2 /mnt/RPI-RP2/

一旦你掌握了这些,你就可以开始了。

我应该提及的是,Remy 发现了 MicroLua 性能方面的一些问题。首先是事件派发延迟相对较慢,需要改进。

此外,如果您前往 GitHub 页面此外,雷米还制定了一份路线图,为 Pico SDK、文件系统和多芯片通信提供更多绑定。此外,雷米还希望改进线程性能、跨核通信,并调整垃圾回收器。

因此,这是一个充满活力、值得关注的项目。

视频中的小程序是我用 MicroPython 写的,但下次我会用 Fennel 和 MicroLua!

总结

既然你已经掌握了它,那就开始你的下一个 Pico 项目吧。世界就在你的手中!

看到这个项目,我首先想到的是 用于 ESP32 的 Lua 实时操作系统.因此,如果您正在考虑使用微控制器的 Lua 选项,请务必查看该项目。

如果您需要一些灵感,可以查看我们介绍过的一些 Pico 项目:

此外,如果您有 Pico W,别忘了将它连接到 码头这样,您就可以在世界任何地方通过互联网连接到它。

您打算用 MicroLua 创建什么项目?我非常期待在下一个 Pico 项目中使用 Fennel!

发表评论