簡體   English   中英

編譯arduino UNO R3的語音識別程序時出錯

[英]Errors while compiling a voice recognition program for arduino UNO R3

我正在嘗試使用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 = "";
   }
   }

更改

BitVoicerSerial bitVoicer = BitVoicerSerial(0);

BitVoicerSerial bitVoicer = new BitVoicerSerial(0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM