Make a Rotating Microphone
This Instructable describes how I made a rotating microphone using just a few basic electronics and some common household items. You can use a rotating microphone to simulate the doppler effect like that of a leslie speaker cabinet. The rotating microphone is the inverse of the rotating leslie speaker. My design is a microphone installed at the center of a lightweight wooden "turntable." The microphones capsule is connected electrically to the back side of a female 1/4" TRS connector that is affixed to the turntable. The male end of the Male 1/4" TRS --> Male XLR adaptor is used as the axis of rotation for the turntable and also functions like a slip ring by maintaining an electronic connection while the female 1/4" TRS spins around its axis. The turntable has rubber gears installed along its edges that are in turn moved by the gears on the DC motor. The microphone requires an external power supply that is seperate from the motor and turntable.
You will need the following items to make the rotating microphone work using my methods:
1 Electret Condenser Element (for this application a unidirectional capsule will work best)
1 Male XLR Connector
1 Female XLR Connector
1 Male 1/4" TRS --> Male XLR adaptor
1 Female 1/4" TRS plug
1 DC Motor (9V) with gear
1 Circular lightweight piece of wood (I got mine at Hobby Lobby)
1 Drill
1 Rubber Gear Strips (long enough to cover the circumference of the wooden circle; matched to motor gear)
1 Glue (Gorilla Glue or something like it)
1 Wood Glue (used for the rubber gear strips and the wooden circle)
1 H Bridge
1 10k resistor
1 2k resistor
1 1000pF capacitor
2 10uF capacitor
1 Analog or digital switch
1 Potentiometer (50k-100k will work)
1 Arduino microcontroller (I am using the Diecimila) including a computer or other way to program the board. You do not need a computer to use the rotating microphone once the Diecimila is programmed and has 9V of power coming in (center positive).
1 9V power adaptor (center positive, not exceeding 300mA)
1 9V battery or 4 AA batteries in a 4 AA Battery Cell Holder
1 breadboard for motor circuit
1 perf board for the mic powering circuit
A good bit of wire and alligator clips
small plastic clamps
electrical tape
Soldering iron with solder
small lightweight plastic bottle with screw on cap (I used a small bottle of Dr. Bronner's Magic Soap)
large plastic bottle cap (to hold the motor in place)
mic stand
small mic clip
optional:
rubber mount for electret capsule (I used one that I stripped out of an Apple PlainTalk microphone)
You will need the following items to make the rotating microphone work using my methods:
1 Electret Condenser Element (for this application a unidirectional capsule will work best)
1 Male XLR Connector
1 Female XLR Connector
1 Male 1/4" TRS --> Male XLR adaptor
1 Female 1/4" TRS plug
1 DC Motor (9V) with gear
1 Circular lightweight piece of wood (I got mine at Hobby Lobby)
1 Drill
1 Rubber Gear Strips (long enough to cover the circumference of the wooden circle; matched to motor gear)
1 Glue (Gorilla Glue or something like it)
1 Wood Glue (used for the rubber gear strips and the wooden circle)
1 H Bridge
1 10k resistor
1 2k resistor
1 1000pF capacitor
2 10uF capacitor
1 Analog or digital switch
1 Potentiometer (50k-100k will work)
1 Arduino microcontroller (I am using the Diecimila) including a computer or other way to program the board. You do not need a computer to use the rotating microphone once the Diecimila is programmed and has 9V of power coming in (center positive).
1 9V power adaptor (center positive, not exceeding 300mA)
1 9V battery or 4 AA batteries in a 4 AA Battery Cell Holder
1 breadboard for motor circuit
1 perf board for the mic powering circuit
A good bit of wire and alligator clips
small plastic clamps
electrical tape
Soldering iron with solder
small lightweight plastic bottle with screw on cap (I used a small bottle of Dr. Bronner's Magic Soap)
large plastic bottle cap (to hold the motor in place)
mic stand
small mic clip
optional:
rubber mount for electret capsule (I used one that I stripped out of an Apple PlainTalk microphone)
Make the Microphone Powering Circuit
First off, make the powering circuit for the "Tape Op" microphone as shown on this site:
http://www.prosoundweb.com/recording/tapeop/buildmic/buildmic_16_1.shtml
You can also power the microphone using four AA batteries in a four AA battery cell holder.
I chose to make mine with XLR in/out as XLR is usually the type of mic inputs that I'm using.
I went ahead and made the circuit on a perf board- it's much easier to do on a perf board that has some connecting strips for ground, etc.
The microphone circuit that is also shown on the web page will be used later on so bookmark the page for future reference.
http://www.prosoundweb.com/recording/tapeop/buildmic/buildmic_16_1.shtml
You can also power the microphone using four AA batteries in a four AA battery cell holder.
I chose to make mine with XLR in/out as XLR is usually the type of mic inputs that I'm using.
I went ahead and made the circuit on a perf board- it's much easier to do on a perf board that has some connecting strips for ground, etc.
The microphone circuit that is also shown on the web page will be used later on so bookmark the page for future reference.
Make the Mic's Turntable
You will need to make a turntable for the mic to rest upon. I use a lightweight circular piece of wood that I purchased for $.99 at Hobby Lobby for the job. Using a ruler or a compass you will need to find the center of the of circular wooden piece. Mark the center and drill a hole into the center of the wood. Be careful not to break the wood as it is lightweight and quite fragile. Once the hole is drilled try to put the connector of the female TRS plug into the hole, if it's not big enough use a larger bit or scrape the center out using a knife until the female TRS plug fits in snug. The female TRS plug will hopefully come with a screw and washer which are used to mount the plug at the center of the turntable.
You will need to glue the rubber gear pad all along the circumference of the wooden circle. I had to cut and use two rubber gears that were bought in loops. If you need to cut the rubber gears like I did, make sure that the gear pattern continues seamlessly in places where you need to make a cut. I used wood glue to glue the gear along the wood piece. It is also handy to have some plastic clamps to hold the rubber gear pads in place once you've attached them to the glue.
You will need to glue the rubber gear pad all along the circumference of the wooden circle. I had to cut and use two rubber gears that were bought in loops. If you need to cut the rubber gears like I did, make sure that the gear pattern continues seamlessly in places where you need to make a cut. I used wood glue to glue the gear along the wood piece. It is also handy to have some plastic clamps to hold the rubber gear pads in place once you've attached them to the glue.
Install the Mic
You will need to install the condenser microphone element so that it can rest on top of the turntable while also oriented to the side (rather than facing straight up). I chose to accomplish this task by installing the mic element on top of a lightweight plastic bottle of Dr. Bronner's Magic Soap. You will need to cut the bottom of the bottle off. It is helpful for the bottle to have a screw on cap as it gives a place for the mic to rest, wires to pass through into the bottle, and can also be used to break apart the mic housing, should you need to make any repairs.
First, I glued the microphone element's rubber holder to the top of the bottle cap. My condenser element came with wires already attached, so I ran those through the hole in the cap. If your condenser element does not have wires installed you will need to solder them yourself. The condenser element has a positive and a negative terminal on its back side and you can tell which terminal is negative by looking to see which one has a more "pointy" shaped pattern as opposed to a semicircle. When you solder the wires to the terminals be very careful to not leave the soldering iron on the connection for too long or too frequent as you will destroy the condenser element by overheating it this way.
Once the element is installed and glued to the bottle cap you will need to add a 1000pF capacitor across the two wires as shown in the diagram for the microphone on:
http://www.prosoundweb.com/recording/tapeop/buildmic/buildmic_16_1.shtml
We are still simply working with just the plastic bottle cap, mic element, and capacitor. Don't solder them to the the female TRS base, yet! Next, you will need to attach the wires with their capacitor (w/ two lead wires) to another set of wires to extend down to the female TRS base. Allow these wires to give some slack in case you need to twist off the cap to do repairs.
After you have the mic element with capacitor and slack wires attached you are ready to screw on the plastic bottle cap to the bottle. After you have screwed on the cap you can now solder the wires to the appropriate Ring and Tip connections as shown in the schematic. Make sure you leave the Sleeve unconnected (not connected to the Ring as is common in unbalanced cables utilizing balanced TRS or XLR connectors) as it will eventually connect with the common ground. You are now ready to test out your mic with the finished powering circuit to make sure that it works. If you are not having any luck getting the mic to work, double check your work and the schematics for the powering circuit and the mic circuit. Make sure that the mic and its input and output all share a common ground.
If the microphone is working you can now install the mic to the turntable (mounting the female TRS connector) and glue the plastic bottle to the turntable for extra support. Now your mic and turntable are complete!
First, I glued the microphone element's rubber holder to the top of the bottle cap. My condenser element came with wires already attached, so I ran those through the hole in the cap. If your condenser element does not have wires installed you will need to solder them yourself. The condenser element has a positive and a negative terminal on its back side and you can tell which terminal is negative by looking to see which one has a more "pointy" shaped pattern as opposed to a semicircle. When you solder the wires to the terminals be very careful to not leave the soldering iron on the connection for too long or too frequent as you will destroy the condenser element by overheating it this way.
Once the element is installed and glued to the bottle cap you will need to add a 1000pF capacitor across the two wires as shown in the diagram for the microphone on:
http://www.prosoundweb.com/recording/tapeop/buildmic/buildmic_16_1.shtml
We are still simply working with just the plastic bottle cap, mic element, and capacitor. Don't solder them to the the female TRS base, yet! Next, you will need to attach the wires with their capacitor (w/ two lead wires) to another set of wires to extend down to the female TRS base. Allow these wires to give some slack in case you need to twist off the cap to do repairs.
After you have the mic element with capacitor and slack wires attached you are ready to screw on the plastic bottle cap to the bottle. After you have screwed on the cap you can now solder the wires to the appropriate Ring and Tip connections as shown in the schematic. Make sure you leave the Sleeve unconnected (not connected to the Ring as is common in unbalanced cables utilizing balanced TRS or XLR connectors) as it will eventually connect with the common ground. You are now ready to test out your mic with the finished powering circuit to make sure that it works. If you are not having any luck getting the mic to work, double check your work and the schematics for the powering circuit and the mic circuit. Make sure that the mic and its input and output all share a common ground.
If the microphone is working you can now install the mic to the turntable (mounting the female TRS connector) and glue the plastic bottle to the turntable for extra support. Now your mic and turntable are complete!
Make the DC Motor Circuit
The DC motor circuit that I used is shown and explained in this helpful website:
http://itp.nyu.edu/physcomp/Labs/DCMotorControl
You will need to follow those easy directions for making the DC motor with controllable direction using an H Bridge integrated circuit. The direction changes are made via a switch that is connected to the Arduino's digital input.
At first, I used a external power supply for my DC motors voltage. This allowed me to power the Diecimila via USB and also the ability to upload my Arduino program to the Arduino microcontroller.
I decided to add a speed control to the motor circuit by adding a simple potentiometer circuit that utilizes the Arduino's +5V output and its ground. I send the voltage from the potentiometer circuit into the analog input 0 on the Arduino board.
Finally, I uploaded the following code (based on the website's code with added potentiometer control) to the Arduino so I can control the motor's speed and direction:
int switchPin = 2; // switch input
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int speedPin = 9; // H-bridge enable pin
int ledPin = 13; //LED
int potPin = 0; // Analog input pin that the potentiometer is attached to
int potValue = 0; // value read from the pot
void setup() {
// set the switch as an input:
pinMode(switchPin, INPUT);
Serial.begin(9600);
// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set speedPin high so that motor can turn on:
digitalWrite(speedPin, HIGH);
// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that the module
// reset itself,. probably because the motor caused a brownout
// or a short.
blink(ledPin, 3, 100);
}
void loop() {
// if the switch is high, motor will turn on one direction:
Serial.println(potValue); // print the pot value back to the debugger pane
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
potValue = analogRead(potPin); // read the pot value
analogWrite(speedPin, potValue/4); // PWM the speedPin with the pot value (divided by 4 to fit in a byte)
}
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
potValue = analogRead(potPin); // read the pot value
analogWrite(speedPin, potValue/4); // PWM the speedPin with the pot value (divided by 4 to fit in a byte)
delay(10); // wait 10 milliseconds before the next loop
}
}
/*
blinks an LED
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
delay(milliSecs/2);
digitalWrite(whatPin, LOW);
delay(milliSecs/2);
}
}
http://itp.nyu.edu/physcomp/Labs/DCMotorControl
You will need to follow those easy directions for making the DC motor with controllable direction using an H Bridge integrated circuit. The direction changes are made via a switch that is connected to the Arduino's digital input.
At first, I used a external power supply for my DC motors voltage. This allowed me to power the Diecimila via USB and also the ability to upload my Arduino program to the Arduino microcontroller.
I decided to add a speed control to the motor circuit by adding a simple potentiometer circuit that utilizes the Arduino's +5V output and its ground. I send the voltage from the potentiometer circuit into the analog input 0 on the Arduino board.
Finally, I uploaded the following code (based on the website's code with added potentiometer control) to the Arduino so I can control the motor's speed and direction:
int switchPin = 2; // switch input
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int speedPin = 9; // H-bridge enable pin
int ledPin = 13; //LED
int potPin = 0; // Analog input pin that the potentiometer is attached to
int potValue = 0; // value read from the pot
void setup() {
// set the switch as an input:
pinMode(switchPin, INPUT);
Serial.begin(9600);
// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set speedPin high so that motor can turn on:
digitalWrite(speedPin, HIGH);
// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that the module
// reset itself,. probably because the motor caused a brownout
// or a short.
blink(ledPin, 3, 100);
}
void loop() {
// if the switch is high, motor will turn on one direction:
Serial.println(potValue); // print the pot value back to the debugger pane
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
potValue = analogRead(potPin); // read the pot value
analogWrite(speedPin, potValue/4); // PWM the speedPin with the pot value (divided by 4 to fit in a byte)
}
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
potValue = analogRead(potPin); // read the pot value
analogWrite(speedPin, potValue/4); // PWM the speedPin with the pot value (divided by 4 to fit in a byte)
delay(10); // wait 10 milliseconds before the next loop
}
}
/*
blinks an LED
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
delay(milliSecs/2);
digitalWrite(whatPin, LOW);
delay(milliSecs/2);
}
}
Finishing the Motor Circuit
Once you've tested the motor circuit and gotten it to work with the switch controlling its direction and the potentiometer controlling its speed you are ready to finish the circuit by finding a way to mount the motor to a surface and keep it steady and getting the circuit to run without a computer.
I decided to to use a plastic bottle cap to hold the motor and attached it to a flower pot base with glue.
You can get the circuit to run without a computer simply by running DC power into the Arduino. In my case, I use the Diecimila and there is a jumper that I have to switch to allow it to run on DC power rather than USB power. The newer models have this automatically set up, so you may not need to do this step. Once plugged in with the DC plug, the Arduino should light up as usual. You can now swap out the DC power source from before on your circuit to the Vin output of the Arduino. That is the only change that you have to make. In the previous circuit, you had to give the external power supply common ground with the Arduino, but the Vin output of the Arduino is already sharing this common ground.
The circuit behaves a little differently in this configuration. The switches in direction take more time to happen and the motor will not run as hot as it would with a pure 9V external power supply. However, for my purposes I found the sudden stops between changes in direction to be mechanically helpful to the way I want my rotating mic setup to work as it makes it less jerky when it shifts direction and possibly lighter wear on the turntable's gears. I also like that I do not need to worry about the use of computer, while still only needing one wall wart to make it all happen.
I decided to to use a plastic bottle cap to hold the motor and attached it to a flower pot base with glue.
You can get the circuit to run without a computer simply by running DC power into the Arduino. In my case, I use the Diecimila and there is a jumper that I have to switch to allow it to run on DC power rather than USB power. The newer models have this automatically set up, so you may not need to do this step. Once plugged in with the DC plug, the Arduino should light up as usual. You can now swap out the DC power source from before on your circuit to the Vin output of the Arduino. That is the only change that you have to make. In the previous circuit, you had to give the external power supply common ground with the Arduino, but the Vin output of the Arduino is already sharing this common ground.
The circuit behaves a little differently in this configuration. The switches in direction take more time to happen and the motor will not run as hot as it would with a pure 9V external power supply. However, for my purposes I found the sudden stops between changes in direction to be mechanically helpful to the way I want my rotating mic setup to work as it makes it less jerky when it shifts direction and possibly lighter wear on the turntable's gears. I also like that I do not need to worry about the use of computer, while still only needing one wall wart to make it all happen.
Putting It All Together
Now you simply need to plug the male 1/4" TRS to male XLR adapter into the base of your microphone turntable. I decided to buy one of these adapters specifically for this project because it gives you the TRS in that you absolutely need ( this circuit will not work with an unbalanced TS-XLR cable) and the male XLR out that you also need to interface with the power supply. It also is a very stable axis for the turntable. As an added bonus if you can find a mic clip that will hold it you now have ideal mounting options for the microphone turntable.
Once the mic is mounted you simply need to mount your motor and connect your motor's gear to the outside edge of the mic turntable to spin the microphone at different speeds and directions. You also could try spinning the mic turntable with your hands instead of a motor. The lighter the weight of your turntable the better results you will get. Have fun with your new rotating microphone!
Improvements that could be made to this project.
The microphone element is not very well protected in this configuration and could be damaged easily if it were to fall. A lightweight more robust mounting option of the mic element would be a plus.
The motor and the gears along the side of the mic turntable generate a pretty substantial amount of noise. Using slip rings that turn easily and are also electrically quiet could help improve this feature dramatically. Also, perhaps a belt driven turntable system like that found in record players could be a model for how to rotate the mic. For now, the implementation will only work with loud source material or as an instrument in and of itself. This noise could also be tamed with some band-reject filtering although this is not ideal.
Once the mic is mounted you simply need to mount your motor and connect your motor's gear to the outside edge of the mic turntable to spin the microphone at different speeds and directions. You also could try spinning the mic turntable with your hands instead of a motor. The lighter the weight of your turntable the better results you will get. Have fun with your new rotating microphone!
Improvements that could be made to this project.
The microphone element is not very well protected in this configuration and could be damaged easily if it were to fall. A lightweight more robust mounting option of the mic element would be a plus.
The motor and the gears along the side of the mic turntable generate a pretty substantial amount of noise. Using slip rings that turn easily and are also electrically quiet could help improve this feature dramatically. Also, perhaps a belt driven turntable system like that found in record players could be a model for how to rotate the mic. For now, the implementation will only work with loud source material or as an instrument in and of itself. This noise could also be tamed with some band-reject filtering although this is not ideal.