1057 User Guide: Difference between revisions

From Phidgets Support
No edit summary
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOINDEX__
<metadesc>The PhidgetEncoder HighSpeed reads one encoder at speeds of up to 500,000 quadrature cycles per second. Connects directly to USB.</metadesc>
[[Category:UserGuide]]
[[Category:UserGuide]]
{{UserguideTOC|1057.jpg|1057}}
==Getting Started==
==Getting Started==
{{UGIntro|1057}}
*[{{SERVER}}/products.php?product_id=1057 1057 PhidgetEncoder]
*USB cable and computer
*{{CT|Encoder|encoder}}


===Checking the Contents===
{{UGbox|
'''You should have received:'''
* A PhidgetEncoder HighSpeed board
* A Mini-USB cable
* A 5-wire encoder cable
|
'''In order to test your new Phidget you will also need:'''
* An Incremental Encoder with Quadrature output (with a known pinout)
||}}


===Connecting the Pieces===
Next, you will need to connect the pieces:
{{UGbox|
[[Image:1057_2_Connecting_The_Hardware.jpg|500px|right|link=]]
# Connect your Encoder to the PhidgetEncoder board using the 5-wire cable.
# Connect the encoder to the PhidgetEncoder's input.
# Connect the PhidgetEncoder board to your computer using the USB cable.
# Connect the PhidgetEncoder to your computer using the USB cable.
|
[[File:1057_2_Connecting_The_Hardware.jpg|400px|link=]]
||}}


===Testing Using Windows 2000 / XP / Vista / 7===
<br clear="all">
{{UGIntroDone|1057}}


{{UGwin}}


===Running Phidgets Sample Program===
==Using the 1057==
{{UGcontrolpanel|1057}}


{{UGwin2|'''Encoder-full'''}}
{{ugEncoder|1057|PhidgetEncoder HighSpeed}}


{{UGbox|
{{ugAddressingInformation}}
Double Click on the [[File:Ph.jpg|link=]] icon to activate the Phidget Control Panel and make sure that the '''Phidget High Speed Encoder''' is properly attached  to your PC.
|[[File:1057_2_Control_Panel_Screen.jpg|400px|link=]]
|
# Double Click on Phidget High Speed Encoder 1 encoder in the Phidget Control Panel to bring up the Encoder-full example and check that the box labelled Attached contains the word True. Please note that this is only an example program and is not intended to be used in applications. It is meant to show how the API calls can be used and can be a starting point for your own application.
# Rotate the encoder and the relative change will display positive when rotated clockwise and will display negative when rotated counter-clockwise.
# The example will display the time in microseconds that has elapsed since the last position change update received from the device.
# Encoder position will display the absolute position of the encoder since it was initially enabled. Position will increase when the encoder is rotated clockwise and decrease when rotated counter-clockwise.
# This feature is not supported.
# Counts/second displays the current velocity of the encoder measured in encoder counts per second.
|[[File:1057_2_Encoder_Screen.jpg|400px|link=]]
}}


===Testing Using Mac OS X===
{{ugUsingYourOwnProgram|1057}}
 
{{UGmac|Phidget High Speed Encoder|Encoder-full}}
 
===Using Linux===
 
{{UGlinux}}
 
===Using Windows Mobile / CE 5.0 / CE 6.0===
 
{{UGce}}


==Technical Details==
==Technical Details==
===General===
The 1057 can be used with a wide assortment of mechanical and optical encoders. The encoder should be of quadrature output type, indicating that there will be two output channels (usually labeled A and B). Specifically, the 1057 reads a standard incremental non-differential TTL encoder.


The PhidgetEncoder HighSpeed can be used with a wide assortment of mechanical and optical encoders. The encoder should be of quadrature output type, indicating that there will be two output channels (usually labeled A and B). Specifically, the PhidgetEncoder HighSpeed reads a standard incremental non-differential TTL encoder.


The maximum rate of the 1057 PhidgetEncoder is specified at 500,000 cycles per second. In your application, this number relates directly to the number of revolutions per second you wish to measure, and the number of counts per revolution specified for your encoder. If your encoder's wheel has 1000 counts per revolution, then the limit on measurable revolutions per second is 500, or 30,000rpm (which, for the 1057, corresponds to 2000 position changes in software per second).
The maximum rate of the 1057 is specified at 500,000 cycles per second. In your application, this number relates directly to the number of revolutions per second you wish to measure, and the number of counts per revolution specified for your encoder. If your encoder's wheel has 1000 counts per revolution, then the limit on measurable revolutions per second is 500, or 30,000rpm (which, for the 1057, corresponds to 2000 position changes in software per second).


===Choosing Encoders===
===Choosing Encoders===
Both mechanical and optical encoders are available, with optical encoders prevailing in quality at higher revolution speeds.  Review the data sheet for the encoder that your are selecting carefully before purchasing it to ensure it is compatible with the 1057. Almost any incremental quadrature encoder will work but it is important to verify this before connecting it. Absolute encoders will not work with this device. Warning: The 1057 incorporates a 1kOhm pull-up resistor on each line from the encoder input connector. Some encoders will not be able to sink enough current to reliably signal to the 1057. They may work initially, or not at all.


Both mechanical and optical encoders are available, with optical encoders prevailing in quality at higher revolution speeds.  Review the data sheet for the encoder that your are selecting carefully before purchasing it to ensure it is compatible with the PhidgetEncoder HighSpeed. Almost any incremental quadrature encoder will work but it is important to verify this before connecting it to the Phidget. Absolute encoders will not work with this device. Warning: The PhidgetEncoder HighSpeed incorporates a 1kiloOhm pull-up resistor on each line from the encoder
We have reviewed the following encoders, and found that they can be used with the 1057. This is not meant to be a comprehensive list but should be used as a comparison with other encoders.
input connector.  Some encoders will not be able to sink enough current to reliably signal to the 1057.  They may work initially, or not at all.


We have reviewed the following encoders, and found that they can be used with the PhidgetEncoder HighSpeed.


This is not meant to be a comprehensive list but should be used as a comparison with other encoders.
{|class = "wikitable"
 
| align="center" style="background:#f0f0f0;"|'''Manufacturer '''
 
| align="center" style="background:#f0f0f0;"|'''Web Page'''
{| style="border:1px solid darkgray;" cellpadding="7px;"
| align="center" style="background:#f0f0f0;"|'''Part Number'''
|-style="background: #f0f0f0" align=center
! Manufacturer || Web Page || Part Number
|-
|-
|style="background: #F8F8F8" align=left| Grayhill
|align=center| Grayhill
|style="background: #F8F8F8" align=left| [http://www.Grayhill.com www.Grayhill.com]
|align=center| [http://www.Grayhill.com www.Grayhill.com]
|style="background: #F8F8F8" align=left| Series 63R, Series 61R Series 63Q TTL Output
|align=center| Series 63R, Series 61R Series 63Q TTL Output
|-
|-
|style="background: #F8F8F8" align=left| US Digital (Recommended)
|align=center| US Digital (Recommended)
|style="background: #F8F8F8" align=left| [http://www.USDigital.com www.USDigital.com]
|align=center| [http://www.USDigital.com www.USDigital.com]
|style="background: #F8F8F8" align=left| S4, S5, E2, E3, E4, E4P, etc.
|align=center| S4, S5, E2, E3, E4, E4P, etc.
|-
|-
|style="background: #F8F8F8" align=left| Avago Technologies (Formerly Agilent)
|align=center| Avago Technologies (Formerly Agilent)
|style="background: #F8F8F8" align=left| [http://www.avagotech.com www.avagotech.com]
|align=center| [http://www.avagotech.com www.avagotech.com]
|style="background: #F8F8F8" align=left| HEDS 5500
|align=center| HEDS 5500
|-
|-
|style="background: #F8F8F8" align=left| CUI Inc.
|align=center| CUI Inc.
|style="background: #F8F8F8" align=left| [http://www.cui.com www.cui.com]
|align=center| [http://www.cui.com www.cui.com]
|style="background: #F8F8F8" align=left| AMT103-V
|align=center| AMT103-V
|-
|-
|}
|}
Line 95: Line 65:


===Connectors===
===Connectors===
Each Input uses a 3-pin, 0.100 inch pitch locking connector.  The connectors are commonly available - refer to the Table below for manufacturer part numbers.
The encoder input on the 1057 uses a 5-pin, 0.100 inch pitch locking connector.  The connectors are commonly available - refer to the Table below for manufacturer part numbers.




{| style="border:1px solid darkgray;" cellpadding="7px;"
{|class = "wikitable"
|-style="background: #f0f0f0" align=center
| align="center" style="background:#f0f0f0;"|'''Manufacturer '''
! Manufacturer || Part Number || Description
| align="center" style="background:#f0f0f0;"|'''Part Number'''
| align="center" style="background:#f0f0f0;"|'''Description'''
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 50-57-9405
|align=left| 50-57-9405
|style="background: #F8F8F8" align=left| 5 Position Cable Connector
|align=left| 5 Position Cable Connector
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 16-02-0102
|align=left| 16-02-0102
|style="background: #F8F8F8" align=left| Wire Crimp Insert for Cable Connector
|align=left| Wire Crimp Insert for Cable Connector
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 70543-0004
|align=left| 70543-0004
|style="background: #F8F8F8" align=left| 5 Position Vertical PCB Connector
|align=left| 5 Position Vertical PCB Connector
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 70553-0004
|align=left| 70553-0004
|style="background: #F8F8F8" align=left| 5 Position Right-Angle PCB Connector (Gold)
|align=left| 5 Position Right-Angle PCB Connector (Gold)
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 70553-0039
|align=left| 70553-0039
|style="background: #F8F8F8" align=left| 5 Position Right-Angle PCB Connector (Tin)
|align=left| 5 Position Right-Angle PCB Connector (Tin)
|-
|-
|style="background: #F8F8F8" align=left| Molex
|align=left| Molex
|style="background: #F8F8F8" align=left| 15-91-2055
|align=left| 15-91-2055
|style="background: #F8F8F8" align=left| 5 Position Right-Angle PCB Connector - Surface Mount
|align=left| 5 Position Right-Angle PCB Connector - Surface Mount
|-
|-
|}
|}
Line 132: Line 103:


===Connector Pinout Diagram===
===Connector Pinout Diagram===
 
[[File:1057_2_Functional.jpg|center|600px|link=]]
[[File:1057_2_Functional.jpg|400px|link=]]
<br clear=all>
<br clear=all>


===Further Reading===
===Further Reading===


If you want to know more about encoders, check out the [[Encoder Primer]].  
If you want to know more about encoders, check out the [[Encoder Guide]].
 
==API==
{{UGapih}}
 
===Functions===
{{UGapi|int EncoderCount() [get] : Constant
|Returns the number of encoders supported by this PhidgetEncoder.  The 1057 supports one optical encoder. 
}}
 
{{UGapi|int Position(int EncoderIndex) [get,set]
|Returns/sets the position of an encoder. This is an absolute position as calcutated since the encoder was plugged in.  Dividing position by the number of increments per revolution will give the number of rotations the encoder has travelled.
 
:Position can be set, typically used when an encoder has reached an identifiable (through external means, such as a limit switch) home position. This call does not send information to the device, as an absolute position is maintained only in the library. After this call, position changes from the encoder will use the new value to calculate absolute position.
}}
 
===Events===
{{UGapi|OnPositionChange(int EncoderIndex, int Time, int PositionChange) [event]
|An event that is issued whenever a change in encoder position occurs.  This event returns the length of time that the change took (in milliseconds), and the amount of change (positive/negative encoder increments).
}}


==Product History==
{{UGnext|}}
{{UGhist}}
{{UGrow2|1057_0|January 2005 |0|300|Product Release }}
{{UGrow2|1057_0|April 2007  |0|301|Added index channel }}
{{UGrow2|1057_1|November 2009|1|302|Increased pull-up resistance from 1kΩ to 2.2kΩ}}
{{UGrow2|1057_2|January 2010 |2|302|Replaced USB connector with Mini-USB connector, made board slightly smaller.}}

Latest revision as of 16:59, 1 June 2023


Getting Started

Welcome to the 1057 user guide! In order to get started, make sure you have the following hardware on hand:


Next, you will need to connect the pieces:

1057 2 Connecting The Hardware.jpg
  1. Connect the encoder to the PhidgetEncoder's input.
  2. Connect the PhidgetEncoder to your computer using the USB cable.


Now that you have everything together, let's start using the 1057!


Using the 1057

Phidget Control Panel

In order to demonstrate the functionality of the 1057, 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 1057.

First Look

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

1057 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.

Encoder

Double-click on the Encoder object, labelled PhidgetEncoder HighSpeed, in order to run the example:

1057 Encoder Example.jpg


General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Position Change: the number of ticks (or quadrature cycles) that have occurred since the last change event.
  • Time Change: the amount of time in milliseconds that has elapsed since the last change event.
  • Position: the total position in ticks relative to where the encoder was when the window was opened.
  • Index Position: the position where the index channel was last encountered. Some encoders do not support index, check your encoder's datasheet for more information.
  • Velocity: the average velocity in rotations per second. A CPR must be specified to enable this functionality.
  • Specify a counts per revolution (CPR) value to enable velocity calculation.

Finding The Addressing Information

Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.

The locate Phidget button is found in the device information box

In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.

All the information you need to address your Phidget

Using Your Own Program

You are now ready to start writing your own code for the device. The best way to do that is to start from our Code Samples.

Select your programming language of choice from the drop-down list to get an example for your device. You can use the options provided to further customize the example to best suit your needs.

Code Sample Choose Language.png


Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.

Technical Details

General

The 1057 can be used with a wide assortment of mechanical and optical encoders. The encoder should be of quadrature output type, indicating that there will be two output channels (usually labeled A and B). Specifically, the 1057 reads a standard incremental non-differential TTL encoder.


The maximum rate of the 1057 is specified at 500,000 cycles per second. In your application, this number relates directly to the number of revolutions per second you wish to measure, and the number of counts per revolution specified for your encoder. If your encoder's wheel has 1000 counts per revolution, then the limit on measurable revolutions per second is 500, or 30,000rpm (which, for the 1057, corresponds to 2000 position changes in software per second).

Choosing Encoders

Both mechanical and optical encoders are available, with optical encoders prevailing in quality at higher revolution speeds. Review the data sheet for the encoder that your are selecting carefully before purchasing it to ensure it is compatible with the 1057. Almost any incremental quadrature encoder will work but it is important to verify this before connecting it. Absolute encoders will not work with this device. Warning: The 1057 incorporates a 1kOhm pull-up resistor on each line from the encoder input connector. Some encoders will not be able to sink enough current to reliably signal to the 1057. They may work initially, or not at all.

We have reviewed the following encoders, and found that they can be used with the 1057. This is not meant to be a comprehensive list but should be used as a comparison with other encoders.


Manufacturer Web Page Part Number
Grayhill www.Grayhill.com Series 63R, Series 61R Series 63Q TTL Output
US Digital (Recommended) www.USDigital.com S4, S5, E2, E3, E4, E4P, etc.
Avago Technologies (Formerly Agilent) www.avagotech.com HEDS 5500
CUI Inc. www.cui.com AMT103-V


Connectors

The encoder input on the 1057 uses a 5-pin, 0.100 inch pitch locking connector. The connectors are commonly available - refer to the Table below for manufacturer part numbers.


Manufacturer Part Number Description
Molex 50-57-9405 5 Position Cable Connector
Molex 16-02-0102 Wire Crimp Insert for Cable Connector
Molex 70543-0004 5 Position Vertical PCB Connector
Molex 70553-0004 5 Position Right-Angle PCB Connector (Gold)
Molex 70553-0039 5 Position Right-Angle PCB Connector (Tin)
Molex 15-91-2055 5 Position Right-Angle PCB Connector - Surface Mount


Note: Most of the above components can be bought at Digikey.

Connector Pinout Diagram

1057 2 Functional.jpg


Further Reading

If you want to know more about encoders, check out the Encoder Guide.

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.