Skip to content

monteslu/bean-io

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 

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 Port Arduino Pin Type
A0 18 Analog/Digital
A1 19 AnalogDigital
0 6 Digital — Unavailable right now from firmata
1 9 Digital — Unavailable right now from firmata
2 10 Digital
3 11 Digital
4 12 Digital
5 13 Digital

About

Punchthrough LightBlue Bean IO for use with Johnny-five

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published