WWW.THEREMINVISION.COM

Robotic E-field Visioning Based on Leon Theremin's Design of the "Theremin"

Theory of Operation:


The Theremin Sensor is simply a capacitance meter. An antenna is placed in an area and the resulting capacitance is monitored. In our case, several antennas are used and the capacitances are monitored in order to detect changes as objects are moving around out there. We can determine where and how far away they are.

In the case of a robot that has four corner sensors, eight general directions can be monitored. If a object is sensed at just one corner sensor, then the object must be near that corner only or it would affects other sensors as well. If two sensors detect an object equally, it must be somewhere between the two sensors. Thus, we can also detect front, back, left, and right. We can also judge a bit. Say the right-front sensor detects one object at a level of 10 and the left-front sensor detects the object at the level of 5. We can then assume that the object is right of front center. So we can raise the number of directions to 16. From there, perhaps one could even go to 32 or more directions, but for most applications, we know where the object is well enough.

Depending on the strength of a sensor reading, the objects distance can be estimated. In the case of robotic competition, a large steel robot will show up better than a small mostly plastic one. However, the opponent will usually have a fairly predictable size, weight, and construction. One could even have a switch on the Theremin Vision equipped robot to tell it before a particular battle that this particular opponent looks "heavy", medium, or "light" for further accuracy. The capacitance of on object is proportional to "area / distance" where "area" depends on the size of the antenna and opponent. So we want a fairly large antenna surface area for greatest sensitivity at a given distance. In general, if a real estimate of distance is wanted, it is best to make a mock up of the opponent and test it to determine the sensor readings vs. distance. It is important to remember that the Theremin Sensor responds to on object's ability to distort E-fields as opposed to an object's size, color, magnetic properties, or ability to reflect sound or light. Just about any material will be detected including all plastics, metals, skin, wood,... However, different materials will distort E-fields more or less. Metals would probably be the most detectable while some light plastics like Styrofoam (mostly air) would be the least detectable.

For the purposes of programming, we should know what factors go into making up a given reading. The pulse width from the processor is the difference in frequency between the reference and sensing oscillators on a sensor. We'll assume the reference frequency is 1MHz. For a typical standing pulse width of 5mS, the difference in frequency is 1 / (2 x 5mS) = 100 Hz. But the processor's counter is multiplying that time by say 64, so the real difference in frequencies between the reference and sense oscillator is 6400 Hz. The sense frequency should be lower than the reference frequency so the sense frequency is 993600Hz. The sense frequency is roughly equivalent to:

Fs = 103e-3 / (Rs x Ct)

The factor 103e-3 is intrinsic to the CD4093 NAND gate of the oscillator. Rs is the setting of the variable resistor. Thus Ct is the capacitance of interest. Ct is actually composed of seven parts:

Ct = Cb + Cd + Ce + Cg + Ci + Co + Cn

Where:

Ct = The total oscillator capacitance.
This is the sum total of all the capacitances that determine the Fs equation's Ct capacitance and the oscillator frequency. This is about 23pF.

Cb = The capacitance from the antenna back to the robot.
There is a fixed capacitance from the antenna back to the structure of the robot. This includes wires, motors, batteries, etc. What is important to note is that large metal objects in the robot should be kept away from the antennas as much as possible. Also, the parts of the robot should be solid and not "flopping around" which would alter the sensors readings in a way we don't want. Ideally, most of the robot near the antenna would be solid plastic so Cb contributes less to Ct. This is about 2pF.

Cd = The drift in capacitance.
With time, temperature, voltage, and other odd things, the capacitance may change some. This capacitance accounts for all the drifts in everything. Since the robot is solid, the ICs are stable, and the timing capacitors are NPO type, there should not be much drift. But if there is, it is called Cd.

Ce = The capacitance from the antenna to the enemy robot.
This is the one we want!! It is the capacitance that is caused by opponent and is what this is all about. Everything possible should be done to help this capacitance work. About 0 to 0.5pF.

Cg = The capacitance from the antenna to the ground.
This is the capacitance from the antenna to the deck or running surface. Although it is usually a constant. Varying surfaces or the robot becoming "airborne" will reduce this capacitance. Also, the robot nearing the edge of the deck or a cliff will cause this capacitance to decrease, which may be a way to do edge detection ;-) About 0.5pF

Ci = The intrinsic space capacitance of the antenna.
Every conductor in space will have a given capacitance depending on its size and shape. Our antenna will have some capacitance just by "being there". This one will never change unless the antenna becomes mangled. The exact value gets lost in Cb.

Co = The capacitance of the base capacitor.
This is the fixed 20pF NPO surface mount capacitor in the oscillator circuit. It is a +-5% part.

Cn = The noise capacitance.
This capacitance accounts for random noise and variation in the readings. Hopefully, a small thing.

This may seem "messy", but most of these can be ignored as long as they are understood. They are all broken out here just for the sake of completeness. Assuming our robot is solid, well built, not mangled, run in rain, flung into a low Earth orbit, or run in extreme hot or cold... then only Cg and Ce concern us. If the robot is not in combat, then Cg is probably stable too. I like Cg for it's edge detection possibilities. If the robot is wondering along and the capacitance drops (normally only Cg causes a sudden decrease in capacitance), then you are probably about to drive over a cliff... So all this aside,

Ct = Ce +Cother

Where Cother is stable. We really don't have to know the value of Ct since software is more than capable of normalizing, calibrating, and scaling everything to arbitrary values. What we are concerned with is that any change in Ce changes Ct which changes Fs which changes the pulse width. Or, Ce changes the pulse width. Or, our opponent changes the pulse width ;-))

PulseWidth = 1 / (2 x (Fr - Fs)

PulseWidth = 1 / (2 x (Fr - 103e-3 / (Rs x Ct)))

PulseWidth = 1 / (2 x (Fr - 103e-3 / (Rs x (Cb + Cd + Ce + Cg + Ci + Co + Cn))))

PulseWidth = 1 / (2 x (Fr - 103e-3 / (Rs x (Ce + Cg + Cother))))

Since so much is constant and we are really only concerned with Ce and maybe Cg...

PulseWidth = 1 / (k1 - (k2 / (Ce +Cg +k3)))

Or,... To make a long story short... "As on object approaches the antenna, the pulse width decreases. If the robot nears an edge, the pulse with increases."

That is just about all there is to know about how the thing works at this point for the programmers. "I" keep it really simple, but I suppose one could have a running reading of all the capacitances...


Just as an example:

In the equation:

PulseWidth = 1 / (2 x (Fr - 103e-3 / (Rs x (Ce + Cg + Cother))))

Assume:

Fr = 1123000
Rs = 4100
Ce = 0
Cg = 0.5pF
Cother = 22pF

and we multiply the pulse width by 64 in the processor counter.

PulseWidth = 4947uS

Now assume that the enemy robot comes along and makes Ce = 0.05pF.

PulseWidth = 3578uS

Thus, only 0.05pF of capacitance change at the antenna produced 1369uS variation in pulse width!!

Now assume Ce = 0 but the edge drops off and Cg = 0.49pF.

PulseWidth = 5358uS

Hopefully, edge detection will be easy!!

Forgive any math errors...

Terry Fritz
Dec. 30, 2003




Note: The "original" content of this site's ideas, text, pictures, schematics, layouts, software, theory, etc. are freely and completely released to the Public Domain and have no patent, copyright, or trademark.

Specifically - The "Thermin Vision" described here is a public design project that actively solicits ideas from anyone who wishes to help in the design. All details of the design have published in a number of public forums or can be obtained just by asking. 

This project was funded by the research and development department of Team-Titanium and managed by Team-Titanium Combat Platform Management. Technical resources were provided under project "We are a Cyborg!".

Inquiries may be directed to:

platform.management@team-titanium.com