Componente: Voice Shield
Autor: Viorel -18/06/2010-
Voice Shield-ul este un montaj electronic special conceput pentru Arduino, capabil sa sintetizeze vocal o fraza pe care o comanda Arduino.
Fraza este descrisa in programul pentru Arduino printr-o secventa de numere, fiecare numar reprezentand o comanda specific sau un grup de sunete. Astfel, pentru a sintetiza “Tehnorama is greeeaaat”, am folosit sirul de numere de mai jos :
6,6,6,6,8,190,8, 131,8,142,8,153,8,132,8,140,8,132, 6, 128,
168, 6, 8, 179, 8, 148, 148, 8, 130, 130,8, 191
Astfel, 6 semnifica o pauza, 8 impune ca urmatorul grup de sunete sa fie pronuntat rar, 191 este sunetul “t”, 131 este sunetul “eh”, 142 este sunetul “no” si tot asa.
Alte cateva poze mai jos.
Primul pas care trebuie facut este conectarea difuzorului extern. Acesta nu este inclus in kit, dar poate fi utilizat orice difuzor pasiv (eu spre exemplu am scos o casca dintr-o pereche de casti rupta).
Programul
#include
#define E0 5
#define E1 6
#define E2 7
#define E3 8
#define E4 9
#define E5 10
#define E6 11
#define E7 12
#define RDY 13
#define RES 3
#define SPK 4
#define txPin 2
SoftwareSerial speakjet = SoftwareSerial(0, txPin);
char message[] = {
6,6,6,6,8,191,8, 131,8,142,8,153,8,132,8,140,8,132, 6, 128, 168, 6, 8, 179, 8, 148, 148, 8, 130, 130,8, 191};
void setup() {
pinMode(txPin, OUTPUT);
pinMode(SPK, INPUT);
speakjet.begin(9600);
pinMode(RDY, INPUT);
pinMode(RES, OUTPUT);
for(int i=E0; i<=E7; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
digitalWrite(RES, LOW);
delay(100);
digitalWrite(RES, HIGH);
}
void loop() {
speakjet.print(message);
while(1);
}
In viziunea mea, partile interesante sunt :
- “char message[] ” – array de numere care contine mesajul (“Tehnorama is greeaat”). Fiecare numar reprezinta o comanda (de exemplu 6 – pauza, sau 8 – pronunta urmatorul sunet mai lung), sau un sunet – de exemplu 191 – sunetul “T”
- rutina “setup()” trece pinii Arduino utilizati in modul corespunzator, si creaza o interfata seriala software pentru comunicare.
- rutina “loop()” scrie numerele care definesc fraza pe interfata seriala software.
Manual care descrie in mod detaliat sunetele este disponibil aici – Speakjet User Manual .
voice Vezi aici detalii complete.









Ro-Bot-X
June 18th, 2010
Trebuie sa stiti ca Magnevation are un software care traduce textul ASCII in acele phoneme (numere). Puteti descarca PhraseaLator gratuit de aici: http://magnevation.com/software/PhraseALator.zip
.
Viorel
June 18th, 2010
Hee, that’s pure gold, man !
M-am chinuit ultima data ceva timp ca sa le gasesc prin trial and error. Thanks !