Stap 5: Emic2
Ik heb de mijne hier https://www.sparkfun.com/products/11711 maar u kunt ze ook bestellen rechtstreeks vanuit Parallax of een bos van andere plaatsen. In feite u het seriële opdrachten verzenden en het zal praten. Hier zijn de belangrijke onderdelen van de schets:
Definieer de seriële interface van de software, die ik gebruikt:
#define rxPin 51 / / seriële input (verbindt met emische 2-Zuid)
#define txPin 53 / / seriële uitgang (verbindt emische 2 zonde)
SoftwareSerial emicSerial = SoftwareSerial (rxPin, txPin);
In Setup krijgen we klaar om te praten met de Emic2
emicSerial.begin(9600);
emicSerial.print('\n'); Verzenden van een CR in het geval dat het systeem is al up
terwijl (emicSerial.read()! = ':'); Wanneer de emische 2 is geïnitialiseerd en klaar is, het stuurt een honkslag ':' teken, dus wachten hier totdat wij het ontvangen
delay(10); Korte vertraging
emicSerial.flush(); Spoel de ontvangstbuffer
Ik gebruikte de volgende methode nemen sommige tekst, stuur het naar de Emic2 en uitvoeren van de moose in mond en lichaam in terwijl het gesproken:
VOID mooseTalk(String phrase)
{
emicSerial.println("P1");
delay(100);
clearEmicSerialRead();
emicSerial.println("W75");
delay(100);
clearEmicSerialRead();
emicSerial.println("V0");
delay(100);
clearEmicSerialRead();
emicSerial.println("N0");
delay(100);
clearEmicSerialRead();
emicSerial.print('S');
emicSerial.print("\\/\\/");
emicSerial.println(phrase);
Serial.println(phrase);
int i = 0;
int u = 0;
for (int j = 0; j < phrase.length(); j ++)
{
Als (zin [j] == ' ')
{
i ++;
}
Als (zin [j] == '_')
{
u ++;
}
}
i = i + u/2;
ik = ik - ik *. 25;
delay(300);
for (int j = 0; j < ik; j ++)
{
mooseMove(random(250,450));
delay(Random(150,300));
}
clearEmicSerialRead();
terwijl (emicSerial.available() > 0)
//{
Serial.println(emicSerial.Read());
//}
terwijl (emicSerial.read()! = ':');
}
Ik heb ook deze methode om het zingen nadat het gaf haar fortuin te hebben gemaakt. De nummers in de tekening zijn "hit me met uw beste schot", "Edelweiss", en "Daisy Bell"
ongeldig singSong() {}
emicSerial.println("V0");
delay(100);
emicSerial.println("P0");
int nummer = random(3);
Als (lied == 0)
{
emicSerial.println ("S [: stem op 230] [: n0] [: dv ap 200 sm 100 ri 100] [WEH < 125,12 > LX < 75 > YXOR < 200,14 > AH < 200,17 > AXRIY < 300,21 > LL < 100 > TAH < 300 > F < 100 > KUH < 200,19 > KIY < 200,17 > < 125 > WIH TH < 75 > AX < 200,14 > < 300,17 > LLAO NX < 100 > HXIH < 200 > STOR < 200,14 > IY < 400,19 > _ < 500 > AH < 125,17 > V < 75 > BRREY < 200,19 > K AH < 125,17 > N < 75 > LLIH < 200,19 > DXEL < 200,17 > < 300,19 > HXAR TS < 100 > LLAY < 125 > K < 75 > DHAX < 200,17 > < 125,19 > WAH N < 75 > IH < 125 > N < 75 > MIY < 400,21 > _ < 400 > DHAE < 200 > TS < 100 > OW < 200,19 > sleutel < 400,17 > < 125,14 > LLEH TS < 75 > SIY < 400,17 > HXAW < 200 > YU < 200,14 > DUW < 400,19 > < 125,17 > IH T < 75 > _ < 400 > PUH < 125,19 > T < 75 > AH < 125 > P < 75 > YXOR < 200,17 > < 450,19 > DUW KS < 150 > LLEH < 300,19 > TS < 100 > GEH < 125 > T < 75 > DAW < 300 > N < 100 > TUW < 400,21 > < 200,19 > IH T < 100 > HXIH < 125,21 > T < 75 > MIY < 200,19 > WIH < 125 > TH < 75 > YXOR < 200,17 > < 300 > BEH ST < 100 > SHAO < 300,21 > T < 100 > _ < 1100 > manier < 200,17 > DOW < 125,19 > N < 75 > CHAX < 200,17 > HXIH < 70,21 > T < 30 > MIY < 100,19 > WIH < 125 > TH < 75 > YXOR < 200,17 > BEH < 300,19 > < 100 > ST SHAO < 200,14 > < 300,12 > AO T < 100 > _ < 1200 > HXIH < 125,21 > T < 75 > MIY < 200,19 > WIH < 125 > de < 75 > YXOR < 200,17 > < 300 > BEH ST < 100 > SHAO < 300,21 > T < 100 > _ < 800 > FAY AX < 200,24 > < 200 > RR < 200,22 > < 400,19 > WEH EY < 900,17 >] [: n0] ");
for (int i = 0; ik < 22; i ++)
{
mooseMove(random(500,1450));
delay(Random(150,300));
}
clearEmicSerialRead();
}
anders if(song == 1)
{
emicSerial.println ("S [: arpa telefoon spreken over] [: stem op 180] [: n0] [: dv hs 95 br 0 als 90 ap 90 sm 90 ri 100] [EY < 800,15 > < 400,18 > DEL VAY < 900,25 > S < 300 > EY < 800,23 > < 400,18 > DEL VAY < 900,16 > S < 300 > EH < 800,15 > VRIY < 400 > MOR < 400 > NIH < 250,16 > NX < 150 > YU < 400,18 > GRIY < 1100,20 > T < 100 > MIY < 800,18 > _ < 400 > SMAO < 500,15 > < 300 > LX AE < 250,18 > N < 100 > D < 50 > manier < 1100,25 > T < 100 > KLLIY < 500,23 > N < 300 > AE < 250,18 > N < 100 > D < 50 > BRAY < 1100,16 > T < 100 > YU < 800,15 > LLUH < 300,18 > K < 100 > HXAE < 400 > PIY < 400,20 > TUW < 400,22 > MIY < 1000,23 > TMIY < 900,23 > _ < 800 > BLLAO < 800,25 > < 125,18 > SAH M < 75 > AH < 250 > V < 150 > sneeuw < 400,22 > < 400,20 > MEY YU < 400,18 > BLLUW < 500,15 > < 300 > M AE < 250,18 > N < 100 > D < 50 > groeien < 900,23 > _ < 300 > BLLUW < 500,20 > < 300 > M AE < 250,23 > < 100 > N D < 50 > groeien < 800,25 > < 400,23 > EH < 1200,22 > VRR < 800,18 > _ < 400 > EY < 800,15 > < 400,18 > DEL VAY < 900,25 > < 300 > S EY < 800,23 > DEL < 400,18 > VAY < 900,16 > S < 300 > BLLEH < 600,15 > S < 200 > < 400,18 > HXOW < 250 > M < 150 > LLAE < 250,20 > < 100 > N D < 50 > kan voor < 400,22 > < 1200,23 > EH VRR < 800 >] [: n0] ");
for (int i = 0; ik < 40; i ++)
{
mooseMove(random(500,1450));
delay(Random(150,300));
}
clearEmicSerialRead();
}
anders //if (lied == 2)
{
emicSerial.println("D1");
for (int i = 0; ik < 22; i ++)
{
mooseMove(random(500,1450));
delay(Random(150,300));
}
clearEmicSerialRead();
}
/ * anders
{
emicSerial.println ("S [: arpa telefoon spreken over] [: stem op 190] [: n2] [: dv ap 200 sm 100 ri 100] [R EY < 200,17 > N < 100 > DRAO < 200,24 > < 100 > PS AO < 200 > N < 100 > rij < 300,19 > ZIX < 200,17 > Z < 100 > AE < 150 > N < 100 > D < 50 > WIH < 300,12 > SKRR < 200,17 > Z < 100 > AO < 200 > N < 100 > KIH < 300,19 > < 150,17 > TAH N < 100 > Z < 50 > _ < 300 > BRAY < 200 > T < 100 > KAO < 300,24 > < 300 > PRR K EH < 300,19 > < 200,17 > TEL Z < 100 > AE < 150 > N < 100 > D < 50 > oorlog < 200,12 > < 100 > M WUH < 300,17 > LL EH < 200 > N < 100 > MIH < 300,19 > TAH < 150,17 > < 100 > N Z < 50 > _ < 300 > BRAW < 200 > N < 100 > PEY < 300,24 > PRR < 300,22 > < 300,17 > PAE KIH < 300,19 > JHIX < 200,15 > Z < 100 > TAY < 200 > D < 100 > AH TH van de WIH < 200,20 > < 200,22 > P < 100 > < 100 > STRIH < 300,13 > < 200 > NX Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AX < 300,15 > FYU < 300,17 > AH < 200,18 > V < 100 > < 300,20 > FEY < 300,22 > VRR < 300,24 > EH kan < 200,22 > T < 100 > THIH < 500,16 > < 300 > NX Z < 100 >] [ : n0] ");
emicSerial.println ("S [: arpa telefoon spreken over] [: stem op 190] [: n2] [: dv ap 200 sm 100 ri 100] [KRIY < 200,17 > M < 100 > KAH < 300,24 > LLRR < 200 > D < 100 > POW < 300,19 > < 200,17 > NIY Z < 100 > AE < 150 > N < 100 > D < 50 > KRIH < 200,12 > < 100 > SP AE < 300,17 > PEL < 300 > STRUW < 300,19 > DXEL < 300,17 > _ < 300 > DOR < 300 > BEH < 150,24 > LX < 100 > Z < 50 > AE < 150 > N < 100 > D < 50 > SLLEY < 300,19 > < 150,17 > BEH LX < 100 > Z < 50 > AE < 150 > N < 100 > D < 50 > SHNIH < 200,12 > T < 100 > SEL < 300,17 > WIH < 200 > TH < 100 > NUW < 300,19 > DXEL < 200,17 > Z < 100 > _ < 300 > manier < 150,17 > LL < 100 > D < 50 > GIY < 200,24 > S < 100 > DHAE < 200,22 > T < 100 > FLLAY < 300,17 > < 200,19 > WIH TH < 100 > DHAX < 300,15 > MUW < 200 > N < 100 > AO < 200,22 > N < 100 > DHER < 300,20 > WIH < 300,13 > < 200 > NX Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AX < 300,15 > FYU < 300,17 > AH < 200,19 > V < 100 > < 300,20 > FEY < 300,22 > VRR < 300,24 > EH kan < 200,22 > T < 100 > THIH < 500,16 > < 300 > NX Z < 100 >] [ : n0] ");
emicSerial.println ("S [: arpa telefoon spreken over] [: stem op 190] [: n2] [: dv ap 200 sm 100 ri 100] [GRR < 150,17 > < 100 > LL Z < 50 > IH < 200,24 > < 100 > N manier < 200 > T < 100 > DRREH < 300,19 > zes < 200,17 > Z < 100 > WIH < 200 > TH < 100 > BLLUW < 300,12 > < 300,17 > SAE TAH < 200 > N < 100 > SAE < 300,19 > SHIX < 200,17 > Z < 100 > _ < 300 > sneeuw < 300 > FLLEY < 200,24 > KS < 100 > DHAE < 200 > T < 100 > STEY < 300,19 > < 200,17 > AO N < 100 > kan < 300 > nu < 200,12 > Z < 100 > AE < 150,17 > < 100 > N D < 50 > AY < 300 > LLAE < 300,19 > SHIX < 200,17 > Z < 100 > _ < 300 > SIH < 200 > LL < 100 > VRR < 300,24 > < 200,22 > manier T < 100 > WIH < 200,17 > N < 100 > TRR < 200,19 > Z < 100 > DHAE < 200,15 > T < 100 > MEH < 150 > LL < 100 > T < 50 > IH < 200,22 > N < 100 > TUW < 300,20 > SPRIH < 400,13 > NX < 200 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AX < 300,15 > FYU < 300,17 > AH < 200,19 > V < 100 > < 300,20 > FEY < 300,22 > VRR < 300,23 > EH kan < 200,24 > T < 100 > THIH < 400,25 > NX < 100 > Z < 100 > _ < 200 >] [ : n0] ");
emicSerial.println ("S [: arpa telefoon spreken over] [: stem op 190] [: n2] [: dv ap 200 sm 100 ri 100] [TS WEH < 200,24 > N < 100 > DHAX < 300 > DAO < 500 > G < 100 > BAY < 200,17 > < 100 > _ < 300 > WEH < 200,22 > N < 100 > DHAX < 300 > BIY < 600 > STIH < 150,16 > < 100 > NX Z < 50 > _ < 300 > WEH < 200,20 > N < 100 > AY < 200 > M < 100 > FIY < 600 > LLIH < 200,12 > NX < 100 > SAE < 1400,17 > < 100 > D AY < 300 > SIH < 200 > M < 100 > PLLIY < 300,19 > RIY < 300,17 > < 200,19 > MEH M < 100 > BRR < 300,17 > < 300,19 > FEY < 300,20 > VRR < 300,22 > EH kan < 200,20 > T < 100 > THIH < 300,22 > < 200 > NX Z < 100 > AE < 150,20 > N < 100 > D < 50 > DHEH < 200,24 > N < 100 > AY < 300,25 > DOW < 150,24 > < 100 > N T < 70 > FIY < 600,25 > LX < 300 > _ < 1000 > SOW < 900,24 > BAE < 2000,20 > D < 100 > _ < 40 >] [ : n0] ");
clearEmicSerialRead();
for (int i = 0; ik < 180; i ++)
{
mooseMove(random(500,1450));
delay(Random(150,300));
}
}*/
clearEmicSerialRead();
emicSerial.println("P1");
clearEmicSerialRead();
}