Röst aktiverat LED-belysning med Arduino (3 / 5 steg)
Steg 3: Ladda upp koder och filer
Efter nedladdning BitVoicer och Arduino, jag skrev några koder för Arduino och skapat en ny fil för BitVoicer. Jag har tagit båda filerna i kvarstad på detta instructable. (Obs: du kommer inte att kunna öppna filen vsc såvida du inte har BitVoicer installerad). Starta programmet, först ladda upp Arduino koden och tryck sedan på startknappen i filen BitVoicer.
LED inte svarar på din röst? Kontrollera dessa saker under Inställningar (under fil) för BitVoicer:
- Bitar per sekund är inställd: 115200
- Ljudingången är datorns standard mikrofon
- Portnamnet inställd på samma port som är ansluten till Arduino (kallas COM_)
Om fortfarande inte fungerar, prova dessa saker under Inställningar (under fil) för BitVoicer:
- sänka den godtagbar konfidensnivån
- Kontrollera datorns standard mikrofon är inställd till din externa USB-mikrofon. Leta efter inställningen mikrofonen på din dator
Att skriva Arduino koden, jag först öppnade filen att leandro4b används för hans taligenkänning med Arduino projekt. Därifrån, jag ändrade och La några koder så att lampan inte kommandot som jag ville göra. Jag la kommandon i BitVoicer, tilldelas varje kommando till en sträng i BitVoicer, då programmerade funktioner för varje sträng i Arduino.
Eftersom koden är lite lång, vill jag bara förklara några av funktionerna höger nedan.
Början av koden: Detta är i grunden där vi "ställa" allt.
#include / / samtal voicer bitarsbibliotek
//Instantiates klassen BitVoicerSerial
BitVoicerSerial bvSerial = BitVoicerSerial();
//Stores sant om den Audio Streaming kalibreringsverktyg
kör
booleska sampleTest = false;
Datatypen byte = 0; Lagrar datatypen Hämtad av getData()
int pinR = 6; / / Ställ in stift 6 för att vara röda
int pinW = 10; / / Ställ in stift 10 till vara vit
int pinG = 11; / / Ställ in stift 11 att vara grön
int pinB = 9. / / ställa in pin 9 vara röd
int lightLevelR = 0; / / ställa upp inledande ljusnivån röda vara 0
int lightLevelW = 0; / / ställa upp inledande ljusnivån av vitt vara 0
int lightLevelG = 0; / / ställa upp inledande ljusnivån grön vara 0
int lightLevelB = 0; / / ställa upp inledande ljusnivån blå vara 0
int arch = 0; Detta är en variabel som vi satt som kommer att ta upp olika loopar
lång randNumberR; / / genererar ett slumptal för rött (för Meow funktion)
lång randNumberW; / / genererar ett slumptal för vit (för Meow funktion)
lång randNumberG; / / genererar ett slumptal för grönt (för Meow funktion)
lång randNumberB; / / genererar ett slumptal för blått (för Meow funktion)
Tom setLEDs(): det är där vi kallar en funktion efter att BitVoicer överföra röst till strängen. Under void setLEDs, jag har "vakna upp", "gå sleep", "slå på/av röda ledde", "slå på/av blå lampan", "mer/mindre gröna" etc. Jag har också förinställda mönster som "rainbow", "solnedgång" och "ocean blue".
Nedan är koden för röstkommando "mer blå"
annars om (bvSerial.strData=="BBright") / / om BitVoicer upptäcker "mer blå", sedan denna funktion kommer att köra
{
om (lightLevelB < 255) / / om ljusnivån är mindre än 255, då vi kommer att lägga till ljusstyrka till blå
{
lightLevelB += 85. / / när funktionen anropas, vi kommer att lägga till 85 till lightlevel för blå. Du kan lägga till några steg om ljusnivån du vill.
analogWrite (pinR, lightLevelR); //Light nivå för rött är konstant
analogWrite (pinW, lightLevelW); //Light nivå för vit är konstant
analogWrite (pinG, lightLevelG); //Light nivå för grönt är konstant
analogWrite (pinB, lightLevelB); //Light nivå för blå ändringar som vi ger detta kommando
Arch = 0; / / vi måste ställa in variabeln arch till 0 så att det inte råkar ringa något i en slinga som du kommer att se nästa
}
}
För mönstren, vi kommer att sätta funktionen till variabel båge = (ett heltal). denna båge = (heltal) kallar en slinga den ogiltig loop. Detta är eftersom mönstren behöva upprepa tills en annan funktion som kallas.
annars om (bvSerial.strData=="Pomona") / / om BitVoicer upptäcker "pomona", sedan denna funktion kommer att köra
{
Arch = 8. / / det kommer att ställa arch-8, som kommer få upp bågen == 8 ögla i ogiltig loop (se nedan)
}
Ogiltig loop: för att skapa speciella mönster (dvs. rainbow, solnedgång, ocean blue), vi måste ha olika funktioner under slingan.
"Pomona" är en av de förinställda funktionerna under ogiltig loop. Det visar färgerna blått och vitt tills en annan funktion anropas.
Pomona
om (arch == 8) / / jag ställa in variabeln till 8 så att
{
RGBW kod för blå
analogWrite (pinR, 85);
analogWrite (pinW, 0);
analogWrite (pinG, 49);
analogWrite (pinB, 203);
Delay(1000); //pauses innan du ändrar till vitt
RGBW kod för vit
analogWrite (pinR, 0);
analogWrite (pinW, 255);
analogWrite (pinG, 0);
analogWrite (pinB, 0);
Delay(1000); //pauses innan du ändrar tillbaka till blått
}
Random "Mjau" funktion: Bara för skojs skull beslutat att skriva en funktion som kommer att ställa slumpmässiga RGBW värden. LED-färger kommer att vara slumpmässigt när jag säger "mjau" till mikrofonen. För att göra detta, använde jag den inbyggda i "random" i programmet Arduino.
innan Tom setup():
lång randNumberR; genererar ett slumptal för rött (för våra Meow funktion)
lång randNumberW; genererar ett slumptal för vit (för våra Meow funktion)
lång randNumberG; genererar ett slumptal för grönt (för våra Meow funktion)
lång randNumberB; genererar ett slumptal för blått (för våra Meow funktion)
inuti void setup():
randomSeed(analogRead(0));
inuti void loop ():
randNumberR=random(255); //generates slumptal mellan 0 och 255 för röd
randNumberW=random(255); //generates slumptal mellan 0 och 255 för vit
randNumberG=random(255); //generates slumptal mellan 0 och 255 för grön
randNumberB=random(255); //generates slumptal mellan 0 och 255 för blå
även inuti void loop():
om (arch == 9)
{
analogWrite (pinR, randNumberR);
analogWrite (pinW, randNumberW);
analogWrite (pinG, randNumberG);
analogWrite (pinB, randNumberB);
Delay(1000); }
i void setLEDs():
annat if(bvSerial.strData=="Meow") / / om BitVoicer upptäcker "mjau", arch sätts till 9
{arch = 9.
}