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

标签 javascript arduino servo firmata

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

braccio 由 6 个 Helm 机组成,并配有防护罩。

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

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

当我在 Arduino 上运行一个仅使用 braccio 库的脚本时,它运行良好,并且电源引脚始终处于 5V。因此,我认为这与防护罩无关,但我在 Firmata 的库上也没有发现此问题的迹象。所以我已经没有主意了。

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

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

const Board = require('firmata');
const serialport = require('serialport');

Board.requestPort(function (error, port) {
  if (error) {
    console.log(error);
    return;
  }

  board = new Board(port.comName, { samplingInterval: 1000 });

  board.on('open', function () {
    console.log('  board opened');
    alert('board opened')
  });

  board.on('ready', function () {
    console.log('  board ready');
    board.pinMode(11,board.MODES.SERVO);
    board.pinMode(10,board.MODES.SERVO);
    board.pinMode(9, board.MODES.SERVO);
    board.pinMode(6, board.MODES.SERVO);
    board.pinMode(5, board.MODES.SERVO);
    board.pinMode(3, board.MODES.SERVO);

    board.servoWrite(11,60);
    board.servoWrite(10,85);
    board.servoWrite(9,85);
    board.servoWrite(6,85);
    board.servoWrite(5,85);
    board.servoWrite(3,60);
  });
});

最佳答案

继续使用 Braccio 屏蔽,但将引脚 12 设置为数字输出,然后将其设置为高电平。

虽然我找不到 Braccio 防护罩的任何文档,但如果您查看 Braccio 库源代码,您会发现它们在 void _Braccio::_softStart() 中做了一些“奇怪”的事情。 。这似乎与伺服系统的“软启动”有关,但据我所知,它只是将引脚 12 置于高电平/低电平脉冲状态,进行 2 到 6 次发送,然后将其设置为高电平。我不明白这是如何实现软启动的,因为在发生这种情况时伺服系统不受控制。

无论如何,该功能使 PIN 12 保持高电平。如果为低电平,伺服系统将不会响应。

关于javascript - 使用 Firmata.js 时 Tinkerkit 的 braccio 电源出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49799937/

相关文章:

javascript - 与 Shopify 一起使用 sharethis API 时不存在 'Access-Control-Allow-Origin' header

javascript - 理解 JavaScript 文档符号

c++ - 崩溃 : When accessing vector from class

c++ - Eclipse 中的 Arduino 端口寄存器不工作

c++ - 用 double 计算 pow 会给出错误的结果

opencv - 使用 arduino、处理和 opencv 进行面部跟踪的 Arduino 伺服

javascript - 基于 key 的 json 到 html 表

javascript - 为什么 Webkit 将 HTMLDivElements 附加到窗口对象?