伺服电机不以节点红色运行

时间:2017-05-20 13:09:13

标签: javascript python raspberry-pi node-red servo

这是我第一次编写Raspberry PI并且第一次使用Python,JavaScript或Node-Red。

我正试图通过在Node-RED中操作伺服电机来提升门。 基本上,我正在做的是用我的pi相机拍一张牌照照片,处理它,发送给OpenALPR,然后将牌照作为msg.payload返回。

现在,我想要做的是激活伺服电机,如果msg.paylaod.results [0] .plate匹配我需要的板数。我正在尝试创建一个全局变量,用于激活伺服电机的子流程。 这是代码:

if(msg.payload.results[0].plate=="SB06KBE" || 
msg.payload.results[0].plate=="AR18AUG")
{
    console.log(msg.payload.results[0].plate);
    context.global.cond=1;
}
else console.log("not recognized");

此节点进入电机子流程:

motor

变量节点:

var mycond=context.global.cond;
return mycond;

motor pwm node:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7,GPIO.OUT)
p=GPIO.PWM(7,50)
p.start(7)

if mycond==1:
  try:
    while True:
      p.ChangeDutyCycle(7)
      time.sleep(1)
      p.ChangeDutyCycle(3)
      time.sleep(10)
  except KeyboardInterrupt:
      p.stop()
      GPIO.cleanup()

由于某种原因,电机不会开始运转。

我尝试使用切换节点并删除了子流中的变量节点和电机节点中的if条件,但交换机不会转到任何输出。 这是我尝试使用的交换节点:

switch

此外,如果我删除子流中的变量节点,即使无法识别牌照,电机也会运行。

LE:我还尝试将交换节点的前两个输出连接到两个可以打印消息的JavaScript节点,但即使满足条件它们也不会运行。

提前致谢!

0 个答案:

没有答案