Arduino Voice Recognition Module

From Geeetech Wiki
Revision as of 02:27, 29 April 2014 by Admin (talk | contribs) (Example 1)

Jump to: navigation, search

Description

We all know that there is a kind of moule which can control the light on and off. You make a sound, the light turns on. Then after a while it turns off. This is not voice recognition. We may call it Sound Control. Voice recognition is something that knows exactly what you were saying.

We've beening thinking about a module which helps to control other devices by voice and it will not cost too much. Finally we designed this module. Well, what can this module do? It can recognize as much as 15 voice instruction, which is suitable for most cases involving voice control.


Parameters

1、Voltage:4.5-5.5V

2、Current:<40mA

3、Digital Interface: 5V TTL level UART interface

4、Analog Interface: 3.5mm mono-channel microphone connector + microphone pin interface

5、Size: 30mm x 47.5mm

This module can store 15 pieces of voice instruction. Those 15 pieces are divided into 3 groups, with 5 in one group. First we should record the voice instructions group by group. After that, we should import one group by serial command before it could recognize the 5 voice instructions within that group. If we need to implement instructions in other groups, we should import the group first. This module is speaker independent. If your friend speaks the voice instruction instead of you, it may not identify the instruction.


Example 1

Here i will show you an example how to control RGB by voice.
1. Recording
We need to send serial command to this module. You may need a USB-TTL module to connect it with PC. Send command 0xaa11 to record. Please refer to the manual for more information.

Please record the following voice instrctions in order :

1、WHITE
2、RED
3、GREEN
4、BLUE
5、OFF

Then send command 0xAA21 to import group 1.

2. Hardware connection

3. Code

int redPin = 11; // R petal on RGB LED module connected to digital pin 11 int greenPin = 9; // G petal on RGB LED module connected to digital pin 9 int bluePin = 10; // B petal on RGB LED module connected to digital pin 10 byte com = 0; //reply from voice recognition

void setup()
{

   Serial.begin(9600);
   pinMode(ledPin, OUTPUT); // sets the ledPin to be an output
   pinMode(redPin, OUTPUT); // sets the redPin to be an output
   pinMode(greenPin, OUTPUT); // sets the greenPin to be an output
   pinMode(bluePin, OUTPUT); // sets the bluePin to be an output
   delay(2000);
   Serial.write(0xAA);
   Serial.write(0x37);
   delay(1000);
   Serial.write(0xAA);
   Serial.write(0x21);

}

void loop() // run over and over again {

   while(Serial.available())
   {
       com = Serial.read();
       switch(com)
       {
           case 0x11:
                    color(255,255,255); // turn RGB LED on -- white
                    break;
           case 0x12:
                    color(255, 0, 0); // turn the RGB LED red
                    break;
           case 0x13:
                    color(0,255, 0); // turn the RGB LED green
                    break;
           case 0x14:
                    color(0, 0, 255); // turn the RGB LED blue
                    break;
           case 0x15:
                    color(0,0,0); // turn the RGB LED off
           break;
       }
   }

}

void color (unsigned char red, unsigned char green, unsigned char blue) // the color generating function {

   analogWrite(redPin, red*102/255);
   analogWrite(bluePin, blue*173/255);
   analogWrite(greenPin, green*173/255);

}

Upload the code above to Arduino. Please disconnect TX and RX while uploading code because uploading would occupy serial interface.