[英]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.