gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:10:20 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com