Roganti's Inclinometer
Diagram of Inclinometer (12KB)
1. Theory
Introduction:
The
inclinometer is a unidirectional sensor using a capacitive transducer.
The output is a variable square wave
which is proportional to the angle. The dielectric used within the transducer
is chosen to provide dampening
by reducing oscillations caused by overshooting or shock. Yet still provide
a reasonable reaction
time to angular movements. The dielectric used here is Glycol, which I
purchased in the grocery store,
should be available at the Pharmacy too, and this provides a reaction time
to simulate the circular canals
in the Inner Ear. The single axis sensor has a effective range from +60deg.
to -60 deg with 1deg resolution.
The accuracy is still not perfected, this fluxuates due to it being homemade
versus manufactured,
and hovers around 3deg. The reaction time is suitable to relay the angular
postions for the robot
to react in time. The tranducer is interfaced to a digital oscillator made
with a Schmitt trigger Inverter
gate. The oscillator has an adjustment using a trimmer pot to calibrate
the sensor ouput. The sensor
output is measured via a digital input port on the microcontroller to covert
into the angular position.
A software lookup table is all that's needed if there a concern about computation
speed.
Description
I
have experimented with a Pole balancing robot using various type of homebuilt
Inclinometers and I'll explain briefly here how I solved this. My "pole"
is attached to a base in which I induce the external forces to test the
reaction of the robotic pole. I'll be describing the Inclinometer sensor
which I built to solve the balancing problem, thereafter, you can apply
to this any sort of robot you want. I built this robot using two Inclinometers
to provide an X & Y axis . I know you can simply go out and buy
an Inclinometer, but I couldn't find one cheap enough and suitable to adapt
into my robot.My robot isn't big enough to accomodate most of the commercial
types there are so I resorted to making my own. I'm still working on a
drawing to upload onto my webpage if anyone is curious about how it looks.
It'll be online shortly.
I first experimented with different transducers to detect angular position
similiar to what the others have described. Such as pendulum(inverted joystick)
sensor w/ potentiometer/optical feedback, mercury switches, micro switches,
etc,etc. I found the Inclinometer was a better solution than using an accelerometer
in my project. Perhaps not in yours, but my inclinometer is no more difficult
than interfacing a single input port bit on your microcontroller and having
the software programmed to time the pulse width. The Acceleration functions
can all be done in software. It's not rocket science. At the moment, I'm
still trying to perfect the Inclinometer as far as repeatability is concerned
because it's homebuilt, otherwise it's working as it is and quite accurately
(approx 3deg resolution). Even your ear doesn't have such accuracy.
Now,
what I emphasized in was making it's construction as easy as possible.
I constructed the transducer with clear acrylic plastic so I can view the
response of the electrolytic. I experimented with different types of liquids
to test for dampening, dielectric constant, evaporation, etc. Since the
enclosure for the tranducer is homebuilt the evaporation constant was a
big factor. I'm still thinking about trying some others, even though I
have this working, but it relys on how accessible the materials are. The
electrolytic I use is Glycol, it very easy to get, I find it in the Pharmacy
store, or the grocery store. The dielectric constant is high enough to
let me make the inclinometer fit in approx. 4cc volume space, including
the one chip oscillator. The power is routed to the sensor via the 3-wire
cable. One wire is for the output, then power and ground.
The
shape is cylindrical, 1cm width & 3cm dia., and the transducer probe
is embedded inside. The probe is shaped in a semi-circular pattern and
it's comprised of three elements. The elements are made using 16ga. magnet
wire. They're arranged side by side with the outer two elements being common.
The reason for 3 elements is to take into account for any deviation perpendicular
to the sensor axis. The probe automatically averages any deviation to the
axis through simple parallel circuit law of capacitance. You'll have the
same reading if the sensor is upright or deviated from it's upright position.
This isn't possible with only 2 elements, the capacitance will change.
The oscillator is nothing more than a 1 gate Schmitt trigger Inverter in
a closed loop with a micro-trimmer(multi-turn 100k). The transducer is
wired between the Input and ground. The center frequency of the oscillator
is 1mhz, this is a result of the dielectric in the liquid, plus the components
in order the circuit to oscillate. The capacitance can't be increased any
more than I know of unless there's some other liquid with a higher dielectric
constant AND similiar properties. So, the high frequency output is something
I've been living with. Perhaps a High-Tech liquid but I can't afford it.
At the moment, I have an interface to downconvert the high frequency pulse
in order for my micro (abit too slow for this) to read this. It's simply
a divide counter and through this I can increase the resolution which the
micro can produce.
Anyhow,
that's not the point. The other factor, dampening, was considered to give
the robot a smooth response built into the sensor as much as possible w/o
having to program any more than necessary. The Glycol gives me that, and
with alittle filter subroutine to round it off. The reaction time of the
sensor is quick, no lag whatsoever. The Inclinometer gives me a range of
+/-60deg. I expect anything more than that, the robot is "flat on
it's back" anyway. Not even a person can withold themselves upright
beyond a certain angle w/o falling down.
As
far as Inertia is concerned, this is overcomed due to the inherit nature
of this sensor, much like the semicircular canals in your ear. The inclinometer
performs the same function as this. The robot reacts to all forces applied
to it. If there's a large external force applied to the robotic pole (such
as being pushed), the inertia of the liquid will force it create a counteracting
change in capacitance. This prevents severe oscillations in the robot's
stability. In combination with the liquid dampening, it reacts to the change
in the angular position before it's too late.
The
counteracting change in capacitance from the inertia of the liquid corresponds
to the angle necessary to make the robot lean into the applied force and
thus attempt to balance itself, and it does. The liquid will tend to remain
still (due to Inertia) but slides towards the applied force because of
the cylindrical enclosure and change the capacitance. If there's any change
in the attitude, the sensor will also output the change in angle and the
robot will change accordingly while it's experiencing the shock. The sensor
can also sustain vibration using the Filter software. This software will
cancel the repititious vibrations and avoid the robot from being too sensitive
to this sort of motion.
I
tested this by inducing all kinds forces to try and confuse it, and it
still reacts quick enough to stay upright. When I hold it in my hands and
gyrate it in all sorts of directions it continues to maintain upright.
The next step is to make it free fall rather than me inducing the external
forces. Most of the mechanics are already in place, I just have to attach
the robotic pole to a gimbal on the bottom of it to give it freedom and
watch it go. There may be some info which I forgot to place here, so I'll
try to answer any questions.
2. Construction
Since
this is a homebuilt version , there's still experimentation with construction.
One, especially is how to prevent
the dielectric from evaporating. So far, the transducer has been operational
for approx. 9months before the dielectric evaporated below the threshold
of operation. A suitable container is needed (and not expensive) to produce
similiar results as a hermetically sealed container. Right now, all I use
is a clear plastic material cut up from used boxes, bottles and sealed
with hot glue (not contaminating as superglue is).
3. Materials
Common,
everyday clear arylic plastic material found in consumer packaging. I used
the pill bottles to get the
cylindrical shape for the sensor and flat sheets from the boxes to seal
the ends.
Hot
Glue
Magnet
wire, 16 gauge
74HC14,
Schmitt trigger Inverter
100k
multi-turn trimmer
Glycol
Comments, suggestions, tips are welcome.