From d2d8b5e3618240d9d557d25ca346b3054bd6455e Mon Sep 17 00:00:00 2001 From: David Resseguie Date: Thu, 5 Jun 2014 20:33:33 -0400 Subject: [PATCH 1/3] Additional LED examples --- eg/led-rainbow.js | 31 ++++++++++++ eg/led-rgb.js | 27 +++++------ eg/led.js | 118 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 14 deletions(-) create mode 100644 eg/led-rainbow.js create mode 100644 eg/led.js diff --git a/eg/led-rainbow.js b/eg/led-rainbow.js new file mode 100644 index 0000000..6fd2a6e --- /dev/null +++ b/eg/led-rainbow.js @@ -0,0 +1,31 @@ +var five = require("johnny-five"), + Spark = require("../lib/spark"), + keypress = require("keypress"), + board; + + +// Create Johnny-Five board connected via Spark +board = new five.Board({ + io: new Spark({ + token: process.env.SPARK_TOKEN, + deviceId: process.env.SPARK_DEVICE_ID + }) +}); + +board.on("ready", function() { + var rbg, rainbow, index; + + + // Initialize the RGB LED + rgb = new five.Led.RGB(["A5","A6","A7"]); + rainbow = ["FF000", "FF7F00", "00FF00", "FFFF00", "0000FF", "4B0082", "8F00FF"]; + index = 0; + + setInterval(function() { + if (index + 1 === rainbow.length) { + index = 0; + } + rgb.color(rainbow[index++]); + }, 500); + +}); diff --git a/eg/led-rgb.js b/eg/led-rgb.js index c0892fb..3939cf7 100644 --- a/eg/led-rgb.js +++ b/eg/led-rgb.js @@ -1,6 +1,6 @@ -var five = require("johnny-five"), - Spark = require("../lib/spark"), - keypress = require('keypress'), +var five = require("johnny-five"), + Spark = require("../lib/spark"), + keypress = require("keypress"), board; @@ -19,11 +19,11 @@ board.on("ready", function() { // Initialize the RGB LED - var a = new five.Led.RGB({ + var led = new five.Led.RGB({ pins: { - red: "A5", + red: "A5", green: "A6", - blue: "A7" + blue: "A7" } }); @@ -35,15 +35,15 @@ board.on("ready", function() { // green: g, // blue: b // } - //var a = new five.Led.RGB(["A5","A6","A7"]); + //var led = new five.Led.RGB(['A5','A6','A7']); // Turn it on and set the initial color - a.on(); - a.color("#FF0000"); + led.on(); + led.color("#FF0000"); // Listen for user input to change the RGB color process.stdin.resume(); - process.stdin.setEncoding('utf8'); + process.stdin.setEncoding("utf8"); process.stdin.setRawMode(true); var keymap = { @@ -53,17 +53,16 @@ board.on("ready", function() { w: "#FFFFFF" // white }; - process.stdin.on('keypress', function (ch, key) { + process.stdin.on("keypress", function (ch, key) { if ( !key ) { return; } if (keymap[key.name]) { - a.color(keymap[key.name]); - a.on(); + led.color(keymap[key.name]); } else { - a.off(); + led.off(); } }); diff --git a/eg/led.js b/eg/led.js new file mode 100644 index 0000000..c2d44ff --- /dev/null +++ b/eg/led.js @@ -0,0 +1,118 @@ +var five = require("johnny-five"), + Spark = require("../lib/spark"), + temporal = require("temporal"), + board; + + +// Create Johnny-Five board connected via Spark +board = new five.Board({ + io: new Spark({ + token: process.env.SPARK_TOKEN, + deviceId: process.env.SPARK_DEVICE_ID + }) +}); + +board.on("ready", function() { + var led = new five.Led(process.argv[2] || "D0"); + + this.repl.inject({ + led: led + }); + + temporal.queue([ + { + delay: 0, + task: function(){ + // on() + // + // Turns the led on + led.on(); + console.log("led on"); + } + },{ + delay: 1000, + task: function(){ + // off() + // + // Turns the led off + led.off(); + console.log("led off"); + } + }, +/* Commenting out pulse because it kills the Spark! + { + delay: 1000, + task: function(){ + // pulse() + // + // Pulse the led (fade in and out) + led.pulse(); + console.log("led pulse"); + } + }, +*/ + { + delay: 3000, + task: function(){ + // strobe() + // + // Strobe the led (on/off) + led.strobe(); + console.log("led strobe"); + } + },{ + delay: 3000, + task: function(){ + // stop() + // + // Stop the pulse + led.stop(); + console.log("led stop"); + + // If you want to make sure it's off + // in case it stopped it while on + led.off(); + } + },{ + delay: 1000, + task: function(){ + // fadeIn() + // + // Fade in the led + led.fadeIn(); + console.log("led fadeIn"); + } + },{ + delay: 3000, + task: function(){ + // fadeOut() + // + // Fade out the led + led.fadeOut(); + console.log("led fadeOut"); + } + },{ + delay: 3000, + task: function(){ + // brightness () + // + // set analog brightness (0-255) + led.brightness(100); + console.log("led brightness"); + + // Exit gracefully + process.exit(0); + } + } + ]); + + +}); + +// @markdown +// To make use of `Led` methods like `fade`, `pulse`, `animate`, you'll need to +// wire an LED to a PWM pin (A0, A1, A4, A5, A6, A7, D0 and D1). +// If you use a different pin, make sure to run the script with the correct pin number: +// +// `node eg/led.js [pinNumber]` +// @markdown \ No newline at end of file From 1da15695f2723791ce879e7ed57ce80ab7a1354a Mon Sep 17 00:00:00 2001 From: David Resseguie Date: Thu, 5 Jun 2014 21:07:44 -0400 Subject: [PATCH 2/3] Make it pretty with jsbeautifier --- eg/led-rainbow.js | 6 +++--- eg/led-rgb.js | 14 +++++++------- eg/led.js | 48 +++++++++++++++++------------------------------ 3 files changed, 27 insertions(+), 41 deletions(-) diff --git a/eg/led-rainbow.js b/eg/led-rainbow.js index 6fd2a6e..bc3cb48 100644 --- a/eg/led-rainbow.js +++ b/eg/led-rainbow.js @@ -1,5 +1,5 @@ -var five = require("johnny-five"), - Spark = require("../lib/spark"), +var five = require("johnny-five"), + Spark = require("../lib/spark"), keypress = require("keypress"), board; @@ -17,7 +17,7 @@ board.on("ready", function() { // Initialize the RGB LED - rgb = new five.Led.RGB(["A5","A6","A7"]); + rgb = new five.Led.RGB(["A5", "A6", "A7"]); rainbow = ["FF000", "FF7F00", "00FF00", "FFFF00", "0000FF", "4B0082", "8F00FF"]; index = 0; diff --git a/eg/led-rgb.js b/eg/led-rgb.js index 3939cf7..b2534d8 100644 --- a/eg/led-rgb.js +++ b/eg/led-rgb.js @@ -1,5 +1,5 @@ -var five = require("johnny-five"), - Spark = require("../lib/spark"), +var five = require("johnny-five"), + Spark = require("../lib/spark"), keypress = require("keypress"), board; @@ -21,9 +21,9 @@ board.on("ready", function() { // Initialize the RGB LED var led = new five.Led.RGB({ pins: { - red: "A5", + red: "A5", green: "A6", - blue: "A7" + blue: "A7" } }); @@ -53,9 +53,9 @@ board.on("ready", function() { w: "#FFFFFF" // white }; - process.stdin.on("keypress", function (ch, key) { - - if ( !key ) { + process.stdin.on("keypress", function(ch, key) { + + if (!key) { return; } diff --git a/eg/led.js b/eg/led.js index c2d44ff..09ac5d5 100644 --- a/eg/led.js +++ b/eg/led.js @@ -1,5 +1,5 @@ -var five = require("johnny-five"), - Spark = require("../lib/spark"), +var five = require("johnny-five"), + Spark = require("../lib/spark"), temporal = require("temporal"), board; @@ -19,50 +19,36 @@ board.on("ready", function() { led: led }); - temporal.queue([ - { + temporal.queue([{ delay: 0, - task: function(){ + task: function() { // on() // // Turns the led on led.on(); console.log("led on"); } - },{ + }, { delay: 1000, - task: function(){ + task: function() { // off() // // Turns the led off led.off(); console.log("led off"); } - }, -/* Commenting out pulse because it kills the Spark! - { - delay: 1000, - task: function(){ - // pulse() - // - // Pulse the led (fade in and out) - led.pulse(); - console.log("led pulse"); - } - }, -*/ - { + }, { delay: 3000, - task: function(){ + task: function() { // strobe() // // Strobe the led (on/off) led.strobe(); console.log("led strobe"); } - },{ + }, { delay: 3000, - task: function(){ + task: function() { // stop() // // Stop the pulse @@ -73,27 +59,27 @@ board.on("ready", function() { // in case it stopped it while on led.off(); } - },{ + }, { delay: 1000, - task: function(){ + task: function() { // fadeIn() // // Fade in the led led.fadeIn(); console.log("led fadeIn"); } - },{ + }, { delay: 3000, - task: function(){ + task: function() { // fadeOut() // // Fade out the led led.fadeOut(); console.log("led fadeOut"); } - },{ + }, { delay: 3000, - task: function(){ + task: function() { // brightness () // // set analog brightness (0-255) @@ -115,4 +101,4 @@ board.on("ready", function() { // If you use a different pin, make sure to run the script with the correct pin number: // // `node eg/led.js [pinNumber]` -// @markdown \ No newline at end of file +// @markdown From ddae25aa50eed167214993a7fd38e83b5e9d19c4 Mon Sep 17 00:00:00 2001 From: David Resseguie Date: Thu, 5 Jun 2014 21:09:09 -0400 Subject: [PATCH 3/3] typo in rgb var name (via jshint) --- eg/led-rainbow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eg/led-rainbow.js b/eg/led-rainbow.js index bc3cb48..300835b 100644 --- a/eg/led-rainbow.js +++ b/eg/led-rainbow.js @@ -13,7 +13,7 @@ board = new five.Board({ }); board.on("ready", function() { - var rbg, rainbow, index; + var rgb, rainbow, index; // Initialize the RGB LED