From a8b297e43a214bbebd62bd4b9a6bbc1981be7ab5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 8 Jun 2023 17:05:55 +0800 Subject: [PATCH] RP @geekpi https://linux.cn/article-15888-1.html --- ...⭐️⭐️ Control your Raspberry Pi with Lua.md | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) rename {translated/tech => published}/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md (69%) diff --git a/translated/tech/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md b/published/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md similarity index 69% rename from translated/tech/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md rename to published/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md index d1c741147f..2ed4d99f7c 100644 --- a/translated/tech/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md +++ b/published/20230314.3 ⭐️⭐️ Control your Raspberry Pi with Lua.md @@ -3,16 +3,20 @@ [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15888-1.html" 用 Lua 控制你的树莓派 ====== +![][0] + +> 学习如何使用 Lua 编程语言为物联网(IoT)设备编程,并与树莓派上的通用输入/输出(GPIO)引脚互动。 + Lua 是一种有时会被误解的语言。它与 Python 等其他语言不同,但它是一种通用的扩展语言,广泛用于游戏引擎、框架等。总的来说,我发现 Lua 对开发人员来说是一个有价值的工具,可以让他们以一些强大的方式增强和扩展他们的项目。 -你可以下载并运行常用的 Lua,正如 Seth Kenlon 在他的文章 [Is Lua worth learning][1] 中所解释的那样,其中包括简单的 Lua 代码示例。但是,要充分利用 Lua,最好将它与已经采用该语言的框架一起使用。在本教程中,我演示了如何使用名为 Mako Server 的框架,该框架旨在使 Lua 程序员能够轻松地编写 IoT 和 Web 应用代码。我还向你展示了如何使用 API 扩展此框架以使用树莓派的 GPIO 引脚。 +你可以按照 Seth Kenlon 的文章《[Lua 值得学习吗?][1]》的介绍下载并运行常用的 Lua,该文章中还包括了简单的 Lua 代码示例。但是,要充分利用 Lua,最好将它与采用该语言的框架一起使用。在本教程中,我演示了如何使用名为 Mako Server 的框架,该框架旨在使 Lua 程序员能够轻松地编写 IoT 和 Web 应用代码。我还向你展示了如何使用 API 扩展此框架以使用树莓派的 GPIO 引脚。 ### 要求 @@ -20,20 +24,20 @@ Lua 是一种有时会被误解的语言。它与 Python 等其他语言不同 ### 安装 -首先,在树莓派上打开一个终端窗口并安装以下工具以使用 Git 下载代码和编译 C 代码: +首先,在树莓派上打开一个终端窗口并安装以下工具,以使用 Git 下载代码和编译 C 代码: ``` $ sudo apt install git unzip gcc make ``` -接下来,通过运行以下命令编译开源 Mako Server 代码和 Lua-periphery 库(Raspberry Pi GPIO 库): +接下来,通过运行以下命令编译开源 Mako Server 代码和 lua-periphery 库(树莓派的 GPIO 库): ``` -$ wget -O Mako-Server-Build.sh -https://raw.githubusercontent.com/RealTimeLogic/BAS/main/LinuxBuild.sh \ +$ wget -O Mako-Server-Build.sh \ + https://raw.githubusercontent.com/RealTimeLogic/BAS/main/RaspberryPiBuild.sh ``` -查看脚本以了解它的作用,并在你对它感到满意后运行它: +查看脚本以了解它的作用,并在你觉得没问题后运行它: ``` $ sh ./Mako-Server-Build.sh @@ -46,20 +50,20 @@ $ cd /usr/local/bin/ $ sudo rm mako mako.zip periphery.so ``` -要测试安装,请在终端中输入 `mako`。这将启动 Mako 服务器,并在你的终端中看到一些输出。你可以按 **CTRL+C** 停止服务器。 +要测试安装,请在终端中输入 `mako`。这将启动 Mako 服务器,并在你的终端中看到一些输出。你可以按 `CTRL+C` 停止服务器。 ### IoT 和 Lua -现在 Mako 服务器已在你的树莓派上设置好,你可以开始对 IoT 和 Web 应用进行编程,并使用 Lua 使用树莓派的 GPIO 引脚。Mako Server 框架为 Lua 开发人员提供了一个强大而简单的 API 来创建物联网应用,而 lua-periphery 模块让 Lua 开发人员可以与树莓派的 GPIO 引脚和其他外围设备进行交互。 +现在 Mako 服务器已在你的树莓派上设置好,你可以开始对 IoT 和 Web 应用进行编程,并使用 Lua 操作树莓派的 GPIO 引脚。Mako Server 框架为 Lua 开发人员提供了一个强大而简单的 API 来创建物联网应用,而 lua-periphery 模块让 Lua 开发人员可以与树莓派的 GPIO 引脚和其他外围设备进行交互。 -首先创建一个应用目录和一个 .preload 脚本,其中插入用于测试 GPIO 的 Lua 代码。`.preload` 脚本是一个 Mako 服务器扩展,在应用启动时作为 Lua 脚本加载和运行。 +首先创建一个应用目录和一个 `.preload` 脚本,其中插入用于测试 GPIO 的 Lua 代码。`.preload` 脚本是一个 Mako 服务器扩展,在应用启动时作为 Lua 脚本加载和运行。 ``` $ mkdir gpiotst $ nano gpiotst/.preload ``` -将以下内容复制到 [Nano 编辑器][3]中并保存文件: +将以下内容复制到 [Nano 编辑器][3] 中并保存文件: ``` -- Load periphery.so and access the LED interface @@ -104,7 +108,7 @@ Opening LED: opening 'brightness': Permission denied. ``` -访问 GPIO 需要 root 访问权限,因此按 **CTRL+C** 停止服务器并重新启动 Mako 服务器,如下所示: +访问 GPIO 需要 root 访问权限,因此按 `CTRL+C` 停止服务器并重新启动 Mako 服务器,如下所示: ``` $ sudo mako -l::gpiotst @@ -116,7 +120,9 @@ $ sudo mako -l::gpiotst 在本入门教程中,你学习了如何编译 Mako 服务器,包括 GPIO Lua 模块,以及如何编写用于打开和关闭树莓派 LED 的基本 Lua 脚本。在以后的文章中,我将在本文的基础上进一步介绍 IoT 功能。 -同时,你可以通过阅读它的[文档][5]来更深入地研究 Lua-periphery GPIO 库,以了解有关功能以及如何将其与不同外设一起使用的更多信息。要充分利用本教程,请考虑关注[交互式 Mako Server Lua 教程][6]以更好地了解 Lua、Web 和 IoT。编码愉快! +同时,你可以通过阅读它的 [文档][5] 来更深入地研究 Lua-periphery GPIO 库,以了解有关功能以及如何将其与不同外设一起使用的更多信息。要充分利用本教程,请考虑关注 [交互式 Mako Server Lua 教程][6] 以更好地了解 Lua、Web 和 IoT。编码愉快! + +*(题图:MJ/4514210d-5697-4cd3-8c44-450bbe56be64)* -------------------------------------------------------------------------------- @@ -125,7 +131,7 @@ via: https://opensource.com/article/23/3/control-your-raspberry-pi-lua 作者:[Alan Smithee][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -136,4 +142,5 @@ via: https://opensource.com/article/23/3/control-your-raspberry-pi-lua [3]: https://opensource.com/article/20/12/gnu-nano [4]: https://opensource.com/article/22/11/iterate-over-tables-lua [5]: https://github.com/vsergeev/lua-periphery/tree/master/docs -[6]: https://tutorial.realtimelogic.com/Introduction.lsp \ No newline at end of file +[6]: https://tutorial.realtimelogic.com/Introduction.lsp +[0]: https://img.linux.net.cn/data/attachment/album/202306/08/170454p0tf2a6znfn2kzkf.jpg \ No newline at end of file