PRX2300 User Guide: Difference between revisions
No edit summary |
(→About) |
||
(One intermediate revision by the same user not shown) | |||
Line 4: | Line 4: | ||
[[Category:UserGuide]] | [[Category:UserGuide]] | ||
==Part 1: Setup== | ==Part 1: Setup== | ||
{{ | {{PT1 Deck Sequence}} | ||
== Part 2: Using Your Phidget == | |||
===About=== | |||
[[Image:PRX2300_About.gif|link=|left]] | |||
The PRX2300 shines a beam of infrared light between its prongs, and can detect when the beam is broken by a small object. This sensor's signal can be read using the Digital Input channel class when it is connected to a VINT hub. | |||
= | <div style="clear:both"></div> | ||
===Explore Your Phidget Channels Using The Control Panel=== | ===Explore Your Phidget Channels Using The Control Panel=== |
Latest revision as of 17:54, 12 March 2021
Part 1: Setup
Part 2: Using Your Phidget
About
The PRX2300 shines a beam of infrared light between its prongs, and can detect when the beam is broken by a small object. This sensor's signal can be read using the Digital Input channel class when it is connected to a VINT hub.
Explore Your Phidget Channels Using The Control Panel
Double click on the Digital Input channel class under the port your PRX2300 is connected to.
Part 3: Create your Program
Part 4: Advanced Topics and Troubleshooting
Before you open a Phidget channel in your program, you can set these properties to specify which channel to open. You can find this information through the Control Panel.
1. Open the Control Panel and double-click on the red map pin icon:
2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.
See the Phidget22 API for your language to determine exact syntax for each property.
You can use the PRX2300 by plugging it into a VINT Hub port and opening that port in VoltageInput or DigitalInput mode. For applications that involve opaque objects large enough to block the whole beam at once, we recommend using DigitalInput mode. For small or translucent objects, using VoltageInput may be necessary since a partial beam break may not result in a voltage high enough to register a state change (e.g. 1.8V in the case of the HUB0000).
The PRX2300 has a small trim potentiometer on board to adjust the voltage offset.
If you're using this Phidget in DigitalInput mode (are detecting large opaque objects that will strongly break the beam), rotate the potentiometer counter-clockwise toward the (+). No further calibration is needed.
If you're using this Phidget in VoltageInput mode, we recommend adjusting the voltage offset until it sits at around 1.25V when the beam is not blocked. Next, you should write a short program that will log all of the voltage data to a text file or spreadsheet (and set the data interval to the minimum value in order to catch all of the data), so you can determine which voltage spikes indicate and object and which voltage spikes are just noise.
For example, suppose you tested the sensor and observed 4 objects pass through, resulting in the following data:
If we assume the first two peaks are actually one object that just happened to allow some of the beam to pass, and the fifth peak is a false positive, then we can assume the peaks indicated by the four yellow arrows are the data that correspond with the four objects. In order for our program to correctly identify these, we need to set a high trigger (indicated by the green line) well above the fifth peak, but below the sixth peak. Similarly, in order to prevent the first two peaks from counting as two separate events, we must set the low trigger below the dip in between them, but above the dip between the next two peaks.
Once you've done enough testing to determine where your high and low triggers should be set, you just need to add a bit of logic to your voltage change event. If the voltage is higher than your high trigger, you can set a global variable that indicates that an object has been sensed, and you should not reset that variable until the voltage has dropped back down below the low trigger. Here's and example of what the event handler might look like in Python if our high trigger is 3.75V and our low trigger is 2.7V:
eventTriggered = 0
def onVoltageChange(self, voltage):
if voltage > 3.75 and eventTriggered == 0
eventTriggered = 1
print("Object detected!")
if voltage < 2.7 and eventTriggered == 1
eventTriggered = 0
Try adjusting the sensitivity trim pot on the PRX2300. If it's turned all the way clockwise, you will get this behavior. If it's still stuck on "False" after adjusting the sensitivity, try cleaning the emitter and receiver on the inside of the prongs to clear away any debris that could be blocking the infrared beam.