Monday, December 10, 2007
Sunday, December 9, 2007
Xylophone Send and Receive code
//boolean keyHit = false;
int potPin = 2;
int ledPin = 13;
int val = 0;
int keyHit[] = {0,0,0,0,0,0,0,0};
void setup() {
Serial.begin(9600);
for(int x=0;x<=5;x++) {
pinMode(x, INPUT);
}
for(int y=8;y<=13;y++) {
pinMode(y, OUTPUT);
}
}
void loop() {
for(int i=0; i<=7; i++){
val = analogRead(i);
// Serial.println(i);
/* if(val > 40 && keyHit == false) {
Serial.println(i);
// Serial.print(" hit");
Serial.println(val);
keyHit = true;
digitalWrite(i+7, HIGH);
delay(30);
digitalWrite(i+7, LOW);
delay(200);
break;
} */
if(val > 40 && keyHit[i] == 0) {
Serial.println(i);
// Serial.print(" hit");
Serial.println(val);
keyHit[i] = 1;
digitalWrite(i+8, HIGH);
delay(30);
digitalWrite(i+8, LOW);
delay(100);
break;
}
else if (val == 0) {
keyHit[i] = 0;
}
}
}
int potPin = 2;
int ledPin = 13;
int val = 0;
int keyHit[] = {0,0,0,0,0,0,0,0};
void setup() {
Serial.begin(9600);
for(int x=0;x<=5;x++) {
pinMode(x, INPUT);
}
for(int y=8;y<=13;y++) {
pinMode(y, OUTPUT);
}
}
void loop() {
for(int i=0; i<=7; i++){
val = analogRead(i);
// Serial.println(i);
/* if(val > 40 && keyHit == false) {
Serial.println(i);
// Serial.print(" hit");
Serial.println(val);
keyHit = true;
digitalWrite(i+7, HIGH);
delay(30);
digitalWrite(i+7, LOW);
delay(200);
break;
} */
if(val > 40 && keyHit[i] == 0) {
Serial.println(i);
// Serial.print(" hit");
Serial.println(val);
keyHit[i] = 1;
digitalWrite(i+8, HIGH);
delay(30);
digitalWrite(i+8, LOW);
delay(100);
break;
}
else if (val == 0) {
keyHit[i] = 0;
}
}
}
Saturday, December 1, 2007
Transistor Array Vs. Array of Transistors
Originally, we were working with a transistor array, also known as a Darlington Array. This was the only variety locally available. It worked for a few hours and then stop working.
After looking as specs and talking to several people, it appears that this variety of transistor array is not rated to handle the amperage output of the solenoids. While the running amperage was fine, the startup was not.
This leads us to use an array of TIP120s that can handle the amperage. The TIP120s also use a 1N4004 diode.
Refer here for more information.
After looking as specs and talking to several people, it appears that this variety of transistor array is not rated to handle the amperage output of the solenoids. While the running amperage was fine, the startup was not.
This leads us to use an array of TIP120s that can handle the amperage. The TIP120s also use a 1N4004 diode.
Refer here for more information.
Wednesday, November 28, 2007
Timelime
Wednesday and Thursday (11/28-29)
Since the transistor array cannot support the amperage output of the solenoids, we will be building arrays of TIP120s.
Friday (11/30)
Having issues with Piezo moving around. Need to determine a way to keep it beneath the Xylophone plates and maintain it's vibrati-ness.
Saturday-Sunday (12/1-2)
Working on the X-port to see if we can get two to communicate with each other.
Monday-Wednesday (12/3-5)
Debugging
Thursday-Friday (12/6-7)
Make it pretty!
Saturday-Sunday (12/8-9)
Open
Monday (12/10)
Presentation
Since the transistor array cannot support the amperage output of the solenoids, we will be building arrays of TIP120s.
Friday (11/30)
Having issues with Piezo moving around. Need to determine a way to keep it beneath the Xylophone plates and maintain it's vibrati-ness.
Saturday-Sunday (12/1-2)
Working on the X-port to see if we can get two to communicate with each other.
Monday-Wednesday (12/3-5)
Debugging
Thursday-Friday (12/6-7)
Make it pretty!
Saturday-Sunday (12/8-9)
Open
Monday (12/10)
Presentation
Piezo and Solenoid testing code
boolean keyHit = false;
int val = 0; // value coming from the Piezo
void setup() {
Serial.begin(9600);
for(int x=0;x<=5;x++) { pinMode(x, INPUT); } for(int y=8;y<=13;y++) { pinMode(y, OUTPUT); } } void loop() { for(int i=0; i<=5; i++){ val = analogRead(i); if(val > 40 && keyHit == false) {
Serial.println(i);
Serial.println(val);
keyHit = true;
digitalWrite(i+8, HIGH);
delay(50);
digitalWrite(i+8, LOW);
} else if (val == 0) {
keyHit = false;
}
}
}
int val = 0; // value coming from the Piezo
void setup() {
Serial.begin(9600);
for(int x=0;x<=5;x++) { pinMode(x, INPUT); } for(int y=8;y<=13;y++) { pinMode(y, OUTPUT); } } void loop() { for(int i=0; i<=5; i++){ val = analogRead(i); if(val > 40 && keyHit == false) {
Serial.println(i);
Serial.println(val);
keyHit = true;
digitalWrite(i+8, HIGH);
delay(50);
digitalWrite(i+8, LOW);
} else if (val == 0) {
keyHit = false;
}
}
}
Monday, November 19, 2007
Mounting Sensors and Actuators
Sunday, November 11, 2007
Testing Components
We are still waiting for the xylophones, but we can pre-test the components to see if they are feasible.
Ledex Miniature 12VDC Tubular Solenoid
We powered up the solenoid and the shaft pops out when powered and drops when the power is removed. It appears that it will work with our system if we mount them on the underside of the the mallets.
To sense when a xylophone key is struck, we are testing piezos and FSRs.
FSR
Gets good readings but relies on the user hitting sensor directly, which means the sensor needs to be mounted on top of the keys and be touched by the mallet.
3 Lead Piezo Disk
The piezo seems to work better. The piezo picks up vibrations. It's drawback is that there appears to be a 3-5 seconds delay between hitting keys.
Ledex Miniature 12VDC Tubular Solenoid
We powered up the solenoid and the shaft pops out when powered and drops when the power is removed. It appears that it will work with our system if we mount them on the underside of the the mallets.
To sense when a xylophone key is struck, we are testing piezos and FSRs.
FSR
Gets good readings but relies on the user hitting sensor directly, which means the sensor needs to be mounted on top of the keys and be touched by the mallet.
3 Lead Piezo Disk
The piezo seems to work better. The piezo picks up vibrations. It's drawback is that there appears to be a 3-5 seconds delay between hitting keys.
Subscribe to:
Posts (Atom)