Sunday, April 29, 2012
Monday, April 23, 2012
Final Steps
1. Stain the wood until we recieve the desired color.
2. Place the hangers on the back of the table top so it can also function as an interactive wallpiece.
3. Paint the interior of our actual table (logo or brand for Alli and me)
4. Gather our items to place inside our table so we have "games" or activites to play on our table.
- Milar sheet with squares for chess or checkers
- Clear plates, cups, and silverware
- Basketball rim with net and foam ball for when the tabletop is hanging on the wall
- Deck of cards with poker chips
- Clear shot glasses (drinking games)
- Clear Dice
- Clear pieces for other games
2. Place the hangers on the back of the table top so it can also function as an interactive wallpiece.
3. Paint the interior of our actual table (logo or brand for Alli and me)
4. Gather our items to place inside our table so we have "games" or activites to play on our table.
- Milar sheet with squares for chess or checkers
- Clear plates, cups, and silverware
- Basketball rim with net and foam ball for when the tabletop is hanging on the wall
- Deck of cards with poker chips
- Clear shot glasses (drinking games)
- Clear Dice
- Clear pieces for other games
Response from Prior Professors
Alli and I set our table up so we could have some of our fellow students and professors admire and interact with our project we took there feedback. Professor Dick Davisson (left) made comments such as, "This is awesome. It looks perfect just the way it is." While showing a high school senior the Langford Building, Professor Terry Larsen was pleasantly pleased with what we had put together. Hearing positive feedback from our fellow students and professors definitely makes the hard work worth it. All smiles here!!! (:
Finished Table (Without Stain)
The next step for Alli and I to finish our table is staining it to the color desired. We purchased a Red Mahogany color to accent the blue LEDs fom our interactive panels. Once you lift the table top off there is an inset in which we have all our "games" to play on top of our table.
Sunday, April 22, 2012
Table Building Progress
What is left on the table design:
Sand till we get the desired smoothness
Stain the outside for desired color at least 2 times
Place hangers on the back of the table-top so it can double function as a wall piece
Paint the inside of actual table
Place LED Panels and Glass Piece into the incut
Wednesday, April 18, 2012
Progress Work
Yesterday in the mail our interactive LED parts came in and the assembly began from there.
Here is a photo of Alli soldering some parts to the back of our board so they'll stay in place.
Here is the board once we placed all the resistors, capacitors, and LEDs into it.
Here is a photo of the two 1 foot by 1 foot square panels that are combined in the middle to create our 1' by 2' rectangle of interactive funtime!
Here is a photo of Alli soldering some parts to the back of our board so they'll stay in place.
Here is the board once we placed all the resistors, capacitors, and LEDs into it.
Here is a photo of the two 1 foot by 1 foot square panels that are combined in the middle to create our 1' by 2' rectangle of interactive funtime!
Rough Sketches - Outline
This photo is of the rough sketch I composed to get measurements for cutting our table.
Wednesday, April 11, 2012
Final with Alli
Original Idea
Originally for our final Alli and I wanted to make a fully interactive wall that would light up with LEDs that respond to the users movement. Our idea began to change once we realized that we only had 3 weeks to finish. Price was also an issue on doing a project this big. With more time and a reasonable budget we would have went for it, but for now we sized down our project to try and make smaller interactive wall (maybe a coffee table).
Originally for our final Alli and I wanted to make a fully interactive wall that would light up with LEDs that respond to the users movement. Our idea began to change once we realized that we only had 3 weeks to finish. Price was also an issue on doing a project this big. With more time and a reasonable budget we would have went for it, but for now we sized down our project to try and make smaller interactive wall (maybe a coffee table).
New Concept
Once we made the decision to size down our project we started thinking about building an interactve coffee table or something of the sort. We not only want the user to be able to make the LEDs come on through motion but also have objects trigger the lights depending on the distance away from the lights.
Inspirational Sites
Inspirational Videos
<iframe width="560" height="315"
src="http://www.youtube.com/embed/GHLu9pxCKz8"
frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315"
src="http://www.youtube.com/embed/4VDfZ7RFjfE"
frameborder="0" allowfullscreen></iframe>
<iframe width="420" height="315"
src="http://www.youtube.com/embed/0XVWjLKlSWg"
frameborder="0" allowfullscreen></iframe>
Tuesday, April 3, 2012
1st, 2nd, & 3rd Person Analysis + Future Plans
1st Person Analysis
Upon wearing the tie, i felt confident in the design being aesthetically pleasing. The tie can easily stand by itself as a new fashion even without the music or LED light. While wearing the tie I felt as if I was the center of attention and the "life of the party." Functionally, you have to be gentle with the buttons while pressing them. Also, the weight of the tie is kind of surprising when it is on your neck. The tie was easily the most dynamic part of my outfit though and I would love to wear it around people who have no clue what it does yet.
2nd Person Analysis
When Matt and I let others wear out tie and test it out the overall attitude was very positive and pleasing. We had people asking to wear it and try it. Others wanted to press the buttons when they weren't wearing the tie. "I feel like I could be a musician now," said Brett Baxter after wearing the finished tie and playing around with it. Negative feedback consisted of people stating that the buttons were very sensitive to touch and the fact that you couldn't have two keys playing simultaneously.
3rd Person Analysis
The functionallity of the tie works beautifully and the design is aesthetically pleasing from across the room. While looking at the tie on other people, my eye tended to be drawn toward the LED light more than the actual tie itself. The music that is issued from the press of a button could be louder. However, the work put into the tie is all worth it when you see your friends' faces light up with excitement from your creation.
Future Plans
If I was to continue this project I would definitely either take the LED completely out (because it almost distracts from the tie itself) or add more LEDs to level out the balance of light. Also, I would find a way to make the buzzer that issued the sound louder. It would be nice to have a primary sound play on a button hit, with a secondary melody accenting the original sound in the background. Overall though, I'd say it was a very successful project.
Upon wearing the tie, i felt confident in the design being aesthetically pleasing. The tie can easily stand by itself as a new fashion even without the music or LED light. While wearing the tie I felt as if I was the center of attention and the "life of the party." Functionally, you have to be gentle with the buttons while pressing them. Also, the weight of the tie is kind of surprising when it is on your neck. The tie was easily the most dynamic part of my outfit though and I would love to wear it around people who have no clue what it does yet.
2nd Person Analysis
When Matt and I let others wear out tie and test it out the overall attitude was very positive and pleasing. We had people asking to wear it and try it. Others wanted to press the buttons when they weren't wearing the tie. "I feel like I could be a musician now," said Brett Baxter after wearing the finished tie and playing around with it. Negative feedback consisted of people stating that the buttons were very sensitive to touch and the fact that you couldn't have two keys playing simultaneously.
3rd Person Analysis
The functionallity of the tie works beautifully and the design is aesthetically pleasing from across the room. While looking at the tie on other people, my eye tended to be drawn toward the LED light more than the actual tie itself. The music that is issued from the press of a button could be louder. However, the work put into the tie is all worth it when you see your friends' faces light up with excitement from your creation.
Future Plans
If I was to continue this project I would definitely either take the LED completely out (because it almost distracts from the tie itself) or add more LEDs to level out the balance of light. Also, I would find a way to make the buzzer that issued the sound louder. It would be nice to have a primary sound play on a button hit, with a secondary melody accenting the original sound in the background. Overall though, I'd say it was a very successful project.
Monday, April 2, 2012
Final Tie Video
Our tie consists of 6 buttons running from the bottom-up; and when you hit one of them a connection is caused by two conductive pieces of fabric hittin eachother and sending a current through a conductive string that runs up to our arduino board, which then makes the code initiate. In our case is playing a short tune and lighting a different color on the LED.
Arduino Code for Final Design
#include "Wire.h"
#include "BlinkM_funcs.h"
#define blinkm_addr 0x00
struct music {
int length;
int backuplength;
char melody[16];
char backup[16];
int beats[16];
int backupbeats[16];
};
typedef struct music music;
//______VARIABLES DEALING WITH AUDIO_____
int speakerMelody = 2;
int speakerBackup = 3;
int buttonState = 0;
int j=0;
int m=0;
int tempo = 100;
int firstTime=1;
//ALL MUSIC DATA GOES HERE
int LENGTH[2][7]={{8, 8, 7, 8, 13, 9, 7}, // All Melody Lengths
{7, 4, 7, 8, 6, 6, 7}};// All Backup Lengths
char MELODY[14][17]={"dfegfageCCCCCCCC",//Song1 Melody
"CbabagfeCCCCCCCC",// Song2 Melody
"cagfegfCCCCCCCCC",// Song3 Melody
"cgaedCbCCCCCCCCC",// Song4 Melody
"cegbagecdfaCbCCC",// Song5 Melody
"defgfecedCCCCCCC",// Song6 Melody
"ffeeddcCCCCCCCCC",// Song7 Melody
"CCaagggCCCCCCCCC",// Song1 Backup
"cegcCCCCCCCCCCCC",// Song2 Backup
"ccedcffCCCCCCCCC",// Song3 Backup
"CCaaCCggCCCCCCCC",// Song4 Backup
"egaabeCCCCCCCCCC",// Song5 Backup
"ecbcedCCCCCCCCCC",// Song6 Backup
"ffeeddcCCCCCCCCC"};//Song7 Backup
int BEATS[14][16]={{3, 1, 1, 3, 3, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}, //song1 melody speed
{ 1, 1, 1, 1, 1, 1, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0}, //song2 melody speed
{ 4, 2, 1, 1, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song3 melody speed
{ 2, 2, 2, 3, 1, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}, //song4 melody speed
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0}, //song6 melody speed
{ 1, 1, 4, 1, 1, 4, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0}, //song5 melody speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song7 melody speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song1 backup speed
{ 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song2 backup speed
{ 1, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song3 backup speed
{ 4, 6, 2, 4, 4, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0}, //song4 backup speed
{ 1, 1, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song5 backup speed
{ 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song6 backup speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}};//song7 backup speed
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerMelody, HIGH);
digitalWrite(speakerBackup,HIGH);
delayMicroseconds(tone);
digitalWrite(speakerMelody, LOW);
digitalWrite(speakerBackup,LOW);
delayMicroseconds(tone);
}
}
void playMelody(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C'};
int tones[] = { 956, 851, 758, 716, 638, 568, 514, 478 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
/*void playBackup(char note, int duration) {
char names[] = { 'j', 'k', 'l', 'm', 'n', 'h', 'i', 'J' };
int tones[] = { 956, 851, 758, 716, 638, 568, 1014, 478 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
*/
// ______________LIGHT______________________
int i = 0;
int w = 0;
int p = 0;
int buttonsDown = 0;
byte r,g,b;
int delay_time = 10000; // time betwen colors, 10x00 milliseconds = 1 second
//int num_colors = 7; // how many colors are there the list below
byte color_list[][3] = {
{ 0xff, 0x00, 0x00 }, // red
{ 0x00, 0xff, 0x00 }, // green
{ 0x00, 0x00, 0xff }, // blue
{ 0xff, 0xff, 0x00 }, // red+green
{ 0x00, 0xff, 0xff }, // green+blue
{ 0xff, 0x00, 0xff }, // red+blue
{ 0xff, 0xff, 0xff }, // white
{ 0x00, 0x00, 0x00 }, // off
};
//_______________BUTTON VARIABLES________________
int buttonstate[7]={0,0,0,0,0,0,0};
int buttonPin[7] = {4,5,6,7,8,9,10};
struct music conductor(music SONG,int i, int j){
int m;
SONG.length=LENGTH[0][i];
SONG.backuplength=LENGTH[1][i];
for (m=0;m<16;m++){
SONG.melody[m]=MELODY[i][m];
SONG.backup[m]=MELODY[j][m];
SONG.beats[m]=BEATS[i][m];
SONG.backupbeats[m]=BEATS[j][m];
}
return SONG;
}
struct music song1, song2, song3, song4, song5, song6, song7;
void musicTime(music song){
//Serial.println(song.length, DEC);
for (int i = 0; i < song.length; i++) {
//Serial.println(song.melody[i], HEX);
if (song.melody == " ") {
delay(song.beats[i] * tempo); // rest
} else {
playMelody(song.melody[i], song.beats[i] * tempo);
}
// pause between notes
delay(tempo / 2); }
}
void setup()
{
Serial.begin(9600);
/*
conductor(song1, 0, 7);
conductor(song2, 1, 8);
conductor(song3, 2, 9);
conductor(song4, 3, 10);
conductor(song5, 4, 11);
conductor(song6, 5, 12); */
//_______EVERYTHING DEALING WITH SOUND______
pinMode(speakerMelody, OUTPUT);
//__________________LIGHT_______________________
BlinkM_doFactoryReset();
BlinkM_beginWithPower();
BlinkM_stopScript( blinkm_addr ); // turn off startup script
BlinkM_setFadeSpeed( blinkm_addr, 30);
//_________________BUTTONS_____________________
pinMode(buttonPin[0], OUTPUT);
pinMode(buttonPin[1], OUTPUT);
pinMode(buttonPin[2], OUTPUT);
pinMode(buttonPin[3], OUTPUT);
pinMode(buttonPin[4], OUTPUT);
pinMode(buttonPin[5], OUTPUT);
pinMode(buttonPin[6], OUTPUT);
}
void loop()
{
buttonsDown = 0;
for(i=0; i<7; i++){
buttonstate[i] = digitalRead(buttonPin[i]);
buttonsDown += buttonstate[i];
}
if(buttonsDown !=0){
for(w=0;w<7;w++){
Serial.println(w, DEC);
if(buttonstate[w]==1){
Serial.println(digitalRead(buttonPin[w]), DEC);
r = color_list[w][0];
g = color_list[w][1];
b = color_list[w][2];
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
switch(w){
case 0:
song1.length=LENGTH[0][w];
song1.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song1.melody[m]=MELODY[w][m];
song1.backup[m]=MELODY[w+7][m];
song1.beats[m]=BEATS[w][m];
song1.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song1);
break;
case 1:
song2.length=LENGTH[0][w];
song2.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song2.melody[m]=MELODY[w][m];
song2.backup[m]=MELODY[w+7][m];
song2.beats[m]=BEATS[w][m];
song2.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song2);
break;
case 2:
song3.length=LENGTH[0][w];
song3.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song3.melody[m]=MELODY[w][m];
song3.backup[m]=MELODY[w+7][m];
song3.beats[m]=BEATS[w][m];
song3.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song3);
break;
case 3:
song4.length=LENGTH[0][w];
song4.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song4.melody[m]=MELODY[w][m];
song4.backup[m]=MELODY[w+7][m];
song4.beats[m]=BEATS[w][m];
song4.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song4);
break;
case 4:
song5.length=LENGTH[0][w];
song5.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song5.melody[m]=MELODY[w][m];
song5.backup[m]=MELODY[w+7][m];
song5.beats[m]=BEATS[w][m];
song5.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song5);
break;
case 5:
song6.length=LENGTH[0][w];
song6.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song6.melody[m]=MELODY[w][m];
song6.backup[m]=MELODY[w+7][m];
song6.beats[m]=BEATS[w][m];
song6.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song6);
break;
case 6:
song7.length=LENGTH[0][w];
song7.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song7.melody[m]=MELODY[w][m];
song7.backup[m]=MELODY[w+7][m];
song7.beats[m]=BEATS[w][m];
song7.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song7);
break;
}
delay(200); // wait a bit because we don't need to go fast
BlinkM_fadeToRGB( blinkm_addr, 0xff, 0xff, 0xff);
}
}
}
else{
BlinkM_fadeToRGB( blinkm_addr, 0xff, 0xff, 0xff);
delay(100);
Serial.println("The button is not down : WHITE");
}
}
#include "BlinkM_funcs.h"
#define blinkm_addr 0x00
struct music {
int length;
int backuplength;
char melody[16];
char backup[16];
int beats[16];
int backupbeats[16];
};
typedef struct music music;
//______VARIABLES DEALING WITH AUDIO_____
int speakerMelody = 2;
int speakerBackup = 3;
int buttonState = 0;
int j=0;
int m=0;
int tempo = 100;
int firstTime=1;
//ALL MUSIC DATA GOES HERE
int LENGTH[2][7]={{8, 8, 7, 8, 13, 9, 7}, // All Melody Lengths
{7, 4, 7, 8, 6, 6, 7}};// All Backup Lengths
char MELODY[14][17]={"dfegfageCCCCCCCC",//Song1 Melody
"CbabagfeCCCCCCCC",// Song2 Melody
"cagfegfCCCCCCCCC",// Song3 Melody
"cgaedCbCCCCCCCCC",// Song4 Melody
"cegbagecdfaCbCCC",// Song5 Melody
"defgfecedCCCCCCC",// Song6 Melody
"ffeeddcCCCCCCCCC",// Song7 Melody
"CCaagggCCCCCCCCC",// Song1 Backup
"cegcCCCCCCCCCCCC",// Song2 Backup
"ccedcffCCCCCCCCC",// Song3 Backup
"CCaaCCggCCCCCCCC",// Song4 Backup
"egaabeCCCCCCCCCC",// Song5 Backup
"ecbcedCCCCCCCCCC",// Song6 Backup
"ffeeddcCCCCCCCCC"};//Song7 Backup
int BEATS[14][16]={{3, 1, 1, 3, 3, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}, //song1 melody speed
{ 1, 1, 1, 1, 1, 1, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0}, //song2 melody speed
{ 4, 2, 1, 1, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song3 melody speed
{ 2, 2, 2, 3, 1, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}, //song4 melody speed
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 0, 0}, //song6 melody speed
{ 1, 1, 4, 1, 1, 4, 2, 2, 4, 0, 0, 0, 0, 0, 0, 0}, //song5 melody speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song7 melody speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song1 backup speed
{ 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song2 backup speed
{ 1, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song3 backup speed
{ 4, 6, 2, 4, 4, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0}, //song4 backup speed
{ 1, 1, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song5 backup speed
{ 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //song6 backup speed
{ 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}};//song7 backup speed
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerMelody, HIGH);
digitalWrite(speakerBackup,HIGH);
delayMicroseconds(tone);
digitalWrite(speakerMelody, LOW);
digitalWrite(speakerBackup,LOW);
delayMicroseconds(tone);
}
}
void playMelody(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C'};
int tones[] = { 956, 851, 758, 716, 638, 568, 514, 478 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
/*void playBackup(char note, int duration) {
char names[] = { 'j', 'k', 'l', 'm', 'n', 'h', 'i', 'J' };
int tones[] = { 956, 851, 758, 716, 638, 568, 1014, 478 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
*/
// ______________LIGHT______________________
int i = 0;
int w = 0;
int p = 0;
int buttonsDown = 0;
byte r,g,b;
int delay_time = 10000; // time betwen colors, 10x00 milliseconds = 1 second
//int num_colors = 7; // how many colors are there the list below
byte color_list[][3] = {
{ 0xff, 0x00, 0x00 }, // red
{ 0x00, 0xff, 0x00 }, // green
{ 0x00, 0x00, 0xff }, // blue
{ 0xff, 0xff, 0x00 }, // red+green
{ 0x00, 0xff, 0xff }, // green+blue
{ 0xff, 0x00, 0xff }, // red+blue
{ 0xff, 0xff, 0xff }, // white
{ 0x00, 0x00, 0x00 }, // off
};
//_______________BUTTON VARIABLES________________
int buttonstate[7]={0,0,0,0,0,0,0};
int buttonPin[7] = {4,5,6,7,8,9,10};
struct music conductor(music SONG,int i, int j){
int m;
SONG.length=LENGTH[0][i];
SONG.backuplength=LENGTH[1][i];
for (m=0;m<16;m++){
SONG.melody[m]=MELODY[i][m];
SONG.backup[m]=MELODY[j][m];
SONG.beats[m]=BEATS[i][m];
SONG.backupbeats[m]=BEATS[j][m];
}
return SONG;
}
struct music song1, song2, song3, song4, song5, song6, song7;
void musicTime(music song){
//Serial.println(song.length, DEC);
for (int i = 0; i < song.length; i++) {
//Serial.println(song.melody[i], HEX);
if (song.melody == " ") {
delay(song.beats[i] * tempo); // rest
} else {
playMelody(song.melody[i], song.beats[i] * tempo);
}
// pause between notes
delay(tempo / 2); }
}
void setup()
{
Serial.begin(9600);
/*
conductor(song1, 0, 7);
conductor(song2, 1, 8);
conductor(song3, 2, 9);
conductor(song4, 3, 10);
conductor(song5, 4, 11);
conductor(song6, 5, 12); */
//_______EVERYTHING DEALING WITH SOUND______
pinMode(speakerMelody, OUTPUT);
//__________________LIGHT_______________________
BlinkM_doFactoryReset();
BlinkM_beginWithPower();
BlinkM_stopScript( blinkm_addr ); // turn off startup script
BlinkM_setFadeSpeed( blinkm_addr, 30);
//_________________BUTTONS_____________________
pinMode(buttonPin[0], OUTPUT);
pinMode(buttonPin[1], OUTPUT);
pinMode(buttonPin[2], OUTPUT);
pinMode(buttonPin[3], OUTPUT);
pinMode(buttonPin[4], OUTPUT);
pinMode(buttonPin[5], OUTPUT);
pinMode(buttonPin[6], OUTPUT);
}
void loop()
{
buttonsDown = 0;
for(i=0; i<7; i++){
buttonstate[i] = digitalRead(buttonPin[i]);
buttonsDown += buttonstate[i];
}
if(buttonsDown !=0){
for(w=0;w<7;w++){
Serial.println(w, DEC);
if(buttonstate[w]==1){
Serial.println(digitalRead(buttonPin[w]), DEC);
r = color_list[w][0];
g = color_list[w][1];
b = color_list[w][2];
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
switch(w){
case 0:
song1.length=LENGTH[0][w];
song1.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song1.melody[m]=MELODY[w][m];
song1.backup[m]=MELODY[w+7][m];
song1.beats[m]=BEATS[w][m];
song1.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song1);
break;
case 1:
song2.length=LENGTH[0][w];
song2.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song2.melody[m]=MELODY[w][m];
song2.backup[m]=MELODY[w+7][m];
song2.beats[m]=BEATS[w][m];
song2.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song2);
break;
case 2:
song3.length=LENGTH[0][w];
song3.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song3.melody[m]=MELODY[w][m];
song3.backup[m]=MELODY[w+7][m];
song3.beats[m]=BEATS[w][m];
song3.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song3);
break;
case 3:
song4.length=LENGTH[0][w];
song4.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song4.melody[m]=MELODY[w][m];
song4.backup[m]=MELODY[w+7][m];
song4.beats[m]=BEATS[w][m];
song4.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song4);
break;
case 4:
song5.length=LENGTH[0][w];
song5.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song5.melody[m]=MELODY[w][m];
song5.backup[m]=MELODY[w+7][m];
song5.beats[m]=BEATS[w][m];
song5.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song5);
break;
case 5:
song6.length=LENGTH[0][w];
song6.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song6.melody[m]=MELODY[w][m];
song6.backup[m]=MELODY[w+7][m];
song6.beats[m]=BEATS[w][m];
song6.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song6);
break;
case 6:
song7.length=LENGTH[0][w];
song7.backuplength=LENGTH[1][w];
for (m=0;m<16;m++){
song7.melody[m]=MELODY[w][m];
song7.backup[m]=MELODY[w+7][m];
song7.beats[m]=BEATS[w][m];
song7.backupbeats[m]=BEATS[w+7][m];
}
BlinkM_fadeToRGB( blinkm_addr, r,g,b );
musicTime(song7);
break;
}
delay(200); // wait a bit because we don't need to go fast
BlinkM_fadeToRGB( blinkm_addr, 0xff, 0xff, 0xff);
}
}
}
else{
BlinkM_fadeToRGB( blinkm_addr, 0xff, 0xff, 0xff);
delay(100);
Serial.println("The button is not down : WHITE");
}
}
Friday, March 23, 2012
Arduino + Light + Buzzer + One Button
What you are seeing in the picture above, is a button at the bottom that consists of conductive fabic on two sides of a spng that has holes cut in it. So, when u press the button, the two conductive fabrics touch each other and send a current through the conductive thread to the postivie and negativewires next to the arduino board. Once a button is pressed a tune plays and our LED at the top of the picture lights up.
Saturday, March 17, 2012
Supplies for Assembly
Supplies Obtained: 9 volt batteries, black base tie, black/white fabric, black/white thread, needles
Supplies Desired: Conductive Thread, Wires
Status Complete: 10%
Wednesday, March 7, 2012
Wearable Interactive - Piano Key Necktie Ideas
The left side of our tie will be the actual keys in which you press and hear a certain note. Matt Ackerman and I have divided the tie space into 4 equal sections in which a cooresponding music note matches up with each equal spce. Our initial idea is to have the music note to the right of the key that was struck light up.
Intro Arduino Trials
Thursday, March 1, 2012
Physical Computing - Intro & Ch.1 Summary
Most physical computing is derived of three things; listening, thinking, or speaking. In terms relative to computers these three words are changed to input, processing, and output. Processing deals with the coding and programming functions of a computer. Input is simply the user putting informaton into the computer's system through the mouse or recorded audio and can be of either category digital (when two states suffice) or analog (continuous range of multiple states). Output is more complicated because it requires the computer to deliver a message back to the user usually using complicated mechanics or electronics. Serial deals with one event happening at a time where parallel describes many events occuring at once. Transduction is also very important in developing a physical computing system because it accomplishes converting one form of energy into another.
It is important to work backwards in the case of developing a physical conmputing system so you can fully understand your project idea and every single specific technique needed to accomplish it. There are four major things to remember: keep a journal including all questions and ideas you come up with, second, work fast and at a high level, third, don't let planning be the death of you (it is better to take a risk and try and fail than have set plan that may or may not work), and lastly, collaborate with others - which is the exact reason we have partners. (:
There are three basic components that come into play in every electrical circut. First, the relative level of electrical energy between two components is called the voltage (volts) (voltage = current x resistance). Next, the amount of electrical energy passing through the circut at any point in time is called the current (amps), and finally, the resistance that the circut puts back on the current is called the resistance of the component (ohms). The combination of voltage and current is called electrical power or watts (watts = volts x current). There are usually two ways in which electrical power is supplied; direct current (current on one wire and ground on the other with the voltage being constant and the supply wire at a higher voltage) and alternating current (alternates the voltage on the two wires), allows for easier long distance electrical energy transfer hence the alternating current is used for most advertsing companies. Electricity always favors the path of least resistance to the ground and all the electrical energy in a circut must be used.
It is important to work backwards in the case of developing a physical conmputing system so you can fully understand your project idea and every single specific technique needed to accomplish it. There are four major things to remember: keep a journal including all questions and ideas you come up with, second, work fast and at a high level, third, don't let planning be the death of you (it is better to take a risk and try and fail than have set plan that may or may not work), and lastly, collaborate with others - which is the exact reason we have partners. (:
There are three basic components that come into play in every electrical circut. First, the relative level of electrical energy between two components is called the voltage (volts) (voltage = current x resistance). Next, the amount of electrical energy passing through the circut at any point in time is called the current (amps), and finally, the resistance that the circut puts back on the current is called the resistance of the component (ohms). The combination of voltage and current is called electrical power or watts (watts = volts x current). There are usually two ways in which electrical power is supplied; direct current (current on one wire and ground on the other with the voltage being constant and the supply wire at a higher voltage) and alternating current (alternates the voltage on the two wires), allows for easier long distance electrical energy transfer hence the alternating current is used for most advertsing companies. Electricity always favors the path of least resistance to the ground and all the electrical energy in a circut must be used.
"The Little Things"
Interactive Narrative by Erin Bersi and me.
Sadly, since the program used was FLASH the video component on this blog cannot support out interactive narration. So....if anyone would like to specifically see it just email me at:
mbg9210@tamu.edu
Thanks yall! Have a great day.
Sadly, since the program used was FLASH the video component on this blog cannot support out interactive narration. So....if anyone would like to specifically see it just email me at:
mbg9210@tamu.edu
Thanks yall! Have a great day.
Friday, February 24, 2012
Possible Outcome of Video Display
This image shows the basic pattern our videos will be following until the last video which will lead to the end.
Monday, February 20, 2012
Status Update - 2/20/12
Interactive Narrative Project Status Update.
Status - Good
Erin and I have cast all of our actors (a total of 6) and have the entire script with every single camera angle for the cooresponding shots. We have everything planned out to where all we have to do is execute. As far as filming goes we are about 40% complete; we have finished everything that could be shot in the dark. We are just waiting for our schedules to comply with eachothers to shoot day-time action shots. After shooting, the difficult task of compiling, editing, and adding effects will take place in the program FLASH. The only trouble we have ran into so far is the fact the both Erin and I have absolutely no experience using the FLASH program. So from here on out its tutorials and more filming.
Stay tuned folks! (:
Status - Good
Erin and I have cast all of our actors (a total of 6) and have the entire script with every single camera angle for the cooresponding shots. We have everything planned out to where all we have to do is execute. As far as filming goes we are about 40% complete; we have finished everything that could be shot in the dark. We are just waiting for our schedules to comply with eachothers to shoot day-time action shots. After shooting, the difficult task of compiling, editing, and adding effects will take place in the program FLASH. The only trouble we have ran into so far is the fact the both Erin and I have absolutely no experience using the FLASH program. So from here on out its tutorials and more filming.
Stay tuned folks! (:
Wednesday, February 15, 2012
Interactive Narration - Format Idea
This sketch is a simple idea of how Erin and I would like the interactive narrative to look from the beginning selection screen. Our idea is to have the user click on a person and then the video corresponding to that person will start playing. If at anytime the user wants to click on a different person, the option will be available for them to select another character which will start their video.
Interactve Narration Script
This is a complete outline of the 4 stories thatare going to be intertwined in mine and Erin's interactive narrtion. The 4 strangers will all be drawn towards the same ending.
In a world where strangers are brought together by stranger things: 4 people from different lives are united one afternoon to satisfy a strange fate. These are their stories:
“Life may not always lead you down the same path, but it is the little things that bring us all together.”
1. Sorority Girl (Dorm Style – Ramen Noodle Poor)
· Wakes up to Ipod blaring some Hip Hop (Kesha?)
o Camera Shot of alarm slap, time – 8:35 AM
· Looks at computer, Facebook up, sees notification of profit share Delta 5k fun run at 10am
o Camera Shot with girl typing, focus on computer in background, girl in foreground (blurry)
o Camera pans around to see girls face as she picks up phone
· Stands and Calls Friend: “OMG, LOL, TTYL, Totes Presh…blah blah”
· Hangs up and runs in bathroom
o Camera follow her till door closes, stays looking at closed door
· Comes out immediately with typical outfit on – Large shirt or v neck, norts, high socks, sneakers, and a high ponytail, tons of makeup
o Camera still looking in same spot, does an up/down motion to see whole outfit
o Camera pans as she runs out door, grabs Ipod on way out
· Stretching out on street, Turns Ipod on – music begins playing
o Next camera shot on street watching her stretch
· Begins running
o Camera in front watching facial expressions
o Begins to pan around her to the backside
· Runs past a bright red sign, which catches her attention, Stops.
o Camera zooms in past girl to read sign
· LAST DAY FOR FREE BOX OF GIRL SCOUT COOKIES!!! Spence Park, beginning at 9AM!!!!
· Checks watch, time – 9:05 AM
o Camera shot of time on watch
o Camera shot of just her face (slow-motion?) freaking out
· Takes off in the different direction she was running
o Camera follows her until she is out of distance
· Appears in Spence Park
o Camera behind her as she gets closer and closer to Girl Scouts in the background, begins to reach out…. CLIFFHANGER
2. Business Man (Well Off – Successful Life)
· Wakes Up to Alarm Blaring
o Camera Shot of Alarm Slap, time – 8:15 AM
o Next shot of him still in bed, “tired sigh,” claps and lights turn on, and grabs remote to turn TV on
o Camera shot changes to view Weather Channel, hear man getting up in the background
· Shuffles in pajamas over to closet, then into the bathroom
o Camera pans from bed to closet, following motion
o Zooms in on hand grab of suit and shoes already ready to go
o Camera pans from closet to bathroom, following his motion
o Stays focused on closed door
· Man comes out immediately after going in all dressed and clean shaven (Full suit, shoes on, watch, Bluetooth, iphone, briefcase in hand, glasses on to appear smarter)
o Camera does an up/down motion to see whole outfit
o Next shot man grabbing car keys on dresser as he walks out of the room
· Now in garage
o Camera shot of man getting in Cadillac
o Close up of hand turning keys, hear engine roar in background
o Classical music begins to play
· Driving
o Camera shot of man pulling out on to street
o Camera still shot, car enters left – same view until exit right
o Camera shot inside the car looking out at street
· Flyer hits and sticks to window
o Camera zooms on flyer: LAST DAY FOR FREE BOX OF GIRL SCOUT COOKIES!!! Spence Park, beginning at 9AM!!!!
o Camera shot of man’s watch, time – 9:05 AM
o Camera shot of man’s face freaking out
o Camera shot of car making hard turn right and then speeding out of scene
· Pulls up at Spence Park
o Camera shot of whole car and in the background is the park. Zoom in on man getting out, not even shutting door, and running into park
o Camera shot of man’s face, begins to pan around to back where you see Girl Scout’s in background, man reaches out…CLIFFHANGER
3. Tattoo Artist/Person (living on couch in his studio)
· Wakes up to Ipod blaring Death Metal
o Camera shot of alarm slap, time – 8:40 AM
· Sits up on couch, wipes eyes, coughs, grabs beer that is next to couch, takes a swig and gargles with it as he walks towards bathroom
o Camera follow motion
· Spits beer in sink
o Camera behind him (don’t see him spit it but hear it)
· Stands up straight
o Camera Zooms in on man and features – nose ring, tattoos everywhere, wife beater, baggy jeans, dangling chain
· Smells armpit, makes vomit face, but turns around from mirror anyway
· Looks at fridge to see to do list, grabs it: Need more Ink! Go to store; Milk; Eggs; Beer; Monster: Donuts; Client Coming in @ 3 PM
o Camera zoom in on list
o Camera follow his motion as he walks out door
· Heading down the street, gets cigarette out, feels his phone vibrate in pocket, reaches in and grabs it
o Camera zoom on text from a friend: “Dude! LAST DAY FOR FREE BOX OF GIRL SCOUT COOKIES!!! Spence Park, beginning at 9AM!!!!”
o Camera shot of clock tower or clock close by to where he’s walking, time – 9:05 AM
o Camera shot of the man’s face freaking out
· Starts running in direction he was going throws cigarette
o Camera stationary until man leaves shot
o Next shot he’s all sweaty and panting, entering park
· Sees Girl Scout Stand, running in from side, reaching out… CLIFFHANGER
4. Hobo (Dirt Poor – Literally)
· Dog Barking
o Camera shot of hand slap on dog’s nose, dog stops
o Camera pans out to see whole shot of hobo under the bridge with a dog (Man pulls of newspapers as sheets)
o Setting very dirty, cardboard boxes, trash around
· Pulls newspapers off and looks at wrist
o Zooms in on drawn on watch on wrist, time shows 8:45 AM
· Gets up and stretches
· Walks over to a box of stuff
o Camera follow movement
o Camera look just into box as his hand (cut of gloves with fingers exposed) digs threw it, pulls out a gross toothbrush
o Camera shot of toothbrush being dipped in nasty river
o Camera shot of zoom in toothbrush in mouth
o Camera shot of spit hitting river water
o Camera pans back out, tosses toothbrush back in box
· He grabs his coin jar and leash with dog on it and walks away from his bridge
o Camera follows him walking for a little
· Sees the girl scout sign in the distance
· Drops both the jar and dog and sprints towards it
o Camera watch as man runs away
o Next shot of Girl Scout’s seeing man: frightened faces
o Shot of Hobo with tongue out reaching for cookies… CLIFFHANGER
CLICK TO SEE WHAT HAPPENS NEXT BUTTON
Subscribe to:
Posts (Atom)