cylon/examples/sphero_shakeometer/sphero_shakeometer.js

59 lines
1.2 KiB
JavaScript

"use strict";
var Cylon = require("cylon");
Cylon.robot({
connections: {
sphero: { adaptor: "sphero", port: "/dev/tty.Sphero-YBW-RN-SPP" }
},
devices: {
sphero: { driver: "sphero" }
},
work: function(my) {
var max = 0;
var changingColor = false;
my.sphero.setDataStreaming(["velocity"], { n: 40, m: 1, pcnt: 0 });
my.sphero.on("data", function(data) {
if (!changingColor) {
var x = Math.abs(data[0]),
y = Math.abs(data[1]);
if (x > max) {
max = x;
}
if (y > max) {
max = y;
}
}
});
every((0.6).second(), function() {
changingColor = true;
if (max < 10) {
my.sphero.setColor("white");
} else if (max < 100) {
my.sphero.setColor("lightyellow");
} else if (max < 150) {
my.sphero.setColor("yellow");
} else if (max < 250) {
my.sphero.setColor("orange");
} else if (max < 350) {
my.sphero.setColor("orangered");
} else if (max < 450) {
my.sphero.setColor("red");
} else {
my.sphero.setColor("darkred");
}
max = 0;
changingColor = false;
});
}
}).start();