Make It Blow!

by ST-Geotronics in Circuits > Arduino

21471 Views, 162 Favorites, 0 Comments

Make It Blow!

Clock 022.jpg
Clock 010.jpg
DSCN0807b.JPG
We have had tremendous success displaying these "Glowing" devices. This instructable is meant to inspire the maker community by showing easy/cheap ways to create visual effects & even useful appliances (alarm clock, countdown timer) /games (Beat the Clock). More on this later!

Two of these are readily available kits, one of them was used in a popular TV series just last month, while the third example is a home made spin using an off the shelf Arduino UNO. a 20x4 Parallel LCD & a few LEDs. We also added a Real Time Clock for good measure.

The Bomb Prop

Clock 023.jpg
This is a full featured Alarm clock that comes as a kit.
Designed by Nootropic Design (http://nootropicdesign.com/defusableclock/) , this excellent Arduino compatible Defusable Clock looks so much like a Hollywood Bomb, that it was featured last month in an episode of CW' The Tomorrow People. You can order your kit straight from Nootropic Design like I did or get it from the Maker Shed as they are now carrying it also.

At $33, it's not that expensive as the Arduino is built-in. The kit includes all electronics, but only electronics. I made 2 Dynamite looking sticks by soldering then wrapping 3 C Batteries in each laser printed grocery bag and made the other 5 Dynamite sticks by cutting my wife's broom in sections that were the same total length as the 3 batteries combined.

I cut grocery paper bags in 8 x10 sections & fed them to the laser printer to print "Dynanite" in red for additional effect.



The Glowing Countdown Clock

Clock 008.jpg
This is the first 7 segment display project I ever made.
It comes as a kit from Samurai Circuits (http://samuraicircuits.com/merch/11-doomsday-clock...) , and at $18, I find it very reasonably priced. They also provide the most detailed, step by step instructions, kit assembly guide I ever saw!

You supply your own Arduino Uno, snap your assembled kit & voila, you are ready to go. A glowing experience!

The folks at Samurai Circuits are really nice to work with & they were able to help me with my project by tweaking the code & even developing a new library for me. Also their very astute use of Charlie-Plexing is a fine example of how to minimize the amount of Arduino pins to light up all these LEDs!

I created the 3 Dynamite sticks here by soldering 2 C batteries per stick & wrapping them in grocery paper bags.


Beat the Clock!

DSCN0806.JPG
DSCN0810.JPG
DSCN0811.JPG
Because of recent New events (Boston bombing for example), even though they are not any more dangerous or closer to a bomb than a simple desk clock or cell phone, the previous 2 props can feel threatening to some people and that is 1 reason why we decided to re-create the same "defusable concept" but package it as a simple game.

We call it "Beat the Clock" instead of "Diffuse the Bomb", but really, it uses the same Arduino Uno coupled with a 4 lines by 20 characters LCD and we are using buttons (to stop the clock) instead of offering wires to be cut to stop the clock.

The Arduino Uno is roughly $20, the LCD is less than $10, throw in a few buttons for less than $5 and LEDs and resistors for another $5. The container was free and we re-used a First Aid kit. So for approximately $40, you have a unique multi purpose game. I say multi purpose, because this same product could easily be used to re-create a version of Simon as it was suggested by lots of people.

Here is our code:


/*
* FDR Countdown Clock
* 2/27 Fixed LED so it would be brighter by adding pinMode (led1, OUTPUT);
* Added all LCD lights
* Added LCD Clear, No Backlight and delay to end of code.
* Written by Marc Tessier & Chip Thomas
*/

#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h> // a basic DS1307 library that returns time as a time_t
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3f,20,4); // set the LCD address to 0x27 for a 20 chars and 4 line display

int i = 0;
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 8;
int led5 = 7;
int led6 = 6;
const int buttonPin = 2;
int buttonState = 0;

void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FDR Countdown Clock!");
delay(1000);
setSyncProvider(RTC.get); // the function to get the time from the RTC
if(timeStatus()!= timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
}

void loop()
{
while (i < 5)
{
digitalClockDisplay();
delay(1000);
i = i + 1;
}
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("COUNTDOWN INITIATED!");
delay(1000);
for(int i=150;i>10;i=i-1)

{
buttonState = digitalRead(buttonPin);
lcd.setCursor(8,2);
printDigits(i-1);
if(i < 100)
lcd.setCursor(2,2);
lcd.print(' ');
tone(9, 4500, 80);
digitalWrite(led1, HIGH);
delay (i/2);
digitalWrite(led1, LOW);
delay (i/2);
if (buttonState == LOW)
{
lcd.clear();
lcd.print("Good Job!");
break;
}
}
lcd.setCursor(0,1);
lcd.print(0);
for(int i=0;i<30;i++)
{
digitalWrite(led1, HIGH);
tone(9,5000, 50);
delay(50);
digitalWrite(led1, LOW);
delay(25);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SORRY");
delay(25);
digitalWrite(led2, HIGH);
delay(25);
digitalWrite(led2, LOW);
delay(25);
lcd.setCursor(5,1);
lcd.print("SORRY");
delay(25);
digitalWrite(led3, HIGH);
delay(25);
digitalWrite(led3, LOW);
delay(25);
lcd.setCursor(10,2);
lcd.print("SORRY");
delay(25);
digitalWrite(led4, HIGH);
delay(25);
digitalWrite(led4, LOW);
delay(25);
lcd.setCursor(15,3);
lcd.print("SORRY");
delay(25);
digitalWrite(led5, HIGH);
delay(25);
digitalWrite(led5, LOW);
delay(25);
lcd.setCursor(15,0);
lcd.print("SORRY");
delay(25);
digitalWrite(led6, HIGH);
delay(25);
digitalWrite(led6, LOW);
delay(25);
lcd.setCursor(0,3);
lcd.print("SORRY");


}


lcd.clear();
lcd.noBacklight();
delay(10000);
// lcd.setCursor(0,0);
// lcd.print("BOOM");
// delay(2000);

}

void digitalClockDisplay(){
// digital clock display of the time
lcd.setCursor(1,1);
lcd.print(month());
lcd.print("/");
lcd.print(day());
lcd.print("/");
lcd.print(year());
lcd.print(" ");
lcd.print(hour());
lcd.print(":");
printDigits(minute());
lcd.print(":");
printDigits(second());
}

void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0

if(digits < 10)
lcd.print('0');
lcd.print(digits);
}

Glowing Products...

GeoSmart Display 2004 Front.JPG
We love stuff that glows!

Please visit www.stgeotronics.com where we offer the "Beat the Clock" as a kit & a fully assembled/tested product or, among other things, this simple 4 x 20 LCD soldered to an Arduino Nano, ready to show/build your own project.

Thank You for your time & please vote for us!