PLEASE NOTE: This site is no longer being actively maintained. For frequently updated BeagleBone resources please visit Beaglebone.org.

We have uploaded all of our workshop materials and made them available for either online viewing or download.

Workshop Guide

This guide gives an overview of the workshop and step by step instructions for each of the 5 projects.
View Workshop Guide - Using a BreadBoard or Workshop Cape Version

Code

Find all the code for our five Workshop Projects below.

Project 1 - Blink an LED


var b = require('bonescript');  // Read library

var ledPin = "P9_14";  // Select pin
var state = 1;  // Set LED state
var interval = 200;  // Set interval (in ms)

b.pinMode(ledPin, b.OUTPUT);  // Set pin to output

function toggleLED() {  // Switch LED on or off
   state = state ? 0 : 1;
   b.digitalWrite(ledPin, state);
}

setInterval(toggleLED, interval);  // Call function at set interval
Download Project 1 .js File

Project 2 - Red Yellow and Green LEDs


var b = require('bonescript');  // Read library

var ledPin1 = "P9_14";  // Select pins
var ledPin2 = "P9_16";  
var ledPin3 = "P8_19";

b.pinMode(ledPin1, b.OUTPUT);  // Enable pins and set to output
b.pinMode(ledPin2, b.OUTPUT);
b.pinMode(ledPin3, b.OUTPUT);

setInterval(random, 300);  // Call function 'random' every 300ms

function random(){  // Define function 'random'
   b.digitalWrite(ledPin1, Math.round(Math.random()));
   b.digitalWrite(ledPin2, Math.round(Math.random()));
   b.digitalWrite(ledPin3, Math.round(Math.random()));
}
Download Project 2 .js File

Project 3 - Read a Push Button Switch, Control 3 LEDs


var b = require('bonescript');

var ledPin1 = "P9_14";
var ledPin2 = "P9_16";
var ledPin3 = "P8_19";
var switchPin = "P8_26";
var state = 0;
var mode = 0;

b.pinMode(ledPin1, b.OUTPUT);
b.pinMode(ledPin2, b.OUTPUT);
b.pinMode(ledPin3, b.OUTPUT);
b.pinMode(switchPin, b.INPUT);
blank();  // switch all LED's off

setInterval (inputHandler, 200);

function inputHandler() {     // detect switch push
   b.digitalRead(switchPin, activate);
   function activate(x){
       if (x.value == '0') mode = mode+1;
       if (mode > 2) mode = 0;
       console.log (mode);
   }
   switch (mode){
       case 0:
           blank();
       break;
       case 1:
           sequence();
       break;
       case 2:
           random();
       break;
   }
}

function sequence() {
   if(state == '1') {
       b.digitalWrite(ledPin1, b.HIGH);
       b.digitalWrite(ledPin2, b.LOW);
       b.digitalWrite(ledPin3, b.LOW);
   }
   if(state == '2') {
       b.digitalWrite(ledPin1, b.LOW);
       b.digitalWrite(ledPin2, b.HIGH);
       b.digitalWrite(ledPin3, b.LOW);
   }
   if(state == '3') {
       b.digitalWrite(ledPin1, b.LOW);
       b.digitalWrite(ledPin2, b.LOW);
       b.digitalWrite(ledPin3, b.HIGH);
   }
   state = state + 1;
   if (state > 3) state = 1;
}

function random(){
   b.digitalWrite(ledPin1, Math.round(Math.random()));
   b.digitalWrite(ledPin2, Math.round(Math.random()));
   b.digitalWrite(ledPin3, Math.round(Math.random()));
}

function blank(){
   b.digitalWrite(ledPin1, 0);
   b.digitalWrite(ledPin2, 0);
   b.digitalWrite(ledPin3, 0);
}
Download Project 3 .js File

Project 4 - Read a Push Button, Control a Buzzer


var b = require('bonescript');

var buzzerPin = "P8_13";
var switchPin = "P8_26";
var state = 0;
var switchState = 0;
var volume = 0.2;

// configure pins 
b.pinMode(buzzerPin, b.OUTPUT);
b.pinMode(switchPin, b.INPUT);

setInterval (inputHandler, 100);
setInterval (toggle, 500);

function inputHandler() {     // detect switch push
   b.digitalRead(switchPin, activate);
   function activate(x){
       if (x.value == '0') switchState = !switchState;
   }
}

function toggle() {     // switch buzzer on/off
   state =!state;
   if(state == 1) b.analogWrite(buzzerPin, b.LOW);
   else if (switchState == 1) b.analogWrite(buzzerPin, volume);
}
Download Project 4 .js File

Project 5 - Read Temperature and Control a Buzzer


var b = require('bonescript');

var analogPin = "P9_36";
var buzzerPin = "P8_13";
var ledRed = "P9_14";
var ledGreen = "P8_19";
var ledYellow = "P9_16";
var volume = "0.2";
var value = 0;

// configure pins
b.pinMode(buzzerPin, b.OUTPUT);
b.pinMode(ledRed, b.OUTPUT);
b.pinMode(ledGreen, b.OUTPUT);
b.pinMode(ledYellow, b.OUTPUT);

setInterval (inputHandler, 500);

function inputHandler() {     // read thermistor value
   value = b.analogRead(analogPin);
   value = Math.round(((value*10)-4.5)*4000);
   if (value < 100) value = 100;
   console.log (value);
}

loop();  //beep at interval of thermistor value

function loop() {
   b.analogWrite(buzzerPin, volume);
   setTimeout(function(){b.analogWrite(buzzerPin, b.LOW);}, 50);
   setTimeout(loop, value);
   if (value > 1000) b.digitalWrite(ledGreen,b.HIGH);
   else b.digitalWrite(ledGreen,b.LOW);
   if (value > 200 && value < 1000) b.digitalWrite(ledYellow,b.HIGH);
   else b.digitalWrite(ledYellow,b.LOW);
   if (value < 200) b.digitalWrite(ledRed,b.HIGH);
   b.digitalWrite(ledRed,b.LOW);
}

Download Project 5 .js File