Input Tech (Muscle Motion Sensor and Accel Gyro)

In games, especially those when we are housed within an avatar, we are often granted a set of hands to work with.
With them, we connect with a multitude of other virtual objects to accomplish our goals.

Situating an actual hand into the virtual world would require an emulation of its complex mechanisms.
This can be done by obtaining both the position of one's arm and the movements of its hands.
UnlimitedHand allows you to do so by means of it's Input Technology
consisting of an array of Muscle Motion Sensors and an Accelerometer-Gyro sensor.

In this tutorial, we will gain understanding of UnlimitedHand's Input Technology.

1.0 Detecting Hand and Finger Movements with Muscle Motion Sensors

An array of Muscle Motion Sensors are arranged on a V-shaped resin sheet to match with the position of key forearm muscles (Figure 1).
This enables the UnlimitedHand to optically read in the motion of your forearm muscles to deduce the movement of both hand and fingers.


Figure 1. Arrangement of Muscle Motion Sensors (When used on the Right Hand).

By monitoring serial values see (Figure 2) coming from specific Muscle Motion Sensor combinations,
one may track 3 main types of movements performed by the hand, see (Table 1).
Check Step 4. from this tutorial to make sure you are collecting Serial values from the device.


Figure 2. Correspondence between Serial Values and Muscle Motion Sensors Location (When used on the Right Hand).

The three movement types: Finger motion, Ulnar/Radial deviations and Wrist motions.
can monitored by addressing different combinations of Muscle Motion values.
Note: The information listed in the following table applies only when worn on the RIGHT HAND.

Points(channels) of Muscle Motion Sensors Hand Movements
Channel 0, 1, 2, and 3 Finger Motions
(it is changed by right or left hand)
Channel 4 and 7 Radial and Ulnar Deviation
(it is changed by right or left hand)
Channel 5 and 6 Open Hand and Wrist Motion(Extension)

Table 1. Combinations to track specific Movement Type (When used on the Right Hand)

1.1 How to Use

Hackers of the UnlimitedHand may call the following functions to collect data from specific points(channels) on the device.

For Arduino Functions: initPR/ readPR/ readPR_array

For Unity Functions: updatePhotoSensors/ readPhotoSensors

For Processing Functions: readPhotoSensors/ updatePhotoSensors/ updatePhotoSensorsString

2.0 Tracking movement with the Accelerometer-Gyro sensor

As long as the UnlimitedHand is firmly strapped to your forearm, an Accelerometer-Gyro sensor embedded inside the main case of the device is able to track maneuvers and the position of your arm. Motions tracked can then be transferred into games to achieve real time interactions.

2.1 How to Use

Hackers of the UnlimitedHand may call the following functions to read in 3 dimensional Acceleration values representing maneuvers, as well as 3 separate angle values representing the orientation of your arm.

For Arduino Functions: setupAccelGyro/ initAccelGyroKalman/ readAccelGyro_XYZ_Kalman/
readRawAccelValues/ readRawGyroValues

For Unity Functions: readUHJointAngles/ updateAngle/
readUH3DAccel/ readGyro/ updateUH3DGyroAccel