Lua는 가끔 오해를 받기도 하는 언어입니다. Python 및 기타 프로그래밍 언어와 달리 이 언어는 일반적인 확장 언어이며 게임 엔진, 프레임워크 등에 널리 사용됩니다. 전반적으로 Lua는 개발자에게 유용한 도구로, 개발자가 강력한 방식으로 프로젝트를 향상하고 확장할 수 있게 해줍니다.
Seth Kenlon의 기사 "Lua를 배울 가치가 있나요?"를 따라가실 수 있습니다. 》일반적으로 사용되는 Lua 다운로드 및 실행을 소개하는 기사에는 간단한 Lua 코드 예제도 포함되어 있습니다. 하지만 Lua를 최대한 활용하려면 해당 언어를 채택한 프레임워크와 함께 사용하는 것이 가장 좋습니다. 이 튜토리얼에서는 Lua 프로그래머가 IoT 및 웹 애플리케이션을 쉽게 코딩할 수 있도록 설계된 Mako Server라는 프레임워크를 사용하는 방법을 보여줍니다. 또한 API를 사용하여 Raspberry Pi의 GPIO 핀을 사용하여 이 프레임워크를 확장하는 방법도 보여주었습니다.
이 튜토리얼을 따르기 전에 로그인할 수 있는 실행 중인 Raspberry Pi가 필요합니다. 이 튜토리얼에서는 C 코드를 컴파일하겠지만 C 코딩에 대한 경험은 필요하지 않습니다. 그러나 POSIX 터미널을 사용한 경험이 필요합니다.
먼저 Raspberry Pi에서 터미널 창을 열고 다음 도구를 설치하여 코드를 다운로드하고 Git을 사용하여 C 코드를 컴파일합니다.
$ sudo apt install git unzip gcc make
다음으로 다음을 실행하여 오픈 소스 Mako 서버 코드와 lua-periphery를 컴파일합니다. 다음 명령 라이브러리(Raspberry Pi용 GPIO 라이브러리):
$ wget -O Mako-Server-Build.sh \https://raw.githubusercontent.com/RealTimeLogic/BAS/main/RaspberryPiBuild.sh
스크립트를 확인하여 수행하는 작업을 확인하고 괜찮으면 실행하십시오.
$ sh ./Mako-Server-Build.sh
컴파일 프로세스는 특히 이전 버전에서 시간이 걸릴 수 있습니다. 라즈베리 파이가 우수합니다. 컴파일 후 스크립트는 Mako 서버 및 lua-periphery 모듈을 /usr/local/bin/
. 소프트웨어 사용을 단순화하려면 설치하는 것이 좋습니다. 걱정하지 마세요. 더 이상 필요하지 않으면 제거할 수 있습니다. /usr/local/bin/
。我建议安装它以简化软件的使用。别担心,如果你不再需要它,你可以卸载它:
$ cd /usr/local/bin/$ sudo rm mako mako.zip periphery.so
要测试安装,请在终端中输入 mako
。这将启动 Mako 服务器,并在你的终端中看到一些输出。你可以按 CTRL+C
停止服务器。
现在 Mako 服务器已在你的树莓派上设置好,你可以开始对 IoT 和 Web 应用进行编程,并使用 Lua 操作树莓派的 GPIO 引脚。Mako Server 框架为 Lua 开发人员提供了一个强大而简单的 API 来创建物联网应用,而 lua-periphery 模块让 Lua 开发人员可以与树莓派的 GPIO 引脚和其他外围设备进行交互。
首先创建一个应用目录和一个 .preload
脚本,其中插入用于测试 GPIO 的 Lua 代码。.preload
$ mkdir gpiotst$ nano gpiotst/.preload
mako
그러면 Mako 서버가 시작되고 터미널에 일부 출력이 표시됩니다. 차단을 누를 수 있습니다.">CTRL+C 서버를 중지합니다. 이제 Mako 서버가 Raspberry Pi에 설정되었으므로 IoT 및 웹 애플리케이션 프로그래밍을 시작하고 Lua를 사용하여 Raspberry Pi의 GPIO 핀을 조작할 수 있습니다. Mako 서버 프레임워크는 Lua 개발자에게 IoT 애플리케이션을 생성할 수 있는 강력하면서도 간단한 API를 제공하는 반면, lua 주변 모듈을 통해 Lua 개발자는 Raspberry Pi의 GPIO 핀 및 기타 주변 장치와 상호 작용할 수 있습니다. 🎜🎜먼저 애플리케이션 디렉토리와 .preload
스크립트, GPIO 테스트를 위한 Lua 코드를 삽입합니다. .preload
스크립트는 애플리케이션이 시작될 때 Lua 스크립트로 로드 및 실행되는 Mako 서버 확장입니다. 🎜-- Load periphery.so and access the LED interfacelocal LED = require('periphery').LEDlocal function doled()local led = LED("led0") -- Open LED led0trace"Turn LED on"led:write(true) -- Turn on LED (set max brightness)ba.sleep(3000)-- 3 secondstrace"Turn LED off"led:write(false)-- Turn off LED (set zero brightness)led:close()endba.thread.run(doled) -- Defer execution -- to after Mako has started
-- Load periphery.so and access the LED interfacelocal LED = require('periphery').LEDlocal function doled()local led = LED("led0") -- Open LED led0trace"Turn LED on"led:write(true) -- Turn on LED (set max brightness)ba.sleep(3000)-- 3 secondstrace"Turn LED off"led:write(false)-- Turn off LED (set zero brightness)led:close()endba.thread.run(doled) -- Defer execution -- to after Mako has started
上面的 Lua 代码使用你编译并包含在 Mako 服务器中的 Lua-periphery 库控制树莓派 LED。该脚本定义了一个名为 doled
的函数来控制 LED。该脚本首先使用 Lua require
函数加载 periphery
库(共享库 periphery.so)。返回的数据是一个包含所有 GPIO API 函数的 Lua 表。但是,你只需要 LED API,你可以通过在调用 require
后附加 .LED
来直接访问它。接下来,代码定义了一个名为 doled
的函数,它执行以下操作:
periphery
库中的 LED
函数,并将字符串 led0
传给它,打开树莓派主 LED,识别为 led0
。Turn LED on
打印到跟踪(控制台)。write
方法并将布尔值 true
传递给它来激活 LED,该值设置 LED 的最大亮度。ba.sleep(3000)
等待 3 秒。Turn LED off
打印到跟踪。write
方法并将布尔值 false
传递给它来停用 LED,这会将 LED 的亮度设置为零。close
函数关闭 LED
。在 .preload
脚本的末尾,doled
函数作为参数传递给 ba.thread.run
函数。这允许将 doled
函数的执行推迟到 Mako 服务器启动之后。
要启动 gpiotst
应用,请按如下方式运行 Mako 服务器:
$ mako -l::gpiotst
控制台中打印以下文本:
Opening LED:opening 'brightness': Permission denied.
访问 GPIO 需要 root 访问权限,因此按 CTRL+C
停止服务器并重新启动 Mako 服务器,如下所示:
$ sudo mako -l::gpiotst
现在树莓派 LED 亮起 3 秒。成功!
在本入门教程中,你学习了如何编译 Mako 服务器,包括 GPIO Lua 模块,以及如何编写用于打开和关闭树莓派 LED 的基本 Lua 脚本。在以后的文章中,我将在本文的基础上进一步介绍 IoT 功能。
그동안 문서를 읽고 Lua 주변 GPIO 라이브러리에 대해 자세히 알아보고 기능과 다양한 주변 장치와 함께 사용하는 방법을 알아볼 수 있습니다. 이 튜토리얼을 최대한 활용하려면 Interactive Mako Server Lua 튜토리얼을 따라 Lua, 웹 및 IoT를 더 잘 이해해 보세요. 즐거운 코딩하세요!
위 내용은 Lua로 라즈베리 파이 제어하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!