Projektet Suite Bros: Röst aktiverat LED vänskap FOTOSÄTTA (Arduino, Bluetooth, hantverk) (6 / 9 steg)
Steg 6: Programmering din Arduino
Denna nästa del är också mycket viktigt. ASCAS har återigen gett en enastående förklaring. Jag har klistrat in det här nedan (men kolla hans sida):
Förstå App
Innan du programmera arduino, måste du först lära dig hur appen fungerar. App arbetet genom att erkänna din röst befalla, det kommer sedan att visa de ord som du har talat sedan skicka data / strängar till arduino via bluetooth. Vad är en sträng? En sträng är som ett ord, kan du göra villkorliga satser av [ex: om (röst == "* dator på") {/ / slå Pin #2 på}]. "Röst" är din sträng, "==" är ditt tillstånd (betyder lika med), "* dator på" är ditt kommando och kod inuti klammerparenteser "{}" är koderna som ska köras när din strängen matchar villkoret kommando.
Vad är formatet av strängen? Hur vet det när nästa kommando sparkar i? Hur det skilja en uppsättning ord från ett nytt kommando? App skickar strängar i detta format * kommandot #, asterisk (*) anger början av ett nytt kommando och hash-taggen (#) anger slutet på ett kommando. Jag kunde ta bort hash-taggen (#) efter varje ord i villkorlig uppgift inte var att ta bort asterisken (*). Måste du starta ditt kommando tillstånd med en asterisk annars skissen inte fungerar.
Hur kan jag ändra kommandon?
Du kan se att den "* TV på" markeras från bilden ovan. Om du vill ändra kommandot till, humm låt oss säga "öppna garageporten", kan du ersätta den "* TV på" med "* öppet garagedörren". Kom alltid ihåg att starta kommandot med en asterisk.
KODEN
Röst aktiverat Arduino (Bluetooth + Android) kodad av:
Angelo Casimiro (4/27/14)
Anpassade av: Chloe Shih (8/25/14)
PROJEKTET SUITE BROS
Känn dig fri att ändra det men kom ihåg att ge kredit
Sträng röst.
Sträng voice2;
int
LED1 = 2, //Connect LED 1 till Pin #2
LED2 = 3, //Connect LED 2 Pin #3
LED3 = 4, //Connect LED 3-Pin #4
LED4 = 5, //Connect LED 4-Pin #5
led5 = 6, //Connect LED 5-Pin #6
led6 = 7, //Connect LED 6-Pin #7
led7 = 8, //Connect LED 7-Pin #8 (nedre stiften börja här)
LED8 = 9, //Connect LED 8-Pin #9
led9 = 10, //Connect LED 9-Pin #10
led10 = 11, //Connect LED 10 Pin #11
led11 = 12, //Connect LED 11 till Pin #12
led12 = 13. Ansluta LED 12 till Pin #13
//--------------------------Call A Function-------------------------------//
void allon() {
digitalWrite (led1, hög); Kevin
digitalWrite (led2, hög); Britt
digitalWrite (led3, hög); Chloe
digitalWrite (led4, hög); kevin's färg
digitalWrite (led5, hög); Britts färg
digitalWrite (led6, hög); Chloes färg
digitalWrite (led7, hög); gul mitten
digitalWrite (led8, hög); gröna mitten
digitalWrite (led9, hög); blå sidan
digitalWrite (led10, hög); röda sidan
digitalWrite (led11, hög); vit botten
digitalWrite (led12, hög); gul botten
}
void alloff() {
digitalWrite (led1, låg); Kevin
digitalWrite (led2, låg); Britt
digitalWrite (led3, låg); Chloe
digitalWrite (led4, låg); kevin's färg
digitalWrite (led5, låg); Britts färg
digitalWrite (led6, låg); Chloes färg
digitalWrite (led7, låg); gul mitten
digitalWrite (led8, låg); gröna mitten
digitalWrite (led9, låg); blå sidan
digitalWrite (led10, låg); röda sidan
digitalWrite (led11, låg); vit botten
digitalWrite (led12, låg); gul botten
}
void partyloop() {
medan (röst == "* party på") {
digitalWrite (led4, hög); Aktivera LED (HIGH är spänningsnivån)
digitalWrite (led5, hög);
digitalWrite (led12, hög); nedre gula
digitalWrite (led6, hög);
digitalWrite (led7, hög);
digitalWrite (led8, hög);
digitalWrite (led9, hög);
digitalWrite (led10, hög);
Delay(300); vänta en halv sekund
digitalWrite (led1, hög);
digitalWrite (led3, hög);
digitalWrite (led4, låg); Inaktivera LED genom att spänningen låg
digitalWrite (led6, låg);
digitalWrite (led7, låg);
digitalWrite (led10, låg);
Delay(100);
digitalWrite (led3, låg);
digitalWrite (led1, låg);
digitalWrite (led5, låg);
digitalWrite (led12, låg); nedre gula
digitalWrite (led2, hög);
digitalWrite (led11, hög); vit botten
digitalWrite (led4, hög);
digitalWrite (led6, hög);
digitalWrite (led8, låg);
digitalWrite (led7, hög);
digitalWrite (led9, låg);
digitalWrite (led10, hög);
Delay(500);
digitalWrite (led6, låg);
digitalWrite (led1, hög);
digitalWrite (led3, hög);
digitalWrite (led4, låg);
digitalWrite (led5, hög);
digitalWrite (led12, hög);
digitalWrite (led8, hög);
digitalWrite (led7, låg);
digitalWrite (led9, låg);
digitalWrite (led10, hög);
Delay(600);
digitalWrite (led1, låg);
digitalWrite (led2, låg);
digitalWrite (led11, låg); vit botten
digitalWrite (led5, låg);
digitalWrite (led12, låg); nedre gula
digitalWrite (led3, låg); röst: "* party på" på denna punkt
digitalWrite (led7, hög);
digitalWrite (led8, låg);
digitalWrite (led9, hög);
digitalWrite (led10, låg);
Serial.println ("i loop");
newVoice(); får nya röst.
om (! () voice2.equals(Voice)) & & voice2! = "") {
röst = voice2;
}
}
om (röst! = "* party över" & & röst! = "* party off" & & röst! = "* party poop" & & röst! = "* part pooper" & & röst! = "* lights off" & & röst! = "* parti av") {
röst = "* party på";
voice2 = "";
partyloop();
}
alloff(); Inaktivera alla lampor
}
//-----------------------------------------------------------------------//
void newVoice() {
voice2 == ""; tydlig röst
samtidigt (Serial.available()) {//Check om det finns en tillgänglig byte att läsa
Delay(10); Dröjsmål till göra sak stabil
char c = Serial.read(); Genomföra en seriell läsa
if (c == '#') {
bryta;
} //Exit slingan när # upptäcks efter ordet
voice2 += c; Förkortning för röst = röst + c
}
om (voice2.length() > 0) {
Serial.println(voice2);
}
}
//-----------------------------------------------------------------------//
void setup() {
Serial.BEGIN(9600);
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
pinMode (led5, produktionen);
pinMode (led6, produktionen);
pinMode (led7, produktionen);
pinMode (led8, produktionen);
pinMode (led9, produktionen);
pinMode (led10, produktionen);
pinMode (led11, produktionen);
pinMode (led12, produktionen);
}
//-----------------------------------------------------------------------//
void loop() {
samtidigt (Serial.available()) {//Check om det finns en tillgänglig byte att läsa
Delay(10); Dröjsmål till göra sak stabil
char c = Serial.read(); Genomföra en seriell läsa
if (c == '#') {
bryta;
} //Exit slingan när # upptäcks efter ordet
röst += c; Förkortning för röst = röst + c
}
om (voice.length() > 0) {
Serial.println(Voice);
//-----------------------------------------------------------------------//
---Kontrollera flera stift / lysdioder---/ /
om (röst == "* slår alla på") {allon();} //Turn av alla stift (kalla funktion)
annars om (röst == "* inaktivera alla" || röst == "* stänga av" || röst == "* party över" || röst == "* party off" || röst == "* parti av" || röst == "* party poop" || röst == "* lights off" || röst == "* lyser of"){alloff();} //Turn på alla stift (samtal funktion)
annars om (röst == "* part on"){partyloop();}
annars om (röst == "* vänner på" || röst == "* suite bros på" || röst == "* söta Bros" || röst == "* suite bros" || röst == "* söta Bros") {
digitalWrite (led1, hög); Kevin
digitalWrite (led2, hög); Britt
digitalWrite (led3, hög); Chloe
}
annars om (röst == "* sidoljus på") {digitalWrite (led9, hög), digitalWrite (led10, hög);}
---Slå på One-By-One---/ /
annars om (röst == "* Kevin på" || röst == "* kevin på") {digitalWrite (led1, hög);}
annars om (röst == "* Britt på" || röst == "* Brighton på" || röst == "* Abbie på" || röst == "* abbie på") {digitalWrite (led2, hög);}
annars om (röst == "* Chloe på") {digitalWrite (led3, hög);}
annars om (röst == "* smile på") {digitalWrite (led11, hög);}
annars om (röst == "* meddelande på") {digitalWrite (led8, hög), digitalWrite (led7, hög);}
annars om (röst == "* röd på") {digitalWrite (led10, hög);}
annars om (röst == "* blå på") {digitalWrite (led9, hög);}
---Stänga av en av en---/ /
annars om (röst == "* Kevin off" || röst == "* kevin off") {digitalWrite (led1, låg), digitalWrite (led4, låg);}
annars om (röst == "* Britt off" || röst == "Brighton off" || röst == "* abbie off" || röst == "* Abbie av" || röst == "* abbie av" || röst == "* Abbie off") {digitalWrite (led2, låg), digitalWrite (led5, låg);}
annars om (röst == "* Chloe off") {digitalWrite (led3, låg), digitalWrite (led6, låg);}
annars om (röst == "* meddelande" || röst == "* budskap") {digitalWrite (led7, låg), digitalWrite (led8, låg);}
annars om (röst == "* röd off" || röst == "* röd av") {digitalWrite (led10, låg);}
annars om (röst == "* blå off" || röst == "* blå i") {digitalWrite (led9, låg);}
annars om (röst == "* ler av" || röst == "* smile off") {digitalWrite (led11, låg), digitalWrite (led12, låg);}
---Stäng i gruppen---/ /
annars om (röst == "* vänner av" || röst == "* vänner av" || röst == "suite bros off" || röst == "* söta Bros av" || röst == "* söta Bros off" || röst == "* söta bros off" || röst == "* söta bros av") {
digitalWrite (led1, låg); Kevin
digitalWrite (led2, låg); Britt
digitalWrite (led3, låg); Chloe
}
//-----------------------------------------------------------------------//
röst = "" ;}} Återställa variabeln efter