Étape 6: Programmation votre Arduino
Cette partie suivante est également très importante. Une fois de plus, le secteur a donné une explication exceptionnelle. J’ai collé ci-dessous (mais veuillez consulter sa page) :
Comprendre l’App
Avant de programmer l’arduino, vous devez tout d’abord apprendre comment fonctionne l’app. Les travaux de l’app en reconnaissant votre voix commande, il affiche alors les mots que vous avez parlé alors envoyer des données / cordes à l’arduino via bluetooth. Ce qui est une chaîne ? Une chaîne est comme un mot, vous pouvez faire des instructions conditionnelles hors de lui [ex : si (voix == "* ordinateur sur") {/ / allumer Pin #2}]. « La voix » est votre chaîne, « == » est votre condition (signifie égal à), « * ordinateur sur "est votre commande et le code à l’intérieur des accolades"{}"sont les codes pour être exécuté une fois que votre chaîne correspond à l’état de la commande.
Quel est le format de la chaîne ? Comment sait-il quand la prochaine commande est utilisé ? Comment est-ce il différencie un ensemble de mots d’une nouvelle commande ? L’application envoie des chaînes dans ce format * commande #, l’astérisque (*) indique le début d’une nouvelle commande et la balise de hachage (#) indique la fin d’une commande. J’ai pu enlever le hash-tag (#) après que chaque mot dans l’instruction conditionnelle n’a pas été en mesure de supprimer l’astérisque (*). Vous aurez besoin démarrer votre état de commande avec un astérisque autrement que l’esquisse ne fonctionnera pas.
Comment puis-je changer les commandes ?
Vous pouvez voir que le "* TV sur" est mis en évidence de l’image ci-dessus. Si vous souhaitez modifier la commande à, humm, nous allons dire « porte ouverte », vous pouvez remplacer le "* TV sur" avec "* porte de garage ouverte". N’oubliez pas de commencer la commande avec un astérisque.
LE CODE
Arduino (Bluetooth + Android) codé par commande vocale :
Angelo Cavalli (27/04/14)
Adapté par : Chloe Shih (25/08/14)
PROJET SUITE BROS
N’hésitez pas à le modifier, mais n’oubliez pas de donner crédit
Voix de la chaîne ;
String voice2 ;
int
LED1 = 2, //Connect LED 1 à broche #2
LED2 = 3, //Connect LED 2 à broche #3
LED3 = 4, //Connect LED 3 à broche #4
LED4 = 5, //Connect LED 4 à broche #5
5 = 6, //Connect LED 5 à broche #6
LED6 = 7, //Connect LED 6 à broche #7
LED7 = 8, //Connect LED 7 à broche #8 (broches commencent ici en bas)
LED8 = 9, //Connect LED 8 à Pin #9
LED9 = 10, //Connect LED 9 à Pin #10
LED10 = 11, //Connect LED 10 à broche #11
LED11 = 12, //Connect LED 11 à Pin #12
LED12 = 13 ; Branchez le LED 12 sur broche #13
//--------------------------Call A Function-------------------------------//
void allon() {}
digitalWrite (led1, HIGH) ; Kevin
digitalWrite (led2, HIGH) ; Briton
digitalWrite (DEL3, HIGH) ; Chloe
digitalWrite (led4, HIGH) ; couleur de kevin
digitalWrite (DEL5, HIGH) ; couleur de Briton
digitalWrite (led6, HIGH) ; couleur de Chloé
digitalWrite (led7, HIGH) ; jaune moyen
digitalWrite (led8, HIGH) ; vert moyen
digitalWrite (led9, HIGH) ; côté bleu
digitalWrite (led10, HIGH) ; côté rouge
digitalWrite (led11, HIGH) ; fond blanc
digitalWrite (led12, HIGH) ; fond jaune
}
void alloff() {}
digitalWrite (led1, faible) ; Kevin
digitalWrite (led2, faible) ; Briton
digitalWrite (DEL3, faible) ; Chloe
digitalWrite (led4, faible) ; couleur de kevin
digitalWrite (DEL5, faible) ; couleur de Briton
digitalWrite (led6, faible) ; couleur de Chloé
digitalWrite (led7, faible) ; jaune moyen
digitalWrite (led8, faible) ; vert moyen
digitalWrite (led9, basse) ; côté bleu
digitalWrite (led10, basse) ; côté rouge
digitalWrite (led11, faible) ; fond blanc
digitalWrite (led12, faible) ; fond jaune
}
void partyloop() {}
tandis que (voix == "* parti") {}
digitalWrite (led4, HIGH) ; allumer la LED (HIGH est le niveau de tension)
digitalWrite (DEL5, HIGH) ;
digitalWrite (led12, HIGH) ; fond jaune
digitalWrite (led6, HIGH) ;
digitalWrite (led7, HIGH) ;
digitalWrite (led8, HIGH) ;
digitalWrite (led9, HIGH) ;
digitalWrite (led10, HIGH) ;
Delay(300) ; attendez pendant une demi-seconde
digitalWrite (led1, HIGH) ;
digitalWrite (DEL3, HIGH) ;
digitalWrite (led4, faible) ; éteindre la LED en rendant la tension basse
digitalWrite (led6, faible) ;
digitalWrite (led7, faible) ;
digitalWrite (led10, basse) ;
Delay(100) ;
digitalWrite (DEL3, faible) ;
digitalWrite (led1, faible) ;
digitalWrite (DEL5, faible) ;
digitalWrite (led12, faible) ; fond jaune
digitalWrite (led2, HIGH) ;
digitalWrite (led11, HIGH) ; fond blanc
digitalWrite (led4, HIGH) ;
digitalWrite (led6, HIGH) ;
digitalWrite (led8, faible) ;
digitalWrite (led7, HIGH) ;
digitalWrite (led9, basse) ;
digitalWrite (led10, HIGH) ;
Delay(500) ;
digitalWrite (led6, faible) ;
digitalWrite (led1, HIGH) ;
digitalWrite (DEL3, HIGH) ;
digitalWrite (led4, faible) ;
digitalWrite (DEL5, HIGH) ;
digitalWrite (led12, HIGH) ;
digitalWrite (led8, HIGH) ;
digitalWrite (led7, faible) ;
digitalWrite (led9, basse) ;
digitalWrite (led10, HIGH) ;
Delay(600) ;
digitalWrite (led1, faible) ;
digitalWrite (led2, faible) ;
digitalWrite (led11, faible) ; fond blanc
digitalWrite (DEL5, faible) ;
digitalWrite (led12, faible) ; fond jaune
digitalWrite (DEL3, faible) ; voix: « * parti "à ce stade
digitalWrite (led7, HIGH) ;
digitalWrite (led8, faible) ;
digitalWrite (led9, HIGH) ;
digitalWrite (led10, basse) ;
Serial.println ("en boucle") ;
newVoice() ; reçoit la nouvelle voix.
Si (! () voice2.Equals(Voice)) & & voice2! = "") {}
voix = voice2 ;
}
}
Si (voix! = "* parti sur" & & voix! = "* parti hors" & & voix! = "* merde parti" & & voix! = "* party pooper" & & voix! = "* lumières éteintes" & & voix! = "* parti de") {}
voix = "* parti » ;
voice2 = "" ;
partyloop() ;
}
ALLOFF() ; Éteignez toutes les lumières
}
//-----------------------------------------------------------------------//
void newVoice() {}
voice2 == "" ; voix claire
tandis que (Serial.available()) {//Check s’il y a un octet disponible pour lire
Delay(10) ; Délai ajouté pour rendre la chose stable
char c = Serial.read() ; Procéder à une lecture de série
if (c == '#') {
rupture ;
} //Exit la boucle lorsque le # est détecté après le mot
voice2 += c ; Raccourci pour voix = voix + c
}
Si (voice2.length() > 0) {}
Serial.println(voice2) ;
}
}
//-----------------------------------------------------------------------//
void setup() {}
Serial.Begin(9600) ;
pinMode (led1, sortie) ;
pinMode (led2, sortie) ;
pinMode (DEL3, sortie) ;
pinMode (led4, sortie) ;
pinMode (DEL5, sortie) ;
pinMode (led6, sortie) ;
pinMode (led7, sortie) ;
pinMode (led8, sortie) ;
pinMode (led9, sortie) ;
pinMode (led10, sortie) ;
pinMode (led11, sortie) ;
pinMode (led12, sortie) ;
}
//-----------------------------------------------------------------------//
void loop() {}
tandis que (Serial.available()) {//Check s’il y a un octet disponible pour lire
Delay(10) ; Délai ajouté pour rendre la chose stable
char c = Serial.read() ; Procéder à une lecture de série
if (c == '#') {
rupture ;
} //Exit la boucle lorsque le # est détecté après le mot
c += de voix ; Raccourci pour voix = voix + c
}
Si (voice.length() > 0) {}
Serial.println(Voice) ;
//-----------------------------------------------------------------------//
---Contrôler plusieurs codes PIN / LEDs---/ /
Si (voix == "* tout allumer") {allon();} //Turn Off toutes les goupilles (fonction appel)
ElseIf (voix == "* tout éteindre" || voix == "* éteindre" || voix == "* party sur" || voix == "* parti hors" || voix == "* partie de" || voix == "* merde parti" || voix == "* lumières éteintes" || voix == "* s’allume of"){alloff();} //Turn sur toutes les goupilles (fonction d’appel)
ElseIf (voix == "* partie on"){partyloop();}
ElseIf (voix == "* amis sur" || voix == "* les bros de suite sur" || voix == "* la douce Bros" || voix == "* suite bros sur" || voix == "* doux Bros sur") {
digitalWrite (led1, HIGH) ; Kevin
digitalWrite (led2, HIGH) ; Briton
digitalWrite (DEL3, HIGH) ; Chloe
}
ElseIf (voix == "* feux sur") {digitalWrite (led9, HIGH); digitalWrite (led10, HIGH);}
---Allumer par un---/ /
ElseIf (voix == "* Kevin sur" || voix == "* kevin sur") {digitalWrite (led1, HIGH);}
ElseIf (voix == "* britannique sur" || voix == "* Brighton sur" || voix == "* Abbie sur" || voix == "* abbie sur") {digitalWrite (led2, HIGH);}
ElseIf (voix == "* Chloe sur") {digitalWrite (DEL3, HIGH);}
ElseIf (voix == "* smile sur") {digitalWrite (led11, HIGH);}
ElseIf (voix == "* message sur") {digitalWrite (led8, HIGH); digitalWrite (led7, HIGH);}
ElseIf (voix == "* rouge sur") {digitalWrite (led10, HIGH);}
ElseIf (voix == "* bleu sur") {digitalWrite (led9, HIGH);}
---Couper un par un---/ /
ElseIf (voix == "* Kevin off" || voix == "* kevin off") {digitalWrite (led1, faible); digitalWrite (led4, faible);}
ElseIf (voix == "* britannique hors" || voix == « Brighton off » || voix == "* abbie hors" || voix == "* Abbie de" || voix == "* abbie de" || voix == "* Abbie off") {digitalWrite (led2, faible); digitalWrite (DEL5, faible);}
ElseIf (voix == "* Chloe off") {digitalWrite (DEL3, faible); digitalWrite (led6, LOW);}
ElseIf (voix == "* message hors" || voix == "* message de") {digitalWrite (led7, LOW); digitalWrite (led8, LOW);}
ElseIf (voix == "* rouge éteint" || voix == "* rouge de") {digitalWrite (led10, LOW);}
ElseIf (voix == "* bleu hors" || voix == "* bleu de") {digitalWrite (led9, LOW);}
ElseIf (voix == "* sourire de" || voix == "* sourire éteint") {digitalWrite (led11, LOW); digitalWrite (led12, faible);}
---S’éteint au groupe---/ /
ElseIf (voix == "* amis hors" || voix == "* amis du" || voix == « bros suite arrêt » || voix == "* Bros doux de" || voix == "* Bros doux hors" || voix == "* bros doux hors" || voix == "* bros doux de") {
digitalWrite (led1, faible) ; Kevin
digitalWrite (led2, faible) ; Briton
digitalWrite (DEL3, faible) ; Chloe
}
//-----------------------------------------------------------------------//
voix = "";}} Réinitialiser la variable après l’ouverture