diff options
Diffstat (limited to 'libraries/Esplora')
16 files changed, 0 insertions, 1365 deletions
| diff --git a/libraries/Esplora/Beginners/EsploraAccelerometer/EsploraAccelerometer.ino b/libraries/Esplora/Beginners/EsploraAccelerometer/EsploraAccelerometer.ino deleted file mode 100644 index db5cc93..0000000 --- a/libraries/Esplora/Beginners/EsploraAccelerometer/EsploraAccelerometer.ino +++ /dev/null @@ -1,38 +0,0 @@ -/* -  Esplora Accelerometer  -  - This  sketch shows you how to read the values from the accelerometer. - To see it in action, open the serial monitor and tilt the board. You'll see - the accelerometer values for each axis change when you tilt the board  - on that axis. -   - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - -void setup() -{ -  Serial.begin(9600);        // initialize serial communications with your computer -}  - -void loop() -{ -  int xAxis = Esplora.readAccelerometer(X_AXIS);    // read the X axis -  int yAxis = Esplora.readAccelerometer(Y_AXIS);    // read the Y axis -  int zAxis = Esplora.readAccelerometer(Z_AXIS);    // read the Z axis - -  Serial.print("x: ");      // print the label for X  -  Serial.print(xAxis);      // print the value for the X axis -  Serial.print("\ty: ");    // print a tab character, then the label for Y  -  Serial.print(yAxis);      // print the value for the Y axis -  Serial.print("\tz: ");    // print a tab character, then the label for Z -  Serial.println(zAxis);    // print the value for the Z axis - -  delay(500);              // wait half a second (500 milliseconds) -} - - diff --git a/libraries/Esplora/Beginners/EsploraBlink/EsploraBlink.ino b/libraries/Esplora/Beginners/EsploraBlink/EsploraBlink.ino deleted file mode 100644 index e198551..0000000 --- a/libraries/Esplora/Beginners/EsploraBlink/EsploraBlink.ino +++ /dev/null @@ -1,42 +0,0 @@ - -/* -  Esplora Blink -  - This  sketch blinks the Esplora's RGB LED. It goes through - all three primary colors (red, green, blue), then it  - combines them for secondary colors(yellow, cyan, magenta), then - it turns on all the colors for white.  - For best results cover the LED with a piece of white paper to see the colors. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - - -void setup() { -  // There's nothing to set up for this sketch -} - -void loop() { -  Esplora.writeRGB(255,0,0);    // make the LED red -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(0,255,0);    // make the LED green -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(0,0,255);    // make the LED blue -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(255,255,0);  // make the LED yellow -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(0,255,255);  // make the LED cyan -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(255,0,255);  // make the LED magenta -  delay(1000);                  // wait 1 second -  Esplora.writeRGB(255,255,255);// make the LED white -  delay(1000);                  // wait 1 second - -} - - diff --git a/libraries/Esplora/Beginners/EsploraJoystickMouse/EsploraJoystickMouse.ino b/libraries/Esplora/Beginners/EsploraJoystickMouse/EsploraJoystickMouse.ino deleted file mode 100644 index 8d9260e..0000000 --- a/libraries/Esplora/Beginners/EsploraJoystickMouse/EsploraJoystickMouse.ino +++ /dev/null @@ -1,50 +0,0 @@ -/* -  Esplora Joystick Mouse -  - This  sketch shows you how to read the joystick and use it to control the movement - of the cursor on your computer.  You're making your Esplora into a mouse! -  - WARNING: this sketch will take over your mouse movement. If you lose control - of your mouse do the following: - 1) unplug the Esplora. - 2) open the EsploraBlink sketch - 3) hold the reset button down while plugging your Esplora back in - 4) while holding reset, click "Upload" - 5) when you see the message "Done compiling", release the reset button. -  - This will stop your Esplora from controlling your mouse while you upload a sketch - that doesn't take control of the mouse. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - -void setup() -{ -  Serial.begin(9600);       // initialize serial communication with your computer -  Mouse.begin();            // take control of the mouse -}  - -void loop() -{ -  int xValue = Esplora.readJoystickX();        // read the joystick's X position -  int yValue = Esplora.readJoystickY();        // read the joystick's Y position -  int button = Esplora.readJoystickSwitch();   // read the joystick pushbutton -  Serial.print("Joystick X: ");                // print a label for the X value -  Serial.print(xValue);                        // print the X value -  Serial.print("\tY: ");                       // print a tab character and a label for the Y value -  Serial.print(yValue);                        // print the Y value -  Serial.print("\tButton: ");                  // print a tab character and a label for the button -  Serial.print(button);                        // print the button value - -  int mouseX = map( xValue,-512, 512, 10, -10);  // map the X value to a range of movement for the mouse X -  int mouseY = map( yValue,-512, 512, -10, 10);  // map the Y value to a range of movement for the mouse Y -  Mouse.move(mouseX, mouseY, 0);                 // move the mouse -   -  delay(10);                                  // a short delay before moving again -} - diff --git a/libraries/Esplora/Beginners/EsploraLedShow/EsploraLedShow.ino b/libraries/Esplora/Beginners/EsploraLedShow/EsploraLedShow.ino deleted file mode 100644 index 3c617dc..0000000 --- a/libraries/Esplora/Beginners/EsploraLedShow/EsploraLedShow.ino +++ /dev/null @@ -1,42 +0,0 @@ -/* -  Esplora LED Show - -  Makes the RGB LED bright and glow as the joystick or the -  slider are moved. -   -  Created on 22 november 2012 -  By Enrico Gueli <enrico.gueli@gmail.com> -  Modified 22 Dec 2012 -  by Tom Igoe -*/ -#include <Esplora.h> - -void setup() { -  // initialize the serial communication: -  Serial.begin(9600); -} - -void loop() { -  // read the sensors into variables: -  int xAxis = Esplora.readJoystickX(); -  int yAxis = Esplora.readJoystickY(); -  int slider = Esplora.readSlider(); -   -  // convert the sensor readings to light levels: -  byte red   = map(xAxis, -512, 512, 0, 255); -  byte green = map(yAxis, -512, 512, 0, 255); -  byte blue  = slider/4; -  -  // print the light levels: -  Serial.print(red); -  Serial.print(' '); -  Serial.print(green); -  Serial.print(' '); -  Serial.println(blue); - -  // write the light levels to the LED.  -  Esplora.writeRGB(red, green, blue); - -  // add a delay to keep the LED from flickering:   -  delay(10); -} diff --git a/libraries/Esplora/Beginners/EsploraLedShow2/EsploraLedShow2.ino b/libraries/Esplora/Beginners/EsploraLedShow2/EsploraLedShow2.ino deleted file mode 100644 index 8f9f8a2..0000000 --- a/libraries/Esplora/Beginners/EsploraLedShow2/EsploraLedShow2.ino +++ /dev/null @@ -1,55 +0,0 @@ -/* -  Esplora Led/Microphone - -  This simple sketch reads the microphone, light sensor, and slider. -  Then it uses those readings to set the brightness of red, green and blue -  channels of the RGB LED. The red channel will change with the loudness -  "heared" by the microphone, the green channel changes as the -  amount of light in the room and the blue channel will change -  with the position of the slider. - -  Created on 22 november 2012 -  By Enrico Gueli <enrico.gueli@gmail.com> -  Modified 24 Nov 2012 -  by Tom Igoe -*/ - -#include <Esplora.h> - -void setup() { -  // initialize the serial communication: -  Serial.begin(9600); -} - -int lowLight = 400;   // the light sensor reading when it's covered -int highLight = 1023; // the maximum light sensor reading  -int minGreen = 0;     // minimum brightness of the green LED -int maxGreen = 100;   // maximum brightness of the green LED - -void loop() { -  // read the sensors into variables: -  int mic = Esplora.readMicrophone(); -  int light = Esplora.readLightSensor(); -  int slider = Esplora.readSlider(); -   -  // convert the sensor readings to light levels: -  byte red   = constrain(mic, 0, 255); -  byte green = constrain( -                  map(light, lowLight, highLight, minGreen, maxGreen), -                  0, 255); -  byte blue  = slider/4; - -  // print the light levels (to see what's going on): -  Serial.print(red); -  Serial.print(' '); -  Serial.print(green); -  Serial.print(' '); -  Serial.println(blue); - -  // write the light levels to the LED.  -  // note that the green value is always 0: -  Esplora.writeRGB(red, green, blue); -   -  // add a delay to keep the LED from flickering: -  delay(10);  -} diff --git a/libraries/Esplora/Beginners/EsploraLightCalibrator/EsploraLightCalibrator.ino b/libraries/Esplora/Beginners/EsploraLightCalibrator/EsploraLightCalibrator.ino deleted file mode 100644 index c3eaff4..0000000 --- a/libraries/Esplora/Beginners/EsploraLightCalibrator/EsploraLightCalibrator.ino +++ /dev/null @@ -1,91 +0,0 @@ -/* -  Esplora Led calibration -  - This  sketch shows you how to read and calibrate the light sensor. - Because light levels vary from one location to another, you need to calibrate the  - sensor for each location. To do this, you read the sensor for a few seconds, - and save the highest and lowest readings as maximum and minimum.   - Then, when you're using the sensor's reading (for example, to set the brightness - of the LED), you map the sensor's reading to a range between the minimum - and the maximum. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - -// variables: -int lightMin = 1023;        // minimum sensor value -int lightMax = 0;           // maximum sensor value -boolean calibrated = false;  // whether the sensor's been calibrated yet - -void setup() { -  // initialize the serial communication: -  Serial.begin(9600); - -  // print an intial message -  Serial.println("To calibrate the light sensor, press and hold Switch 1"); -} - -void loop() { -  // if switch 1 is pressed, go to the calibration function again: -  if (Esplora.readButton(1) == LOW) { -    calibrate(); -  } -  // read the sensor into a variable: -  int light = Esplora.readLightSensor(); - -  // map the light level to a brightness level for the LED -  // using the calibration min and max: -  int brightness = map(light, lightMin, lightMax, 0, 255); -  // limit the brightness to a range from 0 to 255: -  brightness = constrain(brightness, 0, 255); -  // write the brightness to the blue LED.  -  Esplora.writeBlue(brightness); -   -  // if the calibration's been done, show the sensor and brightness -  // levels in the serial monitor: -  if (calibrated == true) { -    // print the light sensor levels and the LED levels (to see what's going on): -    Serial.print("light sensor level: "); -    Serial.print(light); -    Serial.print(" blue brightness: "); -    Serial.println(brightness); -  } -  // add a delay to keep the LED from flickering: -  delay(10);  -} - -void calibrate() { -  // tell the user what do to using the serial monitor: -  Serial.println("While holding switch 1, shine a light on the light sensor, then cover it."); - -  // calibrate while switch 1 is pressed: -  while(Esplora.readButton(1) == LOW) { -    // read the sensor value:  -    int light  = Esplora.readLightSensor(); - -    // record the maximum sensor value: -    if (light > lightMax) { -      lightMax = light; -    } - -    // record the minimum sensor value: -    if (light < lightMin) { -      lightMin = light; -    } -    // note that you're calibrated, for future reference: -    calibrated = true; -  } -} - - - - - - - - diff --git a/libraries/Esplora/Beginners/EsploraMusic/EsploraMusic.ino b/libraries/Esplora/Beginners/EsploraMusic/EsploraMusic.ino deleted file mode 100644 index 7a950fb..0000000 --- a/libraries/Esplora/Beginners/EsploraMusic/EsploraMusic.ino +++ /dev/null @@ -1,53 +0,0 @@ -/* -  Esplora Music - -  This sketch turns the Esplora in a simple musical instrument. -  Press the Switch 1 and move the slider to see how it works. - -  Created on 22 november 2012 -  By Enrico Gueli <enrico.gueli@gmail.com> -  modified 22 Dec 2012 -  by Tom Igoe -*/ - - -#include <Esplora.h> - -// these are the frequencies for the notes from middle C -// to one octave above middle C: -const int note[] = { -262, // C -277, // C# -294, // D -311, // D# -330, // E -349, // F -370, // F# -392, // G -415, // G# -440, // A -466, // A# -494, // B -523  // C next octave -}; - -void setup() { -} - -void loop() { -  // read the button labeled SWITCH_DOWN. If it's low, -  // then play a note: -  if (Esplora.readButton(SWITCH_DOWN) == LOW) { -    int slider = Esplora.readSlider(); -     -    // use map() to map the slider's range to the  -    // range of notes you have: -    byte thisNote = map(slider, 0, 1023, 0, 13); -    // play the note corresponding to the slider's position: -    Esplora.tone(note[thisNote]); -  } -  else { -    // if the button isn't pressed, turn the note off: -    Esplora.noTone(); -  } -} diff --git a/libraries/Esplora/Beginners/EsploraSoundSensor/EsploraSoundSensor.ino b/libraries/Esplora/Beginners/EsploraSoundSensor/EsploraSoundSensor.ino deleted file mode 100644 index 3bf454f..0000000 --- a/libraries/Esplora/Beginners/EsploraSoundSensor/EsploraSoundSensor.ino +++ /dev/null @@ -1,41 +0,0 @@ -/* -  Esplora Sound Sensor -  - This  sketch shows you how to read  the microphone sensor. The microphone -will range from 0 (total silence) to 1023 (really loud).   - When you're using the sensor's reading (for example, to set the brightness - of the LED), you map the sensor's reading to a range between the minimum - and the maximum. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - -void setup() { -  // initialize the serial communication: -  Serial.begin(9600); -} - -void loop() { -  // read the sensor into a variable: -  int loudness = Esplora.readMicrophone(); - -  // map the sound level to a brightness level for the LED: -  int brightness = map(loudness, 0, 1023, 0, 255); -  // write the brightness to the green LED:  -  Esplora.writeGreen(brightness); -   -   -    // print the microphone levels and the LED levels (to see what's going on): -    Serial.print("sound level: "); -    Serial.print(loudness); -    Serial.print(" Green brightness: "); -    Serial.println(brightness); -  // add a delay to keep the LED from flickering: -  delay(10);  -} - diff --git a/libraries/Esplora/Beginners/EsploraTemperatureSensor/EsploraTemperatureSensor.ino b/libraries/Esplora/Beginners/EsploraTemperatureSensor/EsploraTemperatureSensor.ino deleted file mode 100644 index 72bbf04..0000000 --- a/libraries/Esplora/Beginners/EsploraTemperatureSensor/EsploraTemperatureSensor.ino +++ /dev/null @@ -1,37 +0,0 @@ -/* -  Esplora Temperature Sensor -  - This  sketch shows you how to read the Esplora's temperature sensor - You can read the temperature sensor in Farhenheit or Celsius. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ -#include <Esplora.h> - -void setup() -{ -  Serial.begin(9600);      // initialize serial communications with your computer -}  - -void loop() -{ -  // read the temperature sensor in Celsius, then Fahrenheit: -  int celsius = Esplora.readTemperature(DEGREES_C); -  int fahrenheit = Esplora.readTemperature(DEGREES_F); - -  // print the results: -  Serial.print("Temperature is: "); -  Serial.print(celsius); -  Serial.print(" degrees Celsius, or "); -  Serial.print(fahrenheit); -  Serial.println(" degrees Fahrenheit."); -  Serial.println("     Fahrenheit = (9/5 * Celsius) + 32"); - -  // wait a second before reading again: -  delay(1000); -} - - diff --git a/libraries/Esplora/Esplora.cpp b/libraries/Esplora/Esplora.cpp deleted file mode 100644 index 29c9e19..0000000 --- a/libraries/Esplora/Esplora.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/* -  Esplora.cpp - Arduino Esplora board library -  Written by Enrico Gueli -  Copyright (c) 2012 Arduino(TM)  All right reserved. - -  This library is free software; you can redistribute it and/or -  modify it under the terms of the GNU Lesser General Public -  License as published by the Free Software Foundation; either -  version 2.1 of the License, or (at your option) any later version. - -  This library is distributed in the hope that it will be useful, -  but WITHOUT ANY WARRANTY; without even the implied warranty of -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -  Lesser General Public License for more details. - -  You should have received a copy of the GNU Lesser General Public -  License along with this library; if not, write to the Free Software -  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA -*/ - - -#include "Esplora.h" - -_Esplora Esplora; - -/* - * The following constants tell, for each accelerometer - * axis, which values are returned when the axis measures - * zero acceleration. - */ -const int ACCEL_ZERO_X = 320; -const int ACCEL_ZERO_Y = 330; -const int ACCEL_ZERO_Z = 310; - -const byte MUX_ADDR_PINS[] = { A0, A1, A2, A3 }; -const byte MUX_COM_PIN = A4; - -const int JOYSTICK_DEAD_ZONE = 100; - -const byte RED_PIN    = 5; -const byte BLUE_PIN   = 9; -const byte GREEN_PIN  = 10; - -const byte BUZZER_PIN = 6; - -// non-multiplexer Esplora pins:  -// Accelerometer: x-A5, y-A7, z-A6 -// External outputs: D3, D11 -// Buzzer: A8 -// RGB Led: red-D5, green-D10/A11, blue-D9/A10 -// Led 13: D13 - -const byte ACCEL_X_PIN = A5; -const byte ACCEL_Y_PIN = A11; -const byte ACCEL_Z_PIN = A6; - -const byte LED_PIN     = 13; - -_Esplora::_Esplora() { -  for (byte p=0; p<4; p++) { -    pinMode(MUX_ADDR_PINS[p], OUTPUT); -  } -  pinMode(RED_PIN, OUTPUT); -  pinMode(GREEN_PIN, OUTPUT); -  pinMode(BLUE_PIN, OUTPUT); -} - -unsigned int _Esplora::readChannel(byte channel) { -  digitalWrite(MUX_ADDR_PINS[0], (channel & 1) ? HIGH : LOW); -  digitalWrite(MUX_ADDR_PINS[1], (channel & 2) ? HIGH : LOW); -  digitalWrite(MUX_ADDR_PINS[2], (channel & 4) ? HIGH : LOW); -  digitalWrite(MUX_ADDR_PINS[3], (channel & 8) ? HIGH : LOW); -  // workaround to cope with lack of pullup resistor on joystick switch -  if (channel == CH_JOYSTICK_SW) { -    pinMode(MUX_COM_PIN, INPUT_PULLUP);  -    unsigned int joystickSwitchState = (digitalRead(MUX_COM_PIN) == HIGH) ? 1023 : 0; -    digitalWrite(MUX_COM_PIN, LOW); -    return joystickSwitchState; -  } -  else -    return analogRead(MUX_COM_PIN); -} - -boolean _Esplora::joyLowHalf(byte joyCh) { -  return (readChannel(joyCh) < 512 - JOYSTICK_DEAD_ZONE) -    ? LOW : HIGH; -} - -boolean _Esplora::joyHighHalf(byte joyCh) { -  return (readChannel(joyCh) > 512 + JOYSTICK_DEAD_ZONE) -    ? LOW : HIGH; -} - -boolean _Esplora::readButton(byte ch) { -  if (ch >= SWITCH_1 && ch <= SWITCH_4) { -    ch--; -  } -   -  switch(ch) { -  case JOYSTICK_RIGHT: -    return joyLowHalf(CH_JOYSTICK_X); -  case JOYSTICK_LEFT: -    return joyHighHalf(CH_JOYSTICK_X); -  case JOYSTICK_UP: -    return joyLowHalf(CH_JOYSTICK_Y); -  case JOYSTICK_DOWN: -    return joyHighHalf(CH_JOYSTICK_Y); -  } -     -  unsigned int val = readChannel(ch); -  return (val > 512) ? HIGH : LOW; -} - -boolean _Esplora::readJoystickButton() { - if (readChannel(CH_JOYSTICK_SW) == 1023) { -  return HIGH; - } else if (readChannel(CH_JOYSTICK_SW) == 0) { -  return LOW; - } -} - - -void _Esplora::writeRGB(byte r, byte g, byte b) { -  writeRed(r); -  writeGreen(g); -  writeBlue(b); -} - -#define RGB_FUNC(name, pin, lastVar) \ -void _Esplora::write##name(byte val) { \ -  if (val == lastVar) \ -    return; \ -  analogWrite(pin, val);  \ -  lastVar = val; \ -  delay(5); \ -} \ -\ -byte _Esplora::read##name() { \ -  return lastVar; \ -} -   -RGB_FUNC(Red,   RED_PIN,   lastRed) -RGB_FUNC(Green, GREEN_PIN, lastGreen) -RGB_FUNC(Blue,  BLUE_PIN,  lastBlue) - -void _Esplora::tone(unsigned int freq) { -  if (freq > 0) -    ::tone(BUZZER_PIN, freq); -  else -    ::noTone(BUZZER_PIN); -} - -void _Esplora::tone(unsigned int freq, unsigned long duration) { -  if (freq > 0) -    ::tone(BUZZER_PIN, freq, duration); -  else -    ::noTone(BUZZER_PIN); -} - -void _Esplora::noTone() { -  ::noTone(BUZZER_PIN); -} - -int _Esplora::readTemperature(const byte scale) { -  long rawT = readChannel(CH_TEMPERATURE); -  if (scale == DEGREES_C) { -    return (int)((rawT * 500 / 1024) - 50); -  } -  else if (scale == DEGREES_F) { -    return (int)((rawT * 450 / 512 ) - 58); -  } -  else { -    return readTemperature(DEGREES_C); -  } -} - -int _Esplora::readAccelerometer(const byte axis) { -  switch (axis) { -    case X_AXIS: return analogRead(ACCEL_X_PIN) - ACCEL_ZERO_X; -    case Y_AXIS: return analogRead(ACCEL_Y_PIN) - ACCEL_ZERO_Y; -    case Z_AXIS: return analogRead(ACCEL_Z_PIN) - ACCEL_ZERO_Z; -    default: return 0; -  } -} diff --git a/libraries/Esplora/Esplora.h b/libraries/Esplora/Esplora.h deleted file mode 100644 index 4f55345..0000000 --- a/libraries/Esplora/Esplora.h +++ /dev/null @@ -1,165 +0,0 @@ -/* -  Esplora.h - Arduino Esplora board library -  Written by Enrico Gueli -  Copyright (c) 2012 Arduino(TM)  All right reserved. - -  This library is free software; you can redistribute it and/or -  modify it under the terms of the GNU Lesser General Public -  License as published by the Free Software Foundation; either -  version 2.1 of the License, or (at your option) any later version. - -  This library is distributed in the hope that it will be useful, -  but WITHOUT ANY WARRANTY; without even the implied warranty of -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -  Lesser General Public License for more details. - -  You should have received a copy of the GNU Lesser General Public -  License along with this library; if not, write to the Free Software -  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA -*/ - -#ifndef ESPLORA_H_ -#define ESPLORA_H_ - -#include <Arduino.h> - -/* - * The following constants are used internally by the Esplora - * library code. - */ - -const byte JOYSTICK_BASE  = 16; // it's a "virtual" channel: its ID won't conflict with real ones - -const byte MAX_CHANNELS   = 13; - -const byte CH_SWITCH_1    = 0; -const byte CH_SWITCH_2    = 1; -const byte CH_SWITCH_3    = 2; -const byte CH_SWITCH_4    = 3; -const byte CH_SLIDER      = 4; -const byte CH_LIGHT       = 5; -const byte CH_TEMPERATURE = 6; -const byte CH_MIC         = 7; -const byte CH_JOYSTICK_SW = 10; -const byte CH_JOYSTICK_X  = 11; -const byte CH_JOYSTICK_Y  = 12; - -/* - * The following constants can be used with the readButton() - * method. - */ - -const byte SWITCH_1       = 1; -const byte SWITCH_2       = 2; -const byte SWITCH_3       = 3; -const byte SWITCH_4       = 4; - -const byte SWITCH_DOWN  = SWITCH_1; -const byte SWITCH_LEFT  = SWITCH_2; -const byte SWITCH_UP    = SWITCH_3; -const byte SWITCH_RIGHT = SWITCH_4; - -const byte JOYSTICK_DOWN  = JOYSTICK_BASE; -const byte JOYSTICK_LEFT  = JOYSTICK_BASE+1; -const byte JOYSTICK_UP    = JOYSTICK_BASE+2; -const byte JOYSTICK_RIGHT = JOYSTICK_BASE+3; - -/* - * These constants can be use for comparison with the value returned - * by the readButton() method. - */ -const boolean PRESSED   = LOW; -const boolean RELEASED  = HIGH; - -/* - * The following constants can be used with the readTemperature() - * method to specify the desired scale. - */ -const byte DEGREES_C = 0; -const byte DEGREES_F = 1; - -/* - * The following constants can be used with the readAccelerometer() - * method to specify the desired axis to return. - */ -const byte X_AXIS = 0; -const byte Y_AXIS = 1; -const byte Z_AXIS = 2; - - -class _Esplora { -private: -  byte lastRed; -  byte lastGreen; -  byte lastBlue; - -  unsigned int readChannel(byte channel);     -   -  boolean joyLowHalf(byte joyCh); -  boolean joyHighHalf(byte joyCh); -     -public: -  _Esplora(); -   -  /* -   * Returns a number corresponding to the position of the -   * linear potentiometer. 0 means full right, 1023 means -   * full left. -   */ -  inline unsigned int readSlider() { return readChannel(CH_SLIDER); } - -  /* -   * Returns a number corresponding to the amount of ambient -   * light sensed by the light sensor. -   */ -  inline unsigned int readLightSensor() { return readChannel(CH_LIGHT); } - -  /* -   * Returns the current ambient temperature, expressed either in Celsius -   * or Fahreneit scale. -   */ -  int readTemperature(const byte scale); - -  /* -   * Returns a number corresponding to the amount of ambient noise. -   */ -  inline unsigned int readMicrophone() { return readChannel(CH_MIC); } -   -  inline unsigned int readJoystickSwitch() { return readChannel(CH_JOYSTICK_SW); } - -  inline int readJoystickX() {  -    return readChannel(CH_JOYSTICK_X) - 512; -  } -  inline int readJoystickY() { -    return readChannel(CH_JOYSTICK_Y) - 512; -  } - -  int readAccelerometer(const byte axis); -   -  /* -   * Reads the current state of a button. It will return -   * LOW if the button is pressed, and HIGH otherwise. -   */ -  boolean readButton(byte channel); - -  boolean readJoystickButton(); -   -  void writeRGB(byte red, byte green, byte blue); -  void writeRed(byte red); -  void writeGreen(byte green); -  void writeBlue(byte blue); - -  byte readRed(); -  byte readGreen(); -  byte readBlue(); -   -  void tone(unsigned int freq); -  void tone(unsigned int freq, unsigned long duration); -  void noTone(); -}; - - - -extern _Esplora Esplora; - -#endif // ESPLORA_H_ diff --git a/libraries/Esplora/Experts/EsploraKart/EsploraKart.ino b/libraries/Esplora/Experts/EsploraKart/EsploraKart.ino deleted file mode 100644 index 4c1621c..0000000 --- a/libraries/Esplora/Experts/EsploraKart/EsploraKart.ino +++ /dev/null @@ -1,125 +0,0 @@ -/* -  Esplora Kart - -  This sketch turns the Esplora into a PC game pad. - -  It uses the both the analog joystick and the four switches. -  By moving the joystick in a direction or by pressing a switch, -  the PC will "see" that a key is pressed. If the PC is running -  a game that has keyboard input, the Esplora can control it. -   -  The default configuration is suitable for SuperTuxKart, an -  open-source racing game. It can be downloaded from -  http://supertuxkart.sourceforge.net/ . - -  Created on 22 november 2012 -  By Enrico Gueli <enrico.gueli@gmail.com> -*/ - - -#include <Esplora.h> - -/* -  You're going to handle eight different buttons. You'll use arrays,  -  which are ordered lists of variables with a fixed size. Each array  -  has an index (counting from 0) to keep track of the position -  you're reading in the array, and each position can contain a number. -  -  This code uses three different arrays: one for the buttons you'll read; -  a second to hold the current states of those buttons; and a third to hold -  the keystrokes associated with each button. - */ - -/* -  This array holds the last sensed state of each of the buttons -  you're reading. -  Later in the code, you'll read the button states, and compare them -  to the previous states that are stored in this array. If the two -  states are different, it means that the button was either -  pressed or released. - */ -boolean buttonStates[8]; - -/* -  This array holds the names of the buttons being read. -  Later in the sketch, you'll use these names with -  the method Esplora.readButton(x), where x -  is one of these buttons. - */ -const byte buttons[] = { -  JOYSTICK_DOWN, -  JOYSTICK_LEFT, -  JOYSTICK_UP, -  JOYSTICK_RIGHT, -  SWITCH_RIGHT, // fire -  SWITCH_LEFT, // bend -  SWITCH_UP, // nitro -  SWITCH_DOWN, // look back -}; - -/* -  This array tells what keystroke to send to the PC when a -  button is pressed. -  If you look at this array and the above one, you can see that -  the "cursor down" keystroke is sent when the joystick is moved -  down, the "cursor up" keystroke when the joystick is moved up -  and so on. -*/ -const char keystrokes[] = { -  KEY_DOWN_ARROW, -  KEY_LEFT_ARROW, -  KEY_UP_ARROW, -  KEY_RIGHT_ARROW, -  ' ', -  'V', -  'N', -  'B' -}; - -/* -  This is code is run only at startup, to initialize the -  virtual USB keyboard. -*/ -void setup() { -  Keyboard.begin(); -} - -/* -  After setup() is finished, this code is run continuously. -  Here we continuously check if something happened with the -  buttons. -*/ -void loop() {  -   -  // Iterate through all the buttons: -  for (byte thisButton=0; thisButton<8; thisButton++) { -    boolean lastState = buttonStates[thisButton]; -    boolean newState = Esplora.readButton(buttons[thisButton]); -    if (lastState != newState) { // Something changed! -      /*  -        The Keyboard library allows you to "press" and "release" the -        keys as two distinct actions. These actions can be -        linked to the buttons we're handling. -       */ -      if (newState == PRESSED) { -        Keyboard.press(keystrokes[thisButton]); -      } -      else if (newState == RELEASED) { -        Keyboard.release(keystrokes[thisButton]); -      } -    } - -    // Store the new button state, so you can sense a difference later: -    buttonStates[thisButton] = newState; -  } -   -  /* -    Wait a little bit (50ms) between a check and another. -    When a mechanical switch is pressed or released, the -    contacts may bounce very rapidly. If the check is done too -    fast, these bounces may be confused as multiple presses and -    may lead to unexpected behaviour. -   */ -  delay(50); -} - diff --git a/libraries/Esplora/Experts/EsploraPong/EsploraPong.ino b/libraries/Esplora/Experts/EsploraPong/EsploraPong.ino deleted file mode 100644 index 725a109..0000000 --- a/libraries/Esplora/Experts/EsploraPong/EsploraPong.ino +++ /dev/null @@ -1,44 +0,0 @@ -/* -  Esplora Pong -  - This  sketch connects serially to a Processing sketch to control a Pong game. - It sends the position of the slider and the states of three pushbuttons to the  - Processing sketch serially, separated by commas. The Processing sketch uses that  - data to control the graphics in the sketch. -  - The slider sets a paddle's height - Switch 1 is resets the game - Switch 2 resets the ball to the center - Switch 3 reverses the players -  - You can play this game with one or two Esploras. -  - Created on 22 Dec 2012 - by Tom Igoe -  - This example is in the public domain. - */ - -#include <Esplora.h> - -void setup() { -  Serial.begin(9600);     // initialize serial communication -} - -void loop() { -  // read the slider and three of the buttons -  int slider = Esplora.readSlider(); -  int resetButton = Esplora.readButton(SWITCH_1); -  int serveButton = Esplora.readButton(SWITCH_3); -  int switchPlayerButton = Esplora.readButton(SWITCH_4); - -  Serial.print(slider);                // print the slider value -  Serial.print(",");                   // add a comma -  Serial.print(resetButton);           // print the reset button value -  Serial.print(",");                   // add another comma -  Serial.print(serveButton);           // print the serve button value -  Serial.print(",");                   // add another comma -  Serial.println(switchPlayerButton);  // print the last button with a newline -  delay(10);                           // delay before sending the next set -} - diff --git a/libraries/Esplora/Experts/EsploraRemote/EsploraRemote.ino b/libraries/Esplora/Experts/EsploraRemote/EsploraRemote.ino deleted file mode 100644 index 2701089..0000000 --- a/libraries/Esplora/Experts/EsploraRemote/EsploraRemote.ino +++ /dev/null @@ -1,116 +0,0 @@ -/* -  Esplora Remote -  - This sketch allows to test all the Esplora's peripherals. - It is also used with the ProcessingStart sketch (for Processing). -  - When uploaded, you can open the Serial monitor and write one of - the following commands (without quotes) to get an answer: -  - "D": prints the current value of all sensors, separated by a comma. - See the dumpInputs() function below to get the meaning of - each value. -  - "Rxxx" - "Gxxx" - "Bxxx": set the color of the RGB led. For example, write "R255" - to turn on the red to full brightness, "G128" to turn - the green to half brightness, or "G0" to turn off - the green channel. -  - "Txxxx": play a tone with the buzzer. The number is the - frequency, e.g. "T440" plays the central A note. - Write "T0" to turn off the buzzer. -  -  - Created on 22 november 2012 - By Enrico Gueli <enrico.gueli@gmail.com> - Modified 23 Dec 2012 - by Tom Igoe - */ - -#include <Esplora.h> - -void setup() { -  while(!Serial); // needed for Leonardo-based board like Esplora -  Serial.begin(9600); -} - -void loop() { -  if (Serial.available()) -    parseCommand(); -} - -/* - * This function reads a character from the serial line and - * decide what to do next. The "what to do" part is given by - * function it calls (e.g. dumpInputs(), setRed() and so on). - */ -void parseCommand() { -  char cmd = Serial.read(); -  switch(cmd) { -  case 'D':  -    dumpInputs();  -    break; -  case 'R':  -    setRed();  -    break; -  case 'G':  -    setGreen();  -    break; -  case 'B':  -    setBlue();  -    break; -  case 'T':  -    setTone();  -    break; -  } -} - -void dumpInputs() {   -  Serial.print(Esplora.readButton(SWITCH_1));  -  Serial.print(','); -  Serial.print(Esplora.readButton(SWITCH_2));  -  Serial.print(','); -  Serial.print(Esplora.readButton(SWITCH_3));  -  Serial.print(','); -  Serial.print(Esplora.readButton(SWITCH_4));  -  Serial.print(','); -  Serial.print(Esplora.readSlider());          -  Serial.print(','); -  Serial.print(Esplora.readLightSensor());     -  Serial.print(','); -  Serial.print(Esplora.readTemperature(DEGREES_C));  -  Serial.print(','); -  Serial.print(Esplora.readMicrophone());      -  Serial.print(','); -  Serial.print(Esplora.readJoystickSwitch());  -  Serial.print(','); -  Serial.print(Esplora.readJoystickX());       -  Serial.print(','); -  Serial.print(Esplora.readJoystickY());       -  Serial.print(','); -  Serial.print(Esplora.readAccelerometer(X_AXIS));  -  Serial.print(','); -  Serial.print(Esplora.readAccelerometer(Y_AXIS));  -  Serial.print(','); -  Serial.print(Esplora.readAccelerometer(Z_AXIS));  -  Serial.println(); -} - -void setRed() { -  Esplora.writeRed(Serial.parseInt()); -} - -void setGreen() { -  Esplora.writeGreen(Serial.parseInt()); -} - -void setBlue() { -  Esplora.writeBlue(Serial.parseInt()); -} - -void setTone() { -  Esplora.tone(Serial.parseInt()); -} - diff --git a/libraries/Esplora/Experts/EsploraTable/EsploraTable.ino b/libraries/Esplora/Experts/EsploraTable/EsploraTable.ino deleted file mode 100644 index 712dffa..0000000 --- a/libraries/Esplora/Experts/EsploraTable/EsploraTable.ino +++ /dev/null @@ -1,213 +0,0 @@ -/* -  Esplora Table - -  Acts like a keyboard that prints sensor -  data in a table-like text, row by row. -   -  At startup, it does nothing. It waits for you to open a -  spreadsheet (e.g. Google Drive spreadsheet) so it can write -  data. By pressing Switch 1, it starts printing the table -  headers and the first row of data. It waits a bit, then it -  will print another row, and so on. -   -  The amount of time between each row is determined by the slider. -  If put to full left, the sketch will wait 10 seconds; at -  full right position, it will wait 5 minutes. An intermediate -  position will make the sketch wait for some time in-between. -   -  Clicking the Switch 1 at any time will stop the logging. - -  The color LED shows what the sketch is doing: -  blue  = idle, waiting for you to press Switch 1 to start logging -  green = active; will print soon -  red   = printing data to the PC - -  Created on 22 november 2012 -  By Enrico Gueli <enrico.gueli@gmail.com> -  modified 24 Nov 2012 -  by Tom Igoe -*/ - -#include <Esplora.h> - -/* - * this variable tells if the data-logging is currently active. - */ -boolean active = false; - -/* - * this variable holds the time in the future when the sketch - * will "sample" the data (sampling is the act of reading some - * input at a known time). This variable is checked continuously - * against millis() to know when it's time to sample. - */ -unsigned long nextSampleAt = 0; - -/* - * This variable just holds the millis() value at the time the - * logging was activated. This is needed to enter the correct - * value in the "Time" column in the printed table. - */ -unsigned long startedAt = 0; - - -/* - * when the "active" variable is set to true, the same is done - * with this variable. This is needed because the code that does - * the "just-after-activation" stuff is run some time later than - * the code that says "be active now". - */ -boolean justActivated = false; - - -/* - * this variable holds the last sensed status of the switch press - * button. If the code sees a difference between the value of - * this variable and the current status of the switch, it means - * that the button was either pressed or released. - */ -boolean lastStartBtn = HIGH; - -/* - * Initialization code. The virtual USB keyboard must be - * initialized; the Serial class is needed just for debugging. - */ -void setup() { -  Keyboard.begin(); -  Serial.begin(9600); -} - -/* - * This code is run continuously. - */ -void loop() { -  /* -   * note: we don't use Arduino's delay() here, because we can't -   * normally do anything while delaying. Our own version lets us -   * check for button presses often enough to not miss any event. -   */ -  activeDelay(50); -  -  /* -   * the justActivated variable may be set to true in the -   * checkSwitchPress() function. Here we check its status to -   * print the table headers and configure what's needed to. -   */ -  if (justActivated == true) { -    justActivated = false; // do this just once -    printHeaders(); -    // do next sampling ASAP -    nextSampleAt = startedAt = millis(); -  } -   -  if (active == true) { -    if (nextSampleAt < millis()) { -      // it's time to sample! -      int slider = Esplora.readSlider(); -      // the row below maps the slider position to a range between -      // 10 and 290 seconds. -      int sampleInterval = map(slider, 0, 1023, 10, 290); -      nextSampleAt = millis() + sampleInterval * 1000; -       -      logAndPrint(); -    } -     -    // let the RGB led blink green once per second, for 200ms. -    unsigned int ms = millis() % 1000; -    if (ms < 200) -      Esplora.writeGreen(50); -    else -      Esplora.writeGreen(0); -     -    Esplora.writeBlue(0); -  }  -  else -    // while not active, keep a reassuring blue color coming -    // from the Esplora... -    Esplora.writeBlue(20); -     -} - -/* - * Print the table headers. - */ -void printHeaders() { -  Keyboard.print("Time"); -  Keyboard.write(KEY_TAB); -  activeDelay(300); // Some spreadsheets are slow, e.g. Google -                    // Drive that wants to save every edit. -  Keyboard.print("Accel X"); -  Keyboard.write(KEY_TAB); -  activeDelay(300); -  Keyboard.print("Accel Y"); -  Keyboard.write(KEY_TAB); -  activeDelay(300); -  Keyboard.print("Accel Z"); -  Keyboard.println(); -  activeDelay(300); -} - -void logAndPrint() { -  // do all the samplings at once, because keystrokes have delays -  unsigned long timeSecs = (millis() - startedAt) /1000; -  int xAxis = Esplora.readAccelerometer(X_AXIS); -  int yAxis = Esplora.readAccelerometer(Y_AXIS); -  int zAxis = Esplora.readAccelerometer(Z_AXIS); -   -  Esplora.writeRed(100); -   -  Keyboard.print(timeSecs); -  Keyboard.write(KEY_TAB); -  activeDelay(300); -  Keyboard.print(xAxis); -  Keyboard.write(KEY_TAB); -  activeDelay(300); -  Keyboard.print(yAxis); -  Keyboard.write(KEY_TAB); -  activeDelay(300); -  Keyboard.print(zAxis); -  Keyboard.println(); -  activeDelay(300); -  Keyboard.write(KEY_HOME); -   -  Esplora.writeRed(0); -} - -/** - * Similar to delay(), but allows the program to do something else - * in the meanwhile. In particular, it calls checkSwitchPress(). - * Note 1: it may wait longer than the specified amount, not less; - * Note 2: beware of data synchronization issues, e.g. if the - * activeDelay() function alters some variables used by the - * caller of this function. - */ -void activeDelay(unsigned long amount) { -  unsigned long at = millis() + amount; -  while (millis() < at) { -    checkSwitchPress(); -  } -} - -/* - * This function reads the status of the switch; if it sees that - * it was pressed, toggles the status of the "active" variable. - * If it's set to true, also the justActivated variable is set to - * true, so the loop() function above can do the right things. - * This function should be called as often as possible and do as - * little as possible, because it can be called while another - * function is running. - */ -void checkSwitchPress() { -  boolean startBtn = Esplora.readButton(SWITCH_DOWN); - -  if (startBtn != lastStartBtn) { -    if (startBtn == HIGH) { // button released -      active = !active; -      if (active) -        justActivated = true;     -    } -     -    lastStartBtn = startBtn; -  } -} - diff --git a/libraries/Esplora/keywords.txt b/libraries/Esplora/keywords.txt deleted file mode 100644 index b225991..0000000 --- a/libraries/Esplora/keywords.txt +++ /dev/null @@ -1,69 +0,0 @@ -####################################### -# Syntax Coloring Map For Esplora -#######################################  -# Class -####################################### - -Esplora	KEYWORD3 - -####################################### -# Methods and Functions  -#######################################	 - -begin	KEYWORD2 -readSlider	KEYWORD2 -readLightSensor	KEYWORD2 -readTemperature	KEYWORD2 -readMicrophone	KEYWORD2 -readJoystickSwitch	KEYWORD2 -readJoystickButton	KEYWORD2 -readJoystickX	KEYWORD2 -readJoystickY	KEYWORD2 -readAccelerometer	KEYWORD2 -readButton	KEYWORD2 -writeRGB	KEYWORD2 -writeRed	KEYWORD2 -writeGreen	KEYWORD2 -writeBlue	KEYWORD2 -readRed	KEYWORD2 -readGreen	KEYWORD2 -readBlue	KEYWORD2 -tone	KEYWORD2 -noTone	KEYWORD2 - - -####################################### -# Constants -####################################### -  -JOYSTICK_BASE	LITERAL1 -MAX_CHANNELS	LITERAL1 -CH_SWITCH_1	LITERAL1 -CH_SWITCH_2	LITERAL1 -CH_SWITCH_3	LITERAL1 -CH_SWITCH_4	LITERAL1 -CH_SLIDER	LITERAL1 -CH_LIGHT	LITERAL1 -CH_TEMPERATURE	LITERAL1 -CH_MIC	LITERAL1 -CH_JOYSTICK_SW	LITERAL1 -CH_JOYSTICK_X	LITERAL1 -CH_JOYSTICK_Y	LITERAL1 -SWITCH_1	LITERAL1 -SWITCH_2	LITERAL1 -SWITCH_3	LITERAL1 -SWITCH_4	LITERAL1 -SWITCH_DOWN	LITERAL1 -SWITCH_LEFT	LITERAL1 -SWITCH_UP	LITERAL1 -SWITCH_RIGHT	LITERAL1 -JOYSTICK_DOWN	LITERAL1 -JOYSTICK_LEFT	LITERAL1 -JOYSTICK_UP	LITERAL1 -PRESSED	LITERAL1 -RELEASED	LITERAL1 -DEGREES_C	LITERAL1 -DEGREES_F	LITERAL1 -X_AXIS	LITERAL1 -Y_AXIS	LITERAL1 -Z_AXIS	LITERAL1 | 
