Étape 3: Logiciel et se préparent à commencer la chasse !
votre téléphone premier.
Heureusement, Annikken Andee est livré avec une application gratuite que vous pouvez télécharger à partir
l’Apple store pour iOS.
Utiliser le Annikken Andee App pour rechercher votre appareil. Une fois connecté a la volonté de téléphone a commencé la recherche de l’oeuf.
Le cacher dans des endroits sombres pour voir les couleurs changer à mesure que l'on se rapproche. Amusez vous à Eggster la recherche et heureux tout le monde!!
Voici le plan de leçons, que nous avons développé pour une information visuelle simple et rapide pour ce projet.
Leçon 1: Création de votre premier présentoir boîtes !
Leçon 4: Couleurs changeantes
Leçon 9: L’utilisation des boutons pour contrôler les LED ou relais
Leçon 20 : Utiliser la puissance du Signal de Bluetooth pour contrôler les choses
En savoir plus sur Annikken Andee au
http://www.annikken.com/
Où puis-je télécharger la plus récente Bibliothèque et firmware ?
http://www.annikken.com/getstarted/
Après quoi, copiez ce code source arduino et télécharger sur l’arduino.
/************************************************************
[Annikken Andee - chasse aux oeufs de Pâques]
================
Intensité du Signal Bluetooth permet de régler la couleur de la LED RGB
TTS permet de chanter une chanson !
par Robin Ha < robin
Consultez notre section ressources pour plus d’informations et
idées sur ce que vous pouvez faire avec le Annikken Andee !
http://Resources.annikken.com
Consultez notre Blog pour les mises à jour régulières et amusant !
http://annikken.com/blog
************************************************************/
#include < SPI.h >
#include < Andee.h >
Nous aurons un displaybox à vous montrer la puissance du signal Bluetooth
Displaybox AndeeHelper ;
AndeeHelper displaybox2 ;
Bouton de AndeeHelper ;
AndeeHelper speechObject ; Vous devez créer un objet de discours pour le téléphone parler
AndeeHelper btnNotify ;
Signaux int [10] = {0,0,0,0,0,0,0,0,0,0} ;
int curSignalPos = 0 ;
int redPin = 13 ;
int greenPin = 11 ;
bluePin int = 10 ;
char strBuffer [30] ;
char signalStr [4] ;
int signalStrength ;
État int ;
La fonction setup() est censée dire Arduino quoi faire
seulement quand il démarre.
void setup()
{
Andee.Begin() ; Configuration de communication entre Annikken Andee et Arduino
Andee.Clear() ; Effacer l’écran de tout affichage précédent
setInitialData() ; Définir les types d’objets et de leur apparence
pinMode(redPin,OUTPUT) ;
pinMode(greenPin,OUTPUT) ;
pinMode(bluePin,OUTPUT) ;
Serial.Begin(9600) ;
}
C’est la fonction destinée à définir les types et l’apparition des
tous les objets sur votre smartphone
Sub setInitialData()
{
displaybox.setId(0) ; Chaque objet doit avoir un numéro d’identification unique
displaybox.setType(DATA_OUT) ; Cela définit votre objet comme une boîte de présentation
displaybox.setLocation (0,0, plein) ; Définit l’emplacement et la taille de votre objet
displaybox.setColor(THEME_YELLOW) ;
displaybox.setTitleColor("50000000") ;
displaybox.setTitle ("chasse de Pâques") ;
displaybox.setTitleTextColor("FFFFFFFF") ;
displaybox.setData ("où est le œuf? ») ;
displaybox2.setId(2) ;
displaybox2.SetType(DATA_OUT) ;
displaybox2.SetLocation(1,0,Full) ;
displaybox2.setColor(THEME_ORANGE) ;
displaybox2.setTitleColor("50000000") ;
displaybox2.SetTitle (« œuf Detector ») ;
displaybox2.setUnit("") ;
button.setId(6) ; N’oubliez pas d’attribuer un numéro d’identification unique
button.setType(BUTTON_IN) ; Définit l’objet sous forme de bouton
button.setLocation(1,0,FULL) ;
button.setTitle ("Let's celebrate avec Easter Bunny chanson!") ;
button.setColor("FFFFB6C1") ;
speechObject.setId(12) ;
speechObject.setType(TTS) ; Définit l’objet comme un objet de synthèse vocale
}
int dcCounter = 3 ;
bool connexion = false ;
Arduino fonctionnera instructions ici à plusieurs reprises jusqu'à ce que vous l’éteignez.
void loop()
{
Si (Andee.isConnected()) / / exécuter uniquement lorsque connecté
{
dcCounter = 3 ;
{if(Connection==false)}
connexion = true ;
État = 0 ;
Andee.Clear() ;
displaybox.setColor(THEME_YELLOW) ;
displaybox.Update() ;
speechObject.updateData ("Bienvenue à la chasse aux oeufs de Pâques!") ;
Delay(2500) ;
displaybox2.SetData("Initialising.") ;
speechObject.updateData ("initialisation de détecteur de l’oeuf") ;
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 ("oeuf détecteur en ligne") ;
displaybox2.SetData ("< en ligne >") ;
displaybox2.Update() ;
Delay(1500) ;
}
int str = getStrength() ;
updateState(str) ;
stateToBlinkPattern() ;
displaybox.Update() ;
displaybox2.SetData(StateToText()) ;
displaybox2.Update() ;
if(State == 6) {}
speechObject.updateData ("vous avez trouvé l’oeuf!") ;
displaybox2.SetData ("vous avez trouvé l’oeuf!") ;
displaybox2.Update() ;
spamRandomBlink(3500) ;
displaybox2.Remove() ;
displaybox.setData (« Easter Egg trouvé") ;
displaybox.Update() ;
Button.Update() ;
speechObject.updateData ("permet de chanter une chanson pour célébrer!") ;
{while(1)}
setRGB(-1,-1,-1,1000) ;
Si (button.isPressed())
{
Button.ACK() ;
button.requireAck(false) ;
button.setTitle (« chant ~ ~ ") ;
Button.Update() ;
speechObject.setUtteranceSpeed(0.65) ;
speechObject.setPitch(1.1) ;
speechObject.updateData ("c’est la chanson de Bunny, chanter avec moi!") ;
speechObject.updateData ("vous mettez vos pattes droite") ;
speechObject.updateData ("vous sortir vos pattes droite") ;
speechObject.updateData ("vous mettez vos pattes droite") ;
speechObject.updateData ("et vous secouez tout sur") ;
speechObject.updateData ("vous faites le Pokey Bunny") ;
speechObject.updateData ("et hop vous. tous. environ") ;
speechObject.updateData ("c’est ce que") ;
speechObject.setUtteranceSpeed(0.45) ;
speechObject.updateData ("c’est tout") ;
speechObject.setUtteranceSpeed(0.35) ;
speechObject.updateData("about!") ;
button.setTitle (« chant ~ ~ ") ;
Button.Update() ;
spamRandomBlink(12000) ;
Button.ACK() ;
Button.Remove() ;
displaybox.setUnit ("de Annikken") ;
displaybox.setData ("Joyeuses Pâques 2014!") ;
speechObject.setUtteranceSpeed(0.5) ;
speechObject.setPitch(1.0) ;
speechObject.updateData ("Joyeuses Pâques") ;
pour (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) ;
}
}
}
}
}
d’autre
{
if(dcCounter>0)
{
dcCounter--;
}
{if(dcCounter==0)}
connexion == false ;
}
}
Delay(50) ;
}
int getStrength() {}
Andee.sendCommand ("GET RSSI", signalStr) ;
signalStrength = atoi(signalStr) ; Convertir en une valeur int
Signaux [curSignalPos] = signalStrength ;
curSignalPos ++ ;
Si (curSignalPos > = 10) {}
curSignalPos = 0 ;
}
Return calAverageStrength() ;
}
void updateState (int averageStr) {}
if(averageStr == 0) {}
changeState(0) ;
}
ElseIf (averageStr < -80) {}
changeState(1) ;
}
ElseIf (averageStr < -72) {}
changeState(2) ;
}
ElseIf (averageStr < -67) {}
changeState(3) ;
}
ElseIf (averageStr < -62) {}
changeState(4) ;
}
ElseIf (averageStr < -57) {}
changeState(5) ;
}
else {}
changeState(6) ;
}
}
char * StateToText() {}
if(State == 0) {}
Return « Calcalating... » ;
}
ElseIf (État == 1) {}
retour "encore assez loin de là" ;
displaybox2.setColor("FFFF0000") ;
}
ElseIf (État == 2) {}
retour « C’est se rapprocher » ;
displaybox2.setColor("FF00FF00") ;
}
ElseIf (État == 3) {}
retour « Au sein de la vacance » ;
displaybox2.setColor("FF0000FF") ;
}
ElseIf (État == 4) {}
retour « Around the Corner » ;
displaybox2.setColor("FFFF00FF") ;
}
ElseIf (État == 5) {}
retour "probablement à côté de vous" ;
displaybox2.setColor("FF00FFFF") ;
}
ElseIf (État == 6) {}
displaybox2.setColor(THEME_ORANGE) ;
retourner à « Vous avez trouvé l’oeuf! » ;
}
}
void changeState (int newState) {}
if(newState>State) {}
État = newState ;
}
}
void stateToBlinkPattern() {}
if(State == 0) {}
setRGB(10,10,10,2000) ;
}
ElseIf (État == 1) {}
setRGB(255,0,0,2000) ;
}
ElseIf (État == 2) {}
setRGB(0,255,0,1500) ;
}
ElseIf (État == 3) {}
setRGB(0,0,255,1000) ;
}
ElseIf (État == 4) {}
setRGB(255,0,255,1000) ;
}
ElseIf (État == 5) {}
setRGB(0,255,255,1000) ;
}
ElseIf (État == 6) {}
setRGB(-1,-1,-1,1000) ;
}
}
int calAverageStrength() {}
int numberOfValidSignal = 0 ;
int TotalStrength ;
pour (int x = 0; x < 10; x ++) {}
{if(Signals[x]!=0)}
TotalStrength = TotalStrength + signaux [x] ;
numberOfValidSignal ++ ;
}
}
{if(numberOfValidSignal==0)}
return 0 ;
}
else {}
int str = TotalStrength/numberOfValidSignal ;
retour 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 durée) {}
pour (int x = (durée) / (400); x > = 0; x--) {}
setRGB(-1,-1,-1,2000) ;
}
}
void setRGB (int G, int R, int uDelay, int B) {}
{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 ;
pour (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 ;
}