0.3.2 • Published 10 years ago

bean-io v0.3.2

Weekly downloads
3
License
ISC
Repository
github
Last release
10 years ago

Bean-io

Bean-io is a Firmata-compatibility IO class for writing node programs that interact with LightBlue Bean devices. Bean-io was built at IcedDev

Installation

npm install bean-io

Getting Started

In order to use the bean-io library, you will need to load a special version of Firmata onto your Bean device. Bean Firmata

We recommend you review Punchthrough's Getting Started guide before continuing.

Linux Instructions

Make sure that libbluetooth-dev and bluez libraries are installed before installing bean-io.

Blink an Led

The "Hello World" of microcontroller programming:

var beanio = require("bean-io");
var board = new beanio.Board({
  timeout: 30000 //optional - defaults to 30 seconds
  // uuid: 'myUuid' //optional - will use first bean found
});

board.on("ready", function() {
  console.log("CONNECTED");
  this.pinMode(13, this.MODES.OUTPUT);

  var byte = 0;

  // This will "blink" the on board led
  setInterval(function() {
    this.digitalWrite(13, (byte ^= 1));
  }.bind(this), 500);
});

Johnny-Five IO Plugin

Bean-IO can be used as an IO Plugin for Johnny-Five:

var five = require("johnny-five");
var beanio = require("bean-io");
var board = new five.Board({
  io: new beanio.Board()
});

board.on("ready", function() {
  var led = new five.Led({pin: 13});
  led.blink();
});

Use ble-bean and Johnny-Five Api Together

var five = require("johnny-five");
var beanio = require("bean-io");
var boardIO = new beanio.Board({
//    name: "ZAPP" // optional: you can specify a localName otherwise defaults to nearby bean
});

var board = new five.Board({
  io: boardIO
});

board.on("ready", function() {

  var button = new five.Button(12); // button on pin 4

  button.on("down", function() {
    console.log("down");
    boardIO.connectedBean.setColor(new Buffer([0, 64, 64]), function(err){
      console.log('set color on', err);
    });
  });

  button.on("hold", function() {
    console.log("hold");
    boardIO.connectedBean.setColor(new Buffer([0, 0, 0]), function(err){
      console.log('set color off', err);
    });
  });

  button.on("up", function() {
    console.log("up");

  });
});

API

Bean-IO subclasses firmata.js and provides the same API.

Pin Mappings

Bean to Arduino UNO

Bean PortArduino PinType
A018Analog/Digital
A119AnalogDigital
06Digital — Unavailable right now from firmata
19Digital — Unavailable right now from firmata
210Digital
311Digital
412Digital
513Digital
0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

11 years ago

0.1.0

11 years ago