Silicon Chef Hackathon

This past weekend I had the pleasure of participating in the Silicon Chef Hackathon.  Organized by Hackbright Academy and hosted at Stripe, the two day hardware hackathon for women was a great learning experience for me.  Each team was given a microcontroller, sensors, and other supplies and allowed to make whatever they wanted with it.

Ladies Enjoying Lunch

Ladies Enjoying Lunch

As a software developer, I don’t get the chance to mess around with the hardware (which my laptop is probably really happy about) so I loved the hands on experience of working the the Arduino and Breadboard.  If like me, you’ve never created your own circuits, don’t let bomb detonating movie scenes scare you, it’s really simple.   Arduino provides an easy to follow guide that’ll get you up and running in no time.

Arduino (left) connected to the Breadboard (right)

Arduino (left) connected to the Breadboard (right)

SCHme

Quick Guide to the Arduino Language:

Once you’ve got you’re hardware established and you’ve downloaded the Arduino Environment, it’s time to get coding.  Arduino uses it’s own language (based on Wiring) but it’s simple enough to learn using the their docs.  If tinkering with a new language is not your thing, there are a number of libraries and gems that will allow you to write to you Arduino in your language of choice (like this one for ruby).

There are two main methods needed to create a sketch (the Arduino term for program):

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

 

1. Setup- This function is called first, once the Arduino is powered up.  It runs only once so it’s were you should initialize variables, pin modes, necessary libraries, etc.

2. Loop- This is where the fun happens, the loop runs repeatedly after the setup method and will hold the sketches logic.

3. It’s also important  to note that  like with most languages, and functions defined before the setup will be part of the global scope and accessible to both the setup and loop functions.  Might be useful for things like constants.

Here’s the basic code to making an LED blink (the “Hello World” of Arduino):

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(1000);               // wait for a second
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
delay(1000);               // wait for a second
}

 

Team LumoNeck

My team combined the flex sensor (outputs resistance as the sensor is bent), piezo buzzer (outputs varying frequency of buzzing noises, yes you can program songs), and LED light to make a posture trainer.  With the flex sensor attached to the base of the neck, the LED will light up after 5 consecutive seconds of poor posture, and a pretty annoying song will play after 10.  Check out the code

While we didn’t place, I’m really proud of what my team accomplished, and more importantly, how much we all learned.

SCHpresenting

Team presenting

Super excited for my next Hackathon, hope to see you there too!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>