Coder Social home page Coder Social logo

bean-io's Introduction

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

bean-io's People

Contributors

monteslu avatar jacobrosenthal avatar samrocksc avatar

Watchers

James Cloos avatar Moheeb Zara avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.