rwaldron/johnny-five — pull request #544 by BrianGenisio (2014-12-22 21:20:57+00:00)
Title: Adding IMU support for the MPU6050

There are a lot of changes in this PR.

I have added support for an `IMU`, specifically the MPU6050.

In the process, it required a refactoring of the `Accelerometer` and `Gyro` classes. It also required the creation of a `Temperature` class. Since the IMU is a single device which exposes multiple devices, there is also a new concept called `Board.Breakouts` which creates a single device that supplies data to multiple devices.

## To create an IMU, you can do this:

```javascript
var imu = new five.IMU({
controller: "MPU6050"
});

//imu.accelerometer
//imu.temperature
//imu.gyro
```

If you only want one, you can do that too:

```javascript
var accelerometer = new five.Accelerometer({
controller: "MPU6050"
});
```

The same is true of `Temperature` or `Gyro`.

Default controllers for `Accelerometer` and `Gyro` are "ANALOG" which have the same behavior as before.