Liste der Anhänge anzeigen (Anzahl: 1)
speakjet mit mega 2560
halloallerseits,
angeregt durch basteluwes projekt für den RP6 baute ich auch etwas:
Anhang 31514
das modul funktioniert im demo modus,bei der verwendung eines sketches mit der arduino speakjet lib gab aber es beim kompilieren fehlermeldungen, die ich nicht verstanden habe,deshalb probierte ich diesen code, der ohne die lib auskommt
Code:
//set up a new software serial port
#include<SoftwareSerial.h>
//rxPin:the pin on which to receive serial data
//txPin:the pin on which to transmit serial data
//SpeakJet shield versions 1.0 thru 1.2 uses these pins
#definetxPin 2
#definerxPin 3
//SpeakJet shield version 1.3 or later uses these pins
//#definerxPin 5
//#definetxPin 6
//set up the SoftwareSerial port to connect to theSpeakJet
SoftwareSerialspeakJet = SoftwareSerial(rxPin, txPin);
voidsetup()
{
//define pin modes for tx, rx pins:
//pinMode(rxPin, INPUT); //not needed for this simpledemo
pinMode(txPin,OUTPUT);
speakJet.begin(9600);
delay(1000);// wait a second for the Arduino resets to finish (says"ready")
/*HELLO WORLD SpeakJet MSA phonemes (see page 16 of SpeakJet UserManual)
20,96, 21, 114, 22, 88, 23, 5, 183, 7, 159, 146, 164, 147, 151, 145,176
*/
//byte array holding speech data
bytesayThis[] = {20, 96, 21, 114, 22, 88, 23, 5, 183, 7, 159, 146, 164,147, 151, 145, 176}; //say "hello world"
//send it to the SpeakJet
for(int i=0; i<sizeof(sayThis); i++)
{
speakJet.write(sayThis[i]);
}
}
voidloop()
{}
das hört sich leider nicht wie "hello world" an...
Ich verstehe das so, dass die zu den codes zuhörigen phoneme aus dem speakjet chip mit dem sketch herausgelesen werden und nach der verstärkung wiedergegeben werde. Nur kommt da ganz was anderes an...
Ich habe verschiedene dinge an dem sketch ausprobiert, z.b. mit einer schleife verschiedene codes direkt zu senden:
Code:
void setup()
{
// define pin modes for tx, rx pins:
// pinMode(rxPin, INPUT); //not needed for this simple demo
pinMode(txPin, OUTPUT);
speakJet.begin(9600);
delay(1000); // wait a second for the Arduino resets to finish (says "ready")
}
void loop()
{
for (uint8_t i = 128; i <= 164; i++)
{
speakJet.write(i);
delay(500);
}
}
oder per direkte write anweisungen nur einzelne phoneme geschickt:
Code:
speakJet.write("147");
speakJet.write("191");
speakJet.write("156");
irgendwelche töne kamen immer an, nur nicht die, die ich erwartet habe :-(
Wo sollte ich nach der ursache suchen?