All posts by daruswatwattanarojjananikorn

FINAL PROJECT “TAPPING SOUNDs”

IMG_2249

“Tap dance is a form of dance characterized by using the sounds of tap shoes striking the floor as a form of percussion. Two major variations on tap dance exist: rhythm (jazz) tap and Broadway tap. Broadway tap focuses on dance; it is widely performed in musical theater. Rhythm tap focuses on musicality, and practitioners consider themselves to be a part of the Jazz tradition”. http://en.wikipedia.org/wiki/Tap_dance

Tap Dance is every where you go, I design this shoes as one kind of music which is using tap sound. This shoes create another tone of sound. The concept is still making sound by tapping but more softly and users are tapping on the heel and toe just a little bit. This prototype is not necessary create the tap sound but can be any kind of sound and can add more pitches sound.

In the future, this shoes will be able to record the sound while people are tapping. Also the sound can hear just the player by using head phone. People can crate they own rhythm everywhere. This music device can put on any shoes.

 

CODE :

#include “pitches.h”

int analogpin[6]={A0,A1,A2,A3};

int buzpin=8;

int threshold=70;

void setup()

{

Serial.begin(9600);

}

void loop()

{

if(analogRead(analogpin[0])>threshold)

{

Serial.println(“A0”);

tone(8, NOTE_B4,1000/4);

}

if (analogRead(analogpin[1])>threshold)

{

Serial.println(“A1”);

tone(8, NOTE_A6,1000/4);

}

if (analogRead(analogpin[2])>threshold)

{

Serial.println(“A2”);

tone(8, NOTE_F4 ,1000/6);

}

if (analogRead(analogpin[3])>threshold)

{

Serial.println(“A3”);

tone(8, NOTE_E6,1000/6);

}

if (analogRead(analogpin[4])>threshold)

{

if (analogRead(analogpin[5])>threshold)

{

}

http://garagelab.com/profiles/blogs/projeto-piezoelectric-arduino-drum

FINAL PROJECT PROPOSAL

The purpose of this project’s concept is to make people more close together by  step dance. I will make a shirt with LED strip light, this LED strip light will display when people who wear this shirt make a tap dance. The tap dance will make a sound as an out put also input for LED light to display. Another input is distance sensor or motion sensor that will make the LED light strips are moving faster because when more people come close to you, it will have more interactive to each other when you go out and have fun.

Goal : The goal of this project is to make people create their own sound, dance and have fun.

Input : pressure sensor, distance sensor / PIR sensor, speaker

Output : speaker, LED light strip

Reference :

Tap Shoes

pl34415-5050_smd_led_strip_light_rex1000_high_brightness_240lm_12v_rgb_smd_led_strip

little-boots-cyber-cinderella-led-dress-2

Midterm – Bat

 

 

 

 

 

 

 

 

 

IMG_0867

My concept came from during this project is Halloween so I was thinking about Bat is part of Halloween. Even more scary  to this project was that I made a background that bat got trapped of spider net and it tried to be free. I use two servos at wings, it acted like it moved to let itself free. And distance sensor when spider come closer the bat will stop moving and also distance sensor will tricker the light to change the sound which has been control from photocell. The sound are different between the bat with spider and no spider.

 

 

code

 

#include <Servo.h>

Servo myservo;
const int pingPin = 7;
int val = 0;

void setup() {
pinMode(6, OUTPUT);
delay(3000);

pinMode(13, OUTPUT); // red LED
// pinMode(1, OUTPUT);
Serial.begin(9600);
myservo.attach(9);
}

void loop(){
digitalWrite(6, HIGH);
delayMicroseconds(val);
val = 4*analogRead(A5);
digitalWrite(6, LOW);
delayMicroseconds(val);

long duration, inches, cm;

pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

if(cm <= 15 && cm > 0) {
myservo.write(150);
digitalWrite(13, HIGH);
} else if(cm <= 25 && cm > 15) {
myservo.write(135);
digitalWrite(13, LOW);
} else if(cm <= 50 && cm > 25) {
myservo.write(120);
digitalWrite(13, LOW);
} else if(cm <= 75 && cm > 50) {
myservo.write(105);
digitalWrite(13, LOW);

// digitalWrite(6, HIGH);
// delayMicroseconds(val);
// val = 4*analogRead(A5);
// digitalWrite(6, LOW);
// delayMicroseconds(val);

} else if(cm <= 100 && cm > 75) {
myservo.write(90);
digitalWrite(13, LOW);
} else if(cm <= 150 && cm > 100) {
myservo.write(90);
digitalWrite(13, LOW);
} else if(cm <= 200 && cm > 150) {
myservo.write(30);
digitalWrite(13, LOW);
} else {
myservo.write(0);
digitalWrite(13, LOW);
}

Serial.print(inches);
Serial.print(“in, “);
Serial.print(cm);
Serial.print(“cm”);
Serial.println();
//delay(200);
}

long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}

LOL Shield – Heartbeat

I am doing a heartbeat with LOL shield, the heartbeat will display from bottom to the top.  At first I have tried to use with pulse sensor but I could not do it. So the heartbeat will beat according to delay command.

 

CODE :

#include <avr/pgmspace.h> //AVR library for writing to ROM

#include <Charliplexing.h> //Imports the library, which needs to be
//Initialized in setup.

int blinkdelay = 500; //Sets the time each frame is shown

/*
The BitMap array is what contains the frame data. Each line is one full frame.
Since each number is 16 bits, we can easily fit all 14 LEDs per row into it.
The number is calculated by adding up all the bits, starting with lowest on
the left of each row. 18000 was chosen as the kill number, so make sure that
is at the end of the matrix, or the program will continue to read into memory.

Here PROGMEM is called, which stores the array into ROM, which leaves us
with our RAM. You cannot change the array during run-time, only when you
upload to the Arduino. You will need to pull it out of ROM, which is covered
below. If you want it to stay in RAM, just delete PROGMEM
*/
uint16_t BitMap[][9] PROGMEM = {
//Diaganal swipe across the screen
{0,0,0,0,0,0,0,64},
{0,0,0,0,0,0,0,224},
//{0,0,0,0,0,0,0,496},
//{0,0,0,0,0,0,0,1016},
{1560,3900,8190,8190,4092,2040,1008,480,192},

{18000}
};

void setup() {
LedSign::Init(); //Initializes the screen
}
void loop() {
DisplayBitMap(); //Displays the bitmap
}

void DisplayBitMap()
{
boolean run=true; //While this is true, the screen updates
byte frame = 0; //Frame counter
byte line = 0; //Row counter
unsigned long data; //Temporary storage of the row data

while(run == true) {
for(line = 0; line < 9; line++) {

//Here we fetch data from program memory with a pointer.
data = pgm_read_word_near (&BitMap[frame][line]);

//Kills the loop if the kill number is found
if (data==18000){
run=false;
}

//This is where the bit-shifting happens to pull out
//each LED from a row. If the bit is 1, then the LED
//is turned on, otherwise it is turned off.
else for (byte led=0; led<14; ++led) {
if (data & (1<<led)) {
LedSign::Set(led, line, 1);
}
else {
LedSign::Set(led, line, 0);
}
}

}

//Delays the next update
delay(blinkdelay);
frame++;
}
}

Dancing Robot

I used ultrasonic sensor, when you close to robot it will stop but if you move away the robot will dance. The wheel of the robot I use 2 servos.

 

CODE:

 

#include <Servo.h>

Servo myservo;
const int pingPin = 7;

void setup() {

pinMode(13, OUTPUT); // red LED
Serial.begin(9600);
myservo.attach(9);
}

void loop(){

long duration, inches, cm;

pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

if(cm <= 15 && cm > 0) {
myservo.write(150);
digitalWrite(13, HIGH);
} else if(cm <= 25 && cm > 15) {
myservo.write(135);
digitalWrite(13, LOW);
} else if(cm <= 50 && cm > 25) {
myservo.write(120);
digitalWrite(13, LOW);
} else if(cm <= 75 && cm > 50) {
myservo.write(105);
digitalWrite(13, LOW);
} else if(cm <= 100 && cm > 75) {
myservo.write(90);
digitalWrite(13, LOW);
} else if(cm <= 150 && cm > 100) {
myservo.write(60);
digitalWrite(13, LOW);
} else if(cm <= 200 && cm > 150) {
myservo.write(30);
digitalWrite(13, LOW);
} else {
myservo.write(0);
digitalWrite(13, LOW);
}

Serial.print(inches);
Serial.print(“in, “);
Serial.print(cm);
Serial.print(“cm”);
Serial.println();
delay(200);
}

long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}

 

https://raw.githubusercontent.com/jedgarpark/Make_PIR_Sensor/master/MAKE_PIR_Sensor.pde

BOMB Detector – week5

I use PIR motion sensor with Piezo buzzer, this device will attach with ankle to detect how people move. If people move or walk, it will make noise so you know something moving. Another concept is detect how fast or slow when people are walking, when they walk fast the sound will continue beeping and when they walk slow they sound will stop. New yorkers are walking very fast and ignore other people and surrounding. So this will help them to walk slow and give more attention to what ever surround them.

 

IMG_0627IMG_0628

int ledPin = 13;
int inputPin = 2;
int pirState = LOW;
int val = 0;
int pinSpeaker = 10;
void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(inputPin, INPUT);
  pinMode(pinSpeaker, OUTPUT);
  Serial.begin(9600);
}
void loop(){
  val = digitalRead(inputPin);
  if (val == HIGH) {
    digitalWrite(ledPin, HIGH);
    playTone(300, 160);
    delay(1500);
    if (pirState == LOW) {
      Serial.println(“Motion detected!”);
      pirState = HIGH;
    }
  } else {
      digitalWrite(ledPin, LOW);
      playTone(0, 0);
      delay(1500);
      if (pirState == HIGH){
      Serial.println(“Motion ended!”);
      pirState = LOW;
    }
  }
}
void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 4);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 8);
        elapsed_time += (period/2);
    }
}

Assignment2-Blink

The LED light already true on now because it received the light from the atmosphere but the LED light turn off is when you lay your hand down close to photocell or touch it.

hw2

https://vimeo.com/105937518

Code

int sensorValue = 0; // value read from the pot

int outputValue = 0; // value output to the PWM (analog out)

void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}

void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin);
// map it to the range of the analog out:
outputValue = map(sensorValue, 0, 500, 0, 255);
// change the analog out value:
analogWrite(analogOutPin, outputValue);

// print the results to the serial monitor:
Serial.print(“sensor = ” );
Serial.print(sensorValue);
Serial.print(“\t output = “);
Serial.println(outputValue);

// wait 2 milliseconds before the next loop
// for the analog-to-digital converter to settle
// after the last reading:
delay(2);
}

 

cr. by Tom Igoe

 

 

Daruswat Wattanarojjananikorn-Introduction

blog-20130110-l1021694

 

My name is Daruswat Wattanarojjananikorn, from Thailand.

My undergrad major is Interior Architecture.

After graduated, I had worked in exhibition field for a year and have the opportunity to work in interior and architecture for another 2 years.

While I worked in exhibition field ,I have always interested in interaction design, interface, installation wall and interactive furniture. These interest will extend my previous work in  exhibition and interior design field further by relating a design space that engage more people into space.

My goal is to combine my experience in structure and what I hope to learn about technology together.