0

我正在尝试使用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 的库中也没有发现这个问题的迹象。所以我已经没有想法了。

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

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

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);
  });
});
4

1 回答 1

2

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

虽然我找不到 Braccio shield 的任何文档,但如果您查看 Braccio 库源代码,您会发现它们在void _Braccio::_softStart(). 这似乎与“软启动”伺服系统有关,但据我所知,它只是坐在那里使针脚 12 HIGH/LOW 脉冲 2 到 6 次发送,然后将其设置为 HIGH。我看不出这是如何实现软启动的,因为在这种情况下伺服系统没有受到控制。

无论如何,该功能使 PIN 12 为高电平。如果它是 LOW,伺服系统不会响应。

于 2018-05-28T13:33:26.900 回答