examples/pebble/pebble.markdown
# Sphero + Pebble
For this Cylon example, we're going to hook up to a Sphero,
and control it using pebble accelerometer.
Before we get started, make sure you've got the `cylon-sphero` module installed.
To get started, let's import the Cylon module:
var Cylon = require('cylon');
Then we setup API to listen on port 8080:
Cylon.api({
host: '0.0.0.0',
port: '8080',
ssl: false
});
With that set up, we can start defining our robot:
Cylon.robot({
We setup connections an devices for sphero and pebble:
connections: {
sphero: { adaptor: 'sphero', port: '/dev/tty.Sphero-YBW-RN-SPP' },
pebble: { adaptor: 'pebble' }
},
devices: {
sphero: { driver: 'sphero' },
pebble: { driver: 'pebble' }
},
Then we create and set variable heading and speed to 0:
heading: 0,
speed: 0,
And now we can start defining our robot's work.
work: function(my) {
Every second we will change update sphero direction using calculated heading value:
every((0.1).second(), function() {
my.sphero.roll(100, my.heading);
});
When we receive data from pebble accelerometer we calculate new heading value:
my.pebble.on('accel', function(data) {
values = data.split(",");
x = values[0];
y = values[1];
my.speed = Math.round(Math.max(Math.abs(x)/6, Math.abs(y)/6));
my.heading = Math.round(((180.0 - (Math.atan2(y,x) * (180.0 / Math.PI)))));
});
And with all that done, we can finally start the robot.
}).start();