Grip Force User Notes

Getting Started

To get started using the grip device with a 932 interface:

  1. connect the grip force device to a long optical bundle extension
  2. connect the bundle extension to the 932 interface
  3. (do not start out by connecting the grip force device directly to the 932)
  4. use the knob to select Autoconfigure
  5. this should narrow the options to USB, SERIAL, TTL ONLY, and BACK.
  6. choose USB for starters, then choose HID JOYSTICK
  7. if the USB indicator in the top left is blinking, make sure you have a USB cable connected to the computer

Now use the windows game controller control panel to do a basic qualitative check. It should look something like this:

game_controller_disp.png

This display will let you confirm that the cursor moves up and down when you squeeze a one axis grip force device. It does not give you quantitative information, but just lets you check that things are basically functioning. And you should be able to confirm that the signal is not behaving in a saturated way: that is, that it tends to move any time force is increased or decreased.

Scope

The "scope" of gamepad/joystick data is not system-wide they way mouse and keyboard data are. This brings advantages and disadvantages. It it easy to get keyboard data, but hard to take over the keyboard exclusively (keeping other applications from accessing it) for example. With joystick data you need to connect the joystick to your program, and then you can read its output.

A Python Example

For our testing we use python almost exclusively now. This program gf_test.py can help you get started collecting data from the grip force device. To run it you'll need python3 installed and also pygame.

Once you have this running you can use it to create a quick approximate force calibration by

  • record the resting (no force) output signal -- this becomes P0
  • record the signal at max force (easily felt with a 100N spring set) -- this becomes P1

Now use P0 and P1 to solve for y = mx + b. For example, if you have a resting signal of 0.68, and a max force signal of 0.2, then P0 = (0N, 0.68) and P1 = (100N, 0.2).

So the signal in terms of force would be:

signal = force * -0.0048 + 0.68

Re-arranged for force in Newtons:

force = (output - 0.68)/-0.0048

This is quite approximate because the force vs output is not perfectly linear and there are also variations from one squeeze to the next arising from mechanical limitations.

Also (obviously): these numercial exmaples are just examples. Your numbers will undoubyedly be different.

Matlab, Psychophysics Toolbox, PsychoPy, etc.

Most programs used for psychometrics can read generic joystick data but we are not expert users of any of them. Please contact us if you are struggling with any of these and we will try to help.

See Also

  • TethyxUserNotes - has some useful information about the USB data scaling and the serial (RS-232) output mode

-- BenDugan - 18 May 2021

Topic attachments
I Attachment Action Size Date Who Comment
game_controller_disp.pngpng game_controller_disp.png manage 293 K 18 May 2021 - 21:37 BenDugan  
gf_test.py.txttxt gf_test.py.txt manage 5 K 13 Sep 2021 - 21:15 BenDugan  
Topic revision: r2 - 13 Sep 2021, BenDugan
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback