问题标签 [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 投票
0 回答
213 浏览

node.js - 在 Mac 上使用 npm 全局安装firmata-party 失败

我已经运行了以下命令来安装库,但我总是遇到几个我试图解决的错误。

npm install -gfirmata-party

我总是收到错误并且没有安装软件包。我什至卸载了 node.js 和 npm,但问题仍然存在。

有什么帮助吗?:(

0 投票
0 回答
519 浏览

arduino - 使用 johnny 5 / Firmata js 在 Arduino Mega 和 NodeMCU ESP8266 之间进行串行(UART)通信

我正在制作一个项目,其中我想让两个设备进行通信(分别是 Arduino Mega 和 NodeMCU),Arduino Mega 可以通过串行通信(UART)将数据发送到 NodeMCU。NodeMCU 充当桥接器,其中包含 Firmata(标准FirmataWifi),并连接到 wifi。

我已将 Mega 的 RX0(引脚 0)和 TX0(引脚 1)连接到我的 NodeMCU 的 RX(引脚 21)和 TX(引脚 22)。

我还制作了一个网络应用程序,它可以通过 NodeMCU 接收/控制连接在 Arduino Mega 上的设备。

但现在我只是让它变得简单并接收一些来自 Arduino Mega 的数据。

这是我的代码:

我在这里使用 Firmata.js 库。假设它应该是 johnny-5,因为我无法使用 johnny-5 获得 NodeMCU 的 UART 端口,我使用后者。(虽然我有点新使用这些库,但不是使用的语言。)

唯一的问题是它不显示来自串行端口的数据读数。它只显示这些。

我期望它应该像这样显示:

我在想问题出在我的串行配置本身???

0 投票
0 回答
293 浏览

python - 如何将arduino代码翻译成python pyfirmata?

我想使用 pyfirmata 将这个 Arduino 代码翻译成 python 代码。我怎样才能做到这一点?

我试着做

但这不起作用,当我打印sw它时返回None

然后我尝试这样做,但它只是一直返回None

0 投票
1 回答
560 浏览

arduino - 使用 Firmata 和 Game Control Plus 控制舵机

晚安,我的 Arduino 上运行了 Firmata 的示例程序 StandardFirmata,我在 Processing 中使用 Firmata 和一个名为 Game Control Plus 的库制作了一个程序。我的程序获取 PS4 操纵杆的值并将它们转换为 Firmata 作为命令传递给 Arduino 的数字,一切似乎都运行良好,但是,由于某种原因,左右伺服电机不执行 90 以下的数字甚至有时它们在执行动作时会停止。我首先想到的是引擎在强制或者程序发送了错误的值,所以我为舵机做了一个简单的Arduino程序,它们可以执行90以下的值,我也在屏幕上做了处理打印他传递的值和值是正确的。反正,我将在下面留下我制作的代码和接线图。我希望有人能帮我解开这个谜。

控制器配置使用 Gcpconfig,兼容 PS4

Arduino 和伺服连接

机械臂完成

0 投票
1 回答
180 浏览

python - Python:需要在不中断循环的情况下调用 API

我有一个我用 Python 编写的程序,它使用 Spotipy 库调用 Spotify API 来获取用户当前正在播放的歌曲和相关歌曲的节奏。然后它使用该信息、串行连接和 Arduino 来运行一些灯。

我遇到的问题是我希望程序定期检查 API,看看歌曲是否发生了变化,但是每个 API 调用都会占用我的网络大约 0.15 秒,所以在没有太多调用之后它会搞砸灯的时间。

这是调用速度 API 的函数和一个示例 while 循环。如果你想查看完整的项目和完整的代码,这里是 github 的链接 - https://github.com/eboyce452/lightshow.git

因此,在一个完美的世界中,我正在寻找一种让 check_bpm() 函数在后台运行的方法,以便灯光可以保持在节拍状态,然后当歌曲发生变化时,让循环中断(使用像 continue 或其他东西)和 seconds_per_beat 的变量被更新。

我真的不知道这是否可能,所以请随意权衡。但我最好奇的是实现一种常见的并发形式,这样当 check_bpm() 函数正在等待 API 调用完成时,它会继续执行 while 循环的其余部分,这样灯就不会熄灭的同步。我已经阅读了很多关于 asyncio 的内容,但是我对它非常陌生,因此可以提供任何帮助,我们将不胜感激。

太感谢了!随时查看该项目的 github,并留下您想要的任何评论或批评。

0 投票
1 回答
299 浏览

arduino - 节点红色firmata arduino连接经常丢失

我正在尝试使用 node-red 在firmata 上读取电位计数据。电位器连接到 arduino 的模拟引脚,而 arduino 通过 USB 连接到树莓派 4。

程序运行良好,我可以从 arduino 获取数据,但连接经常丢失。连接在 1 秒后建立,但经常断开。

我能做些什么来纠正这个问题?

传输速率如此之高,我不需要这样的速度。我可以降低连接速度吗?我该怎么做?还是那里有硬件解决方案?我的意思是电容或电阻连接到传感器可以解决问题吗?

0 投票
0 回答
53 浏览

python - 问:Python 问题将 32 位有符号长整数转换为 7 位值数组

我正在努力解决 Python 和 Firmata 的问题,因为它需要将 32 位长转换为 7 位(midi 风格)整数数组。我有 2 个变体,没有工作,看起来这两个函数都发送“位置”的垃圾值。电机启动并无限期地继续旋转,不需要步数。其他不需要此功能的功能就可以了。如何解决这个问题?提前致谢。

从文档:

版本 1

版本 2

0 投票
2 回答
227 浏览

python - Python:如何将 32 位有符号长整数转换为 7 位整数

为了通过 Firmata/串行链接传输它们,将 32 位有符号长整数转换为 7 位整数的最佳方法是什么(在 Python 中)?转换成 8 位是没有问题的,只是(long_val).to_bytes(4, 'little'). 最后的顺序应该是这样的:

从 7 位整数的 5 项序列向后转换为 32 位有符号长整数也将非常有帮助。

不幸的是,我的方法产生了错误的结果,所以我想完全放弃它们并从头开始。在此先感谢您的任何建议)。

0 投票
2 回答
44 浏览

python - 虽然不是错误 - 如何做出替代

这是当前代码:

但是这段代码的问题是push_button1必须先按下,然后才能按下按钮 2。如果在按钮 2 之前没有按下按钮 1,则不会打印出“Bye”(参考上面的代码)。

有没有一种方法可以代替按顺序进行(pushputton1->pushbutton2),它可以以任何一种方式进行,即无论先按下哪个按钮,代码仍然可以工作?谢谢

0 投票
1 回答
97 浏览

arduino - 通过firmata将Modelica与arduino连接起来

我想通过使用 Firmataprotokoll 和 arduinolibrary 将我的 arduino 与 modelica 连接起来。但是编译总是因为错误而失败:

链接:致命错误 LNK1181:无法打开输入文件“ModelicaFirmata.lib”

有人知道如何解决这个问题吗?