我正在为一个小项目使用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上运行而实际上没有任何事情时的操作。不确定是否是一个问题