Paso 3: Subir archivos y códigos
Después de descargar BitVoicer y Arduino, escribí algunos códigos para Arduino y crea un nuevo archivo de BitVoicer. He incluido ambos archivos en el archivo adjunto de este instructable. (Nota: usted no podrá abrir el archivo vsc a menos que tenga instalado BitVoicer). Para iniciar el programa, primero subir el código de Arduino y luego presione el botón start en el archivo BitVoicer.
¿LED no responde a tu voz? Verificar estas cosas en Preferencias (debajo de archivo) para BitVoicer:
- Bits por segundo se establece en: 115200
- Entrada de audio es el micrófono por defecto de la computadora
- establece el nombre del puerto en el mismo puerto que está conectado a Arduino (llamado COM_)
Si todavía no funciona, intentar estas cosas en Preferencias (debajo de archivo) para BitVoicer:
- bajar el nivel de confianza aceptable
- Asegúrese de que el micrófono de la computadora por defecto se establece en su micrófono USB externo. Busque la configuración de micrófono en tu computadora
Para escribir el código de Arduino, primero abrí el archivo leandro4b utilizada para su reconocimiento de voz con proyecto Arduino. A partir de ahí, cambié y añade algunos códigos para que el LED hace el comando que quería hacer. He añadido los comandos BitVoicer, asignado a cada comando en una cadena de BitVoicer, entonces programación las funciones para cada cadena en Arduino.
Puesto que el código es un poco largo, voy a explicar sólo algunos de la derecha de las funciones a continuación.
Principio del código: Esto es básicamente donde "instaló" todo.
#include / / bit biblioteca de vocero de llamadas
//Instantiates la clase BitVoicerSerial
BitVoicerSerial bvSerial = BitVoicerSerial();
//Stores true si la herramienta de calibración de Audio Streaming
se está ejecutando
sampleTest boolean = false;
tipo de datos byte = 0; Almacena el tipo de datos obtenido por getData()
pinR int = 6; / / configurar pin 6 a ser rojo
pinW int = 10; / / configurar el pin 10 a blanco
pinG de int = 11; / / configurar el pin 11 a ser verde
pinB int = 9; / / configurar pin 9 a ser rojo
int lightLevelR = 0; / / configurar inicial nivel de luz de rojo a 0
int lightLevelW = 0; / / configurar inicial nivel de luz de color blanco a ser 0
int lightLevelG = 0; / / nivel inicial luz verde para ser 0
int lightLevelB = 0; / / configurar inicial nivel de luz de color azul que 0
arch int = 0; Esta es una variable que presentará diferentes bucles
largo randNumberR; / / genera un número aleatorio para el rojo (para la función de maullido)
largo randNumberW; / / genera un número aleatorio para el blanco (para la función de maullido)
largo randNumberG; / / genera un número aleatorio para el verde (para función de maullido)
largo randNumberB; / / genera un número aleatorio para el azul (para función de maullido)
Anular setLEDs(): esto es donde nos llame a una función después de la BitVoicer transferencia de la voz a la cadena. Bajo vacío setLEDs, tengo "despertar", "vaya sueño", "encender/apagar el led rojo", "encender/apagar led azul", etc. "más/menos" verde". También tengo patrones predeterminados como "arco iris", "atardecer" y "océano azul".
Abajo está el código para el comando de voz "más azul"
else if (bvSerial.strData=="BBright") / / si BitVoicer detecta "más azul", esta función se ejecutará
{
Si (lightLevelB < 255) / / si el nivel de luz es inferior a 255, entonces vamos a añadir brillo al azul
{
lightLevelB += 85; / / cuando se llama a la función, vamos a añadir 85 para el lightlevel para el azul. Usted puede agregar cualquier incrementos de nivel de luz que desee.
analogWrite (pinR, lightLevelR); //Light nivel de red se mantiene constante
analogWrite (pinW, lightLevelW); //Light nivel de blanco se mantiene constante
analogWrite (pinG, lightLevelG); nivel de //Light para el verde se mantiene constante
analogWrite (pinB, lightLevelB); //Light nivel azul cambios como dar este comando
arco = 0; / / tenemos que definir la variable de arco en 0 para que accidentalmente no llama nada en el bucle que verá a continuación
}
}
Para los patrones, marquen la función en la variable del arco = (un entero). Este arco = (integer) se llama un bucle el void loop. Esto es porque los patrones necesitan repetir hasta que se llama a otra función.
else if (bvSerial.strData=="Pomona") / / si BitVoicer detecta "pomona", esta función se ejecutará
{
arco = 8; / / establecerá arco a 8, que le llevará hasta arco == 8 bucle en bucle vacío (véase abajo)
}
Bucle vacío: para crear patrones especiales (es decir, arco iris, puesta de sol, mar azul), tenemos que tener diferentes funciones en el bucle.
"Pomona" es una de las funciones predefinidas en bucle vacío. Muestra los colores azules y blancos hasta que se llama a otra función.
Pomona
Si (arco == 8) / / configurar la variable a 8 para que
{
Código RGBW de azul
analogWrite (pinR, 85);
analogWrite (pinW, 0);
analogWrite (pinG, 49);
analogWrite (pinB, 203);
Delay(1000); //pauses antes de cambiar a blanco
Código RGBW de blanco
analogWrite (pinR, 0);
analogWrite (pinW, 255);
analogWrite (pinG, 0);
analogWrite (pinB, 0);
Delay(1000); //pauses antes de cambiar a azul
}
Random "Meow" función: Sólo por diversión, me decidí a escribir una función que valores aleatorios RGBW. Los colores del LED sera al azar cuando digo "Miau" al micrófono. Para ello, usé el construido en "al azar" en el programa de Arduino.
antes de void setup():
largo randNumberR; genera un número aleatorio para el rojo (para nuestra función de maullido)
largo randNumberW; genera un número aleatorio para el blanco (para nuestra función de maullido)
largo randNumberG; genera un número aleatorio para el verde (para nuestra función de maullido)
largo randNumberB; genera un número aleatorio para el azul (para nuestra función de maullido)
dentro de void setup():
randomSeed(analogRead(0));
dentro de void loop ():
randNumberR=random(255); //Generates número aleatorio entre 0 y 255 para rojo
randNumberW=random(255); //Generates número aleatorio entre 0 y 255 para el blanco
randNumberG=random(255); //Generates número aleatorio entre 0 y 255 para el verde
randNumberB=random(255); //Generates número aleatorio entre 0 y 255 para el azul
también dentro de void loop():
Si (arco == 9)
{
analogWrite (pinR, randNumberR);
analogWrite (pinW, randNumberW);
analogWrite (pinG, randNumberG);
analogWrite (pinB, randNumberB);
Delay(1000); }
en setLEDs() nula:
if(bvSerial.strData=="Meow") más / / si BitVoicer detecta "Miau", el arco se establecerá en 9
{arco = 9;
}