R rPython 远程计算机的 python
R rPython remote computer's python
我想构建一个 Shiny 应用程序并通过它使用 raspberry pi 的 GPIO 引脚控制一些硬件。
如果我在 pi 本身上安装 R 并使用像
这样的代码
library(rPython)
python.exec("
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
GPIO.output(18,GPIO.HIGH)
")
我可以从 raspberry pi 的 R 控制台很好地控制 GPIO 引脚上的输出和输入。但是由于 pi 不能托管 Shiny 服务器,有没有办法可以使用笔记本电脑的 R 会话连接到 pi 的 python 环境并通过 rPython 控制 GPIO 引脚?
或者对该任务还有其他建议吗?
试试 R 的 svSocket
包。这通过 TCP/IP 协议进行通信。使用此软件包,您可以在 pi 上设置服务器。喜欢
require(svSocket)
startSocketServer(port = 9999) # choose your preferred port
while(1)
{
... # some code to do
Sys.Sleep(0.05) # give the system some time to do other things
}
这使您的 pi 可以在 while
语句中做一些事情。同时,您可以向它发送一些代码,这些代码将从 运行 服务器进行评估。
在您计算机上的 R 会话中键入:
require(svSocket)
con <- socketConnection(port = 9999)
evalServer(con, <code to evaluate on your pi>)
这是我在不同计算机上与不同 R 会话交谈的方式。
最好!
马丁
我想构建一个 Shiny 应用程序并通过它使用 raspberry pi 的 GPIO 引脚控制一些硬件。 如果我在 pi 本身上安装 R 并使用像
这样的代码library(rPython)
python.exec("
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
GPIO.output(18,GPIO.HIGH)
")
我可以从 raspberry pi 的 R 控制台很好地控制 GPIO 引脚上的输出和输入。但是由于 pi 不能托管 Shiny 服务器,有没有办法可以使用笔记本电脑的 R 会话连接到 pi 的 python 环境并通过 rPython 控制 GPIO 引脚? 或者对该任务还有其他建议吗?
试试 R 的 svSocket
包。这通过 TCP/IP 协议进行通信。使用此软件包,您可以在 pi 上设置服务器。喜欢
require(svSocket)
startSocketServer(port = 9999) # choose your preferred port
while(1)
{
... # some code to do
Sys.Sleep(0.05) # give the system some time to do other things
}
这使您的 pi 可以在 while
语句中做一些事情。同时,您可以向它发送一些代码,这些代码将从 运行 服务器进行评估。
在您计算机上的 R 会话中键入:
require(svSocket)
con <- socketConnection(port = 9999)
evalServer(con, <code to evaluate on your pi>)
这是我在不同计算机上与不同 R 会话交谈的方式。
最好! 马丁