RPi.GPIO library on Windows



我正在为一个小项目使用Raspberry Pi,但我想在Windows上编程,然后随后将代码传输到PI上。有什么方法可以在Windows上使用rpi.gpio库?我正在使用Python在

中代码

我在C 的Raspberry上使用VisualStudio2017的远程工作。包括使用GPIO。远程调试也是可能的。VisualStudio也能够在Python中编程。

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

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

将rpi.gpio导入Visual Studio中的Python项目

到目前为止

另一个可能是通过SSH编辑文件并在PI上直接运行文件。为此有很多程序。我使用Cyberduck和Sublime文字。运行程序,请使用PUTTY。

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

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

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

我已经创建了自己的rpi软件包,其中包含自定义gpio模块。然后,此gpio立场尝试导入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上运行而实际上没有任何事情时的操作。不确定是否是一个问题

最新更新