From cd30c7d71f505d730f418c7a9029c2fe0af5740d Mon Sep 17 00:00:00 2001 From: Stefan Andritoiu Date: Tue, 22 Sep 2015 19:15:58 +0300 Subject: [PATCH] java: Added Java Examples for a couple of sensors Signed-off-by: Stefan Andritoiu Signed-off-by: Mihai Tudor Panu --- examples/java/BMPX8XSample.java | 56 ++++++++++++++ examples/java/ENC03RSample.java | 64 ++++++++++++++++ examples/java/GroveVDivSample.java | 58 ++++++++++++++ examples/java/Hmc5883lSample.java | 60 +++++++++++++++ examples/java/Joystick12_exampleSample.java | 54 ++++++++++++++ examples/java/LSM303Sample.java | 65 ++++++++++++++++ examples/java/MAX44000Sample.java | 47 ++++++++++++ examples/java/MPL3115A2Sample.java | 54 ++++++++++++++ examples/java/MPU9150Sample.java | 59 +++++++++++++++ examples/java/PPD42NSSample.java | 55 ++++++++++++++ examples/java/ULN200XASample.java | 63 ++++++++++++++++ examples/java/Ublox6Sample.java | 83 +++++++++++++++++++++ 12 files changed, 718 insertions(+) create mode 100644 examples/java/BMPX8XSample.java create mode 100644 examples/java/ENC03RSample.java create mode 100644 examples/java/GroveVDivSample.java create mode 100644 examples/java/Hmc5883lSample.java create mode 100644 examples/java/Joystick12_exampleSample.java create mode 100644 examples/java/LSM303Sample.java create mode 100644 examples/java/MAX44000Sample.java create mode 100644 examples/java/MPL3115A2Sample.java create mode 100644 examples/java/MPU9150Sample.java create mode 100644 examples/java/PPD42NSSample.java create mode 100644 examples/java/ULN200XASample.java create mode 100644 examples/java/Ublox6Sample.java diff --git a/examples/java/BMPX8XSample.java b/examples/java/BMPX8XSample.java new file mode 100644 index 00000000..d1c7dc6f --- /dev/null +++ b/examples/java/BMPX8XSample.java @@ -0,0 +1,56 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class BMPX8XSample { + + static { + try { + System.loadLibrary("upm_bmpx8x"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a BMPX8X sensor on I2C + upm_bmpx8x.BMPX8X sensor = new upm_bmpx8x.BMPX8X(0); + + // Print the pressure, altitude, sea level, and + // temperature values every second + while(true){ + System.out.println("Pressure: " + sensor.getPressure()); + System.out.println("Altitude: " + sensor.getAltitude()); + System.out.println("Sealevel pressure: " + sensor.getSealevelPressure()); + System.out.println("Temperature: " + sensor.getTemperature()); + System.out.println(); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/ENC03RSample.java b/examples/java/ENC03RSample.java new file mode 100644 index 00000000..a892bb2c --- /dev/null +++ b/examples/java/ENC03RSample.java @@ -0,0 +1,64 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class ENC03RSample { + private static final long CALIBRATION_SAMPLES = 1000; + + static { + try { + System.loadLibrary("upm_enc03r"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + + // Instantiate a ENC03R on analog pin A0 + upm_enc03r.ENC03R gyro = new upm_enc03r.ENC03R(0); + + System.out.println("Please place the sensor in a stable location, and do not"); + System.out.println("move it while calibration takes place"); + System.out.println("This may take a couple of minutes."); + + gyro.calibrate(CALIBRATION_SAMPLES); + System.out.println("Calibration complete. Reference value: " + gyro.calibrationValue()); + + // Read the input and print both the raw value and the angular velocity, + // waiting 1 second between readings + while(true){ + long val = gyro.value(); + double av = gyro.angularVelocity(val); + + System.out.println("Raw value: " + val + ", angular velocity: " + av + " deg/s"); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/GroveVDivSample.java b/examples/java/GroveVDivSample.java new file mode 100644 index 00000000..9367cf7a --- /dev/null +++ b/examples/java/GroveVDivSample.java @@ -0,0 +1,58 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class GroveVDivSample { + private static final short gain3 = 3; + private static final short gain10 = 10; + + static { + try { + System.loadLibrary("upm_grovevdiv"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a Grove Voltage Divider sensor on analog pin A0 + upm_grovevdiv.GroveVDiv vDiv = new upm_grovevdiv.GroveVDiv(0); + + // collect data and output measured voltage according to the setting + // of the scaling switch (3 or 10) + while(true){ + long val = vDiv.value(100); + float gain3val = vDiv.computedValue(gain3, val); + float gain10val = vDiv.computedValue(gain10, val); + + System.out.println("ADC value: " + val + ", Gain 3: " + gain3val + "v, Gain 10: " + gain10val); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/Hmc5883lSample.java b/examples/java/Hmc5883lSample.java new file mode 100644 index 00000000..4efe121c --- /dev/null +++ b/examples/java/Hmc5883lSample.java @@ -0,0 +1,60 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class Hmc5883lSample { + + static { + try { + System.loadLibrary("javaupm_hmc5883l"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate on I2C + upm_hmc5883l.Hmc5883l compas = new upm_hmc5883l.Hmc5883l(0); + + int[] pos; + + // Set your declination from true north in radians + compas.set_declination(0.2749f); + + while(true){ + // Update the coordinates + compas.update(); + + pos = compas.coordinates(); + System.out.println("Coor: " + pos[0] + " " + pos[1] + " " + pos[2]); + System.out.println("Heading: " + compas.heading() + " Direction:" + compas.heading()); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/Joystick12_exampleSample.java b/examples/java/Joystick12_exampleSample.java new file mode 100644 index 00000000..96eafa00 --- /dev/null +++ b/examples/java/Joystick12_exampleSample.java @@ -0,0 +1,54 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class Joystick12_exampleSample { + + static { + try { + System.loadLibrary("upm_joystick12"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a joystick on analog pins A0 and A1 + upm_joystick12.Joystick12 joystick = new upm_joystick12.Joystick12(0,1); + + // Print the X and Y input values every second + while(true){ + float x = joystick.getXInput(); + float y = joystick.getYInput(); + + System.out.println("Driving X: " + x + " , and Y: " + y ); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/LSM303Sample.java b/examples/java/LSM303Sample.java new file mode 100644 index 00000000..f47b1421 --- /dev/null +++ b/examples/java/LSM303Sample.java @@ -0,0 +1,65 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class LSM303Sample { + + static { + try { + System.loadLibrary("upm_lsm303"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate LSM303 compass on I2C + upm_lsm303.LSM303 sensor = new upm_lsm303.LSM303(0); + + // Get the coordinate data + sensor.getCoordinates(); + int[] coor = sensor.getRawCoorData(); // in XYZ order.ยท + // The sensor returns XZY, but the driver compensates and makes it XYZ + + // Print out the X, Y, and Z coordinate data using two different methods + System.out.println("coor: rX " + coor[0] + " - rY " + coor[1] + " - rZ " + coor[2]); + System.out.println("coor: gX " + sensor.getCoorX() + " - gY " + sensor.getCoorY() + " - gZ " + sensor.getCoorZ()); + + // Get and print out the heading + System.out.println("heading: " + sensor.getHeading()); + + // Get the acceleration + sensor.getAcceleration(); + int[] accel = sensor.getRawAccelData(); + + // Print out the X, Y, and Z acceleration data using two different methods + System.out.println("acc: rX " + accel[0] + " - rY " + accel[1] + " - rZ " + accel[2]); + System.out.println("acc: gX " + sensor.getAccelX() + " - gY " + sensor.getAccelY() + " - gZ " + sensor.getAccelZ()); + + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/MAX44000Sample.java b/examples/java/MAX44000Sample.java new file mode 100644 index 00000000..5e39ec7d --- /dev/null +++ b/examples/java/MAX44000Sample.java @@ -0,0 +1,47 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class MAX44000Sample { + + static { + try { + System.loadLibrary("upm_max44000"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + upm_max44000.MAX44000 sensor = new upm_max44000.MAX44000(0); + + while(true){ + System.out.println("proximity value = " + sensor.getAmbient()); + Thread.sleep(1000); + } + //! [Interesting] + } +} diff --git a/examples/java/MPL3115A2Sample.java b/examples/java/MPL3115A2Sample.java new file mode 100644 index 00000000..ff998068 --- /dev/null +++ b/examples/java/MPL3115A2Sample.java @@ -0,0 +1,54 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class MPL3115A2Sample { + + static { + try { + System.loadLibrary("upm_mpl3115a2"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a MPL3115A2 sensor on I2C + upm_mpl3115a2.MPL3115A2 sensor = new upm_mpl3115a2.MPL3115A2(0); + + while(true){ + System.out.println("Pressure: " + sensor.getPressure()); + System.out.println("Altitude: " + sensor.getAltitude()); + System.out.println("Sealevel pressure: " + sensor.getSealevelPressure()); + System.out.println("Temperature: " + sensor.getTemperature()); + System.out.println(); + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/MPU9150Sample.java b/examples/java/MPU9150Sample.java new file mode 100644 index 00000000..819be995 --- /dev/null +++ b/examples/java/MPU9150Sample.java @@ -0,0 +1,59 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class MPU9150Sample { + + static { + try { + System.loadLibrary("upm_mpu9150"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + upm_mpu9150.MPU9150 sensor = new upm_mpu9150.MPU9150(); + + sensor.init(); + + while(true){ + sensor.update(); + + float[] accel = sensor.getAccelerometer(); + System.out.println("Accelerometer: " + "AX: " + accel[0] + " AY: " + accel[1] + " AZ: " + accel[2] ); + + float[] gyro = sensor.getGyroscope(); + System.out.println("Gryoscope: " + "GX: " + gyro[0] + " GY: " + gyro[1] + " GZ: " + gyro[2] ); + + float[] magn = sensor.getMagnetometer(); + System.out.println("Magnetometer: " + "MX: " + magn[0] + " MY: " + magn[1] + " MZ: " + magn[2] ); + + Thread.sleep(1000); + } + //! [Interesting] + } +} \ No newline at end of file diff --git a/examples/java/PPD42NSSample.java b/examples/java/PPD42NSSample.java new file mode 100644 index 00000000..a6b64f68 --- /dev/null +++ b/examples/java/PPD42NSSample.java @@ -0,0 +1,55 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class PPD42NSSample { + + static { + try { + System.loadLibrary("javaupm_ppd42ns"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a dust sensor on GPIO pin D8 + upm_ppd42ns.PPD42NS dust = new upm_ppd42ns.PPD42NS(8); + upm_ppd42ns.dustData data; + + System.out.println("This program will give readings every 30 seconds until you stop it"); + + while(true){ + data = dust.getData(); + + System.out.println("Low pulse occupancy: " + data.getLowPulseOccupancy()); + System.out.println("Ratio: " + data.getRatio()); + System.out.println("Concentration: " + data.getConcentration()); + } + //! [Interesting] + } + +} \ No newline at end of file diff --git a/examples/java/ULN200XASample.java b/examples/java/ULN200XASample.java new file mode 100644 index 00000000..9da48a42 --- /dev/null +++ b/examples/java/ULN200XASample.java @@ -0,0 +1,63 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class ULN200XASample { + + static { + try { + System.loadLibrary("javaupm_uln200xa"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a Stepper motor on a ULN200XA Dual H-Bridge. + // Wire the pins so that I1 is pin D8, I2 is pin D9, I3 is pin D10 and + // I4 is pin D11 + upm_uln200xa.ULN200XA uln200xa = new upm_uln200xa.ULN200XA(4096, 8, 9, 10, 11); + + uln200xa.setSpeed(5); + System.out.println("Rotating 1 revolution clockwise."); + uln200xa.setDirection(upm_uln200xa.ULN200XA.ULN200XA_DIRECTION_T.DIR_CW); + uln200xa.stepperSteps(4096); + + System.out.println("Sleeping for 2 seconds..."); + Thread.sleep(2000); + + System.out.println("Rotating 1/2 revolution counter clockwise."); + uln200xa.setDirection(upm_uln200xa.ULN200XA.ULN200XA_DIRECTION_T.DIR_CCW); + uln200xa.stepperSteps(2048); + + // turn off the power + uln200xa.release(); + //! [Interesting] + + System.out.println("Exiting..."); + } + +} \ No newline at end of file diff --git a/examples/java/Ublox6Sample.java b/examples/java/Ublox6Sample.java new file mode 100644 index 00000000..f67ff8f6 --- /dev/null +++ b/examples/java/Ublox6Sample.java @@ -0,0 +1,83 @@ +/* + * Author: Stefan Andritoiu + * Copyright (c) 2015 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +//NOT TESTED!!! +public class Ublox6Sample { + private static final int BUFFERLENGTH = 256; + + static { + try { + System.loadLibrary("javaupm_ublox6"); + }catch (UnsatisfiedLinkError e) { + System.err.println("error in loading native library"); + System.exit(-1); + } + } + + public static void main(String[] args) throws InterruptedException { + //! [Interesting] + // Instantiate a Ublox6 GPS device on uart 0 + upm_ublox6.Ublox6 nmea = new upm_ublox6.Ublox6(0); + + // make sure port is initialized properly. 9600 baud is the default. + if(!nmea.setupTty()){ + throw new RuntimeException("Failed to setup tty port parameters"); + } + + // Collect and output NMEA data. There are various libraries out on + // the Internet, such as tinyGPS or tinyGPS++ that can handle + // decoding NMEA data and presenting it in a more easily accessible + // format. This example will just check for, and read raw NMEA data + // from the device and output it on standard output. + + // This device also supports numerous configuration options, which + // you can set with writeData(). Please refer to the Ublox-6 data + // sheet for further information on the formats of the data sent and + // received, and the various operating modes available. + + byte[] nmeaBuffer = new byte[BUFFERLENGTH]; + + while(true){ + // we don't want the read to block in this example, so always + // check to see if data is available first. + if (nmea.dataAvailable()){ + int rv = nmea.readData(nmeaBuffer); + + if(rv > 0) + for (int i = 0; i < nmeaBuffer.length; i++) + System.out.print(nmeaBuffer[i]); + + if (rv < 0){ // some sort of read error occured + System.err.println("Port read error.") ; + break; + } + continue; + } + + Thread.sleep(1000); + } + //! [Interesting] + } + +} \ No newline at end of file