Changes

Students/MikeTeall

6,101 bytes added, 00:17, 19 March 2010
Final Project
adapter for my laptop as well. I have put together several desktop systems, including my most current one which has an Intel i7 920 processor running at 3.7 Ghz with a gigantic air cooler, 6 Gigabytes of ddr3 ram running at 1600 Mhz, an ATI Radeon 5770 graphics card running crossfire x, 2 terabytes of hard disk space running in a RAID configuration, and a 750 watt power supply with a really nice case. I do not know all the ins and outs of all electronics, but I have a decent basic understanding and some limited experience to bring to the classroom with me. I am also interested in cutting edge electronics in general and feel this class would be fun for me along with giving me the most skills out of the A/B class sequences for the ICAM major in addition to providing me with some of the skills necessary to complete the ICAM senior project.
== '''Midterm Project Proposal''' ==
So I have two different ideas that I could possibly do for the midterm project: "Mercury Tilt Switch"
Materials: 4 mercury tilt switches, 1on/off toggle switch, one toilet float ball, sound chip from a birthday card, wire, solder, hot glue gun, particle board.<br>[[Image:float_ball.jpg]][[Image:toggle_switch. A tilt sensor switch that turns jpg]][[Image:mercury_tilt_switch.jpg]][[Image:card_sound_chip.png]]<br>I cut the top off the float ball and removed the stem as well. I cut out a round piece of particle board and drilled a light hole in the middle to fit inside. I then glued the 4 mercury switches down on or off, the particle board. I then wired all 4 of them along with some other eventthe toggle switch in series, which I connected to the sound chip. The sound will only play if the toggle switch is on, and the device is held level. All 4 mercury switches must have the ball of liquid mercury touching the two leads on the inside for the sound to play. A tilt of only a couple degrees will break the circuit.
2== '''Final Project''' ==<br>[[Image:Board1.jpg]][[Image:Board2.jpg]][[Image:LED1.jpg]][[Image:LED2. The simple psycho-galvanometerjpg]][[Image:Mounted.jpg]][[Image:Mounted2. (checks for the change in resistance in the human skin depending on body chemistry altered by a number of different things such asjpg]][[Image: emotion, attention, and stressWtf.jpg]]
Demonstration Video:
1http://www. The tilt sensor device would have 4 tilt sensor switches in 4 corners of a square object that one is to holdyoutube. If the individual tilts any of the 4 corners past approximately 2 degrees, the current will flow and light up a light bulb. The current will also possibly trigger an obnoxious sound through the small speaker we were given in our electronics kits. com/watch?v=FLu9jkhtI2Q
2. The galvanometer will be hooked up to a participant via a static wrist strap or maybe even wires soldered to 2 pennies and taped on perhaps. The participant will then light up the bulb involuntarily through various emotional responses or some trigger event perhaps Materials:)
Either of these projects are contingent on the availability of the components. So far I have found tilt sensorsProject Box 3"x5", Freeduino, Old Analog flight joystick 15 pin, 15 pin solderable female connector, Toggle Switch, 9v Battery, but have yet to even look 35 red LED's (only 25 used for the rest. I will decide which project I want to build after lecture on Thursday and also by component availability as well. Once I decide which project to build), a 2" 8 ohm speaker, An unprinted circuit board, screws, I will draw a simple schematic whole lot of wire, and write more on how it worksthe rest of my solder.
 
After revisions to my project due to feedback from my Instructor and Ta, I have decided to make an instrument spanning two octaves starting on c4 and ending on b5. The sound circuit will be very simple, going from digital output pin 2 of the arduino through a 100 ohm resistor, and one capacitor into the positive terminal of the speaker, and the other speaker terminal going to ground. I am going to make a 5x7 led matrix that will utilize a 5x5 portion for the project. The LED's and the sound circuit will be mounted on an unprinted circuit board. This circuit board has 19 one inch or so pieces of stiff wire soldered into it to act as pins, so the whole circuit board simply plugs directly into the top of the freeduino. There are 5 analog inputs, 11 digital outputs, 1 +5v, 2 Gnd. The control of the device is an analog joystick with x and y axis, 2 buttons, and an adjustment wheel that I am using as a third button. There will be three different modes of interaction: In Free play mode the user only has to move the joystick around on the x and y axis to produce the respective tones. In selective mode the user will move the stick to any position, but the sound will only be produced when the user presses the trigger button. For demo mode, the user simply pushes the top button and a preprogramed melody will play.
 
Melody Demo:
 
Uppercase letters are sharp, lowercase are normal notes.
|-C---C-----|-d-C-d-C-----|-d-C-d------|----------------|
|---b----F--|----------b--|--------F---|-b-a-b-a-G-b-a--|
 
 
 
Actual Used Code:
 
/*
Vis 147a Final Project
"Analog Joystick as an instrument"
Written by Mike Teall
*/
 
//initializing both indexes
int oldindex = 0;
int oldindex2 = 0;
//my array of frequencies from c to b over two octaves, with one dead zone in the middle
int myTones[] = {262, 277, 294, 311, 330, 349, 370, 392,
415, 440, 466, 494, 0, 523, 554, 587, 622, 659,
699, 740, 784, 830, 880, 932, 988};
//this array is holding the pin numbers driving the row of my led matrix
int myRowPins[] = {3, 4, 5, 6, 7};
//this array is holding the pin numbers driving the Column of my led matrix
int myColPins[] = {9, 10, 11, 12, 13};
//this array is holding the indices to notes stored in myTones for the pre-programmed
//tune
int myTune[] = {14, 11, 14, 6, 15, 14, 15, 14, 11, 15, 14, 15, 6, 11, 9, 11, 9, 8, 11, 9};
//these are note durations and used to control loop speed during pre-programmed tune
int durations[] = {100, 100, 200, 400, 100, 100, 100, 200, 400, 100, 100, 200, 400, 100, 100, 100, 100, 100, 100, 400};
 
//Initialization Routine
void setup() {
// initialize serial communications (for debugging only):
Serial.begin(9600);
// definining these digital pins as outputs
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
//Initializing Row Pins to High
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
 
//Main Program Loop
void loop() {
// read the sensors:
int val = analogRead(0);
int val2 = analogRead(1);
int val3 = analogRead(2);
int val4 = analogRead(3);
int val5 = analogRead(4);
//map sensor inputs to useful ranges
int selector = map(val3, 1, 850, 0, 1);
int button1 = map(val4, 1, 850, 0, 1);
int button2 = map(val5, 1, 850, 0, 1);
int index = map(val, 1, 850, 0, 4);
int index2 = map(val2, 1, 850, 0, 4);
int index3 = index2*5;
//continuous play mode
if (selector == 0)
{
if ((index != oldindex) || (index2 != oldindex2))
{
//turn off old led, turn on new led
digitalWrite(myColPins[oldindex], LOW);
digitalWrite(myRowPins[oldindex2], HIGH);
digitalWrite(myColPins[index], HIGH);
digitalWrite(myRowPins[index2], LOW);
}
//choose a tone from the myTones array
int thisPitch = myTones[index+index3];
//Serial.println(button2);
// play the pitch:
tone(2, thisPitch, 10);
//keep track of old index values so we can turn off the old led in case of change
oldindex = index;
oldindex2 = index2;
}
//this is trigger mode, where no sound will play unless trigger is pulled
if (selector == 1)
{
if ((index != oldindex) || (index2 != oldindex2))
{
digitalWrite(myColPins[oldindex], LOW);
digitalWrite(myRowPins[oldindex2], HIGH);
digitalWrite(myColPins[index], HIGH);
digitalWrite(myRowPins[index2], LOW);
}
//selects tone in case trigger is pulled
int thisPitch = myTones[index+index3];
//check trigger
if (button1 == 0)
{
//trigger pulled, play tone
tone(2, thisPitch, 10);
}
oldindex = index;
oldindex2 = index2;
 
}
//This is the pre-programmed routine of "Final Countdown"
//check button
if (button2 == 0)
{
oldindex = 2;
oldindex2 = 2;
//for loop steps through the myTune array to choose indices for tones
for (int i=0; i<20; i++)
{
//index for columns is i div 5
//index for rows is i % 5
index = myTune[i]/5;
index2 = myTune[i]%5;
digitalWrite(myColPins[oldindex2],LOW);
digitalWrite(myRowPins[oldindex],HIGH);
digitalWrite(myColPins[index2],HIGH);
digitalWrite(myRowPins[index],LOW);
//playing the current note of the pre programmed sequence
tone(2, myTones[myTune[i]], (durations[i]*2));
delay (durations[i]*2);
oldindex = index;
oldindex2 = index2;
//Serial.println(index2);
}
//clears last light from tune sequence
digitalWrite(myColPins[oldindex2],LOW);
digitalWrite(myRowPins[oldindex],HIGH);
}
}
== ''Field Research Listed Below'': ==
57
edits