DIY Theremin

For once, I decided to try and combine my physical computing assignment and fabrication assignment. Using what I learned in physical computing I realized I could make a very simple theremin-like device.

Insides

Using an IR distance sensor to control LEDs.

I noodled around with the IR sensor from the previous week, and it seemed easy enough to put this into an enclosure with a speaker. First I would need to figure out how to develop the simplest version of this using a breadboard and Arduino. The components required are as follows:

  • 1 microcontroller unit, an Arduino Uno in this case
  • 1 speaker
  • 1 IR distance sensor
  • 1 potentiometer to act as a volume control
  • 1 button for on/off control

I put it all together and wrote a simple code that connected the analog values being sent from my sensor to the tone() function.

DIY Theremin from Lucas on Vimeo.

Here is the code that I finally landed on:

int n = 100;

void setup() {
 Serial.begin(9600);
 pinMode(8,OUTPUT);
}

void loop() {
 float analogValue[n];
 float pitch;

 analogValue[0]=0;
 for (int i = 1; i < n; i+= 1){
 analogValue[i]=analogRead(A0);
 analogValue[0]=analogValue[i]+analogValue[0];
 }

 analogValue[0]=analogValue[0]/(n-1);

 Serial.println(analogValue[0]);

 pitch = map(analogValue[0], 25,650,10, 3000);
 
 tone(8, pitch);
 delay(30);
}

The delay at the end helped to iron out some of the overly frequent modulations. Overall the sound, while pretty annoying, was very satisfying. Now I had to find a way to squeeze it all into a nice little package.

Outsides

I began to consider different shapes that the enclosure could take, and I settled on a kind of face with an enlarged forehead that would house the speaker. The power button and the volume knob would form the eyes, and the IR sensor would be in the place of the mouth. Is it important that it look like a face? Not really, but something familiar looking can go a long way to make it approachable.

I also considered various design inspirations as well. It should come as no surprise that I’m a Star Wars fan. Its look and feel, primarily what was developed by Ralph McQuarrie, has had a huge influence on the way I think about design and how I approach aesthetic decisions. 2001: A Space Odyssey is another visual reference point I often come back to. Its attempts to visualize the future are very compelling and offer possible approaches to the design of control panels and other electronic elements.

And then, out of left field is my obsession with paracord. I’ve fallen down too many rabbit holes of Youtube videos explaining very specific knots or weaving techniques. I figured I could use this for something.

The plan was to build it out of acrylic pieces and “tie” it all together using paracord. The cord could also double as a speaker mesh. I modeled it in Rhino and downloaded a very accurate model of an Arduino board that I used to map out the screw holes and the USB port. The speaker size, button, potentiometer and sensor, I measured using my handy-dandy caliper.

Rhino model with embedded Arduino

Acrylic has a great look when done accurately, and can help to wash away some of the DIY appearance, but it is incredibly unforgiving. It means that there’s no fixing pieces, no sanding to get things to fit. There’s no way to cut it unless one is using the bandsaw or laser, so I had to get it right or do it over.

I started with cardboard mockups to check sizing, and overall everything seemed to be fitting (see featured image above). I liked the way it was shaping up and felt like I could then revisit the electronics and figure out how to get them to fit. No more breadboards!

I opted for wire connectors instead of soldered elements to save time.

While it isn’t the best example of circuit design, I managed to throw this together fairly quickly and removed the breadboard out of the equation altogether. The wire connector nuts saved me time, but I still had to solder a little bit.

I then made the shift to working with acrylic. I got my cuts done fairly quickly and tried to add some control panel elements, but for some reason the raster etch didn’t quite catch on. Two of the most satisfying parts of this process was ensuring that the speaker fit perfectly into the space designed for it and that the Arduino board matched perfectly the holes in the back panel and the USB port lined up perfectly with the side panel.

This enclosure fits like a glove.
Faceplate with embedded speaker. The additional holes are for the paracord mesh. The text didn’t quite work out as I had hoped. I called it the “Theranger-2017” as a portmanteau of theremin and range-finder… Name is tentative.

I then assembled all of the pieces together with the electronic components. Keeping the side panels in place was tricky, but using some standoffs and screws allowed me to hold it all together while I then introduced the final paracord fastening.

Parts coming together.

And the (almost) final enclosure. I had to switch to a microcord instead of the 3mm paracord I was intending to use because it was too thick. The faceplate text needs to be redone as well. Overall, however, I’m pretty satisfied with the outcome. The piece feels like a complete thought. I think the next step would be to make it portable!

I plan to fix the faceplate and maybe find a better paracord solution.
This is a close to final version of the piece.

1 Comment

  1. Great work and documentation. The design is striking and I really like what you did with the speaker.

    Did you try the Sharpie trick for the labels? Do you think the etching isn’t deep enough? You might want to think about vinyl stickers for labels. We have a vinyl cutter.

    My guess is it takes some time to open up the enclosure, undoing all of the cord.

    What does the back of the enclosure look like?

Leave a Reply

Your email address will not be published. Required fields are marked *