Diseuse de bonne aventure Moosetar (Zoltar) (5 / 9 étapes)

Étape 5: Emic2

j’ai essayé quelques façons d’obtenir l’orignal de parler.  Tout d’abord, j’ai utilisé un deuxième Arduino avec un bouclier de vague de Adafruit.  Puis j’ai décidé d’aller avec une unité de texte à la parole de Emic2.  Cela a très bien fonctionné et fait genre de drôle puisque ça sonne un peu comme un robot.  Aussi j’ai aimé ce mieux que le bouclier vague parce que je n’avais pas à quoi que ce soit de pré-enregistrement et je pourrais facilement avoir dire tout ce que je voulais.

J’ai eu le mien ici https://www.sparkfun.com/products/11711 mais vous pouvez aussi les commander directement à partir de parallaxe ou un tas d’autres endroits.  Fondamentalement vous l’envoyer commandes série et il parlera.  Voici les parties importantes de l’esquisse :

Définir l’interface série du logiciel que j’ai utilisé :
#define rxPin 51 / / série entrée (se connecte à émique 2 SOUT)
#define txPin 53 / / série sortie (se connecte à émique 2 SIN)
SoftwareSerial emicSerial = SoftwareSerial (rxPin, txPin) ;

Dans setup(), nous nous préparons à parler à la Emic2
emicSerial.begin(9600) ;
emicSerial.print('\n') ;             Envoyer un CR dans le cas où le système est déjà écoulé
tandis que (emicSerial.read()! = ':') ;   Quand les 2 émique a initialisé et est prêt, il enverra une seule ':' caractère, donc attendre ici jusqu'à ce que nous le recevons
Delay(10) ;                          Court délai
emicSerial.flush() ;                 Videz la mémoire tampon de réception

J’ai utilisé la méthode suivante pour prendre un texte, envoyez-le à l’Emic2 et exécutez l’orignal bouche et le corps lorsqu’il parlait :
Sub 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 ;
u int = 0 ;
pour (int j = 0; j < phrase.length(); j ++)
{
Si (expression [j] == ' ')
{
i ++ ;
}
Si (expression [j] == « _ »)
{
u ++ ;
}
}

i = i + u/2 ;
i = i - i *. 25 ;
Delay(300) ;
pour (int j = 0; j < i; j ++)
{
mooseMove(random(250,450)) ;
Delay(Random(150,300)) ;
}
clearEmicSerialRead() ;
while (emicSerial.available() > 0)
//{
Serial.println(emicSerial.Read()) ;
//}
tandis que (emicSerial.read()! = ':') ;
}

J’ai aussi créé cette méthode de la faire chanter après qu’il a donné sa fortune.  Les chansons dans le croquis sont « hit me with your best shot », « Edelweiss » et « Daisy Bell »

void singSong() {}
emicSerial.println("V0") ;
Delay(100) ;

emicSerial.println("P0") ;
la chanson int = random(3) ;
Si (chanson == 0)
{
emicSerial.println ("S [: taux de 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 > SÉMAH < 200,17 > WAH < 125,19 > N < 75 > IH < 125 > N < 75 > MIY < 400,21 > _ < 400 > DHAE < 200 > TS < 100 > OW < 200,19 > clé < 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 P < 75 > < 125 > YXOR < 200,17 > DUW < 450,19 > KS < 150 > LLEH < 300,19 > TS < 100 > GEH < 125 > T < 75 > DAW < 300 > N < 100 > TUW < 400,21 > IH < 200,19 > T < 100 > HXIH < 125,21 > T < 75 > MIY < 200,19 > WIH < 125 > e < 75 > YXOR < 200,17 > BEH < 300 > ST < 100 > SHAO < 300,21 > T < 100 > _ < 1100 > chemin < 200,17 > DOW < 125,19 > N < 75 > CHAX < 200,17 > HXIH < 70,21 > T < 30 > MIY < 100,19 > WIH < 125 > e < 75 > YXOR < 200,17 > BEH < 300,19 > ST < 100 > SHAO < 200,14 > AO < 300,12 > T < 100 > _ < 1200 > HXIH < 125,21 > T < 75 > MIY < 200,19 > WIH < 125 > e < 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] ") ;
pour (int i = 0; i < 22; i ++)
{
mooseMove(random(500,1450)) ;
Delay(Random(150,300)) ;
}
clearEmicSerialRead() ;
}
d’autre if(song == 1)
{
emicSerial.println ("S [: parler de téléphone arpa] [: taux de 180] [: n0] [: dv SH 95 br 0 comme 90 ap 90 sm 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 > MIY < 800,18 > _ < 400 > SMAO < 500,15 > LX < 300 > AE < 250,18 > N < 100 > D < 50 > chemin < 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 > SAH < 125,18 > M < 75 > < > V < 150 > neige < 400,22 > MEY < 400,20 > YU < 400,18 > BLLUW < 500,15 > M < 300 > AE < 250,18 > N < 100 > 250D < 50 > AH se développer < 900,23 > _ < > BLLUW < 500,20 > M < 300 > AE < 250,23 > N < 100 > 300D < 50 > croître < 800,25 > < 400,23 > EH < 1200,22 > VRR < 800,18 > _ < 400 > EY < 800,15 > DEL < 400,18 > VAY < 900,25 > < 300 > EY < 800,23 > DEL < 400,18 > VAY < 900,16 > x < 300 > BLLEH < 600,15 > S < 200 > peut < 400,18 > HXOW < 250 > M < 150 > LLAE < 250,20 > N < 100 > D < 50 > pour < 400,22 > VRR EH < 1200,23 > < 800 >] [: n0] ") ;
pour (int i = 0; i < 40; i ++)
{
mooseMove(random(500,1450)) ;
Delay(Random(150,300)) ;
}
clearEmicSerialRead() ;
}
d’autre //if (chanson == 2)
{
emicSerial.println("D1") ;
pour (int i = 0; i < 22; i ++)
{
mooseMove(random(500,1450)) ;
Delay(Random(150,300)) ;
}
clearEmicSerialRead() ;
}
/ * autre
{
emicSerial.println ("S [: parler de téléphone arpa] [: taux 190] [: n2] [: dv ap 200 sm 100 ri 100] [R EY < 200,17 > N < 100 > OFR < 200,24 > PS < 100 > AO < 200 > N < 100 > ligne < 300,19 > ZIX < 200,17 > Z < 100 > AE < 150 > N < 100 > D < 50 > WIH < 300,12 > SKRR < 200,17 > Z < 100 > AO < 200 > < 100 > KIH < 300,19 > TAH < 150,17 > N < 100 > Z < 50 > _ < 300 > BRAY < 200 > T < 100 > KAO < 300,24 > PRR < 300 > naceur hein < 300,19 > TEL < 200,17 > Z < 100 > AE < 150 > N < 100 > D < 50 > guerre < 200,12 > M < 100 > WUH < 300,17 > LL hein < 200 > N < 100 > MIH < 300,19 > TAH < 150,17 > N < 100 > Z < 50 > _ < 300 > Jaqueline < 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 > e < 100 > AX STRIH < 300,13 > NX < 200 > Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AH Mumbere < 300,15 > < 300,17 > < 200,18 > V < 100 > peut < 300,20 > FEY < 300,22 > VRR < 300,24 > hein < 200,22 > T < 100 > THIH < 500,16 > NX < 300 > Z < 100 >] [ : n0] ") ;
emicSerial.println ("S [: parler de téléphone arpa] [: taux 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 > NUW < 300,19 > DXEL < 200,17 > Z < 100 > _ < 300 > chemin < 150,17 > LL < 100 > D < 50 > Granger < 200,24 > S < 100 > DHAE < 200,22 > T < 100 > FLLAY < 300,17 > WIH < 200,19 > e < 100 > SÉMAH < 300,15 > MUW < 200 > N < 100 > AO < 200,22 > N < 100 > DHER < 300,20 > AX WIH < 300,13 > NX < 200 > Z < 100 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AH Mumbere < 300,15 > < 300,17 > < 200,19 > V < 100 > peut < 300,20 > FEY < 300,22 > VRR < 300,24 > hein < 200,22 > T < 100 > THIH < 500,16 > NX < 300 > Z < 100 >] [ : n0] ") ;
emicSerial.println ("S [: parler de téléphone arpa] [: taux 190] [: n2] [: dv ap 200 sm 100 ri 100] [GRR < 150,17 > LL < 100 > Z < 50 > IH < 200,24 > N < 100 > WAY < 200 > T < 100 > DRREH < 300,19 > SIX < 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 > neige < 300 > FLLEY < 200,24 > KS < 100 > DHAE < 200 > T < 100 > STEY < 300,19 > AO < 200,17 > N < 100 > peut < 300 > maintenant < 200,12 > Z < 100 > AE < 150,17 > N < 100 > D < 50 > AY < 300 > LLAE < 300,19 > SHIX < 200,17 > Z < 100 > _ < 300 > SIH < 200 > LL < 100 > VRR < 300,24 > chemin < 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 > AX NX < 200 > _ < 300 > DHIY < 200,12 > Z < 100 > AR < 300,13 > AH Mumbere < 300,15 > < 300,17 > < 200,19 > V < 100 > peut < 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 [: parler de téléphone arpa] [: taux 190] [: n2] [: dv ap 200 sm 100 ri 100] [TS WEH < 200,24 > N < 100 > SÉMAH < 300 > DAO < 500 > G < 100 > Baie < 200,17 > < 100 > _ < 300 > WEH < 200,22 > N < 100 > SÉMAH < 300 > BIY < 600 > Sith < 150,16 > NX < 100 > Z < 50 > _ < 300 > WEH < 200,20 > N < 100 > AY < 200 > M < 100 > FIY < 600 > LLIH < 200,12 > NX < 100 > SAE < 1400,17 > D < 100 > AY < 300 > SIH < 200 > M < 100 > PLLIY < 300,19 > RIY < 300,17 > MEH < 200,19 > M < 100 > BRR < 300,17 > peut < 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 > AY < 300,25 > DOW < 150,24 > N < 100 > T < 70 > FIY < 600,25 > LX < 300 > _ < 1000 > truie < 900,24 > BAE < 2000,20 > D < 100 > _ < 40 >] [ : n0] ") ;
clearEmicSerialRead() ;
pour (int i = 0; i < 180; i ++)
{
mooseMove(random(500,1450)) ;
Delay(Random(150,300)) ;
}
}*/
clearEmicSerialRead() ;

emicSerial.println("P1") ;
clearEmicSerialRead() ;

}

Articles Liés

Diseuse de bonne aventure Madame K squelette

Diseuse de bonne aventure Madame K squelette

La diseuse de bonne aventure est contrairement à la plupart des machines de fortune teller en ce qu'il va vous insulter. Lorsque les enfants costumés frappent à la porte, ils sont toujours attirés la diseuse squelette. J'ai changer la fortune dosée e
Psychique diseuse de bonne aventure - un automate qui lit l’esprit de Twitter

Psychique diseuse de bonne aventure - un automate qui lit l’esprit de Twitter

Creepy fairground attraction et App Twitter !Diseuse de bonne aventure la ruche d'esprit psychique est une attraction de type arcade des forains qui peut dire votre fortune. Encore mieux que que, bien que - c'est aussi une application Twitter connect
Comment utiliser des diseuses de bonne aventure comme une aide à la révision.

Comment utiliser des diseuses de bonne aventure comme une aide à la révision.

En faisant « diseuses de bonne aventure », les étudiants révisera le vocabulaire principal et les faits d'une rubrique de votre choix.Plupart des gens savent comment faire des diseuses de bonne aventure, et la plupart des enseignants aura eu confisqu
Diseuse de bonne aventure multi-personnalité

Diseuse de bonne aventure multi-personnalité

Ce projet Arduino est un retour à plusieurs jeux d'arcade de carnaval et de la nouveauté de quand j'étais gamin. J'ai fait beaucoup de projets Arduino, mais il s'agit de mon premier projet qui a été ma propre conception. Avant cela, j'ai suivi généra
Charmes de diseuse de bonne aventure en bois

Charmes de diseuse de bonne aventure en bois

j'ai eu l'idée de poussière star du film, il s'agit d'une version miniature et je vais le faire bientôt la version pleine grande.vous aurez besoin :1) stylo couteau (ou couteau bien aiguisé)2) un fichier (pas une lime à ongles)3) un assortiment de cr
Diseuse de bonne aventure Arduino

Diseuse de bonne aventure Arduino

ce projet donne à l'utilisateur une fortune et chanceux comme numéro d'un fortune cookie. Ceci a été rendu comme cadeau de Noël.Étape 1: Étape 1 Soudure des broches d'en-tête sur le LCD. Souder les fils aux broches femelle en-tête et ordonnées pour A
DIY diseuse de bonne aventure

DIY diseuse de bonne aventure

il s'agit d'un métier vraiment simple et facile pour tout le monde. Vous pouvez le faire sur le pouce, dans votre maison, ou en avion long manèges/voiture. C'est amusant car il existe de nombreuses variantes pour les fortunes réelles et vous devrez e
Diseuse de bonne aventure

Diseuse de bonne aventure

si vous ne savez pas comment faire une diseuse de bonne aventure, alors voici un moyen facile.Étape 1: pliage Obtenir un morceau carré de papier plier le papier en demi plier en deux à nouveau l'ouvrir puis pliez la vers l'intérieur des coins Retourn
Comment... Faire une diseuse de bonne aventure ! Je vous promets que c’est génial !

Comment... Faire une diseuse de bonne aventure ! Je vous promets que c’est génial !

Étape 1 : Vous aurez besoin d'un morceau de papier, 4 crayons de couleur différente, des crayons ou des marqueurs, ciseaux, un crayon.Étape 2 : Prenez votre morceau de papier et pliez-la comme un voilier.Étape 3 : Maintenant où le pli est, couper en
Diseuse de bonne aventure origami favorise

Diseuse de bonne aventure origami favorise

Ces faveurs sont une faveur rapide et facile, mais attrayante et populaire pour un mariage ou une fête. Ils ont fière allure sur la table et, selon quels messages vous mettez à l'intérieur, peuvent causer beaucoup hilarité ou chaudes lueurs floues, s
Comment faire un receveur cootie / diseuse de bonne aventure

Comment faire un receveur cootie / diseuse de bonne aventure

Instructions1. trouver un ami et demandez-lui de penser à une question à poser la diseuse de bonne aventure. Ainsi, « j'ai passera mon test » ?2. maintenant amener à choisir une couleur, écrite sur un des côtés. Préciser la couleur qu'ils ont choisi,
Comment faire une diseuse de bonne aventure tour

Comment faire une diseuse de bonne aventure tour

c'est une façon de faire un truc diseuse de bonne aventure que vous pouvez choisir s'il faut donner une mauvaise fortune, ou une bonne fortune.Vous aurez besoin :PapierOutil d'écritureÉtape 1: pliage Replier les coins vers le centre, tourner sur le p
Fleurs de diseuse de bonne aventure faciles

Fleurs de diseuse de bonne aventure faciles

Ces fleurs fraîches et faciles sont bons à peu près rien ! Donner comme un cadeau ou de décoration pour la pièce maîtresse autour d'une table. Dans tous les cas ces fleurs sont faciles et rapides.Étape 1: Que vous faut-il ?Tout ce dont vous avez beso
Comment faire un papier diseuse de bonne aventure - Video Instructions

Comment faire un papier diseuse de bonne aventure - Video Instructions

comment faire un papier diseuse de bonne aventure - Video Instructions