FIGURE 10. The Freescale
X, Y, and Z axis accelerometers
glued to the top of the glove.
A safety issue can arise
because of the glove wearer’s
ability to twitch or inadvertently
move his/her hand or fingers,
causing a rapid position shift of
the glove which results in a
corresponding rapid movement
of the robot or prop. For this
reason, keep yourself, and
bystanders, and any children
away from the prop or robot’s
workspace so that the remote
controlled prop or robot does
not accidentally injure anyone.
Even a toy RC car can cause
injury if traveling fast enough.
Calibration Mode (Green LED)
In order to use the glove effectively, it must be
calibrated periodically to provide accurate finger positions
and glove orientations. For this experiment, the calibration
mode shown in Listing 1 is automatically run each time the
microcontroller is reset, or it is run from the Easy C Pro IDE.
Just after resetting the microcontroller, the green LED
indicating that the glove needs to be calibrated will turn on.
The calibration process involves just flexing each finger to
the extreme open and closed positions while the green LED
is on. For this experiment, we only use the index finger, so
it needs to be calibrated. If you add more flexible resistors,
then you need to modify the firmware to calibrate them in
the same manner.
I only implemented up to three fingers to keep the cost
down, but depending on your resources, you can add two
more flexible resistors on the right glove and also add up to
five flexible resistors to a left hand glove, if desired. The
calibration procedure is the same for the remaining fingers
of a right or left hand glove.
Run Mode (Red LED)
Once the calibration mode is complete, the green LED
turns off and the red LED turns on, indicating the glove
firmware is in the run mode (shown in Listing 2).
Calibration data is used to compute the gains and
offsets necessary to scale or map the flexible resistor
readings to actual motor commands using the
map_viewport_to_window function provided with the
54 SERVO 11.2011
The EasyC Pro application
needed to read a single flexible
resistor and control the motor
speed (or position proportional to the degree that the
finger with the flexible resistor is bent) is named
VexControlGlove. It and the complete source code is
available from the article link shown.
VEX Control Glove Improvements
The glove described here is just the tip of the VR
iceberg. There are many improvements that can be made to
make it even more responsive and functional. The original
Mattel Power Glove used an ultrasonic 3D ranging device to
determine the glove’s position and orientation, but this
feature can be expensive and very advanced for most VEX
users (including myself).
New MEMS sensors have provided lower cost
alternatives using the VEX XYZ accelerometers and new
gyros (IMU) to provide the glove’s XYZ axis tilts and pitch,
yaw, and roll angles, along with the ability to integrate the
accelerations in each axis to obtain its position. This is like
SparkFun ( www.sparkfun.com) sells IMU combination
boards that have this functionality for example, the
SEN-09268 IMU analog combo board with five degrees of
freedom. The Freescale XYZ accelerometer shown in Figure
10 is glued to the back of the glove, directly opposite of
the palm. Care must be taken to align the sensor so that it
is correctly centered and aligned with the X, Y, axis.
Tactile feedback from the glove can be obtained using
new Freescale pressure sensors (also sold at SparkFun) that
are glued to the tips of the fingers. Each of the pressure
sensor outputs are connected to the microcontroller’s
analog inputs so it can read the pressure between the
finger and the object it is holding. SV