목차
Requirements
Installation
IoT 和 Lua
Lua 解锁 IoT
운영 및 유지보수 엔진스 Lua로 라즈베리 파이 제어하기

Lua로 라즈베리 파이 제어하기

Jun 10, 2023 am 09:07 AM
lua 라즈베리 파이

用 Lua 控制你的树莓派

Lua는 가끔 오해를 받기도 하는 언어입니다. Python 및 기타 프로그래밍 언어와 달리 이 언어는 일반적인 확장 언어이며 게임 엔진, 프레임워크 등에 널리 사용됩니다. 전반적으로 Lua는 개발자에게 유용한 도구로, 개발자가 강력한 방식으로 프로젝트를 향상하고 확장할 수 있게 해줍니다.

Seth Kenlon의 기사 "Lua를 배울 가치가 있나요?"를 따라가실 수 있습니다. 》일반적으로 사용되는 Lua 다운로드 및 실행을 소개하는 기사에는 간단한 Lua 코드 예제도 포함되어 있습니다. 하지만 Lua를 최대한 활용하려면 해당 언어를 채택한 프레임워크와 함께 사용하는 것이 가장 좋습니다. 이 튜토리얼에서는 Lua 프로그래머가 IoT 및 웹 애플리케이션을 쉽게 코딩할 수 있도록 설계된 Mako Server라는 프레임워크를 사용하는 방법을 보여줍니다. 또한 API를 사용하여 Raspberry Pi의 GPIO 핀을 사용하여 이 프레임워크를 확장하는 방법도 보여주었습니다.

Requirements

이 튜토리얼을 따르기 전에 로그인할 수 있는 실행 중인 Raspberry Pi가 필요합니다. 이 튜토리얼에서는 C 코드를 컴파일하겠지만 C 코딩에 대한 경험은 필요하지 않습니다. 그러나 POSIX 터미널을 사용한 경험이 필요합니다.

Installation

먼저 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 停止服务器。

IoT 和 Lua

现在 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 서버를 중지합니다.

IoT 및 Lua

이제 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
로그인 후 복사
로그인 후 복사
🎜다음 콘텐츠를 🎜Nano Editor🎜에 복사하고 파일을 저장하세요. 🎜
-- 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 打印到跟踪(控制台)。
  • 通过调用 LED 对象上的 write 方法并将布尔值 true 传递给它来激活 LED,该值设置 LED 的最大亮度。
  • 通过调用 ba.sleep(3000) 等待 3 秒。
  • 将消息 Turn LED off 打印到跟踪。
  • 通过调用 LED 对象上的 write 方法并将布尔值 false 传递给它来停用 LED,这会将 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 秒。成功!

Lua 解锁 IoT

在本入门教程中,你学习了如何编译 Mako 服务器,包括 GPIO Lua 模块,以及如何编写用于打开和关闭树莓派 LED 的基本 Lua 脚本。在以后的文章中,我将在本文的基础上进一步介绍 IoT 功能。

그동안 문서를 읽고 Lua 주변 GPIO 라이브러리에 대해 자세히 알아보고 기능과 다양한 주변 장치와 함께 사용하는 방법을 알아볼 수 있습니다. 이 튜토리얼을 최대한 활용하려면 Interactive Mako Server Lua 튜토리얼을 따라 Lua, 웹 및 IoT를 더 잘 이해해 보세요. 즐거운 코딩하세요!

위 내용은 Lua로 라즈베리 파이 제어하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Nginx에 대한 Lua 지원을 설치하고 구성하는 방법 Nginx에 대한 Lua 지원을 설치하고 구성하는 방법 Jun 02, 2023 pm 10:01 PM

Nginx 설치 및 구성 Lua 지원 기본적으로 Nginx는 Lua 모듈을 지원하지 않습니다. LuaJIT 인터프리터를 설치하고 Nginx를 다시 컴파일해야 하거나 중국인이 개발한 openrestry에 필요한 모듈인 LuaJIT, Ngx_devel 및 lua-nginx-module1을 사용할 수 있습니다. . 환경 준비 [root @nginx_lua~]#yuminstall-ygccgcc-c++makepcre-develzlib-developenssl-devel2. 최신 luajit 및 ngx_devel_kit 및 lua-nginx-module 압축 해제 [r

mysql을 운영하기 위해 nginx와 lua를 통합하는 방법 mysql을 운영하기 위해 nginx와 lua를 통합하는 방법 May 16, 2023 pm 10:43 PM

구현 아이디어는 nginx에서 직접 블랙리스트를 구성하고 논리 블록을 작성하여 구현하는 것입니다. 서버(Java)에 필터를 작성하고 서버(Java)에 인터셉터를 통합합니다. 차단; 여기에 3가지 구현 아이디어가 있습니다. 구현 솔루션에 관해서는 더 있을 수 있지만 생각해 보면 nginx에서 논리 블록을 작성하는 것은 많은 사람들이 잘하는 것 같지 않습니다. 코드 수준이지만 이것은 첫째, 높은 동시성이 관련된 피크 비즈니스 기간 동안 필연적으로 백엔드 서비스에 더 큰 압력을 가할 것입니다. 그렇다면 이를 처리할 수 있는 다른 더 좋은 방법이 있습니까? 이것이 제가 lua에 대해 말하고 싶은 것입니다. 즉, nginx는 lua를 통합할 수 있기 때문에 nginx는 게이트웨이 역할을 하고 여전히 프록시 서버 역할을 합니다.

Vue.js와 Lua 언어를 통합하여 경량 임베디드 애플리케이션 작성 Vue.js와 Lua 언어를 통합하여 경량 임베디드 애플리케이션 작성 Jul 31, 2023 pm 02:23 PM

경량 임베디드 애플리케이션을 작성하기 위한 Vue.js와 Lua 언어의 통합 현대 개발에서는 프런트 엔드 프레임워크 Vue.js와 스크립팅 언어 Lua가 각각 광범위한 애플리케이션을 가지고 있습니다. Vue.js는 사용자 인터페이스 구축을 위한 진보적인 프레임워크인 반면, Lua는 임베디드 애플리케이션 및 게임 개발에 자주 사용되는 경량 스크립팅 언어입니다. 이 기사에서는 Vue.js를 Lua 언어와 통합하여 경량 임베디드 애플리케이션을 작성하는 방법을 소개하고 코드 예제를 제공합니다. 먼저 Vue.j를 설치해야 합니다.

Raspberry Pi의 5가지 독특한 용도 Raspberry Pi의 5가지 독특한 용도 Jul 09, 2023 pm 02:10 PM

최근 컨퍼런스 콜에서 누군가 오픈 소스 커뮤니티는 호기심과 문제 해결 문화의 결합이라고 말하는 것을 들었습니다. 호기심은 문제 해결의 기초입니다. 모든 규모의 문제를 해결할 때 우리는 매우 편리한 Raspberry Pi에서 실행되는 Linux를 포함하여 광범위한 오픈 소스 도구를 사용합니다. 우리 모두는 다양한 삶의 경험을 가지고 있습니다. 그래서 저는 우리 작가 커뮤니티에 그들이 접한 가장 이상한 Raspberry Pi 사용에 대해 물었습니다. 나는 이 놀라운 빌드가 다른 사람들에게 영감을 줄 것이라고 생각합니다. Raspberry Pi로 실험하기 나에게 Raspberry Pi는 홈 네트워크에 추가 개발 리소스를 추가할 수 있는 훌륭한 도구입니다. 새로운 웹사이트를 만들거나 새로운 소프트웨어 도구를 사용해 보고 싶을 때 데스크탑 Lin이

Vue.js 및 Lua 언어 통합, 게임 개발을 위한 프런트엔드 엔진 구축 시 모범 사례 및 경험 공유 Vue.js 및 Lua 언어 통합, 게임 개발을 위한 프런트엔드 엔진 구축 시 모범 사례 및 경험 공유 Aug 01, 2023 pm 08:14 PM

Vue.js와 Lua 언어의 통합, 게임 개발을 위한 프런트엔드 엔진 구축을 위한 모범 사례 및 경험 공유 소개: 게임 개발이 지속적으로 발전함에 따라 게임 프런트엔드 엔진의 선택이 중요한 결정이 되었습니다. 이러한 선택 중에서 Vue.js 프레임워크와 Lua 언어는 많은 개발자의 초점이 되었습니다. 널리 사용되는 프런트엔드 프레임워크인 Vue.js는 풍부한 생태계와 편리한 개발 방법을 갖추고 있으며, Lua 언어는 가볍고 효율적인 성능으로 인해 게임 개발에 널리 사용됩니다. 이 기사에서는 다음 방법을 살펴보겠습니다.

30분 이내에 Raspberry Pi 모니터링 대시보드 구축 30분 이내에 Raspberry Pi 모니터링 대시보드 구축 Jul 16, 2023 pm 08:50 PM

Raspberry Pi의 성능을 알고 싶다면 Raspberry Pi 대시보드가 ​​필요할 것입니다. 이 기사에서는 주문형 모니터링 대시보드를 신속하게 구축하여 Raspberry Pi의 CPU 성능, 메모리 및 디스크 사용량을 실시간으로 확인하고 필요에 따라 언제든지 더 많은 보기와 작업을 추가하는 방법을 보여 드리겠습니다. 이미 Appsmith를 사용하고 있다면 샘플 앱을 직접 가져와서 시작할 수도 있습니다. Appsmith Appsmith는 개발자가 대시보드 및 관리 패널과 같은 내부 애플리케이션을 쉽고 빠르게 구축하는 데 도움이 되는 오픈 소스 로우 코드 애플리케이션 구축 도구입니다. 이는 대시보드를 위한 훌륭한 옵션이며 기존 코딩 방법에 필요한 시간과 복잡성을 줄여줍니다. 이 예시 대시보드에는 다음 통계가 표시됩니다.

idaPro가 앱 복호화 Lua 스크립트를 분석하는 방법 idaPro가 앱 복호화 Lua 스크립트를 분석하는 방법 May 18, 2023 am 08:34 AM

이전 idaPro 디버깅 또는 후킹을 통해 xxtea 암호 해독 키를 얻을 수 있습니다. 서명을 위해 원본 파일을 직접 열 수 있습니다. 서명 값 byds를 볼 수 있습니다. 따라서 우리는 xxtea 복호화 도구(GitHub의 소스 코드에서 컴파일 가능)를 사용하여 복호화를 시도할 수 있습니다. index.luac를 예로 들어 index.luac 복호화 전후의 변경 사항을 살펴보겠습니다. xxtea에 의한 암호 해독 후의 lua 스크립트는 여전히 일반 텍스트가 아닙니다! 이전에 cocos2d 프레임워크 소스 코드와 마스터 apk 디코딩 결과를 바탕으로 xxtea 암호화가 사용된 것으로 판단했으며, 앱의 Lua 스크립트에도 xxtea 암호화 방법임을 확인하는 서명 값이 있습니다.

Java 생태계/Redis에서 Lua 스크립트를 사용하는 방법 Java 생태계/Redis에서 Lua 스크립트를 사용하는 방법 Jun 02, 2023 pm 10:41 PM

1. LUA 설치 Mac에 LUA를 설치하는 것은 매우 간단합니다. Brew 관련 명령을 직접 사용하면 됩니다. Brewinstalllua는 lua-v 명령을 사용하여 lua가 설치되었는지 확인합니다. 1) test.lua 파일을 생성하는 간단한 방법, 내용은 다음과 같습니다. 실행 명령: luatest.lua 출력은 다음과 같습니다. 2. Lua 구문 소개 Lua는 대화형 프로그래밍 및 스크립트 프로그래밍을 제공합니다. 대화형 프로그래밍: 명령줄에 구문을 직접 입력합니다. , 즉시 실행하여 실행 효과를 확인할 수 있습니다. 스크립팅은 프로그래밍입니다. 스크립트 파일을 작성한 다음 실행합니다. 1. 주석 Lua는 한 줄 주석과 여러 줄 주석이라는 두 가지 주석 방법을 제공합니다. 1) 한 줄 주석에는 두 개의 빼기 기호를 사용합니다.--2) 여러 줄 주석--[[여러 줄 주석 여러 줄

See all articles