[英]USB Serial for Android - problems sending/receiving data with 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.