我正在尝试使用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 = "";
}
}
答案 0 :(得分:0)
变化
BitVoicerSerial bitVoicer = new BitVoicerSerial(0);
到
{{1}}