[Fearless Night]’s optical theremin project takes advantage of the kind of highly-integrated parts that are available to the modern hacker and hobbyist in all the right ways. The result is a compact instrument with software that can be modified using the Arduino IDE to take it places the original Theremin design could never go.
The design is based on a ‘Blue Pill’ STM32 MCU development board and two Avago APDS-9960 gesture sensor breakout boards, along with a few other supporting components. Where the original Theremin sensed hand proximity using two antenna-like capacitive sensors to control note frequency and volume, this design relies on two optical sensors to do the same job.
[Fearless Night] provides downloads for the schematic, code, parts list, and even 3D models for the enclosure. PCB files are also included for a convenient assembly, but since the component count is fairly low, a patient hacker should be able to get away with soldering it up by hand without much trouble.
This project creates the audio using the STM32’s Direct Digital Synthesis (DDS) capability and a simple low-pass filter, and has several ways to fine-tune the output. What’s DDS? Our own Elliot Williams explains it in terms of audio output for microcontrollers, and if you’d like a more comprehensive overview, Bil Herd will happily tell you all about it.
I like the design where they’ve mounted a PCB as the top face of a 3D printed enclosure; allows for some really neat front silk screening and options for graphics. I wonder if mounting components on the inside face with holes in the PCB for LEDs, buttons, etc. to poke through might be viable to hide more of the components. Only problem with that might be their mechanical strength as their footprints weren’t intended to be mounted like that.
I agree, it’s a clever idea that I’ll definitely keep in mind.
Five of six years ago I built a Theremin using an HC-SR04 ultrasonic sensor. It didn’t have the bells and whistles the Theremin in the article has, but was still fun to play with. I might revive it to include the vibrato and distortion features, that is if I find the time in between the hundreds of projects I want to play with.
Did similar with an ultrasonic sensor coupled to an UNO. Used the tone function to create the sound. It wasn’t very good at a continuously varying frequency. Fun for a few minutes though. Pretty sure there are better ways of getting a quicker timing loop and smoother tone transition. It was more a, what can I make with the stuff in this box, than a project…
Have a real Theremin now, gathering dust somewhere. Must have a go with it after reading this article.
Or.. On the cheap, just using an Arduino, a piezo passive buzzer, a resistor, and a CdS (cadmium sulfide) photoreaistor: simple, fun little 9-12 ye old project. Good way of introducing the C programming language too.
https://github.com/LetsCodeBlacksburg/arduino-recipes/blob/master/2014-02-22_Arduino-Music-w-Light.pdf
Nice job – love that stylish PCB front panel – maybes even take the project up another notch by playing back samples of Clara Rockmore?
https://www.youtube.com/watch?v=pSzTPGlNa5U