为arduino UNO R3编译语音识别程序时的错误

时间:2015-08-29 14:32:53

标签: java arduino voice-recognition arduino-uno

我正在尝试使用arduino UNO R3开发语音识别功能。但是当我编译程序时会出现一些错误。这是一个控制3个led灯泡(绿色,黄色,红色)的程序。我使用Arduino 1.5编译程序,使用BitVoicer 1.2编写语音识别命令。

我从arduino的网站上找到了这个项目。但是程序中存在一些错误。错误在下面给出

bitvocer_ino:14: error: no matching function for call to 'BitVoicerSerial::BitVoicerSerial(int)'
C:\Users\Anas Sanjeev\Documents\Arduino\libraries\BitVoicer11/BitVoicer11.h:38: note: candidates are: BitVoicerSerial::BitVoicerSerial()
C:\Users\Anas Sanjeev\Documents\Arduino\libraries\BitVoicer11/BitVoicer11.h:35: note:                 BitVoicerSerial::BitVoicerSerial(const BitVoicerSerial&)
Exception in thread "Thread-6" java.lang.NullPointerException
at processing.app.syntax.TokenMarker.addToken(TokenMarker.java:299)
at processing.app.syntax.CTokenMarker.doKeyword(CTokenMarker.java:267)
at processing.app.syntax.CTokenMarker.markTokensImpl(CTokenMarker.java:132)
at processing.app.syntax.TokenMarker.markTokens(TokenMarker.java:52)
at processing.app.syntax.JEditTextArea._offsetToX(JEditTextArea.java:550)
at processing.app.syntax.JEditTextArea.scrollTo(JEditTextArea.java:464)
at processing.app.syntax.JEditTextArea.scrollToCaret(JEditTextArea.java:429)
at processing.app.syntax.JEditTextArea.select(JEditTextArea.java:1205)
at processing.app.Editor.statusError(Editor.java:2620)
at processing.app.Editor$DefaultRunHandler.run(Editor.java:1913)
at java.lang.Thread.run(Thread.java:619)

下面给出的源程序

    //Includes the BitVoicer library to the sketch
    #include<BitVoicer11.h>

   //Sets up the pins and default variables
   int pinR = 3;
   int pinY = 5;
   int pinG = 6;
   int blinkDelay = 250;
   int sequenceDir = 0;
   int lightLevel = 0;

   //Creates a new instance of the BitVoicerSerial class and
   //sets up serial port to 0
   BitVoicerSerial bitVoicer = BitVoicerSerial(0);

   void setup()
   {
   //Starts serial communication and sets up the pinModes
   Serial.begin(9600);
   pinMode(pinR, OUTPUT);
   pinMode(pinY, OUTPUT);
   pinMode(pinG, OUTPUT);
   }

   void loop()
   {
   //Retrieves data from serial buffer
   bitVoicer.getData();

   //Quits the loop if no string data was returned from getData
   if (bitVoicer.strData == "")
   {
   return;
   }

   //Each of the next 'if' statements performs a different
   //task based on the data received from BitVoicer
   if (bitVoicer.strData == "wake")
   {
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(200);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   delay(200);
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(200);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   delay(200);
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(200);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "sleep")
   {
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(200);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   delay(200);
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(200);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "RH")
   {
   digitalWrite(pinR, HIGH);
   bitVoicer.strData = "";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "RL")
   {
   digitalWrite(pinR, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "YH")
   {
   digitalWrite(pinY, HIGH);
   bitVoicer.strData = "";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "YL")
   {
   digitalWrite(pinY, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "GH")
   {
   digitalWrite(pinG, HIGH);
   bitVoicer.strData = "";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "GL")
   {
   digitalWrite(pinG, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "blink")
   {
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   delay(blinkDelay);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   delay(blinkDelay);
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "BF")
   {
   blinkDelay = 100;
   bitVoicer.strData = "blink";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "BFF")
   {
   switch (blinkDelay)
   {
   case 500:
   blinkDelay = 250;
   break;
   case 250:
   blinkDelay = 100;
   break;
   default:
   break;
   }
   bitVoicer.strData = "blink";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "BS")
   {
   blinkDelay = 500;
   bitVoicer.strData = "blink";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "BSS")
   {
   switch (blinkDelay)
   {
   case 100:
   blinkDelay = 250;
   break;
   case 250:
   blinkDelay = 500;
   break;
   default:
   break;
   }
   bitVoicer.strData = "blink";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "sequence")
   {
   if (sequenceDir == 0)
   {
   digitalWrite(pinR, HIGH);
   delay(250);
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, HIGH);
   delay(250);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, HIGH);
   delay(250);
   digitalWrite(pinG, LOW);
   }
   else
   {
   digitalWrite(pinG, HIGH);
   delay(250);
   digitalWrite(pinG, LOW);
   digitalWrite(pinY, HIGH);
   delay(250);
   digitalWrite(pinY, LOW);
   digitalWrite(pinR, HIGH);
   delay(250);
   digitalWrite(pinR, LOW);
   }
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "revert")
   {
   if (sequenceDir == 0)
   {
   sequenceDir = 1;
   }
   else
   {
   sequenceDir = 0;
   }
   bitVoicer.strData = "sequence";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "ALLON")
   {
   digitalWrite(pinR, HIGH);
   digitalWrite(pinY, HIGH);
   digitalWrite(pinG, HIGH);
   bitVoicer.strData = "";
   lightLevel = 255;
   }
   else if (bitVoicer.strData == "ALLOFF")
   {
   digitalWrite(pinR, LOW);
   digitalWrite(pinY, LOW);
   digitalWrite(pinG, LOW);
   bitVoicer.strData = "";
   lightLevel = 0;
   }
   else if (bitVoicer.strData == "brighter")
   {
   if (lightLevel < 255)
   {
   lightLevel += 85;
   analogWrite(pinR, lightLevel);
   analogWrite(pinY, lightLevel);
   analogWrite(pinG, lightLevel);
   }
   bitVoicer.strData = "";
   }
   else if (bitVoicer.strData == "darker")
   {
   if (lightLevel > 0)
   {
   lightLevel -= 85;
   analogWrite(pinR, lightLevel);
   analogWrite(pinY, lightLevel);
   analogWrite(pinG, lightLevel);
   }
   bitVoicer.strData = "";
   }
   else
   {
   Serial.println("ERROR:" + bitVoicer.strData);
   bitVoicer.strData = "";
   }
   }

1 个答案:

答案 0 :(得分:0)

变化

BitVoicerSerial bitVoicer = new BitVoicerSerial(0);

{{1}}