SP03 Text to Speech Synthesizer
SP03.h@1:58ab657cd515, 2016-03-07 (annotated)
- 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?
User | Revision | Line number | New 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 |