Paso 3: Software y prepárate comenzar la caza.
el teléfono primero.
Por fortuna, Annikken Andee viene con una aplicación gratuita que puede descargar desde
la tienda de Apple para iOS.
Use el Annikken Andee App para escanear para su dispositivo. Una vez conectado a la voluntad de teléfono comenzada la búsqueda para el huevo.
Esconderse en lugares oscuros para ver los colores cambian a medida que se acerca. Diviértete Eggster busca y felices todos!
Aquí está el plan de lecciones que hemos desarrollado para fácil y rápida información visual para este proyecto.
Lección 1: Crear tus primera Mostrar cuadros!
Lección 4: Cambiar colores
Lección 9: Uso de botones para controlar LED o relés
Lección 20: Uso de fuerza de señal Bluetooth Control cosas
Más información sobre Annikken Andee en
http://www.annikken.com/
¿Donde puedo descargar la biblioteca y el firmware más reciente?
http://www.annikken.com/GetStarted/
Afterwhich, copia este código de arduino y subir a arduino.
/************************************************************
[Annikken Andee - huevos de Pascua]
================
Uso de fuerza de la señal de Bluetooth para ajustar el color RGB LED
Utilizar TTS para cantar una canción!
por Robin Ha < robin
Revisa nuestra sección de recursos para obtener más información y
ideas sobre lo que puede hacer con el Annikken Andee!
http://Resources.annikken.com
Visita nuestro Blog para actualizaciones periódicas y la diversión!
http://annikken.com/blog
************************************************************/
#include < SPI.h >
#include < Andee.h >
Tendremos un displaybox para mostrar la intensidad de la señal de Bluetooth
AndeeHelper displaybox;
Displaybox2 de AndeeHelper;
Botón de AndeeHelper;
SpeechObject de AndeeHelper; Es necesario crear un objeto de discurso para el teléfono hablar
BtnNotify de AndeeHelper;
las señales int [10] = {0,0,0,0,0,0,0,0,0,0};
int curSignalPos = 0;
redPin int = 13;
int greenPin = 11;
bluePin int = 10;
char strBuffer [30];
char signalStr [4];
int signalStrength;
int estado;
La función setup() pretende decirle a Arduino qué hacer
sólo cuando pone en marcha.
void setup()
{
Andee.Begin(); Configurar la comunicación entre Annikken Andee y Arduino
Andee.Clear(); Limpiar la pantalla de cualquier muestra anterior
setInitialData(); Definir tipos de objetos y su aspecto
pinMode(redPin,OUTPUT);
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
Serial.Begin(9600);
}
Esta es la función que se pretende definir los tipos y la aparición de
todos los objetos de tu smartphone
void setInitialData()
{
displaybox.setId(0); Cada objeto debe tener un número único de identificación
displaybox.setType(DATA_OUT); Esto define su objeto como una caja de presentación
displaybox.setLocation (0,0, total); Establece la ubicación y tamaño del objeto
displaybox.setColor(THEME_YELLOW);
displaybox.setTitleColor("50000000");
displaybox.setTitle "(caza de la semana Santa del);
displaybox.setTitleTextColor("FFFFFFFF");
displaybox.setData ("donde está el huevo?");
displaybox2.setId(2);
displaybox2.settype(DATA_OUT);
displaybox2.setLocation(1,0,Full);
displaybox2.setColor(THEME_ORANGE);
displaybox2.setTitleColor("50000000");
displaybox2.setTitle ("Detector de huevo");
displaybox2.setUnit("");
button.setId(6); No te olvides de asignar a un número único de identificación
button.setType(BUTTON_IN); Define el objeto como un botón
button.setLocation(1,0,FULL);
button.setTitle ("vamos a celebrar con la canción del conejito de Pascua!");
button.setColor("FFFFB6C1");
speechObject.setId(12);
speechObject.setType(TTS); Define el objeto como un objeto de texto a voz
}
int dcCounter = 3;
conexión de bool = false;
Arduino ejecute instrucciones aquí varias veces hasta que se apague.
void loop()
{
Si (Andee.isConnected()) / / ejecutar sólo cuando se conecta
{
dcCounter = 3;
{if(Connection==false)}
conexión = true;
estado = 0;
Andee.Clear();
displaybox.setColor(THEME_YELLOW);
displaybox.Update();
speechObject.updateData ("Bienvenido a la caza de huevos de Pascua!");
Delay(2500);
displaybox2.SetData("Initialising.");
speechObject.updateData ("huevo Detector inicializar");
displaybox2.Update();
Delay(700);
displaybox2.SetData("Initialising..");
displaybox2.Update();
Delay(700);
displaybox2.SetData("Initialising...");
displaybox2.Update();
Delay(700);
displaybox2.SetData("Initialising.");
displaybox2.Update();
Delay(700);
speechObject.updateData ("huevo Detector en línea");
displaybox2.SetData ("< Online >");
displaybox2.Update();
Delay(1500);
}
int str = getStrength();
updateState(str);
stateToBlinkPattern();
displaybox.Update();
displaybox2.SetData(StateToText());
displaybox2.Update();
if(State == 6) {}
speechObject.updateData ("usted ha encontrado el huevo!");
displaybox2.SetData ("usted ha encontrado el huevo!");
displaybox2.Update();
spamRandomBlink(3500);
displaybox2.Remove();
displaybox.setData ("huevo de Pascua encontrado");
displaybox.Update();
Button.Update();
speechObject.updateData ("permite cantar una canción para celebrar!");
{while(1)}
setRGB(-1,-1,-1,1000);
Si (button.isPressed())
{
Button.ACK();
button.requireAck(false);
button.setTitle ("canto ~ ~");
Button.Update();
speechObject.setUtteranceSpeed(0.65);
speechObject.setPitch(1.1);
speechObject.updateData ("esta es la canción del conejito, canta junto a mí!");
speechObject.updateData ("pones sus patas derecha");
speechObject.updateData ("sacar sus patas derecha");
speechObject.updateData ("pones sus patas derecha");
speechObject.updateData (y sacudirlas todo sobre");
speechObject.updateData ("hacer el Bunny Pokey");
speechObject.updateData (y salto. todos. alrededor");
speechObject.updateData ("que es lo que");
speechObject.setUtteranceSpeed(0.45);
speechObject.updateData ("es todo");
speechObject.setUtteranceSpeed(0.35);
speechObject.updateData("about!");
button.setTitle ("canto ~ ~");
Button.Update();
spamRandomBlink(12000);
Button.ACK();
Button.Remove();
displaybox.setUnit ("por Annikken");
displaybox.setData ("Feliz semana Santa 2014!!!!");
speechObject.setUtteranceSpeed(0.5);
speechObject.setPitch(1.0);
speechObject.updateData ("felices Pascuas");
para (int y = 0; y < 10; y ++) {}
displaybox.setColor(THEME_ORANGE);
displaybox.Update();
spamRandomBlink(1500);
displaybox.setColor(THEME_GREEN);
displaybox.Update();
spamRandomBlink(1500);
displaybox.setColor(THEME_PURPLE);
displaybox.Update();
spamRandomBlink(1500);
}
}
}
}
}
otra cosa
{
if(dcCounter>0)
{
dcCounter--;
}
{if(dcCounter==0)}
conexión == false;
}
}
Delay(50);
}
int getStrength() {}
Andee.sendCommand ("Haz RSSI", signalStr);
signalStrength = atoi(signalStr); Convertir en valor int
Señales [curSignalPos] = signalStrength;
curSignalPos ++;
Si (curSignalPos > = 10) {}
curSignalPos = 0;
}
volver calAverageStrength();
}
void updateState (int averageStr) {}
if(averageStr == 0) {}
changeState(0);
}
else if (averageStr < -80) {}
changeState(1);
}
else if (averageStr < -72) {}
changeState(2);
}
else if (averageStr <-67) {}
changeState(3);
}
else if (averageStr < -62) {}
changeState(4);
}
else if (averageStr < -57) {}
changeState(5);
}
Else {}
changeState(6);
}
}
char * StateToText() {}
if(State == 0) {}
volver a "Calcalating...";
}
else if (estado == 1) {}
volver "todavía muy lejos de él";
displaybox2.setColor("FFFF0000");
}
else if (estado == 2) {}
volver "Es cada vez más cerca";
displaybox2.setColor("FF00FF00");
}
else if (estado == 3) {}
volver "Dentro de la vacante";
displaybox2.setColor("FF0000FF");
}
else if (estado == 4) {}
volver a "Vuelta de la esquina";
displaybox2.setColor("FFFF00FF");
}
else if (estado == 5) {}
volver "probablemente a tu lado";
displaybox2.setColor("FF00FFFF");
}
else if (estado == 6) {}
displaybox2.setColor(THEME_ORANGE);
volver "usted ha encontrado el huevo!";
}
}
void Cambiarestado (int newState) {}
if(newState>State) {}
Estado = newState;
}
}
void stateToBlinkPattern() {}
if(State == 0) {}
setRGB(10,10,10,2000);
}
else if (estado == 1) {}
setRGB(255,0,0,2000);
}
else if (estado == 2) {}
setRGB(0,255,0,1500);
}
else if (estado == 3) {}
setRGB(0,0,255,1000);
}
else if (estado == 4) {}
setRGB(255,0,255,1000);
}
else if (estado == 5) {}
setRGB(0,255,255,1000);
}
else if (estado == 6) {}
setRGB(-1,-1,-1,1000);
}
}
int calAverageStrength() {}
int numberOfValidSignal = 0;
int TotalStrength;
para (int x = 0; x < 10; x ++) {}
{if(signals[x]!=0)}
TotalStrength = TotalStrength + señales [x];
numberOfValidSignal ++;
}
}
{if(numberOfValidSignal==0)}
return 0;
}
Else {}
int str = TotalStrength/numberOfValidSignal;
volver str;
}
}
int LR = 0;
int LG = 0;
int LB = 0;
Float stepsize_R = 0;
Float stepsize_G = 0;
Float stepsize_B = 0;
void spamRandomBlink (int duración) {}
para (int x = (duración) / (400); x > = 0; x--) {}
setRGB(-1,-1,-1,2000);
}
}
{} void setRGB (int R, int G, int B, int uDelay)
{if(R==-1)}
R = random(100,255);
}
{if(G==-1)}
G = random(100,255);
}
{if(B==-1)}
B = random(100,255);
}
stepsize_R = (float)(R-LR) / (float) 200;
stepsize_G = (float)(G-LG) / (float) 200;
stepsize_B = (float)(B-LB) / (float) 200;
para (int x = 1; x < 201; x ++) {}
analogWrite (redPin, LR+(x*stepsize_R));
analogWrite (greenPin, LG+(x*stepsize_G));
analogWrite(bluePin,LB+(x*stepsize_B));
delayMicroseconds(uDelay);
}
LR = R;
LG = G;
LB = B;
}