// ---------------------------------------------------------------
// Let's connect_the_dots
// You can adapt the below code to your own sensors configuration
function connect_the_dots()
{
    console.log("Device Ready to connect its dots");
        
    var temp = 25;
    var acc = 0;
    var nbaccmeasures = 0;

    // Initialize temperature sensor
    var multi = new five.Multi({
        controller: "BMP180"
    });
    
    multi.on("change", function() {
        // console.log("BMP180");
        // console.log("  pressure     : ", this.barometer.pressure);
        // console.log("  temperature  : ", this.temperature.celsius)
        // console.log("--------------------------------------");
        temp = this.temperature.celsius;
        // var currentTime = new Date().toISOString();
        // send_message(format_sensor_data(settings.guid1, settings.displayname, settings.organization, settings.location, "Temperature", "C", currentTime , this.temperature.celsius), currentTime);
    
    });
    
    // Initialize accelerometer    
    var accelerometer = new five.Accelerometer({
        controller: "ADXL345"
    });
    
    accelerometer.on("change", function() {
        // console.log("accelerometer");
        // console.log("  x            : ", this.x);
        // console.log("  y            : ", this.y);
        // console.log("  z            : ", this.z);
        // console.log("  pitch        : ", this.pitch);
        // console.log("  roll         : ", this.roll);
        // console.log("  acceleration : ", this.acceleration);
        // console.log("  inclination  : ", this.inclination);
        // console.log("  orientation  : ", this.orientation);
        // console.log("--------------------------------------");
        acc += this.acceleration;
        nbaccmeasures++ ;
        // var currentTime = new Date().toISOString();
        // send_message(format_sensor_data(settings.guid2, settings.displayname, settings.organization, settings.location, "Acceleration", "G", currentTime , this.acceleration), currentTime);
    });
    
    // send data to Azure every 500 milliseconds    
    setInterval(function(){
        connectthedots.send_message("Temperature", "C", temp);
        if (nbaccmeasures>1)
        {
            acc = acc/nbaccmeasures;
            connectthedots.send_message("Acceleration", "G", acc);
            acc = 0;
            nbaccmeasures = 0;
        }
    }, 500);
}
board.on("ready", function() {

  var accel = new five.Accelerometer({
    controller: Playground.Accelerometer,
  });

  accel.on("tap", () => console.log("tap"));

  accel.on("change", () => {
    console.log("  x            : ", accel.x);
    console.log("  y            : ", accel.y);
    console.log("  z            : ", accel.z);
    console.log("--------------------------------------");
  });
});
Ejemplo n.º 3
0
board.on('ready', function() {
  var accelerometer = new five.Accelerometer({
    controller: "ADXL345"
  });

  accelerometer.on("change", function() {
    console.log("accelerometer");
    console.log("  x            : ", this.x);
    console.log("  y            : ", this.y);
    console.log("  z            : ", this.z);
    console.log("  pitch        : ", this.pitch);
    console.log("  roll         : ", this.roll);
    console.log("  acceleration : ", this.acceleration);
    console.log("  inclination  : ", this.inclination);
    console.log("  orientation  : ", this.orientation);
    console.log("--------------------------------------");
  });
});
Ejemplo n.º 4
0
board.on("ready", function() {
  "use strict";

  // Create a new `Accelerometer` hardware instance.
  //
  // five.Accelerometer([ x, y[, z] ]);
  //
  // five.Accelerometer({
  //   pins: [ x, y[, z] ]
  //   freq: ms
  // });
  //

  accel = new five.Accelerometer({
    pins: [ "A0", "A1", "A2" ],
    freq: 100,
    threshold: 0.01
  });

  // Accelerometer Event API

  // "acceleration"
  //
  // Fires once every N ms, equal to value of freg
  // Defaults to 500ms
  //
  accel.on("acceleration", function( err, data ) {
    // console.log( "acceleration", data.smooth );
  });

  // "axischange"
  //
  // Fires only when X, Y or Z has changed
  //
  accel.on("axischange", function( err, data ) {
    console.log( "axischange", data.smooth );
  });
});
Ejemplo n.º 5
0
board.on("ready", function () {
  var accelerometer = new five.Accelerometer({
    controller: "ADXL345"
  });
  var compass = new five.Compass({
    controller: "HMC5883L"
  });
  var x, y, z;
  var heading, bearing;
  var accelerometerReadings = 0;
  var compassReadings = 0;

  setInterval(function () {
    console.log(compassReadings + ' '
      + heading + ' '
      + bearing + ' '
      + accelerometerReadings + ' '
      + x + ' '
      + y + ' '
      + z);
  }, 500);

  accelerometer.on("data", function () {
    x = this.x;
    y = this.y;
    z = this.z;

    accelerometerReadings += 1;
  });

  compass.on("data", function () {
    heading = Math.floor(this.heading);
    bearing = this.bearing.name;

    compassReadings += 1;
  });
});
Ejemplo n.º 6
0
board.on("ready", function() {

  /**
   * Playground Controllers
   */
  var accelerometer = new five.Accelerometer({
    controller: Playground.Accelerometer
  });

  var pixels = new five.Led.RGBs({
    controller: Playground.Pixel,
    pins: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  });

  var pads = new five.Touchpad({
    controller: Playground.Touchpad,
    pads: [0, 10],
  });

  var piezo = new five.Piezo({
    controller: Playground.Piezo,
    pin: 5,
  });

  var thermometer = new five.Thermometer({
    controller: Playground.Thermometer,
    freq: 100
  });

  /**
   * Default Component Controllers
   * @type {five}
   */
  var buttons = new five.Buttons([4, 19]);

  var led = new five.Led(13);

  var light = new five.Sensor({
    pin: "A5",
    freq: 100
  });

  var sound = new five.Sensor({
    pin: "A4",
    freq: 100
  });

  var toggle = new five.Switch(21);

  /**
   * Events and Data Handling
   */
  accelerometer.on("tap", (data) => {
    piezo.frequency(data.double ? 1500 : 500, 50);
  });

  board.loop(1000, () => {
    console.log("Raw Light: %d", light.value);
    console.log("Raw Sound: %d", sound.value);
  });

  buttons.on("press", (button) => {
    console.log("Which button was pressed? ", button.pin);
    if (button.pin === 4) {
      led.on();
    }
    if (button.pin === 19) {
      led.off();
    }
  });

  thermometer.on("change", (data) => {
    console.log("Celcius: %d", data.C);
  });

  pads.on("change", (data) => {
    if (data.type === "down") {
      piezo.frequency(700, 50);
    } else {
      piezo.noTone();
    }
  });

  var index = 0;
  var colors = [
    "red",
    "orange",
    "yellow",
    "green",
    "blue",
    "indigo",
    "violet",
  ];

  setInterval(() => {
    pixels.forEach(pixel => pixel.color(colors[index]));
    if (++index === colors.length) {
      index = 0;
    }
  }, 100);
});
Ejemplo n.º 7
0
board.on('ready', function () {
  /**
   *    * Playground Controllers
   *       */
  var accelerometer = new five.Accelerometer({
    controller: Playground.Accelerometer
  })

  var pixels = new five.Led.RGBs({
    controller: Playground.Pixel,
    pins: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  })

  var pads = new five.Touchpad({
    controller: Playground.Touchpad,
    pads: [0, 10]
  })

  var piezo = new five.Piezo({
    controller: Playground.Piezo,
    pin: 5
  })

  var thermometer = new five.Thermometer({
    controller: Playground.Thermometer,
    freq: 100
  })

  /**
   *    * Default Component Controllers
   *       * @type {five}
   *          */
  var buttons = new five.Buttons([4, 19])

  var led = new five.Led(13)

  var light = new five.Sensor({
    pin: 'A5',
    freq: 100
  })

  var sound = new five.Sensor({
    pin: 'A4',
    freq: 100
  })

  // var toggle = new five.Switch(21)

  /**
   *    * Events and Data Handling
   *       */
  accelerometer.on('tap', (data) => {
    piezo.frequency(data.double ? 1500 : 500, 50)
  })

  board.loop(1000, () => {
    console.log('Raw Light: %d', light.value)
    console.log('Raw Sound: %d', sound.value)
  })

  buttons.on('press', (button) => {
    console.log('Which button was pressed? ', button.pin)
    if (button.pin === 4) {
      led.on()
    }
    if (button.pin === 19) {
      led.off()
    }
  })

  thermometer.on('change', (data) => {
    console.log('Celcius: %d', data.C)
  })

  pads.on('change', (data) => {
    if (data.type === 'down') {
      piezo.frequency(700, 50)
    } else {
      piezo.noTone()
    }
  })

  var index = 0
  var colors = [
    'red',
    'orange',
    'yellow',
    'green',
    'blue',
    'indigo',
    'violet'
  ]

  setInterval(() => {
    pixels.forEach(pixel => pixel.color(colors[index]))
    if (++index === colors.length) {
      index = 0
    }
  }, 100)
})
Ejemplo n.º 8
0
board.on("ready", function() {
        
    var servoX = new five.Servo({
      pin: 5,
      startAt: 90,
      range: [90, 160]
    });
    
    var servoY = new five.Servo({
      pin: 6,
      startAt: 50,
      range: [40, 60]
    });
    var servoXCurrent = 90;
    var servoYCurrent = 20;
    var servoYDefault = 40;
    
    servoX.stop();
    servoY.stop();
    
    servoX.to(90);
    servoY.to(servoYDefault);
    
    
  var lcd = new five.LCD({
    controller: "JHD1313M1"
  });

  lcd.bgColor("#00ff00");
  lcd.cursor(0, 0).print("GUN MODE: 0");
    
var temperature = new groveSensor.GroveTemp(3);
var light = new groveSensor.GroveLight(1);
console.log(temperature.name());
console.log(light.name());
    
/*var upmMicrophone = require("jsupm_mic");
// Attach microphone to analog port A0
var myMic = new upmMicrophone.Microphone(1);

var threshContext = new upmMicrophone.thresholdContext;
threshContext.averageReading = 0;
threshContext.runningAverage = 0;
threshContext.averagedOver = 2;*/
    

    var waiting = setInterval(function() {
    
    var celsius = temperature.value();
        temperatureVal = celsius;
        lightVal = light.value();
    //console.log("light", light.value());
    lcd.cursor(1, 0).print(celsius + "C");
    lcd.cursor(0, 13).print(light.value().toString().slice(0,3));   
    
    try {
        io.emit('temperature', { for: 'everyone', temperature: celsius });    
        io.emit('light', { for: 'everyone', light: light.value() });
    } catch(ex) {
        console.log(ex);
    }
    
    /////////////////
    /*var buffer = new upmMicrophone.uint16Array(128);
    var len = myMic.getSampledWindow(2, 128, buffer);
        console.log("len", len);
    if (len)
    {
        var thresh = myMic.findThreshold(threshContext, 30, buffer, len);
        
        if (thresh) {
            try {
                io.emit('thresh', { for: 'everyone', thresh: thresh });
                console.log(tresh);
            } catch(ex) {};
            //myMic.printGraph(threshContext);
        }
    }*/
    //////////////
    io.emit('canon', { for: 'everyone', 'canonX': servoX.position, 'canonY': servoY.position });  
    switch (GunMode) {              
          case 0:            
              break;
    }
    
}, 500);
    
  

    
  var button = new five.Button(2);

  // The following will turn the Led
  // on and off as the button is
  // pressed and released.
  button.on("press", function() {
    buzzer.periodicBuzzerActivity(1);
      if (GunMode<3) { //3
          GunMode++;
      } else {
          GunMode = 0;
      }
      console.log("GunMode", GunMode);
  });

  button.on("release", function() {
    buzzer.periodicBuzzerActivity(0);
      
      lcd.cursor(0, 10).print(GunMode);
      switch (GunMode) {
          case 0:
              lcd.bgColor("#00ff00");

              servoX.to(90);
              servoY.to(servoYDefault);
              servoX.stop();
              servoY.stop();
              playSong(["client/sounds/gun_mode_0.mp3","client/sounds/gun_is_disabled.mp3"], function() {
              });
              break;
          case 2: 
              lcd.bgColor("#0000ff");
              servoX.stop();
              servoY.stop();
              servoX.sweep();
              //servoX.to(160, 1000);
              console.log("sweep1");
              /*servoY.sweep({
                  //interval: 3000,
                  step: 10
              });*/
              playSong(["client/sounds/gun_mode_2.mp3","client/sounds/Automatic_gun_mod.mp3"], function() {
                  //playSong("client/sounds/Automatic_gun_mod.mp3");
              });
              break;
          case 3: 
              lcd.bgColor("#0088ff");
              servoX.stop();
              servoY.stop();
              servoX.sweep();
              servoY.sweep();
              //servoX.to(160, 1000);
              console.log("sweep1");
              /*servoY.sweep({
                  //interval: 3000,
                  step: 10
              });*/
              playSong(["client/sounds/gun_mode_3.mp3","client/sounds/Automatic_gun_mod.mp3"], function() {
                  //playSong("client/sounds/Automatic_gun_mod.mp3");
              });
              break;
          case 1: 
              lcd.bgColor("#ff0000");
              servoX.stop();
              servoY.stop();
              servoX.to(90);
              servoY.to(servoYDefault);
              servoXCurrent = 90;
              servoYCurrent = servoYDefault;
              playSong( ["client/sounds/gun_mode_1.mp3", "client/sounds/manual_control_for_gun.mp3"], function() {
                  //playSong("client/sounds/manual_control_for_gun.mp3");
              });
              break;
              
          /*case 3: 
              lcd.bgColor("#ff00ff");
              servoX.stop();
              servoY.stop();
              servoX.to(90);
              servoY.to(servoYDefault);
              servoXCurrent = 90;
              servoYCurrent = servoYDefault;
              break;*/
          default:
      }
  });
    
process.on('SIGINT', function()
{
  clearInterval(myInterval);
    servoX.to(90);
    servoY.to(servoYDefault);
  console.log("Exiting...");
  process.exit(0);
});
    
    
    /*var proximity = new five.Proximity({
     //controller: "HCSR04",
     // pin: 7
      //pin: "A2"
      controller: "HCSR04I2CBACKPACK"
    });*/

// When exiting: clear interval and print message

    var led = new five.Led(4);
    led.blink(500);
    
  var joystick = new five.Joystick(["A0", "A1"]);

  // Observe change events from the Joystick!
  joystick.on("change", function() {
      try {
        io.emit('stick', { for: 'everyone', stickX: this.x, stickY: this.y });
      } catch(ex) {
          console.log(ex);
      }
      
      if (GunMode === 1) {
      lcd.cursor(1, 12).print(this.y.toString().slice(0,4));      
      lcd.cursor(1, 7).print(this.x.toString().slice(0,4));
          
      //console.log("  x            : ", this.x);
      //console.log("  y            : ", this.y);
      
      if (Math.abs(this.x)>0.3) {
          servoXCurrent += this.x*4;
          if (servoXCurrent>160) {
              servoXCurrent = 160;
          }
          if (servoXCurrent<90) {
              servoXCurrent = 90;
          }
          servoXCurrent = Math.round(servoXCurrent);
          servoX.to(servoXCurrent);
      }
      
      if (Math.abs(this.y)>0.2) {
          servoYCurrent += this.y*3;
          if (servoYCurrent>60) {
              servoYCurrent = 60;
          }
          if (servoYCurrent<servoYDefault) {
              servoYCurrent = servoYDefault;
          }
          servoYCurrent = Math.round(servoYCurrent);
          servoY.to(servoYCurrent);
      }    
      }
  });
    
  var acceleration = new five.Accelerometer({
    controller: "MMA7660"
  });

  acceleration.on("change", function() {
      
      try {
        io.emit('accel', { for: 'everyone', accelX: this.x, accelY: this.y, accelZ: this.z, pitch: this.pitch, roll: this.roll, acceleration: this.acceleration, inclination: this.inclination, orientation: this.orientation});
      } catch(ex) {
          console.log(ex);
      }
      
    /*if (GunMode === 3) {
    lcd.cursor(1, 12).print(this.y.toString().slice(0,4));
      
    lcd.cursor(1, 7).print(this.x.toString().slice(0,4));   
    
      
      if (Math.abs(this.x - 1)>0.3) {
          servoXCurrent += (this.x - 1);
          if (servoXCurrent>140) {
              servoXCurrent = 140;
          }
          if (servoXCurrent<40) {
              servoXCurrent = 40;
          }
          
          servoX.to(servoXCurrent);
      }
      
      if (Math.abs(this.y)>0.1) {
          servoYCurrent += this.y;
          if (servoYCurrent>140) {
              servoYCurrent = 140;
          }
          if (servoYCurrent<20) {
              servoYCurrent =20;
          }
          servoY.to(servoYCurrent);
      } 
      }*/
    
  });
    


    
});