SP03 Text to Speech Synthesizer

Committer:
yangcq88517
Date:
Mon Mar 07 14:38:55 2016 +0000
Revision:
1:58ab657cd515
Parent:
0:2326b6172834
Child:
2:4090898287d5
improvment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 0:2326b6172834 1 #ifndef Smartlab_Drive_SP03
yangcq88517 0:2326b6172834 2 #define Smartlab_Drive_SP03
yangcq88517 0:2326b6172834 3
yangcq88517 0:2326b6172834 4 #include "mbed.h"
yangcq88517 0:2326b6172834 5
yangcq88517 0:2326b6172834 6 class SP03
yangcq88517 0:2326b6172834 7 {
yangcq88517 0:2326b6172834 8 private:
yangcq88517 1:58ab657cd515 9 static const char DEFAULT_ADDRESS = 0xC4;
yangcq88517 0:2326b6172834 10 static const int CLOCK_RATE = 100000;
yangcq88517 1:58ab657cd515 11 static const char REGISTER_FOR_COMMAND = 0x00;
yangcq88517 1:58ab657cd515 12 static const char REGISTER_FOR_SOFTWARE_REVISION_NUMBER = 0x01;
yangcq88517 1:58ab657cd515 13 static const char SPEAK_OUT_THE_BUFFER = 0x40;
yangcq88517 1:58ab657cd515 14
yangcq88517 1:58ab657cd515 15 static const char DEFAULT_SPEECH_PITCH = 0x03;
yangcq88517 1:58ab657cd515 16
yangcq88517 1:58ab657cd515 17 char _volume;
yangcq88517 1:58ab657cd515 18
yangcq88517 1:58ab657cd515 19 char _speed;
yangcq88517 0:2326b6172834 20
yangcq88517 0:2326b6172834 21 I2C i2c_bus;
yangcq88517 0:2326b6172834 22 public :
yangcq88517 0:2326b6172834 23
yangcq88517 1:58ab657cd515 24 static const char SPEED_NORMAL = 0x05;
yangcq88517 1:58ab657cd515 25 static const char SPEED_FAST = 0x02;
yangcq88517 1:58ab657cd515 26 static const char SPEED_SLOW = 0x06;
yangcq88517 1:58ab657cd515 27
yangcq88517 1:58ab657cd515 28 static const char VOLUME_MAX = 0x00;
yangcq88517 1:58ab657cd515 29 static const char VOLUME_MEDIUM = 0x03;
yangcq88517 1:58ab657cd515 30 static const char VOLUME_MIN = 0x06;
yangcq88517 1:58ab657cd515 31
yangcq88517 1:58ab657cd515 32 /** Construct
yangcq88517 1:58ab657cd515 33 *
yangcq88517 1:58ab657cd515 34 * @param sda I2C sda signal
yangcq88517 1:58ab657cd515 35 * @param scl I2C scl signal
yangcq88517 1:58ab657cd515 36 */
yangcq88517 0:2326b6172834 37 SP03(PinName sda, PinName scl);
yangcq88517 0:2326b6172834 38
yangcq88517 1:58ab657cd515 39 /** Set the speed of the speech
yangcq88517 1:58ab657cd515 40 *
yangcq88517 1:58ab657cd515 41 * @param message NULL terminated char array
yangcq88517 1:58ab657cd515 42 */
yangcq88517 1:58ab657cd515 43 void speak(const char * message);
yangcq88517 1:58ab657cd515 44
yangcq88517 1:58ab657cd515 45 /** Set the speed of the speech
yangcq88517 1:58ab657cd515 46 *
yangcq88517 1:58ab657cd515 47 * @param speed [SPEED_NORMAL = 0x05, SPEED_FAST = 0x02, SPEED_SLOW = 0x06]
yangcq88517 1:58ab657cd515 48 */
yangcq88517 1:58ab657cd515 49 void setSpeed(char speed);
yangcq88517 0:2326b6172834 50
yangcq88517 1:58ab657cd515 51 /** Set the volume of the speech
yangcq88517 1:58ab657cd515 52 *
yangcq88517 1:58ab657cd515 53 * @param volume [VOLUME_MAX = 0x00, VOLUME_MEDIUM = 0x03, VOLUME_MIN = 0x06]
yangcq88517 1:58ab657cd515 54 */
yangcq88517 1:58ab657cd515 55 void setVolume(char volume);
yangcq88517 1:58ab657cd515 56
yangcq88517 1:58ab657cd515 57 /** Check if the SP03 is currently talking
yangcq88517 1:58ab657cd515 58 *
yangcq88517 1:58ab657cd515 59 * @returns
yangcq88517 1:58ab657cd515 60 * ture device is talking and no command can be send,
yangcq88517 1:58ab657cd515 61 * false command can be issued
yangcq88517 1:58ab657cd515 62 */
yangcq88517 1:58ab657cd515 63 bool isSpeaking();
yangcq88517 0:2326b6172834 64 };
yangcq88517 0:2326b6172834 65
yangcq88517 0:2326b6172834 66 #endif