问题标签 [firmata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
340 浏览

javascript - 使用firmata.js 时,Tinkerkit 的 braccio 电源出现故障

我正在尝试使用firmata.js 控制Tinkerkit 的braccio(https://store.arduino.cc/tinkerkit-braccio)。我有一个 Arduino UNO,并在上面上传了 StandardFirmata。

Braccio 由 6 个伺服系统制成,并带有一个防护罩。

问题是尝试使用firmata.js 控制伺服系统没有任何效果,即使引脚正确设置为SERVO 模式。我用示波器检查了一下,当我开始在 Arduino 上运行 StandardFirmata 时,发现屏蔽板上的电源引脚没有保持在 5V。PWM 信号很好。

我应该尝试在没有屏蔽的情况下直接在 Arduino 上连接伺服系统吗?

当我在仅使用 braccio 库的 Arduino 上运行脚本时,它运行良好,电源引脚始终为 5V。出于这个原因,我认为这与屏蔽无关,但我在firmata 的库中也没有发现这个问题的迹象。所以我已经没有想法了。

有没有人遇到过这样的事情?

不知道它是否有帮助,但这是一段代码。它仍然非常基本:

0 投票
1 回答
523 浏览

arduino - 通过 johnny-5 连接到 nodemcu 的问题

我真的很难连接到我的 ESP8266。我已经用这个设置工作了很长时间,而且我不需要刷我的电路板。现在,在不得不使用不同的 wifi 之后,我需要刷新电路板。执行以下操作后

  • 更新到最新的 ConfigurableFirmata
  • 使用 FirmataBuilder 下载拟合firmata
  • 将固件上传到 ESP8266

我无法再通过 Johnny-Five 连接(出现通常的超时错误)。我无法缩小它的确切范围(我一直在尝试一整天),但这些是我注意到的(直接使用 ConfigurableFirmata 以及使用 Firmatabuilder 和 StandardWifiFirmata,都具有相同的行为)

  • 即使我处于客户端模式,也会创建一个开放的热点
  • 扫描端口时,我确实找到了连接到我的 Wifi 的模块(调试中的串行监视器也告诉我同样的情况)但没有找到打开的端口,即使它在固件中指定。

我只是无法缩小原因。我希望你们可以。

0 投票
1 回答
619 浏览

python - 定义引脚时的 InvalidPinDefError

我正在尝试使用 pyfirmata 在 Arduino Uno R3 和我的 python 程序之间发送和接收数据。在 Arduino 安装了 StandartFirmata 草图。代码是:

但我有一些奇怪的错误:

当我评论所有行时,除了

它有效,但我无法理解其他引脚有什么问题。当我向 Arduino 编写测试草图时,它们非常好并且工作正常。

0 投票
1 回答
837 浏览

python - PyFirmata 数字输入在调试时接收无

我正在用一些例子研究 pyFirmata 协议。作为练习,我正在做 PIR 传感器系统。当我运行代码 pyFirmata 时,总是输出“无”值。但是,如果我在 PyCharm 中进行调试,则一切正常。在 Arduino 上上传了 StandardFirmata 草图。任何人都知道这种行为的原因是什么?

编码:

0 投票
1 回答
752 浏览

javascript - listener 参数必须是函数错误

在此处输入图像描述我正在为我的 rfid 使用 nodejs,它连接在我的树莓派上。我想要做的是当我点击 id“6f124628”时,除非 arduino 上的另一个引脚为高电平,否则 LED 不会打开。我正在使用firmata 协议进行arduino 通信。

JS:

但是我的代码不起作用并且 Typerror :

“listener”参数必须是一个函数

0 投票
0 回答
122 浏览

c# - Windows 远程 Arduino StringMessageReceived 事件

好吧,我厌倦了谷歌搜索。所以我正在开发一个使用Windows Remote Arduino的项目。我才刚刚开始,所以我处于“一起破解阶段”。arduino 正在运行标准firmata,我正在调用一个 sysex 函数,该函数从某些传感器返回一些数据。

我订阅了 StringMessageReceived 事件,但我发现该事件并不总是触发。每次发送 sysex 命令时,我都“应该”接收数据。我确实在 git hub 站点上发现了一个用于远程接线的已关闭问题,该问题说要在 Firmata 对象上调用 flush(),我正在这样做,但我没有得到 1 对 1 的响应。

这是我得到的示例输出。

触发设备就绪事件

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

计时器滴答!

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

计时器滴答!

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}

计时器滴答!

计时器滴答!

计时器滴答!

{\"temp1\":21.50,\"pH\":0.000}"

我知道 arduino 正在获取我的命令,因为我可以看到我的一个传感器上的 LED 正在处理命令。

这是我的 UWP 代码。

我必须错过一些非常简单的东西。

0 投票
2 回答
728 浏览

python - pyfirmata 中伺服运动之间的延迟不起作用

我正在用 python 编写一个程序,其中在特定时间移动伺服系统是项目的关键部分。为了实现这一点,我正在使用 pyfirmata 库。

我尝试了两种延迟方法,但似乎都不起作用。当我运行代码时,伺服器第一次转动,但在延迟之后,它没有转动,程序只是停止,而不是将伺服器移动到 0 度然后停止。

这是在 pyfirmata 库中内置 board.pass_time() 的那个:

这是带有 time.sleep() 的那个:

如果有人可以提供帮助,我将不胜感激。

谢谢你,大卫

0 投票
1 回答
359 浏览

c++ - 有没有办法使用 Johnny-5 发送 C/C++ 命令?

目前使用运行 J5 的中央 linux 机器运行多个使用 StandardFirmataWiFi 闪存的 ESP8266。因此,与其设置一堆微控制器来自主运行,它们都启用了 WiFi 并在单台机器的指挥下。到目前为止,这一直运作良好。我对 JS 非常熟悉,对 C/C+ 不是很熟悉 但偶尔我会在 C/C+ 中找到示例代码,但我找不到 J5 的等价物。

问题:是否可以从 Johnny-5 发出 C/C+(甚至 Python)命令?所以换句话说,不是中央机器向微控制器发出仅限 J5 的命令,有没有办法让 J5 发送 C/C+ 片段?如果是这样,那将更容易直接使用演示/社区共享代码,同时也使 JS 流利的开发人员更容易过渡到 C。

0 投票
0 回答
74 浏览

arduino - 使用 Johnny-Five 调光 AC 供电的 LED

是否可以使用 ESP8266 上的 J5 控制可调光交流供电的 LED?

使用以下内容:

问题:首先,这甚至可以通过 ESP8266 通过 WiFi 使用 J5 吗?我读过有导致闪烁的延迟问题。

但假设它仍然是可能的......

到目前为止,这是我的理解:

  • 将调光器的 PWM 引脚连接到启用 PWM 的 ESP GPIO
  • 将调光器的 ZC(过零)引脚连接到另一个用于数字读取的 ESP GPIO 集?或

问题:在 J5 方面,然后呢?一直在查看此 StackExchange 页面以获取线索 Arduino IDE 中的关键命令是attachInterrupt(例如attachInterrupt(0, zero_crosss_int, RISING)

问题attachInterrupt(): J5 中是否有等价物?

0 投票
2 回答
250 浏览

python - 在从传感器读取而不打印从传感器读取的数据时,循环不能立即工作?

我正在尝试连续读取多个反射式红外传感器,直到每个传感器都被阻塞。我正在使用运行标准 Firmata 和 Pythons Pyfirmata 库的 Arduino。

每次我尝试标准读取而不在 while 循环中打印结果时,我都会延迟 15 到 30 秒(我不知道为什么):

示例 1 - 有效但随机无法解释的延迟:

示例 2 - 有效,但我现在有一堆传感器读取输出:

出于某种原因,当我添加 print(Sensor1.read()) 时,当传感器被阻塞时,我会立即得到响应。但是,如果我删除这部分代码以消除垃圾输出,我会在传感器被阻塞和被代码识别并继续前进之间出现无法解释的时间延迟。我想做的是不断读取传感器而不打印读取的内容,并在传感器被阻塞并产生 0.0v 时立即响应中断 while 循环。我相信我也可以选择抑制这些 while 循环的打印输出,但我想知道是否有替代方案?非常感谢您审查这个问题,并感谢一百万的帮助!