解决Raspberry PI Zero W中Lua使用lua-periphery与Python中设置的GPIO端口不一致的问题

树莓派实时系统下脚本语言的选择(应当使用Lua而不是Python)中,我们没有使用rpi-gpio,而是使用了lua-periphery来解决Lua语言下操作树莓派GPIO的问题。

当时选择lua-periphery的原因在于rpi-gpioRaspberry PI Zero W中使用的时候会崩溃。这个原因是在于cpuinfo.c这个文件中缺少对于BCM2835这颗新的CPU的判断,只判断了BCM2708估计写这个库的时候,只有BCM2708)。导致RPi_GPIO_Lua_module.c在初始化GPIO的时候抛出了异常。这个已经有人提交了代码合并请求,估计很快会修复。

但是在lua-periphery中,没有对于GPIO进行重新映射,导致跟rpi-gpio以及树莓派自带的Python库在设置GPIO的时候,端口号对应不一致。比如,在Python中设置GPIO 22,执行命令观察ls /sys/class/gpio/,会发现系统创建的是GPIO 25这个对应关系就是通过查表获取的。如下图:
继续阅读解决Raspberry PI Zero W中Lua使用lua-periphery与Python中设置的GPIO端口不一致的问题

Lua的集成开发环境ZeroBrane Studio

目前在使用Lua进行脚本的开发,可是官方并没有提供很好的集成开发环境。
体验了很多,发现ZeroBrane Studio这个开源软件还是非常好用的,并且已经能正常支持LinuxWindowsMacOS这三个主流平台。

 

建议去官方网站下载最新的版本,但是鉴于国内网络访问不是非常稳定,可以从本站下载一份目前最新的版本。

下面的版本根据自身操作系统来选择其中一个进行下载

ZeroBraneStudioEduPack-1.70-linux.sh

ZeroBraneStudioEduPack-1.70-macos.dmg

ZeroBraneStudioEduPack-1.70-win32.exe

树莓派下的编译(目前编译出的暂时无法使用):

参考链接


Debugging Lua Code
Lightweight IDE for your Lua needs ZeroBrane Studio