Control de circuitos eléctricos con Raspberry Pi: LUA

En una entrada anterior hemos visto la forma de controlar desde un programa Python la GPIO y con ello un circuito eléctrico más o menos complejo, ahora vamos a ver como se hace con LUA.

Primero hay que instalar las librerias básicas  como luarocks (Hay que ejecutar los comandos uno a uno), para poder instalar las de GPIO de Raspberry Pi, probaremos rpi-gpio (con una sintaxis idéntica a la vista en Python, pero que da un error de desactualización “SystemError: This module can only be run on a Raspberry Pi!” ) y periphery (que funcionó con facilidad):

  • sudo apt-get install liblua5.1-0-dev
  • sudo apt-get install luarocks

  • sudo apt-get install openssl
  • sudo apt-get install libssl-dev
  • -- Librerias para luarocks
  • sudo luarocks install luarocks
  • sudo luarocks install luasec
  • -- librerias para GPIO
  • sudo luarocks install rpi-gpio
  • sudo luarocks install lua-periphery

El fuente led.lua es el siguiente:

-- led.lua 
-- Programa que enciende un LED 1s
-- Librerias Importa librerias (completan los comandos LUA)
-- Sintaxis https://pypi.python.org/pypi/RPi.GPIO 
--
function Inicio()
 local periphery = require('periphery')
 local GPIO = periphery.GPIO
 print ('Version: ' .. GPIO.version)
 -- Enciende led
 local gpio_out = GPIO(18, "out")
 gpio_out:write(true)
 print('LED ON')
 periphery.sleep(2)
 -- Apaga led
 gpio_out:write(false)
 print('LED OFF')
 gpio_out:close()
end
-- Llamada a la función Inicio
Inicio()

Las librerías GPIO funcionan solamente con LUA 5.1 para la ejecución correcta debemos cambiar los permisos (Hay que evitar lanzar comandos como sudo) y lanzar:

pi@raspberrypi:~ $sudo chmod 755 ./proyectos/LUA/led.lua

pi@raspberrypi:~ $ lua ./proyectos/LUA/led.lua
Version: 1.1.1
LED ON
LED OFF

El funcionamiento es el esperado, e igual al programa Python.