Thanks for having a gander. About eight months ago, I decided that one of my new ventures would be to create a voice recognition system that could be trained manually, and without having to interface with a PC. One that is so simple to use! One that TALKS TO YOU! Myself and an affiliate managed to make that dream come to life only about three weeks ago. Since I usually point friends, customers and hobbyists towards instructables.com when they need answers in relation to my products, I figured I'd create an instructable that not only showed the user how to use the system, but how to implement them into their own projects. This instructable will show off the video manual, the hard copy manual, and several videos that currently show off some of the capabilities of this device.
Here is the first video that I created to introduce this fun device to the world:
Step 1: How to Train the Device and Use It!
I've written up a manual for this, and I've also made a video manual. I've decided to post both of them.
Here is the full video manual:
Here Is The Written Manual: (Quick Link with all pictures here):
When working with this device, you DO NOT require a PC. All of the voice command programming is done by your hands. Best of all, this device TALKS TO YOU! The device is programmed to tell you what to do. If at any point you get tired of the voice talking to you, or you just don’t want or need to hear it anymore, simply unplug the speaker.
The ES6928P is capable of saving up to four 1.25 second voice commands at a time. You can reprogram these commands at any given time by following the instructions talked about below and in the demonstration video. The command information is saved into an on-board EEPROM, which allows for the user to power off the device, and power it back on without having lost command data. When a programmed command is recognised by the device, the corresponding output pin will go from 0-5v for 1 second, then back down to 0v. It is TTL compatible and it works well with PICs, Arduino, Stamp, and other digital projects.
1) The device talks to you! The device tells you which mode you’re in, which command has been recognised, how to train the unit, etc. This is talked about in detail later on.
2) Easy programming! No PC required! All you need is to follow the directions talked about below, and you’re all set!
3) An on-board EEPROM allows for the user to save up to 4x voice commands, and reprogram at will. Even when the device is powered down, the device still saves the data from the last four commands programmed.
4) TTL output makes it easy to interface with popular platforms, such as Arduino, PIC, or Stamp!
5) The device comes with a detachable speaker that connects directly to a header on the ES6928P. As well, four plugs are included; one for each output. Each plug connector has a signal wire (RED), and a DC ground wire (BLACK). This makes for an easy interface between the ES6928P and your own digital project!
1) The device requires a power supply of 7-12VDC (100mA or more). It is a low-power device. For short term testing, a 9v battery powers this device quite well!
2) An Imagination! What will you use this device for? We are currently working on several application videos, so have a look at our youtube channel!
How To Program the ES6928P:
When you take the ES6928P out of the package and power it up for the first time, the device will tell you that it has not been trained. By trained, the device means that it has not been taught any commands. It will place you directly into program mode. The device will instruct you to press a button to train a command. Each command cannot exceed 1.25 seconds. There are four buttons on the board. Press one of them, in any order. Once you press a button the device will ask that you say a command. For example, you can now say “RED”. The device will then ask that you repeat the word, so that the device can compare the two commands. If you said two words that were not similar enough, it will tell you, and you’ll have to try again. If there is too much noise in the background, or if too much wind is hitting the microphone, the device will say “Too Noisy”, and it will instruct you to try again. When you’ve successfully trained a command, it will ask you to train another, until all four commands have been trained. As soon as all four commands have been trained, the device will tell you that it is now entering you into scanning mode. It is a good idea to make your commands as different as possible from one another to help against false triggering.
If your device is trained, and you power it off, you will begin in scanning mode when powered back on again. When in scanning mode, the device is searching for commands that are similar to the ones you programmed. For example, let us say that you programmed the following commands:
Command#1 = Fuzzy
Command#2 = Bingo
Command#3 = Dragon
Command#4 = Long Time
When the device detects that someone has said “Dragon”, then output#3 will go high for one second. If the device detects “Bingo”, then output#2 will go high for one second.
How do I enter back into Program Mode?
Great question! When in scanning mode, press and hold button#1 until the device says “Synchronize”. From there, you must quickly press this sequence of buttons: “233214”. If you typed this combination in quickly after the device says synchronize, then the device will place you into program mode. If you type the combination in too slowly, it will not work, and you will have to press and hold button#1 until the device says “Synchronize” again.
How to re-program only one or two commands?:
If you want to change only one or two commands, what you have to do is enter into program mode, reprogram the commands that matter, then press and hold button@2 and button#4 simultaneously. This will bring you back into scanning mode, and it will save the changes you made. If you have made changes in programming mode, and you decide that you’ve made a mistake, and don’t want the new command to be saved, press the Exit button. This is the button just above the speaker header. This will delete the changes you just made, and enter you back into scanning mode.
Remember the last time you called your television or cell phone service provider? Do you remember the robotic voice talking to you at the other end? In many cases, that voice relays information to you, and required for you to respond. The voice recognition software will looks for specific responses. However, sometimes this goes awry. No voice recognition module is perfect. If you program in commands that are similar to each other, it may cause problems. For example, let’s say you programmed in the following commands:
Command#1 = Plate
Command#2 = Date
Command#3 = Great
Command#4 = Octopus
The device will have problems differentiating between commands one through three. Four is very much different. As well, if you program a simple command in such as “Guy”, you might false trigger when saying words that are similar, such as “Fry”, or “Die”. Another example would be that if you programmed in the command “Gold”, then words like “Fold” or “Told” might fool the system. It isn’t difficult to confuse the system, which is why it is good to have very different commands. If you write a program with your Arduino that waits for two commands, such as “Ready”, and then “Fire” to occur within a short time period, and in that order, then you’ll have no problem. Just watch some of our applications videos. Make sure to program in very different commands, like:
Command#1 = Quantum Physics
Command#2 = Goggles
Command#3 = Dragon Fire
Command#4 = Arms Length
The device is programmed to place emphasis on the final syllable of a command. If you have commands that have similar final syllables, it may give you some issues depending on the similarity of the first/second syllables. However, if you program in commands “Number Nine”, and “Command nine”, you should be fine!
Hardware and Size Specification:
The Power Supply Terminal Block:
The blue terminal block on the right hand side of the device has two screw ports. Since the device requires 7VDC-12VDC to operate, place your DC ground in the upper block (DC Ground), and your positive DC source in the lower block (7-12VDC (V+). The input voltage is regulated down to 5v on the board. When power is applied, the device will automatically start operating. If you are powering up for the first time, the device will place you in programming mode. If you’ve already trained your device with four commands, when you power the device up, it will place you in scanning mode. Make sure that you have your speaker connected.
The Speaker Header:
There is a two-pin male header on the left hand side of the board. Connect your speaker connector here. Orientation does not matter. If at any point you do not hear audio coming from the board, check to make sure that there is connectivity between the speaker and the board. Secondly, check the resistance along the speaker. If there is more than 10 ohms along the speaker, there is a problem. Of course, this shouldn’t be an issue, but it never hurts to talk about troubleshooting.
Device Programming Buttons (S1-S4):
These buttons serve to program commands in when in programming mode. They also serve to change the device operation from scanning mode to programming mode. These are two-pin monetary push button switches.
If the user does not wish to be in programming mode, or wishes to disregard changes made, they simply must press the Exit Button. This will enter you immediately back into scanning mode. Any changes you made in programming mode prior to pressing this button are disregarded by the system.
Device Outputs (1-4):
There are four outputs on the device. Each of the outputs correspond to an input command. The output associated with command#1 will go high for one second when command#1 is recognized in scanning mode. The output associated with Command#1 (S1/Button#1) is directly above (Adjacent) S1, and this goes for all outputs. Each output has its own two-pin plug. Each plug connector has two pins; one for the signal (RED), and one for digital ground (BLACK). This makes for easy interface with your external circuit. The plug connectors only fit into the plugs one way. There is only one orientation. This is so that you don’t reverse the positive and negative wires. These outputs are not meant to drive high powered devices. They can supply no more than 10mA of current.
Board Length = 6.8cm
Board Width = 4.3cm
Board Height (Without speakers/plug connectors attached) = <1cm
There are four mounting holes that are located on each corner, and they each have a diameter of 3mm.
1) Use it as a relay toggle (Light On)/(Light Off)
2) Use it as a combination lock circuit (Application Video Coming Soon)
3) Use It as a Door Opener (Activate a Solenoid) Or have it trigger a Servo Program!
4) Anything fun that you can think of!
Step 2: What Can I Interface It With? Arduino? PIC?
Heck yes! It is very easy to interface this module with your Arduino, PIC, ARM, or Stamp Project. It can even be interfaced with your TTL or CMOS digital projects. I've created a logic controller that I'll be offering soon; both as a DIY kit, and as an assembled module. You can program your own, but below is a good example of what I'm talking about. This logic controller takes the outputs of the ES6928P, and is able to do the following:
MODE#1) Output Toggle Controller: This mode takes the momentary pulse from the ES6928P, and through programming, acts to toggle each of the four outputs through the programmed PIC chip. I'll be making an instructable on this at a later date.
MODE#2) Combination Lock Mode: You only have a short period of time to say each of your four commands in order. If you are successful, a single output from the PIC will toggle. There is a header on the board that will allow for you to choose whether or not this output toggles, or goes high (5v) for a short time, then low again (0v).
MODE#3) Output Doubler: This is my very favourite mode. Using a control command, and some binary logic, you can use four voice commands to toggle up to eight outputs of the PIC. There is a header on the board that will allow for you to choose whether or not this outputs toggle, or go high (5v) for a short time, then low again (0v).
Each of these modes can be seen in this video:
Step 3: Applications!
Since I LOVE electronics, I will be posting new fun videos here are time goes on. I have a hundred ideas. I'm going to use my logic conditioner to wire up my lab with complete voice control! You Arduino fanatics out there can do just this, and on your own. Check out the below videos! They're a bunch of fun!
Blowing Up Fireworks With Your Voice:
Voice Recognition Fan Control:
Step 4: Where Can These Bad Boys Be Found?
Engineeringshock Electronics: While our main site is currently being rebuilt, it should be back up by the end of the week. Currently, our website points to our ebay store, where the ES6928P can be found.
Our Ebay Store Can Normally Be Found Through: http://www.electroniclessons.com
My friend Joshua Zimmerman of BrownDogGadgets was kind enough to work with us, and to sell the ES6928P voice recognition system sets on his website, which can be found here: http://www.browndoggadgets.com/
Step 5: Thanks Everyone!
It's because of hobbyists and students like you that I'm able to continue to do this, so thanks to all of you that are still reading!
I hope you all have a wonderful day!