18
ECE 001 FINAL REPORT BY: Liz Ork, Dara Novini, and Morgan Oxenrider

ECE 001 FINAL REPORT

  • Upload
    maylin

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

BY: Liz Ork , Dara Novini , and Morgan Oxenrider. ECE 001 FINAL REPORT. TEAM PICTURE. Pictured from left to right: Liz Ork , Robert Proie , Jordan Newcome , Dara Novini , Morgan Oxenrider , Professor Ahmadi. Group #10. Robot Name: The Miracle Runner. PROJECT OBJECTIVES. - PowerPoint PPT Presentation

Citation preview

Page 1: ECE 001 FINAL REPORT

ECE 001 FINAL REPORT

BY: Liz Ork, Dara Novini, and Morgan Oxenrider

Page 2: ECE 001 FINAL REPORT

TEAM PICTURE

Pictured from left to right: Liz Ork, Robert Proie, Jordan Newcome, Dara Novini, Morgan Oxenrider, Professor Ahmadi

Page 3: ECE 001 FINAL REPORT

Group #10

Robot Name: The Miracle Runner

Page 4: ECE 001 FINAL REPORT

PROJECT OBJECTIVES1. Construct a robot with Lego pieces.2. Program the robot using Interactive C

so that the robot can move along a curved path from start to finish.

3. Once the robot as moved from start to finish, program the robot to make a U-turn and continue back along the curved path to the start line.

Page 5: ECE 001 FINAL REPORT

PROJECT RESOURCESParts List: Handyboard 2 Motors 2 Analog Light Sensors Lego Pieces Tread Wheels

Page 6: ECE 001 FINAL REPORT

PROGRAM LISTINGvoid main(){    while(start_button()==0); /*begins program when start button is pressed*/      {

}     while(1) /*repeats code indefinitely*/      {        if(analog(5)>200&&analog(6)>200) /*if both sensors read above 200, U-turn at

end of course*/          {            ao();            sleep(.5);            motor(3,-100);            motor(1,100);  sleep(1.75); /*180 degree turn*/

Page 7: ECE 001 FINAL REPORT

PROGRAM LISTING (CONT.)        }        if(analog(5)>200) /*if sensor in port 5 reads above 200*/          {            motor(3,-100);            motor(1,90);        }        else if(analog(6)>200) /*if sensor in port 6 reads above 200*/            {              motor(3,90);              motor(1,-100);            }            else /*if neither sensors read above 200*/              {                motor(3,-100);                motor(1,-100);          }                }            }

Page 8: ECE 001 FINAL REPORT

ROBOT DESIGN We chose to use treads instead of

wheels to make the turning of the robot smoother. Also, by using treads, one part of the robot did not drag during turns.

We chose to program our robot at maximum power so the treads could move easily under the weight of the robot.

Page 9: ECE 001 FINAL REPORT

ROBOT DEVELOPMENT Each team member took part in both the

software (programming) and “hardware,” or building of the robot.

We started by building the robot. After that we slowly started writing the program step by step. At first we focused on getting our robot to follow the path from beginning to end, and after we accomplished that, we worked on getting the robot to make the u-turn and follow the path back.

Page 10: ECE 001 FINAL REPORT

CHALLENGES We faced difficulties when trying to

figure out how long to program our robot to spin when making the u-turn.

Another problem we faced was our gear ratio. We ended up having to redesign our gears and wheels in order to have enough power to turn the treads.

Page 11: ECE 001 FINAL REPORT

SUCCESSES We are proud that our robot was able to

complete the U-Turn successfully, and follow the course back to the start.

Page 12: ECE 001 FINAL REPORT

CENTRIFUGE A centrifuge is a piece of

equipment that puts a substance in a circular motion to separate one fluid from another by centrifugal force.

This centrifuge was used to separate oil and water. Since oil is less dense than water, oil will collect in the inner layer, while water collects in the outer layer.

Page 13: ECE 001 FINAL REPORT

CENTRIFUGE SOURCE CODEvoid main(){ int speed=0; float separation_time=1.0; /*sets sleep time for motor spinning at 100%*/ float ramp_time=.1; printf("\nPress start button to begin"); while (start_button()==0) { } /*press start button to begin program*/ while(stop_button()==0) /*print reading when stop button is pressed*/ { printf("\nMixed up Value=%d", analog(20)); sleep(2.0); }while (speed<100) /*ramp speed up*/ {

Page 14: ECE 001 FINAL REPORT

CENTRIFUGE SOURCE CODE (CONT.)

motor(1,speed); speed=speed+3; sleep(0.5); } sleep (separation_time); /*motor spinning at 100% for set time*/ while(speed>=100) /*ramp speed down*/ { motor(1,speed); speed=speed-3; sleep(0.5); } ao(); /*all motors off*/ while(stop_button()==0) /*print reading from sensor when stop button is

pressed*/ { printf("\nMixed up Value=%d", analog(20)); sleep(2.0); } }

Page 15: ECE 001 FINAL REPORT

RESULTS Trial # Sensor

Reading (before separation)

Sensor Reading (after separation)

Ramp UP Time

Time to Separate

Ramp DOWN Time

Motor Speed

Oil Water (s) (s) (s) (%)

1 75 50 100 9 2 9 100

2 75 50 100 9 2.5 9 90

3 75 50 100 9 3 9 80

4 75 50 100 9 3.5 9 70

5 75 50 100 9 4 9 60***Estimated Values Average=3

Page 16: ECE 001 FINAL REPORT

RESULTS (CONT.)

1.5 2 2.5 3 3.5 4 4.50

20

40

60

80

100

120

Time to Separate vs Motor Speed

Motor Speed (%)

Page 17: ECE 001 FINAL REPORT

CONCLUSIONS As a group, we have learned many things

throughout the process of building and successfully completing both our robot and centrifuge. We learned that software (the code we wrote) is taken

very literally. For example, when you tell something “on,” it will turn on immediately and all at once.

We also learned you often had to experiment with the programming and the building materials to ensure that the robot ran as smoothly as possible.

We were also forced to account for the stability of both projects because if they were not sturdy, it would be difficult for the robot to run and support the handyboard, and for the centrifuge to stay together when spinning.

Page 18: ECE 001 FINAL REPORT

CONCLUSIONS Overall, we all expected both tasks to be

much more challenging than they turned out to be. This by no means is saying that either task was easy, as we often received the “error” statement when writing our programs. While still being quite a task, once we gained a greater understanding of Interactive C and the language that goes along with it, the task was doable.