vendredi 19 septembre 2014

3Dpad Getting started guide

In this page we will guide you to setup and use 3Dpad

Warning: you're supposed to be already familiar with the Arduino IDE and the Arduino Uno board.
If not it's highly recommended for you to follow a first tutorial.
See this one for instance:

If you have any question, or need any support, feel free to ask:

What you'll need:

* Please avoid poor quality switching supply, they are often to noisy for 3Dpad.
* Our recommandation:  LD137 -  XCSOURCE

Setting up the hardware

Plug the 3Dpad shield on the Arduino Uno board, be carefull to align the connector as shown below:

Plug the power supply and the USB cable to the UNO board

Setting up the Arduino software

3Dpad's Arduino Sketch and librairie:

Download the latest version on GitHub:

You can now compile, download and run the 3Dpad's sketch.

For the next step, enter in communication with the UNO board using your favorite terminal software (you can also use the one provided by the Arduino IDE).
You should use a speed of 115200 bauds.

As this is the first time that 3Dpad is running, you will obtain this on the terminal:

The calibration process is working, and you have to wait few seconds to the end (maximum 30 seconds) .... avoid to put anything in front of 3Dpad at the moment.
At the end of the process, you should see:

Bravo! your 3Dpad is now operationnal. 

The LED at the bottom left corner must be lit. Now approach your hand in the front of the electrode PCB,
at level below 10 centimeters, the LED at the bottom left corner must become off and the LED at the top right corner becomes lit.
This indicates that you are inside the detection area.

In more, you should see the results of the gesture recognition on the terminal, for instance:

Use the terminal for sending orders and for visualizing 3D coordinates

As suggested at the top of the terminal window, you can send orders to the 3Dpad, the commands are trigged when you'll send a character:

'A' => will start an autocalibration process:
3Dpad will search the best tuning of the sensor, and store the values in the EEprom.
It can take up to 30 seconds.

'S' => the command for a "Setup": 
The sensor starts using the values previously stored in the EEprom, and quickly search for the current tuning values.
This takes less than 2 seconds.

'G' => you'll have only the gesture recognition results sent to the terminal

'V' => the terminal will recieve a row data, with all the calculated values, including 3D coordinates.

Detail of the row data:
The line starts with a prompt '>' just followed by 'V', which indicates that this line contains values (instead of 'G' for gestures and 'A' for the internal automata state).

Then come the values, coded on 4 digits and separated with the '|' character.

The values are, from first to last:
  1. Top electrode activation
  2. Bottom electrode activation
  3. Left electrode activation
  4. Right electrode activation
  5. X position coordinate (the estimated position of hand/finger)
  6. Y position coordinate
  7. Z position coordinate
  8. X dynamic origin position (internal use for gesture recognition)
  9. Y dynamic origin position (internal use for gesture recognition)
  10. Z dynamic origin position (internal use for gesture recognition)
  11. Turn counting (clockwise)
  12. Turn counting (anti-clockwise)
Now that you know everything, you are free to use 3Dpad into your own application.
Also you should be interested in the 3Dpad's demo software, just follow the links: 

3Dpad's demo software - Processing

Also you may be interested in:

2 commentaires:

  1. I have read the Elektor article and the whole thing looks great but I have been trying to find the effective sample rate, e.g. how often each electrode/element is scanned. I note that in the description of the scanning sequence it says that the final step is to let the signal from the P/F comparator run for about 300 microseconds and then read the value with the Arduino analogue input. How often do these reads take place?

    1. Hi Bryan, the scaning rate cycle (all electrodes plus sensing on UART) is about 200 Herz