ArduinoYúnBridge

时间:2015-11-09 02:09:41

标签: arduino arduino-yun

最近,我一直在写一个Arduino(Yún)草图来从桥上获取RGB值(0-255)。我在设置中有Bridge.begin(),循环中有以下内容:

Bridge.get("r", r, 4);
Bridge.get("g", g, 4);
Bridge.get("b", b, 4);

哪个应该从桥接器获取值(第一个参数)并将局部变量设置为它(第二个参数)。局部变量r,g和b用char r[4];定义(显然每个都有适当的名称)。我理解所有这些,但是有一个问题:

第一个Bridge.get()调用始终返回\u0001(标题开头)。我通过在循环的开头添加一个虚拟桥来解决这个问题,但这对我来说似乎很奇怪,因为第一个调用在每个循环中返回“标题的开始”。

为什么会有更好的解决方法?

修改

代码通过在Yún的Linux端运行的python脚本放到桥上。以下内容被缩短,因为得出RGB值的代码相当长,很乱,不应该成为问题的一部分(着名的最后一句话:D)。

#!/usr/bin/python
from sys import path
path.insert(0, '/usr/lib/python2.7/bridge')
from bridgeclient import BridgeClient
link = BridgeClient()
link.put("r", str(int(r)))
link.put("g", str(int(g)))
link.put("b", str(int(b)))

arduino代码(再次删节)如下:

#include <Process.h>
char r[4];
char g[4];
char b[4];

void setup() {
  Bridge.begin();
}

void loop() {
  Process colo;
  colo.runShellCommand("/mnt/sda1/colours.py");
  while (colo.running());
  Bridge.get("r", r, 4); //this command(whatever key it’s getting) always returns \u0001
  Bridge.get("r", r, 4);
  Bridge.get("g", g, 4);
  Bridge.get("b", b, 4);
}

0 个答案:

没有答案