Stap 3: Codes en bestanden uploaden
Na het downloaden van BitVoicer en de Arduino, ik schreef sommige codes voor de Arduino en een nieuw bestand gemaakt voor BitVoicer. Ik heb beide bestanden opgenomen in de bijlage van dit instructable. (Nota: u zal niet zitten kundig voor het vsc-bestand te openen, tenzij u BitVoicer geïnstalleerd hebt). Om te beginnen het programma, eerst uploaden van de Arduino-code en druk vervolgens op de startknop in het BitVoicer bestand.
LED reageert niet op uw stem? Controleer deze dingen onder Voorkeuren (onder File) voor BitVoicer:
- Bits per seconde is ingesteld op: 115200
- Audio-ingang wordt de standaard microfoon Computer
- de naam van de poort ingesteld op dezelfde poort die is aangesloten op de Arduino (genaamd COM_)
Als nog niet werken, probeer deze dingen onder Voorkeuren (onder File) voor BitVoicer:
- lagere het aanvaardbaar betrouwbaarheidsniveau
- Zorg ervoor dat de Computer standaard microfoon is ingesteld op de externe USB-microfoon. Kijk voor de microfoon instellen op uw computer
De Arduino om code te schrijven, dat ik opende het bestand dat leandro4b gebruikt voor zijn Speech Recognition met Arduino project. Vanaf daar ik veranderde en sommige codes toegevoegd, zodat de LED is de opdracht die ik wilde doen. Ik heb toegevoegd dat opdrachten in BitVoicer, elke opdracht die is toegewezen aan een string in BitVoicer, vervolgens geprogrammeerde functies voor elke tekenreeks in de Arduino.
Aangezien de code een beetje lang is, zal ik slechts enkele van de functies rechts onder uitleggen.
Het begin van de Code: Dit is eigenlijk waar we "set up" alles.
#include / / oproepen bits voicer bibliotheek
//Instantiates de BitVoicerSerial-klasse
BitVoicerSerial bvSerial = BitVoicerSerial();
//Stores true als de Audio Streaming kalibratie tool
wordt uitgevoerd
Boole sampleTest = false;
dataType byte = 0; Het gegevenstype opgehaald door getData() wordt opgeslagen
int pinR = 6; / / een instellen pin 6 rode
int pinW = 10; / / pin 10 ingesteld worden wit
int pinG = 11; / / een instellen pin 11 groen
int pinB = 9; / / een instellen pin 9 rode
int lightLevelR = 0; / / instellen van initiële lichtniveau van rode 0
int lightLevelW = 0; / / instellen van initiële lichtniveau van Wit 0
int lightLevelG = 0; / / instellen van initiële lichtniveau van groen 0
int lightLevelB = 0; / / instellen van initiële lichtniveau van blauw 0
int boog = 0; Dit is een variabele die wij hebben gesteld en die tot verschillende loops leiden zal
lange randNumberR; / / genereert een willekeurig getal voor rood (voor Meow functie)
lange randNumberW; / / genereert een willekeurig getal voor white (voor Meow functie)
lange randNumberG; / / genereert een willekeurig getal voor groen (voor Meow functie)
lange randNumberB; / / genereert een willekeurig getal voor blauw (voor Meow functie)
Void setLEDs(): dit is waar we een functie aanroepen nadat de BitVoicer de stem overbrengen in de tekenreeks. Onder nietig setLEDs, heb ik "wake up", "ga slapen", "turn on/off rood geleid", "turn on/off blauw geleid", "meer/minder groene" enz. Ik heb ook vooraf ingestelde patronen zoals "rainbow", "zonsondergang" en "ocean blue".
Hieronder is de code voor de Spraakopdracht 'meer blauw'
anders als (bvSerial.strData=="BBright") / / als BitVoicer 'meer blauw' detecteert, wordt deze functie uitgevoerd
{
Als (lightLevelB < 255) / / als het lichtniveau minder dan 255 is, dan zullen we toevoegen helderheid op blauw
{
lightLevelB += 85; / / als de functie wordt aangeroepen, zullen wij 85 toevoegen aan de lightlevel voor blauw. U kunt alle stappen van het gewenste lichtniveau.
analogWrite (pinR, lightLevelR); //Light niveau voor rood constant blijft
analogWrite (pinW, lightLevelW); //Light niveau voor white constant blijft
analogWrite (pinG, lightLevelG); //Light niveau voor green constant blijft
analogWrite (pinB, lightLevelB); niveau van de //Light voor blauwe verandert als we deze opdracht geven
Arch = 0; / / wij hebben de boog variabele instellen op 0, zodat het niet per ongeluk iets te noemen in de lus die u zal vervolgens zien
}
}
Voor de patronen, we zullen worden instelling de functie om de variabele boog = (geheel getal). deze boog = (geheel getal) noem een lus de ongeldig lus. Dit is omdat de patronen moeten herhalen totdat een andere functie wordt genoemd.
anders als (bvSerial.strData=="Pomona") / / als BitVoicer detecteert "pomona", dan zal deze functie run
{
Arch = 8; / / het zal boog set tot en met 8, die boog zal opvoeden == 8 lus in ongeldig lus (zie hieronder)
}
Ongeldig lus: om bijzondere patronen (d.w.z. regenboog, zonsondergang, oceaan blauw), hebben we verschillende functies onder de lus.
"Pomona" is een van de vooraf ingestelde functies onder nietig herhalen. Het toont de kleuren blauw en wit, totdat een andere functie wordt genoemd.
Pomona
Als (boog == 8) / / ik stelt de variabele in op 8 zodat
{
RGBW code voor blauw
analogWrite (pinR, 85);
analogWrite (pinW, 0);
analogWrite (pinG, 49);
analogWrite (pinB, 203);
delay(1000); //pauses alvorens naar wit te veranderen
RGBW code voor wit
analogWrite (pinR, 0);
analogWrite (pinW, 255);
analogWrite (pinG, 0);
analogWrite (pinB, 0);
delay(1000); //pauses alvorens terug naar blauw te veranderen
}
"Miauw" Random-functie: Gewoon voor de lol besloten heb ik om te schrijven een functie die willekeurige RGBW waarden ingesteld. De LED kleuren zullen willekeurig zijn als ik zeg "Miauw" naar de microfoon. Om dit te doen, gebruikte ik gebouwd in "random" in de Arduino-programma.
voordat void setup:
lange randNumberR; genereert een willekeurig getal voor rood (voor onze Meow functie)
lange randNumberW; genereert een willekeurig getal voor white (voor onze Meow functie)
lange randNumberG; genereert een willekeurig getal voor groen (voor onze Meow functie)
lange randNumberB; genereert een willekeurig getal voor blauw (voor onze Meow functie)
binnen void setup:
randomSeed(analogRead(0));
binnen de leegte ()-lus:
randNumberR=random(255); //generates willekeurig getal tussen 0 en 255 voor rood
randNumberW=random(255); //generates willekeurig getal tussen 0 en 255 voor wit
randNumberG=random(255); //generates willekeurig getal tussen 0 en 255 voor groen
randNumberB=random(255); //generates willekeurig getal tussen 0 en 255 voor blauw
ook binnen de void loop:
Als (boog == 9)
{
analogWrite (pinR, randNumberR);
analogWrite (pinW, randNumberW);
analogWrite (pinG, randNumberG);
analogWrite (pinB, randNumberB);
delay(1000); }
in nietig setLEDs():
anders if(bvSerial.strData=="Meow") / / als BitVoicer detecteert "Miauw", boog zal worden ingesteld op 9
{boog = 9;
}