Paso 6: Programar tu Arduino
Esta parte también es muy importante. Una vez más, ASCAS ha dado una explicación excelente. He pegado aquí abajo (pero por favor, compruebe su página):
Comprensión de la aplicación
Antes de programar el arduino, primero debe aprender cómo funciona la aplicación. El trabajo de aplicación reconociendo su voz del comando, mostrará las palabras que has hablado y luego enviar datos / cuerdas para el arduino a través de bluetooth. ¿Qué es una cadena? Una cadena es como una palabra, puede hacer declaraciones condicionales de ella [ex: Si (voz == "* equipo") {/ / enciende el Pin #2}]. La «voz» es la cadena, "==" es su condición (significa igual), "* equipo" es el comando y el código dentro de las llaves "{}" son los códigos para ser ejecutado una vez que la cadena coincide con la condición de comando.
¿Qué es el formato de la cadena? ¿Cómo saber cuando el siguiente comando? ¿Cómo distingue un conjunto de palabras de un nuevo comando? La aplicación envía cadenas en este formato * comando #, el asterisco (*) indica el inicio de un nuevo comando y la etiqueta de hash (#) indica el final de un comando. He podido quitar la etiqueta de hash (#) después de cada palabra de la instrucción condicional no pudo quitar el asterisco (*). Usted tendrá que comenzar su condición de comando con un asterisco si no que no funcionará el bosquejo.
¿Cómo puedo cambiar los comandos?
Se puede ver que el "* TV en" destaca de la imagen de arriba. Si desea cambiar el comando, humm vamos a decir "puerta abierta", se puede sustituir el "* TV en" con "* puerta abierta". Recuerde siempre iniciar el comando con un asterisco.
EL CÓDIGO DE
Voz activa Arduino (Bluetooth + Android) codificada por:
Angelo Casimiro (27/04/14)
Adaptado por: Chloe Shih (25/08/14)
PROYECTO SUITE BROS
No dude en modificarla pero recuerda darle crédito
Voz de la cadena;
String voice2;
int
LED1 = 2, //Connect 1 LED al Pin Nº 2
LED2 = 3, //Connect 2 del LED al Pin #3
LED 3 = 4, //Connect 3 LED al Pin #4
LED4 = 5, //Connect 4 LED al Pin #5
LED5 = 6, //Connect 5 del LED al Pin #6
led6 = 7, //Connect 6 LED al Pin #7
LED7 = 8, //Connect LED 7 a Pin #8 (pines comienzan aquí abajo)
LED8 = 9, //Connect 8 LED al Pin #9
LED9 = 10, //Connect 9 del LED al Pin #10
LED10 = 11, //Connect LED 10 a Pin #11
led11 = 12, //Connect 11 LED al Pin #12
led12 = 13; Conectar LED 12 clavijas #13
//--------------------------Call A Function-------------------------------//
void allon() {}
digitalWrite (LED 1, HIGH); Kevin
digitalWrite (led2, HIGH); británico
digitalWrite (LED 3, alto); Chloe
digitalWrite (led4, HIGH); color de Kevin
digitalWrite (led5, HIGH); color del británico
digitalWrite (led6, HIGH); color de Chloe
digitalWrite (led7, HIGH); amarillo medio
digitalWrite (led8, HIGH); verde medio
digitalWrite (led9, HIGH); lado azul
digitalWrite (led10, HIGH); lado rojo
digitalWrite (led11, HIGH); fondo blanco
digitalWrite (led12, HIGH); fondo amarillo
}
void alloff() {}
digitalWrite (LED 1, bajo); Kevin
digitalWrite (led2, LOW); británico
digitalWrite (LED 3, bajo); Chloe
digitalWrite (led4, LOW); color de Kevin
digitalWrite (led5, LOW); color del británico
digitalWrite (led6, LOW); color de Chloe
digitalWrite (led7, LOW); amarillo medio
digitalWrite (led8, LOW); verde medio
digitalWrite (led9, LOW); lado azul
digitalWrite (led10, LOW); lado rojo
digitalWrite (led11, LOW); fondo blanco
digitalWrite (led12, LOW); fondo amarillo
}
void partyloop() {}
mientras que (voz == "* fiesta en") {}
digitalWrite (led4, HIGH); Encienda el LED (alto es el nivel de voltaje)
digitalWrite (led5, HIGH);
digitalWrite (led12, HIGH); fondo amarillo
digitalWrite (led6, HIGH);
digitalWrite (led7, HIGH);
digitalWrite (led8, HIGH);
digitalWrite (led9, HIGH);
digitalWrite (led10, HIGH);
Delay(300); esperar medio segundo
digitalWrite (LED 1, HIGH);
digitalWrite (LED 3, alto);
digitalWrite (led4, LOW); Apagar el LED por lo que la tensión baja
digitalWrite (led6, LOW);
digitalWrite (led7, LOW);
digitalWrite (led10, LOW);
Delay(100);
digitalWrite (LED 3, bajo);
digitalWrite (LED 1, bajo);
digitalWrite (led5, LOW);
digitalWrite (led12, LOW); fondo amarillo
digitalWrite (led2, HIGH);
digitalWrite (led11, HIGH); fondo blanco
digitalWrite (led4, HIGH);
digitalWrite (led6, HIGH);
digitalWrite (led8, LOW);
digitalWrite (led7, HIGH);
digitalWrite (led9, LOW);
digitalWrite (led10, HIGH);
Delay(500);
digitalWrite (led6, LOW);
digitalWrite (LED 1, HIGH);
digitalWrite (LED 3, alto);
digitalWrite (led4, LOW);
digitalWrite (led5, HIGH);
digitalWrite (led12, HIGH);
digitalWrite (led8, HIGH);
digitalWrite (led7, LOW);
digitalWrite (led9, LOW);
digitalWrite (led10, HIGH);
Delay(600);
digitalWrite (LED 1, bajo);
digitalWrite (led2, LOW);
digitalWrite (led11, LOW); fondo blanco
digitalWrite (led5, LOW);
digitalWrite (led12, LOW); fondo amarillo
digitalWrite (LED 3, bajo); voz: "* fiesta en" en este momento
digitalWrite (led7, HIGH);
digitalWrite (led8, LOW);
digitalWrite (led9, HIGH);
digitalWrite (led10, LOW);
Serial.println ("en bucle");
newVoice(); recibe nueva voz.
Si (! () voice2.Equals(Voice)) & & voice2! = "") {}
voz = voice2;
}
}
Si (voz! = "* fiesta sobre" & & voz! = "* fiesta fuera" & & voz! = "* caca partido" & & voz! = "* aguafiestas" & & voz! = "* apagado de las luces" & & voz! = "* fiesta de") {}
voz = "* fiesta en";
voice2 = "";
partyloop();
}
AllOff(); Apague todas las luces
}
//-----------------------------------------------------------------------//
void newVoice() {}
voice2 == ""; voz clara
mientras (Serial.available()) {//Check si hay un byte disponible para leer
Delay(10); Retraso añadido hacer lo estable
char c = Serial.read(); Realizar una lectura serial
if (c == '#') {
rotura;
} //Exit el bucle cuando el # se detecta después de la palabra
voice2 += c; Taquigrafía para voz = voces + c
}
Si (voice2.length() > 0) {}
Serial.println(voice2);
}
}
//-----------------------------------------------------------------------//
void setup() {}
Serial.Begin(9600);
pinMode (led1, salida);
pinMode (led2, salida);
pinMode (led3, salida);
pinMode (led4, salida);
pinMode (led5, salida);
pinMode (led6, salida);
pinMode (led7, salida);
pinMode (led8, salida);
pinMode (led9, salida);
pinMode (led10, salida);
pinMode (led11, salida);
pinMode (led12, salida);
}
//-----------------------------------------------------------------------//
void loop() {}
mientras (Serial.available()) {//Check si hay un byte disponible para leer
Delay(10); Retraso añadido hacer lo estable
char c = Serial.read(); Realizar una lectura serial
if (c == '#') {
rotura;
} //Exit el bucle cuando el # se detecta después de la palabra
voz += c; Taquigrafía para voz = voces + c
}
Si (voice.length() > 0) {}
Serial.println(Voice);
//-----------------------------------------------------------------------//
---Control de múltiples pernos / LEDs---/ /
Si (voz == "* todos encender") {allon();} //Turn de todos los pines (llamada función)
else if (voz == "* Apague todos" || voz == "* desactivar" || voz == "* fiesta sobre" || voz == "* fiesta de" || voz == "* fiesta de" || voz == "* caca de partido" || voz == "* apagado de las luces" || voz == "* luces of"){alloff();} //Turn en todos los pines (llamada función)
else if (voz == "* partido on"){partyloop();}
else if (voz == "* amigos en" || voz == "* la suite bros en" || voz == "* Bros dulce" || voz == "* suite bros en" || voz == "* dulce Bros en") {}
digitalWrite (LED 1, HIGH); Kevin
digitalWrite (led2, HIGH); británico
digitalWrite (LED 3, alto); Chloe
}
else if (voz == "* luces laterales en") {digitalWrite (led9, HIGH); digitalWrite (led10, HIGH);}
---Encender uno---/ /
else if (voz == "* Kevin en" || voz == "* kevin en") {digitalWrite (LED 1, HIGH);}
else if (voz == "* británico en" || voz == "* Brighton en" || voz == "* Abbie en" || voz == "* abbie en") {digitalWrite (led2, HIGH);}
else if (voz == "* Chloe en") {digitalWrite (LED 3, alto);}
else if (voz == "* sonrisa en") {digitalWrite (led11, HIGH);}
else if (voz == "* mensaje en") {digitalWrite (led8, HIGH); digitalWrite (led7, HIGH);}
else if (voz == "* rojo en") {digitalWrite (led10, HIGH);}
else if (voz == "* azul en") {digitalWrite (led9, HIGH);}
---Apague uno---/ /
else if (voz == "* Kevin off" || voz == "* kevin off") {digitalWrite (LED 1, LOW); digitalWrite (led4, LOW);}
else if (voz == "* británico de" || voz == "Brighton fuera" || voz == "* abbie off" || voz == "* Abbie de" || voz == "* abbie de" || voz == "* Abbie apagado") {digitalWrite (led2, LOW); digitalWrite (led5, LOW);}
else if (voz == "* Chloe apagado") {digitalWrite (LED 3, bajo); digitalWrite (led6, LOW);}
else if (voz == "* mensaje" || voz == "* mensaje de") {digitalWrite (led7, LOW); digitalWrite (led8, LOW);}
else if (voz == "* rojo apagado" || voz == "* rojo de") {digitalWrite (led10, LOW);}
else if (voz == "* azul" || voz == "* azul de") {digitalWrite (led9, LOW);}
else if (voz == "* sonrisa de" || voz == "* sonrisa apagado") {digitalWrite (led11, LOW); digitalWrite (led12, LOW);}
---Apague en grupo---/ /
else if (voz == "* amigos de" || voz == "* amigos de" || voz == "suite bros off" || voz == "* Bros dulce de" || voz == "* Bros dulce apagado" || voz == "* bros dulce apagado" || voz == "* bros dulce de") {}
digitalWrite (LED 1, bajo); Kevin
digitalWrite (led2, LOW); británico
digitalWrite (LED 3, bajo); Chloe
}
//-----------------------------------------------------------------------//
voz = "" ;}} Restablecer la variable después de iniciar