Paso 5: Emic2
Yo tengo la mía aquí https://www.sparkfun.com/products/11711 pero usted puede también solicitarlas directamente a paralaje o un montón de otros lugares. Básicamente usted enviar comandos serie y a hablar. Aquí están las partes importantes del bosquejo:
Definir la interfaz serial que utilicé:
#define rxPin 51 / serie / entrada (conecta con SOUT 2 Emic)
#define txPin 53 / serie / salida (se conecta al pecado 2 Emic)
EmicSerial SoftwareSerial = SoftwareSerial (rxPin, txPin);
En setup() nos preparamos hablar con el Emic2
emicSerial.begin(9600);
emicSerial.print('\n'); Enviar un CR en caso de que el sistema ya está arriba
mientras que (emicSerial.read()! = ':'); Cuando los 2 Emic se ha inicializado y está listo, se le enviará un solo ':' carácter, así que espere aquí hasta que recibamos
Delay(10); Corto retardo
emicSerial.flush(); Descarga el búfer de recepción
Utilicé el siguiente método para tomar algún texto, enviarlo a la Emic2 y ejecutar los alces boca y cuerpo mientras hablaba:
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;
para (int j = 0; j < phrase.length(); j ++)
{
Si (frase [j] == ' ')
{
i ++;
}
Si (frase [j] == '_')
{
u ++;
}
}
i = i + u/2;
i = i - i *. 25;
Delay(300);
para (int j = 0; j < i; j ++)
{
mooseMove(random(250,450));
Delay(Random(150,300));
}
clearEmicSerialRead();
mientras (emicSerial.available() > 0)
//{
Serial.println(emicSerial.Read());
//}
mientras que (emicSerial.read()! = ':');
}
También he creado este método para cantar después de que diera su fortuna. Las canciones en el sketch son "me golpeó con su mejor tiro", "Edelweiss" y "Daisy Bell"
void singSong() {}
emicSerial.println("V0");
Delay(100);
emicSerial.println("P0");
canción de int = random(3);
Si (canción == 0)
{
emicSerial.println ("S [: tarifa 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 > WIH < 125 > TH < 75 > AX < 200,14 > LLAO < 300,17 > 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 > HXAR < 300,19 > TS < 100 > LLAY < 125 > K < 75 > DHAX < 200,17 > WAH < 125,19 > N < 75 > IH < 125 > N < 75 > IMJ < 400,21 > _ < 400 > DHAE < 200 > TS < 100 > OW < 200,19 > tecla < 400,17 > LLEH < 125,14 > TS < 75 > SIY < 400,17 > HXAW < 200 > YU < 200,14 > DUW < 400,19 > IH < 125,17 > T < 75 > _ < 400 > PUH < 125,19 > T < 75 > AH < 125 > P < 75 > YXOR < 200,17 > DUW < 450,19 > KS < 150 > LLEH < 300,19 > TS < 100 > GES < 125 > T < 75 > DAW < 300 > N < 100 > TUW < 400,21 > IH < 200,19 > T < 100 > HXIH < 125,21 > T < 75 > IMJ < 200,19 > WIH < 125 > TH < 75 > YXOR < 200,17 > BEH < 300 > ST < 100 > SHAO < 300,21 > T < 100 > _ < 1100 > WAY < 200,17 > DOW < 125,19 > N < 75 > CHAX < 200,17 > HXIH < 70,21 > T < 30 > IMJ < 100,19 > WIH < 125 > TH < 75 > YXOR < 200,17 > BEH < 300,19 > ST < 100 > SHAO < 200,14 > AO < 300,12 > T < 100 > _ < 1200 > HXIH < 125,21 > T < 75 > IMJ < 200,19 > WIH < 125 > TH < 75 > YXOR < 200,17 > BEH < 300 > ST < 100 > SHAO < 300,21 > T < 100 > _ < 800 > FAY < 200 > RR < 200,22 > AX < 200,24 > WEH < 400,19 > EY < 900,17 >] [: n0] ");
para (int i = 0; i < 22; i ++)
{
mooseMove(random(500,1450));
Delay(Random(150,300));
}
clearEmicSerialRead();
}
otro if(song == 1)
{
emicSerial.println ("S [: teléfono arpa hablar sobre] [: tarifa 180] [: n0] [: dv capítulo 95 br 0 como sm PA 90 90 90 ri 100] [EY < 800,15 > DEL < 400,18 > VAY < 900,25 > S < 300 > EY < 800,23 > DEL < 400,18 > 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 > IMJ < 800,18 > _ < 400 > SMAO < 500,15 > LX < 300 > AE < 250,18 > N < 100 > D < 50 > manera < 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 > IMJ < 1000,23 > TMIY < 900,23 > _ < 800 > BLLAO < 800,25 > SAH < 125,18 > M < 75 > AH crecer < 250 > V < 150 > nieve < 400,22 > MEY < 400,20 > YU < 400,18 > BLLUW < 500,15 > M < 300 > AE < 250,18 > N < 100 > D < 50 > _ < 900,23 > < > BLLUW < 500,20 > M < 300 > AE < 250,23 > N < 100 > 300D < 50 > crecer < 800,25 > para < 400,23 > EH < 1200,22 > VRR < 800,18 > _ < 400 > EY < 800,15 > DEL < 400,18 > VAY < 900,25 > S < 300 > EY < 800,23 > DEL < 400,18 > VAY < 900,16 > S < 300 > BLLEH < 600,15 > S < 200 > pueden < 400,18 > HXOW < 250 > M < 150 > LLAE < 250,20 > N < 100 > D < 50 > para < 400,22 > VRR EH < 1200,23 > < 800 >] [: n0] ");
para (int i = 0; i < 40; i ++)
{
mooseMove(random(500,1450));
Delay(Random(150,300));
}
clearEmicSerialRead();
}
else //if (canción == 2)
{
emicSerial.println("D1");
para (int i = 0; i < 22; i ++)
{
mooseMove(random(500,1450));
Delay(Random(150,300));
}
clearEmicSerialRead();
}
/ * otro
{
emicSerial.println ("S [: teléfono arpa hablar sobre] [: tarifa 190] [: n2] [: dv ap 200 sm 100 ri 100] [R EY < 200,17 > N < 100 > DRAO < 200,24 > PS < 100 > AO < 200 > N < 100 > fila < 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 > TAH < 150,17 > N < 100 > Z < 50 > _ < 300 > BRAY < 200 > T < 100 > KAO < 300,24 > PRR < 300 > K EH < 300,19 > TEL < 200,17 > Z < 100 > AE < 150 > N < 100 > D < 50 > guerra < 200,12 > M < 100 > WUH < 300,17 > LL EH < 200 > N < 100 > MIH < 300,19 > TAH < 150,17 > N < 100 > Z < 50 > _ < 300 > BRAW < 200 > N < 100 > PEY < 300,24 > PRR < 300,22 > PAE < 300,17 > KIH < 300,19 > JHIX < 200,15 > Z < 100 > TAY < 200 > D < 100 > AH < 200,22 > P < 100 > WIH < 200,20 > TH < 100 > STRIH < 300,13 > NX < 200 > Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AX FYU < 300,15 > < 300,17 > AH < 200,18 > V < 100 > puede < 300,20 > FEY < 300,22 > VRR < 300,24 > EH < 200,22 > T < 100 > THIH < 500,16 > NX < 300 > Z < 100 >] [ : n0] ");
emicSerial.println ("S [: teléfono arpa hablar sobre] [: tarifa 190] [: n2] [: dv ap 200 sm 100 ri 100] [KRIY < 200,17 > M < 100 > KAH < 300,24 > LLRR < 200 > D < 100 > POW < 300,19 > NIY < 200,17 > Z < 100 > AE < 150 > N < 100 > D < 50 > KRIH < 200,12 > SP < 100 > 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 > BEH < 150,17 > LX < 100 > Z < 50 > AE < 150 > N < 100 > D < 50 > SHNIH < 200,12 > T < 100 > SEL < 300,17 > WIH < 200 > TH < 100 > Longobardos < 300,19 > DXEL < 200,17 > Z < 100 > _ < 300 > manera < 150,17 > LL < 100 > D < 50 > GIY < 200,24 > S < 100 > DHAE < 200,22 > T < 100 > FLLAY < 300,17 > WIH < 200,19 > TH < 100 > DHAX < 300,15 > MUW < 200 > N < 100 > AO < 200,22 > N < 100 > DHER < 300,20 > WIH < 300,13 > NX < 200 > Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AX FYU < 300,15 > < 300,17 > AH < 200,19 > V < 100 > puede < 300,20 > FEY < 300,22 > VRR < 300,24 > EH < 200,22 > T < 100 > THIH < 500,16 > NX < 300 > Z < 100 >] [ : n0] ");
emicSerial.println ("S [: teléfono arpa hablar sobre] [: tarifa 190] [: n2] [: dv ap 200 sm 100 ri 100] [GRR < 150,17 > LL < 100 > Z < 50 > IH < 200,24 > N < 100 > manera < 200 > T < 100 > DRREH < 300,19 > seis < 200,17 > Z < 100 > WIH < 200 > TH < 100 > BLLUW < 300,12 > SAE < 300,17 > TAH < 200 > N < 100 > SAE < 300,19 > SHIX < 200,17 > Z < 100 > _ < 300 > nieve < 300 > FLLEY < 200,24 > KS < 100 > DHAE < 200 > T < 100 > STEY < 300,19 > AO < 200,17 > N < 100 > puede < 300 > ahora < 200,12 > Z < 100 > AE < 150,17 > N < 100 > D < 50 > y < 300 > LLAE < 300,19 > SHIX < 200,17 > Z < 100 > _ < 300 > SIH < 200 > LL < 100 > VRR < 300,24 > manera < 200,22 > 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 FYU < 300,15 > < 300,17 > AH < 200,19 > V < 100 > puede < 300,20 > FEY < 300,22 > VRR < 300,23 > EH < 200,24 > T < 100 > THIH < 400,25 > NX < 100 > Z < 100 > _ < 200 >] [ : n0] ");
emicSerial.println ("S [: teléfono arpa hablar sobre] [: tarifa 190] [: n2] [: dv ap 200 sm 100 ri 100] [WEH < 200,24 > N < 100 > DHAX < 300 > DAO < 500 > G < 100 > Bahía < 200,17 > TS < 100 > _ < 300 > WEH < 200,22 > N < 100 > DHAX < 300 > BIY < 600 > STIH < 150,16 > NX < 100 > Z < 50 > _ < 300 > WEH < 200,20 > N < 100 > y < 200 > M < 100 > FIY < 600 > LLIH < 200,12 > NX < 100 > SAE < 1400,17 > D < 100 > y < 300 > SIH < 200 > M < 100 > PLLIY < 300,19 > RIY < 300,17 > MEH < 200,19 > M < 100 > BRR < 300,17 > puede < 300,19 > FEY < 300,20 > VRR < 300,22 > EH < 200,20 > T < 100 > THIH < 300,22 > NX < 200 > Z < 100 > AE < 150,20 > N < 100 > D < 50 > DHEH < 200,24 > N < 100 > y < 300,25 > Fashion DOW < 150,24 > N < 100 > T < 70 > FIY < 600,25 > LX < 300 > _ < 1000 > puerca < 900,24 > BAE < 2000,20 > D < 100 > _ < 40 >] [ : n0] ");
clearEmicSerialRead();
para (int i = 0; i < 180; i ++)
{
mooseMove(random(500,1450));
Delay(Random(150,300));
}
}*/
clearEmicSerialRead();
emicSerial.println("P1");
clearEmicSerialRead();
}