我正在尝试用firmata.js来控制Tinkerkit的https://store.arduino.cc/tinkerkit-braccio。我有一个Arduino UNO,并上传了StandardFirmata在它上面。
这款手环由6个伺服系统组成,并带有一个防护罩。
问题是,即使将引脚正确设置为伺服模式,尝试使用firmata.js控制伺服也没有任何效果。我检查了一下示波器,当我开始在Arduino上运行StandardFirmata时,屏蔽板上的电源引脚不能保持在5V。PWM信号正常。
我应该尝试在没有防护罩的情况下直接在Arduino上连接伺服吗?
当我在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);
});
});发布于 2018-05-28 21:33:27
继续使用Braccio屏蔽,但将引脚12设置为数字输出,然后将其设置为高电平。
虽然我找不到任何关于Braccio盾牌的文档,但是如果您查看Braccio库的源代码,您会发现它们在void _Braccio::_softStart()中做了一些“奇怪的”事情。这似乎是与“软启动”的伺服,但据我所见,它只是坐在那里的脉冲引脚12高/低2至6发送,然后设置为高。我不认为这是如何实现软启动,因为伺服是不被控制的,而这是发生。
无论如何,该函数会使PIN12处于高电平。如果它很低,伺服系统就不会有反应。
https://stackoverflow.com/questions/49799937
复制相似问题