繁体   English   中英

Windows 上的 RPi.GPIO 库

[英]RPi.GPIO library on Windows

我正在将 Raspberry Pi 用于一个小项目,但我想在 Windows 上编程,然后将代码传输到 Pi 上。 有没有办法在 Windows 上使用 RPi.GPIO 库? 我正在使用 Python 编写代码

我在 C++ 的树莓派上使用 VisualStudio2017 远程工作。 包括 GPIO 的使用。 远程调试也是可能的。 VisualStudio 也能够在 python 中编程。

我认为应该有人已经完成了。 然后我找到了这些链接:

https://learn.microsoft.com/en-us/visualstudio/python/debugging-cross-platform-remote

将 RPi.GPIO 导入 Visual Studio 中的 Python 项目

到目前为止,它似乎只有在您不使用 Pi only 库时才有效。

另一个解决方案可能是通过 ssh 编辑文件并直接在 pi 上运行它们。 有很多程序可以做到这一点。 我使用 cyberduck 和 sublime text。 要运行程序,请使用腻子。

好的....这是一个旧线程,但我最近在学习 python 时遇到了这个问题,我想出了一个合理的解决方法。

我有一个与此类似的项目结构;

helloworld
├── main.py
├── common
│   ├── foo.py
│   ├── bar.py
│   └── __init__.py
├── rpi
│   ├── __init__.py
│   └── gpio_proxy.py

我创建了自己的rpi包,其中包含一个自定义gpio模块。 这个gpio facade 然后尝试导入 RPi.GPIO 并在不能导入时回退到默认行为。

(我只删掉了我需要的方法和道具,你可能需要添加更多)

_rpiLoaded = True

try:
    import RPi.GPIO as GPIO
except:
    _rpiLoaded = False

class GPIOProxy():
    BCM = GPIO.BCM if _rpiLoaded else 'BCM'

    HIGH = GPIO.HIGH if _rpiLoaded else 'HIGH'
    LOW = GPIO.LOW if _rpiLoaded else 'LOW'

    IN = GPIO.IN if _rpiLoaded else 'IN'
    OUT = GPIO.OUT if _rpiLoaded else 'OUT'

    FALLING = GPIO.FALLING if _rpiLoaded else 'FALLING'
    RISING = GPIO.RISING if _rpiLoaded else 'RISING'
    BOTH = GPIO.BOTH if _rpiLoaded else 'BOTH'

    PUD_UP = GPIO.PUD_UP if _rpiLoaded else 'PUD_UP'
    PUD_DOWN = GPIO.PUD_DOWN if _rpiLoaded else 'PUD_DOWN'

    def setmode(*args, **kwargs):
        if _rpiLoaded:
            GPIO.setmode(*args, **kwargs)
        else:
            pass

    def setwarnings(*args, **kwargs):
        if _rpiLoaded:
            GPIO.setwarnings(*args, **kwargs)
        else:
            pass

    def setup(*args, **kwargs):
        if _rpiLoaded:
            GPIO.setup(*args, **kwargs)
        else:
            pass

    def output(*args, **kwargs):
        if _rpiLoaded:
            GPIO.output(*args, **kwargs)
        else:
            pass

    def add_event_detect(*args, **kwargs):
        if _rpiLoaded:
            GPIO.add_event_detect(*args, **kwargs)
        else:
            pass

然后在项目的其余部分,你可以导入你的外观并正常使用,显然,你不会得到任何 GPIO 行为......但至少它会挂在一起并且你可以对它进行单元测试。

我没有考虑到的; 当代码在 RPi 上运行但未安装 RPi.GPIO 库时,此解决方案将像在 Windows 上运行时一样运行,实际上不执行任何操作。 如果您的项目在运行之前安装了所有依赖项,则不确定这是否是一个问题 =]

我正在使用Raspberry Pi做一个小项目,但我想在Windows上编程,然后再将代码传输到Pi上。 有什么方法可以在Windows上使用RPi.GPIO库吗? 我正在使用Python进行编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM