Another quick hack. I purchased a voice changer because I was looking for something cheap that could be hacked into an voice input device. Basically I wanted to animate a skull when I spoke. Added bonus, now the skull puppet would also have a scary voice.
I am going to show you how to hack a voice changer to use as a digital input for an Arduino project. I leave the output or reaction up to you.
Step 1: What You'll Need
You will need
- A voice changer module. (8$ at Wallymart)
- A 741 opamp ic.
- an LED of choice (not necessary, but provides a cute little visual input that things are working, and will provide clues as to how to change the circuit into a LED light organ.)
- a resistor for your led (220 ohms - 1 k will work alright, you only need this if you are using the LED)
- some hookup wire.
- Soldering iron and solder
- wire snips
Step 2: Open 'er Up
First things first, crack the case. Not literally, just figuratively. Open it carefully with a screwdriver, save your screws.
Start by removing the battery cover and batteries as there are two screws hiding under the batteries.
Flip the unit over and remove the other two long screws. You can leave the belt clip intact. The two short screws can be left in even though I didn't. They hold the switch in position and removing them will only mean that you will need to line it up again later. Learn from my mistakes and leave them in.
There, four screws out (plus one for the battery cover) and you should be able to look inside.
Kind of exciting eh.
Step 3: Poke Araound
The first thing you may have noticed about the unit is that it is packing three AA batteries. 4.5 volts, which means it is probably fine at 5 volts, which means there is not much to do in order to interface with an Arduino.
Now by poking around with a multi-meter and talking into the microphone at the same time. I found a few points where the voltage fluctuates, which is great. The fluctuation was tiny however, and I was doubtful that I would be able to get much meaningful from an Analog input pin. I wanted a digital input. Something simple is the voice changer changing a voice? Yes or No?
What I needed was an easy way to spot the drop. Enter 741 op amp. (There was a theme song, but we cut it out...too much gain)
This little wonder (the 741) works great as a comparator, functions at 5 volts, and I had a few on hand to boot. Perfect.
What is a comparator?
A comparator is an analog circuit that monitors two input voltages (in our case the supply voltage and the voltage that drops). One voltage is called the reference (5 volts) and the other is called the input voltage. When the input voltage rises above or drops below the reference voltage, the output of the circuit changes states. Due to the high gain, an op amp with no feedback resistor can function as a comparator.
So we need to find a positive voltage that changes when someone speaks into the microphone. I did the poking for you, and have marked such a point in the photo below.
Step 4: The Nitty Gritty
Next, solder a wire onto the board at the pad indicated in the photo below. This one will go to pin 3 on the 741 and will act as the input voltage. When this changes, the output of the 741 will change from low to high.
For the rest of the 741 setup.
- Pin 7 goes to power, I used 5 volts from my Arduino.
- Pin 4 goes to ground.
- Pin 6 goes to a digital pin on Arduino, I am using pin 2.
I also attached an LED and resistor from pin 6 out to ground. So when the output goes high (talking is happening), the LED lights as well. I wanted visual confirmation and find it helps soothe what ails me.
Close it all up and it should be pretty as new.
That's it, you are done with the hack. put the batteries back in and talk a little into the microphone, the LED should blink on and off.
Connect it up to an Arduino and use digitalRead() on the pin you have it hooked up to and you will be able to read when speech is passing through the unit. Now, go use that knowledge and do something cool with it. Check the video for my lame effort.