Friday, December 7, 2012

Friday, November 30, 2012

Project Managment

Why Learn Project Managment
  • Get projects done on time
  • Feel accomplished
  • Reduce stress
  • Increase enjoyment
  • Produce amazing results
Main Ideas of Project Managment

The main idea of project mamgment is to take a complex problem and decompose it into smaller solvable problems (milestones).  You then set goals to solve the less complex problems.  After the goals are set you determine the tasks required to meet those goals. As tasks are completed you become closer to reaching your goals and hence, solving the complex problem. 

Application of of Project Managment

I really only have on main goal at the moment.  That is to complete school with the knowledge need to apply myself in the real world.  The longer I go to school the more increasingly difficult I find this to be.  As I learn new things I try to integrate them into my existing knowledge. However, few classes seem to be interested assisting in this. As a solution I set a goal to find a way to connect everything I am learning to a real world example. To do this I have several tasks:
  • I must first read and understand the concept.
  • I must find a real world application it can be applied to.
  • I must play with the example till I know the concept is completely understood.
If I complete all of the goals I usually have a very good understanding of a subject. The problem arises when I do not have time to complete all three tasks. I am still working out some time management techniques.

Iteration

The tasks listed above have been repeated time and time again for different concepts across a broad range of subjects. Very few times have I not completely understood a concept after completing all three tasks.

Most Important Things Learned about Project Management

  • Decomposition - I have used decomposition in the past, but never to the extent described in the lesson
  • Using the SIIs - I have done a lot of project managment in the past, but SIIs are something I must always be rememinded of
  • Keep up with the times - This wasn't in the lesson, but during my 2 years as an assistant project manager I learned how important this was.  I watch PM after PM be hired and fired (none ever lasted more than 6 months). The reason being, none of them could keep up with the computer age.  They would spend hours doing calculations with a calculator I could do in minutes with a computer. They would write out schedules by hand that then had to be modified my hand instead of with a simple click of a mouse button. So I think this is most important. To keep up with all the technological oppurtunities possible to make life easier.

Most Important Things Learned about using the Learning Cycle
  • Reflective Observation (Watching other and reflecting) vs. Active Experimentation (Doing things yourself)
  • Abstract Conceptualization (Think your way through a problem) vs. Concrete Experience (Feeling the word and finding a soltuion)
  • Linking existing knowledge to new concepts (which I already knew, but still think is the most important)

Monday, November 26, 2012

Arduino Challenge - Jingle Bells


Problem Statement

Connect a Piezo speaker to an Arduino board and make it play the first four measures of Jingle Bells.

Key Facts

·         The notes to Jingle Bells are:

Note:
E
E
E
E
E
E
E
G
D
E
Counts:
1
1
2
1
1
2
1
1
1
4

·         Assume counts are for 250 to 300 ms.

Solution (Physical World)

The speaker should sing Jingle Bells.

Code

/* Melody
 * (cleft) 2005 D. Cuartielles for K3
 *
 * This example uses a piezo speaker to play melodies.  It sends
 * a square wave of the appropriate frequency to the piezo, generating
 * the corresponding tone.
 *
 * The calculation of the tones is made following the mathematical
 * operation:
 *
 *       timeHigh = period / 2 = 1 / (2 * toneFrequency)
 *
 * where the different tones are described as in the table:
 *
 * note  frequency  period  timeHigh
 * c          261 Hz          3830  1915
 * d          294 Hz          3400  1700
 * e          329 Hz          3038  1519
 * f          349 Hz          2864  1432
 * g          392 Hz          2550  1275
 * a          440 Hz          2272  1136
 * b          493 Hz          2028 1014
 * C         523 Hz         1912  956
 *
 * http://www.arduino.cc/en/Tutorial/Melody
 */
 
int speakerPin = 9;
int length = 15; // the number of notes
char notes[] = "eeeeeeegcde "; // a space represents a rest
int beats[] = { 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 4,};
int tempo = 300;
void playTone(int tone, int duration) {
  for (long i = 0; i < duration * 1000L; i += tone * 2) {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(tone);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(tone);
  }
}
void playNote(char note, int duration) {
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
 
  // play the tone corresponding to the note name
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
      playTone(tones[i], duration);
    }
  }
}
void setup() {
  pinMode(speakerPin, OUTPUT);
}
void loop() {
  for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
      delay(beats[i] * tempo); // rest
    } else {
      playNote(notes[i], beats[i] * tempo);
    }
   
    // pause between notes
    delay(tempo / 2);
  }
}

Wednesday, November 14, 2012

Growing My Performance in Collaboration

Defensive Reasoning

Definsive reasoning is a response to being told you are incorrect or being judged. Definsive reasoning can make people respond hastely and scew their data/ word to fit their opinion. People who are told they are responding definsively will deny it.

This is a problem because:
  • It causes people to pursue dead ends
  • It makes people disfunctional and causes team disruption
This can be overcome by:
  • Not responding because of emotions.
  • Recognizing when you are getting defensive.
  • Analyzing the sittuation and applying the SII method
  • Taking time before giving a response by claiming you would need to check data, ect.

The SII Process
  1. Identify the strengths that helped complete a task.
  2. Identify areas of improvement to help complete the task the next time by identifying problems and skills to solve those problems
  3. Identify insights by looking for the "lightbulb" moments when completing the task.

SII in Collaboration

  1. Strengths
    • I took responsibility for verifig everythign was done
      • Name - Took Responsibility
      • How? - Habitual/ I have a lot of project managment experience
      • Why? - It helped ensure everything was completed on time
    • I listened to others thoughts without critisizing
      • Name - Listening
      • How? - By not talking before they were finished
      • Why? - It gave me more ideas to work with when developing theories and soltuions.
  2. Improvments
    • Issue - I took control which gave me a lot of responsibility
      • Name - Delegate
      • How? - Be more willing to assign tasks to other team members.
      • Why? - It will destress me and make my results better, and other team members will learn more.
    • Issue - I could have taken better notes.
      • Name - Notes
      • How? - Write down what others say.
      • Why? - I will have more to work with when working on the project.
  3. Insights
    • Insight #1 - People really should say what they think, so long as their thought has been first completely thought out. This makes for more ideas reaching the team.

Monday, November 5, 2012

Thermal Model

Math Model
 
 
MATLab Entry
mice = .014787;
mwater = .42;
Twater=12.2222;
Tice = -20;
Te = (-((mice*(Tice))/mwater)+Twater)/((mice/mwater)+1)
 
MATLab Results
Equalribrium Temperature is 12.4867 Degrees Celcius.
 
Experiment Design
 
Temerature sensor was water proofed by a straw and hotglue. Temperature was the measured using a arduino programmed to relay data back the the console.

 Experiment Results

 
Conclusion (Theoretical vs. Experimental)
 
Experimental data was far from the predicted data.  This leads me to believe that the math model has an error. Other possible errors could result from the exclusion of the glass, air, and positioning of ice vs. teperature probe from the math model. However upon multiple reviews of the math model no errors could be found with the exception of the formetioned exlusions.
 
Collaboration
Data was collected in collaboration with Jason Hurst (because I am still without a temperature sensor).

Experiment Design

Experiment Design

Experiment design is designing a system to collect data or solve a problem that is relevant. Data collected should be as close to true as possible.

Benefits of Experiment Design
  1. Gives you feedback on your understanding of a system. If understanding is correct the data will algin closely with your math model.
  2. Data will be relevant and true.
  3. Make explaining your work to others easier.
  4. Helps build credibility in the industry.
Process of Experiment Design.
  1. Find out why you need to do the experiment.
  2. Build a understanding of the current knowledge available on the situation
  3. Put together a hypotheses on the collected data from step 2.
  4. Determine an effective experiment to verify the hypotheses by: stating the goal, generating ideas, analyzing the ideas, making a plan, and assembling the materials needed.
  5. Execute the experiment, do reflective thinking and repeat if nessessary.
Science vs. Alchemy.

Scentific belief is believing in data, evidence, and reasoning.  Properly obtained data is most likely true.  Alchemy beliefs is trusting in what one thinks. If the data does not agree then the data must be wrong. People preffer to believe in what they think over the data because the brain releases chemicals that tell them to argue the data that does not agree with what they think.

Benefits of Believing in Science
  1. Helps arguments because it is hard for others to win an arguement against good data.
  2. Adds new possibilities as we collect more and more data and connect the dots between it.
Examples of Scientific Method.
  • The scientific method can be used when learning to help determine constants and how to obtain those constants.
  • The scientific method can be used in product design to determine how a long a product will last by repeatedly having it exposed to a given situation.
  • The scientific method can be used to verify the math model of an engines efficiency by comparing the predicted data with the experimental data.

Thursday, November 1, 2012

Temperature Measurement

Importance of Programming Knowledge
Basic computer programming knowledge is crucial for modern mechanical engineer.  Having knowledge of basic computer programming allows gives a mechanical engineer several advantages
  • It allows them to complete data collection that would take hours to do manually in a matter of minutes.
  • It give them the ability custom modify a program to take data easily.
  • It gives them the ability to solve some systems electronically vs. mechanically could save time, materials, and money durring production.
Process for Getting Results
To develop a great program with minimal effort it is easiest to start with some example code. The example code can then be modified to fit the situation. The easiest way to find the commands for modifying the example code with is by using a schema.

Sample Data
The following data chart is water being reduced to room temperature from 160 degrees farhenheit.


Code
/*
 *Temperature Data Logger
 */
int time = 0;
int temperaturePin = 0;                           //determines the input pin for the temperature sensor
float gtemperature;                               //global variable to transfer an int version of the value

                                                  //coming from the sensor

void setup()
{
  Serial.begin(9600);                             //Start the serial connection with the copmuter to view the result open the serial monitor
}

void loop()                                       //loops the program
{
  gtemperature = tempreading();                   //converts the temperature reading to an int       
  Serial.println("Temperature");                  //Prints "Temperature" to debug screen
  Serial.println(gtemperature);                   //Shows the temperature variable value for debugging
  Serial.println("Time");                         //Prints "Time" to debug screen
  Serial.println(time);                           //Shows the temperature variable value for debugging
  delay(900);                                     //waiting 9ms
  time = time+1;                                  //Shows the temperature variable value for debugging
}

float tempreading()                               //Function for reading the temperature sensor and
                                                  //returning a float variable
{
  float temperature = getVoltage(temperaturePin); //getting the voltage reading from the temperature sensor
  temperature = (((temperature - .5) * 100)*1.8)+32;      //converting from mv to degrees fahrenheit
  delay(100);                                     //waiting a tenth second
  return temperature;
}

float getVoltage(int pin)                         //getVoltage() - returns the voltage on the analog input defined by pin
{
  return (analogRead(pin) * .004882814);          //converting from a 0 to 1023 digital range to 0 to 5 volts (each 1 reading equals ~ 5 millivolts
}
 
Code Features
My code has several useful features. It reads temperature in farhenheit to make it easy to verify that the data is relevant. It also seperates the time and temperature onto seperate lines to make it easier to chart later.
 
Reflective Thinking
It would have been much easier to chart the data if it had already been in columns. This could have been done by modifying the lines of code that tell the program to output to the screen to evenly space the data on the same line.

Data logging and code development was done in collaboration with Jason Hurst.