1

我正试图让一台电机与约翰尼五号一起工作。我使用的是 arduino,我从他们的网站上复制了代码和接线(大部分)。我在接线中唯一改变的是不是使用二极管来确保 5V 不会进入晶体管的发射极引脚,我只是将它直接连接到电机,而不使用面包板。问题是,我收到了这个奇怪的错误

C:\Users\simas\node_modules\johnny-5\lib\motor.js:721 this.speed({ ^

TypeError: this.speed is not a function at Timeout.Motor.stop [as _onTimeout] (C:\Users\simas\node_modules\johnny-five\lib\motor.js:721:8) 在 ontimeout (timers.js: 436:11) 在 tryOnTimeout (timers.js:300:5) 在 listOnTimeout (timers.js:263:5) 在 Timer.processTimers (timers.js:223:10) PS C:\Users\simas\Desktop\motors >

我根本不使用为什么会发生这种情况,请帮忙。

(顺便说一句,我从网站上复制的代码是:

const {Board, Motor} = require("johnny-five");
const board = new Board();

board.on("ready", () => {
 // Create a new `motor` hardware instance.
 const motor = new Motor({
   pin: 5
 });

 // Inject the `motor` hardware into
 // the Repl instance's context;
 // allows direct command line access
 board.repl.inject({
   motor
 });

 // Motor Event API

 // "start" events fire when the motor is started.
 motor.on("start", () => {
   console.log(`start: ${Date.now()}`);

   // Demonstrate motor stop in 2 seconds
   board.wait(2000, motor.stop);
 });

 // "stop" events fire when the motor is stopped.
 motor.on("stop", () => {
   console.log(`stop: ${Date.now()}`);
 });

 // Motor API

 // start([speed)
 // Start the motor. `isOn` property set to |true|
 // Takes an optional parameter `speed` [0-255]
 // to define the motor speed if a PWM Pin is
 // used to connect the motor.
 motor.start();

 // stop()
 // Stop the motor. `isOn` property set to |false|
});

)

4

1 回答 1

0

由于使用Johnny-Five 文档中的 Adafruit Motor Shield V2 示例代码,我遇到了同样的问题。

当将函数直接传递motor.stopboard.wait.

要解决此问题,请在电机实例上下文中声明您自己的函数并将其传递给事件处理程序中的board.wait调用:"start"

 // "start" event fires when the motor is started
 motor.on("start", () => {
   console.log(`start: ${Date.now()}`);

   // Demonstrate motor stop in 2 seconds
   board.wait(2000, () => {
     motor.stop();
   });
 });
于 2020-05-27T18:17:30.077 回答