HIN1001 User Guide: Difference between revisions

From Phidgets Support
Line 29: Line 29:


Unlike most other Phidgets, setting a data interval on the HIN1001 affects its initial response time, rather than an overall data rate. After the first touch has been detected, the device will stream data as fast as possible (up to every 16ms, as data becomes available). This means that if setting a data interval of 250ms, the first touch may need to be held up to 250ms to wake the device, after which subsequent touches on all channels will be detected much faster, until no touch is detected for a few seconds. Once the device has been left alone for a few seconds, it will resume its low-power state and wait for the next touch.
Unlike most other Phidgets, setting a data interval on the HIN1001 affects its initial response time, rather than an overall data rate. After the first touch has been detected, the device will stream data as fast as possible (up to every 16ms, as data becomes available). This means that if setting a data interval of 250ms, the first touch may need to be held up to 250ms to wake the device, after which subsequent touches on all channels will be detected much faster, until no touch is detected for a few seconds. Once the device has been left alone for a few seconds, it will resume its low-power state and wait for the next touch.
===Re-Calibration===
Since capacitive touch sensors rely on checking capacitance against a threshold to detect when they are touched, they need to keep a good baseline of the capacitance of their environment. The HIN1001 will re-calibrate its baseline levels if it detects a constant touch for more than 50 seconds, in order to prevent getting stuck in a touched state. Similarly, it will re-calibrate its baseline capacitance to adjust to falling capacitance (such as when it is moved away from a surface) in order to prevent getting stuck in a not-touched state. The latter adjustment happens as soon as the baseline is detected to have fallen.
===Relative Change in Position===
Since the touch wheel is circular, calculating the change in position of a finger over the wheel can be more involved than simply subtracting one position from another. In cases where the value crosses the zero point, a simple subtraction would indicate a large movement in the opposite direction. For example a movement from 0.9 to 0.1, would appear as a movement of -0.8, when a movement of +0.2 is much more likely. [[DIAGRAM HERE]] As such, a change is position should be calculated taking this into account. Here is an example of how to do the calculation in C:
<div class="source">
<syntaxhighlight lang=c>
static void CCONV
onTouchHandler(PhidgetCapacitiveTouchHandle ch, void *ctx, double touchValue) {
  double change = (touchValue - oldPos); 
  static double oldPos;
  if (change > 0.5)
      change -= 1;
  else if (change < -0.5)
      change += 1;
  oldPos = touchValue;
  ...
}
</syntaxhighlight>
</div>


===Current Consumption===
===Current Consumption===

Revision as of 22:57, 8 June 2017


HIN1001 Functional.jpeg

Required Hardware

Connecting the Pieces

  1. Connect the VINT Hub to your computer with a USB cable.
  2. Connect the HIN1001 to the VINT Hub using the Phidget cable.


Testing Using Windows

Phidget Control Panel

In order to demonstrate the functionality of the HIN1001, the Phidget Control Panel running on a Windows machine will be used.


The Phidget Control Panel is available for use on both macOS and Windows machines.

Windows

To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG

macOS

To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the Ph.jpg icon to bring up the Phidget Control Panel.


For more information, take a look at the getting started guide for your operating system:


Linux users can follow the getting started with Linux guide and continue reading here for more information about the HIN1001.

First Look

After plugging the HIN1001 into your computer and opening the Phidget Control Panel, you will see something like this:

HIN1001 Panel.jpg


The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.


The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.

Capacitive Touch

[[Image:{{{1}}}_CapacitiveTouch_Example.jpg|right|link=]]

When you double click on a Capacitive Touch object, a window like the one pictured will open.

  • At the top of the window, information about your device and the properties of this particular channel will be listed.
  • On the left, change trigger and/or data interval can be changed. For more information on these settings, see the Data Rate/Change Trigger page. In addition, the sensor's sensitivity can be adjusted. The higher the sensitivity, the more susceptible the sensor will be to sensing touch.
  • On the right, the Touch? check box will be checked if an object is touching or nearly touching the surface associated with this capacitive touch object. For capacitive touch objects that have a linear or circular touch region, the Last Value corresponds to the location on the region that the current or most recent touch occurred.


Testing Using Mac OS X

  1. Go to the Quick Downloads section on the Mac OS X page.
  2. Download and run the Phidget OS X Installer
  3. Click on System Preferences >> Phidgets (under Other) to activate the Preference Pane
  4. Make sure your device is properly attached
  5. Double click on your device's objects in the listing to open them. The Preference Pane and examples will function very similarly to the ones described above in the Windows section.

Testing Using Linux

For a general step-by-step guide on getting Phidgets running on Linux, see the Linux page.

Using a Remote OS

We recommend testing your Phidget on a desktop OS before moving on to remote OS. Once you've tested your Phidget, you can go to the PhidgetSBC, or iOS pages to learn how to proceed.

Technical Details

Interaction with Data Interval

Unlike most other Phidgets, setting a data interval on the HIN1001 affects its initial response time, rather than an overall data rate. After the first touch has been detected, the device will stream data as fast as possible (up to every 16ms, as data becomes available). This means that if setting a data interval of 250ms, the first touch may need to be held up to 250ms to wake the device, after which subsequent touches on all channels will be detected much faster, until no touch is detected for a few seconds. Once the device has been left alone for a few seconds, it will resume its low-power state and wait for the next touch.

Re-Calibration

Since capacitive touch sensors rely on checking capacitance against a threshold to detect when they are touched, they need to keep a good baseline of the capacitance of their environment. The HIN1001 will re-calibrate its baseline levels if it detects a constant touch for more than 50 seconds, in order to prevent getting stuck in a touched state. Similarly, it will re-calibrate its baseline capacitance to adjust to falling capacitance (such as when it is moved away from a surface) in order to prevent getting stuck in a not-touched state. The latter adjustment happens as soon as the baseline is detected to have fallen.

Relative Change in Position

Since the touch wheel is circular, calculating the change in position of a finger over the wheel can be more involved than simply subtracting one position from another. In cases where the value crosses the zero point, a simple subtraction would indicate a large movement in the opposite direction. For example a movement from 0.9 to 0.1, would appear as a movement of -0.8, when a movement of +0.2 is much more likely. DIAGRAM HERE As such, a change is position should be calculated taking this into account. Here is an example of how to do the calculation in C:

static void CCONV
onTouchHandler(PhidgetCapacitiveTouchHandle ch, void *ctx, double touchValue) {			

   double change = (touchValue - oldPos);  
   static double oldPos;

   if (change > 0.5)
      change -= 1;
   else if (change < -0.5)
      change += 1;

   oldPos = touchValue;

   ...
}

Current Consumption

The current consumption of the HIN1001 varies depending on the data interval that you choose. When it is connected but not configured, it will draw a minimal current of around 20 µA. Once it has been configured, current consumption will increase as the interval between data events is shortened, as illustrated by this graph:

File:HIN1001-current.jpg

What to do Next

  • Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.