问题标签 [pigpio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
21 浏览

flask - 如何将 html 页面(flask web 应用程序)上的切换按钮链接到 app.py 中的 python 函数以打开 RPi4 gpio 引脚而无需重新加载页面

烧瓶应用程序已完成并在 RPi4 本地主机上运行。/var/www/Flaskapp Light.html 包含切换按钮 当切换到 on 时,我依次将这些按钮操作/运行 route.py 中的“on 方法”,并在切换时运行/操作 route.py 中的“off 方法”关闭而不重新加载或刷新页面

0 投票
1 回答
34 浏览

python - RPi.GPIO 中断然后让调用者立即返回?

所以现在我有两个功能:

当我运行 dostuff() 时,它会执行 1,注册中断,然后执行 2。当我在执行 2 期间按下按钮时,会调用中断,然后返回到 dostuff() 停止的地方。

我的问题是当我从中断返回时,我希望它在 dostuff() 中调用 return True ,从而提前离开函数调用。基本上作为do stuff 2的中止开关,因为它需要很长时间。

我已经尝试在中断中引发异常并在 dostuff() 中放置一个 try catch,但显然引发异常不会返回给调用者。

添加全局变量并不是一个真正的选择,除非我想在 dostuff() 中的每一行之后进行检查。

将中断调用到代码的不同部分以更改执行是可行的,但是如果我优雅地结束,它最终会返回给令人讨厌且不干净的中断调用者。

有任何想法吗?

0 投票
0 回答
17 浏览

javascript - 尝试打开引脚时 PIGPIO 在 Javascript 错误中

我目前正在尝试运行一个简单的 javascript 文件,该文件会打开我的 LED 灯条的一种颜色。您可以在下面看到我正在尝试运行的代码。

我也尝试使用其他引脚,但我得到了相同的错误(如下)。

我希望有人可以帮助我解决这个问题或其他使用 JavaScript 控制 LED 灯条的建议也会有所帮助。

0 投票
0 回答
51 浏览

javascript - 中断没有正确响应(pigpio)

我正在使用JavaScriptpigpio模块开发我的 Raspberry pi-4,我发现中断有问题,

  1. 如果你开始中断(通过按钮 exp )它将启动一个代码 ,但是如果新的中断出现,直到第一个中断的代码结束之前什么都不会发生(为什么中断对他自己的调用代码没有优先级!?
  2. 如果主代码中存在while循环(无限一个:如while(1))中断将不再起作用!

据我所知,IRQ中断优先于代码中的每一件事。但这不会发生!

0 投票
1 回答
28 浏览

raspberry-pi - MAX5825满量程8位

我使用 MAX5825 作为 RPi 的外部 DAC。
根据数据表,该组件的分辨率为12 位
当我阅读时,我应该在 CODEn (0x8n) 寄存器中写入我想要设置的值,n 是我想要设置的 DAC 通道,然后在 LOADn (0x9n) 寄存器中写入任何内容,或者使用 CODEn_LOADn (0xBn) 注册一步完成。请参阅此处的数据表摘录
我正在使用 pigpio 守护程序库来接口 I²C 通信

这应该将我的 CODE0 寄存器设置为value参数。
但是,我有一个奇怪的行为,所以我尝试从 CODEn (0x80) 寄存器中读取数据,以查看我的设置尝试是否正确。

我不确定我是否可以从命令寄存器中读取一个值,但是当我的值超过 0xFF 时,我从 I²C 读取得到的返回看起来像value & 0xFF。(即,当我将寄存器设置为 0xFF 时,我在寄存器中读取 0xFF,当我将寄存器设置为 0x100 时,我读取 0x00)
此外,当 CODEn 寄存器设置为 0xFF 时,我的 DAC0 通道的输出电压处于最大量程。我使用了 4.0V 内部基准,当我将设置为 0xFF 时,输出电压为 4.0V-ish。
我不明白为什么 0xFF 是 12 位分辨率 DAC 的最大刻度?我是否缺少配置分辨率或类似方法的方法?
到目前为止我已经尝试过:

  • 移除设置值上的 << 4 移位:行为没有变化
  • 反转写入 CODEn 寄存器的 LSByte 和 MSByte(我在 pigpiod API 上看到 SMBus 标准应该在一个字写入过程中发送 LSByte 然后 MSByte): CODEn 寄存器的读取跳过了 0x0FFF 值。MAX5825 应该与 SMBus 标准兼容。
  • 使用i2c_write_block_data代替 pigpiod lib 的 i2c_write_word_data函数:行为没有变化。

谢谢你的时间 !

参考:
MAX5825 数据表:https:
//datasheets.maximintegrated.com/en/ds/MAX5823-MAX5825.pdf pigpio API:https ://abyz.me.uk/rpi/pigpio/pdif2.html

0 投票
0 回答
66 浏览

node.js - 带有 node.js 的 Rapberry Pi GPIO 扩展

我正在使用我的树莓派进行一个需要超过 16 个引脚的项目。我打算使用一些 mcp23017 微芯片来扩展我的 gpio 端口。我目前正在使用 onoff 模块在 node.js 中使用 gpio 我将如何使其工作?我应该改用pigpio吗?

0 投票
1 回答
44 浏览

python - 如何使用 PyCharm (Python) 访问不同网络上的 Raspberry Pi

PyCharm 中的以下代码仅在 PC 和 Raspberry Pi 在同一网络上时才有效。如果我希望 Raspberry Pi 位于不同的网络上,我应该对代码进行哪些更改才能使其正常工作?

0 投票
2 回答
82 浏览

c - 不确定如何处理来自 pigpio 的 CMake 文件

我是 CMake 的新手,希望使用一个非常简单的 Raspberry Pi 应用程序作为学习体验。我在一个简单的目录结构中有几个文件,而且我正在使用pigpio。我的代码可以自行编译,但是当我使用 CMake 生成 makefile 时,makefile 在 pigpio 中找不到引用。pigpioFindpigpio.cmakeutil目录中包含一个文件 , ,所以我尝试将它包含在 中CMakeLists.txt,但无济于事。

文件结构:

这是我的CMakeLists.txt

I mkdir _buildcd _buildcmake ..,这给出了非常有希望的输出:

但是当我运行make时,输出显示它无法引用pigpio的函数:

0 投票
1 回答
44 浏览

javascript - Raspberry-pi 上我的实际用户的 Pigpio 权限被封锁

我正在尝试读取 Raspberry pi 上的 GPIO 端口 5,在尝试了一些类似 onoff 的软件包后,我决定使用 Pigpio。它确实连接到 GPIO,但问题是我没有该用户的权限。它说:

抱歉,您没有运行此程序的权限 尝试以 root 身份运行,例如在命令前加上 sudo。/home/pi/IsriBruster-service/node_modules/pigpio/pigpio.js:54 pigpio.gpioInitialise();

我为调用 gpio 运行的代码是下一个:

谢谢您的帮助!

0 投票
1 回答
39 浏览

c - 如何使用 pigpio SetAlertFunc 正确更改变量?

我想监视一个特定的 GPIO 引脚,该引脚连接了一个按钮,并且根据按下按钮的次数,它会打开一些 LED 灯,让它们闪烁或关闭它们。

代码按预期工作,但是否有适当的方法来设置值current_state而不是将其作为全局变量?此解决方案的主要问题是,当我将其编译为要在 Python 中使用的库时,此函数将中断。