Getting Started with Phidgets CSCI 1302 Proposals Equipment Visit phidgets.com Look up specifications for each sensor Online documentation: http://www.phidgets.com/documentation/web/javadoc/index.html Order additional phidgets http://www.phidgets.com http://www.trossenrobotics.com Company ships from USA, competitive pricing Buy USB Hub The laptop computers may only have 1 USB port so buy a HUB to attach multiple devices Interface Kit and Servo Motors each attach to a USB Port Installation Procedure (1 of 6) Computer must have Java Installed JGrasp or TextPad Installation Procedure (2 of 6) Go to location for Phidget Windows Downloads www.phidgets.com Downloads Windows Installation Procedure (3 of 6) 1. Download Phidget Framework (Phidget 21.MSI) 2. Install Phidget Framework 1. 2. 3. Microsoft.NET should be installed on your computer, After installing Microsoft .net., install Phidget 2.1 MSI. This will create the folder Program Files/Phidget on your computer. You will see a PH icon on status bar to indicate success Installation Procedure (4 of 6) Create a Phidget Files Folder on your C Drive Download “Java Files” and save in your Phidget Files Folder Examples: Java (Zip file) Additional Files: phidget21.jar Java API Manual: javadoc.zip Installation Procedure (5 of 6) Unzip Files Use UnZip to extract files from .zip The phiget21.jar is a compressed java file. You can use JGrasp to extract all files (Tools/Jar). Ultimate Zip is another program to extract the java files. Using JGrasp to Extract Files 2 1 Using JGrasp to Extract Files 4 3 Installation Procedure (6 of 6) 2 folders will be created. (com and meta-inf) All source files you create must be in the Phidget Files folder. They will import data from the com folder Interface Kit 1. Connect the Analog Sensor to any of the analog input ports (labeled 0 to 7) using a Phidgets sensor cable. 2. Connect the InterfaceKit board to the PC using the USB cable. 3. Connect one end of the wire to a digital input port and the other end to the ground connection. 4. Connect the LED to one of the digital output by inserting the long LED wire into any of the digital outputs (labeled 0 to 7) and the shorter wire to Ground. 1. Testing the InterfaceKitPhidget Double Click on the icon to activate the Phidget Control Panel and make sure that InterfaceKitPhidget is properly attached to your PC. General Tab If you do not see the device listed WebService Tab Go to WebService Tab Set [Start up Type] Automatic and Press [Start] You may have to detach the Interface Kit from USB port and reattach after WebService status is Running Testing the InterfaceKitPhidget When you double click on the device name, GUI appears that allows you to interact with the device Remember to close this interface before executing your program. The interface kit may be “connected” to one program at a time. Using Phidget Classes (1 of 6) Source code must be saved in folder that contains the com folder. Your program is looking for this structure. Import the Phidget classes in your source code import com.phidgets.*; import com.phidgets.event.*; Using the Phidget Classes (2 of 6) LISTEN TO ANALOG SENSORS ATTACHED TO THE INTERFACE KIT PHIDGET •Declare an InterfaceKit Phidget instance field InterfaceKitPhidget ik; •Up to 8 analog sensors can attach to the interface kit. •Open the interface kit with openAny() or open methods •Add a sensor listener to monitor change in sensors values/ Using the Phidget Classes (3 of 6) LISTEN TO ANALOG SENSORS ATTACHED TO THE INTERFACE KIT PHIDGET try { ik = new InterfaceKitPhidget(); // Allocate space ik.openAny(); //Open interface attached //Wait for the device to be attached System.out.println("waiting for InterfaceKit attachment..."); ik.waitForAttachment(); System.out.println(ik.getDeviceName()); //Add a Listener to report change in sensors ik.addSensorChangeListener( new InterfaceSensorChangeListener()); }//end try catch (PhidgetException e) { System.out.println("Phidget Exception Generated"); e.printStackTrace(); } THIS IS A CLASS YOU CREATE! Using the Phidget Classes (4 of 6) •Create your class that implements the SensorChangeListener. . private class InterfaceSensorChangeListener implements SensorChangeListener { public void sensorChanged(SensorChangeEvent se) Required method { // Get the port number of the analog sensor that has changed. int port = se.getIndex(); //Get the value of the sensor. int value = se.getValue(); //You must know where each sensor has been attached to the interface kit System.out.println(“Sensor in port: “ + port + “has the value: “ + value); } } //SAMPLE CODE if (port == 0) //left light sensor { if (value > 400) // too dark // insert code } Using the Phidget Classes (5 of 6) ACTIVATE A MOTOR CONNECTED TO YOUR USB PORT • Create a servo motor instance field ServoPhidget servo; •Open the motor try { servo = new ServoPhidget(); servo.openAny(); //If you just have 1 servo attached used openAny() method. // Otherwise you can specify which servo you want to open servo.open(19844); System.out.println("waiting for Servo attachment..."); servo.waitForAttachment(); System.out.println("Serial: " + servo.getSerialNumber()); }//end try catch (PhidgetException e) { System.out.println("Phidget Exception Generated"); e.printStackTrace(); } Using the Phidget Classes (6 of 6) MOVE A MOTOR CONNECTED TO YOUR USB PORT /* The range of a servo motor maybe -23 to 232 however this depends on the servo. Typically, the range might be 25 to 180 degrees. */ try { // Set position to lowest position (rewind) servo.setPosition(0, 90); //motor #0, angle 90 degrees } catch (PhidgetException e) { System.out.println("Phidget Exception Generated"); e.printStackTrace(); } The setPosition method is used to move the motor. A PhidgetExecption may be thrown when setting the motor and must be caught in your code. Frequently Asked Questions Do NOT have the Phidget Control Panel open when you are testing your code. Only one program is able to open the interface at a time. You must close all programs that are trying to access the interface before your code will run.