You are on page 1of 48

PRJ 62404 ENGINEERING DESIGN AND ANALYSIS

Final Report

MODULE COORDINATOR
Dr. Ku Pei Xuan

Group Name : Team Pepeg


Name : Covyn Yong Keen Lok
Student ID : 0340868
Programme : CE/EE/ME

Due Date: 21/11/2019


Date of Submission: 21/11/2019

Return of student marked assessment tasks. Please check (√) the necessary column.
√ Electronically to the individual student via the University learning management
system
Collect during class, only by the student
Collection from the school or a staff member upon presentation of their student ID
card
Collection from module coordinator, lecturer or tutor by prior arrangement
* For online assessment such as forum, quiz, test, survey and etc., return of students
marked assessment tasks are published in TIMES.

1
Content
1.0 Return of Failure
1.1 Return of Failure 1……………………………………………………….3
1.2 Return of Failure 2……………………………………………………….5

2.0 Team analysis


2.1 Team analysis 1………………………………………………………….7
2.3 Team analysis 2………………………………………………………….8
2.3 Team analysis 3………………………………………………………….9
2.4 Team analysis 4………………………………………………………….10
2.4 Team analysis 5………………………………………………………….11

3.0 Meeting minutes


3.1 Meeting minutes 1……………………………………………………….12
3.2 Meeting minutes 2……………………………………………………….14
3.3 Meeting minutes 3……………………………………………………….16
3.4 Meeting minutes 4……………………………………………………….18
3.5 Meeting minutes 5……………………………………………………….20
3.6 Meeting minutes 6……………………………………………………….22
3.7 Meeting minutes 7……………………………………………………….24
3.8 Meeting minutes 8……………………………………………………….26
3.9 Meeting minutes 9……………………………………………………….28
3.10 Meeting minutes 10…………………………………………………….30
3.11 Meeting minutes 11…………………………………………………….32

4.0 Evidences ……………………………………………………………………34


4.1Coding …………………………………………………………………....38

5.0 Conclusion …………………………………………………………………...47

2
1.0 Return of Failure
1.1Return of Failure 1
Describe the failure or mistake that you are analysing

We changed a new motor wheel to an old motor wheel. The old motor wheel is going
at a slower speed than the other 3 motor wheels, it caused the robot car couldn’t go in a
straight line.

Examine what was the Root Cause of the failure

The motor wheel is connected correctly to the wires but when we were planning to
stick the motor wheels on the perspex the copper plate of the motor wheel and wire
broke apart. We tried soldering the motor wheel and the wires together, but it came off.
On the second try, the motor wheel and the wires joined but, there is no current flow
through the copper plate of the motor wheel. So, we decided to change the new motor
wheel to an old motor wheel.

This is the This is the older

new motor motor wheels.

wheels.

Are there any other ways that you could have failed to achieve your objectives?

There is a possibility that the motor wheel is not functioning well because the copper
plate is not conductive so there is not enough power for the motor wheel to function.
Also, there is a chance that the wire has a lower conductivity. Other than that, it might
be the suppliers selling us rejected components from the factory.

3
Describe how you will use the insight above so that you eliminate or minimize the
possibility of failure in the future.

I suggest that we can get the components from the other store or test the components
before we made the payment. Also, we can do the soldering better so that it won’t
break apart. Moreover, we can either use a stronger battery or use a better wire.
What are the other key learnings from this failure?

In this failure, we learned that we should double-check every component and make
sure that the component is functioning before we make the payment. We can also buy
the components from a more reliable shop or handle the motor carefully.

4
1.2 Return of Failure 2
Describe the failure or mistake that you are analysing

We were planning to build our own chassis and not getting one out there, we spent a
little more time on assembling the chassis and that is why it slowed down on our
progress. But in the end, we decided to go for laser cut and wasted some time in
building the chassis in the beginning.

Examine what was the Root Cause of the failure

We were uncertain whether to build the chassis by ourselves or use laser cut to build
the chassis. At first, we build the chassis by ourselves, because we did not know how to
design the chassis and have no idea on how to operate the laser cut machine.
Unfortunately, the upper chassis and the lower chassis are not aligned, and the chassis
seems imperfect, so we decided to use laser cut.
Are there any other ways that you could have failed to achieve your objectives?

We used Tinker CAD to design the diagram for the chassis but when we were about to
laser cut the chassis, we found out that the measurement of our chassis has been
randomly changed. Thus, we need to use the laboratory’s computer to redesign the
diagram. The progress is still delayed because when we are done designing the
diagram, some seniors are using the laser cut machine and it is about 5 p.m. so we came
back on the next day morning to laser cut the chassis.
Describe how you will use the insight above so that you eliminate or minimize the
possibility of failure in the future.

I suggest that we should use laser cut because it uses lesser time than cutting it
ourselves and the designing of the diagram is just about 15 minutes. As a result, it gives
a cleaner cut and more accurate measurement of the chassis. Other than that, we could
buy a chassis from the shop that comes with 4 motor wheels so that our task is easier
and have more time to improve on our robot car.

5
What are the other key learnings from this failure?

In this failure, we have learned that we should consistently follow up with the progress
to prevent delay of progression. Also, we should do some research based on laser cut so
that we know it is not that difficult to operate.

6
2.0 Team analysis
2.1 Team analysis 1

7
2.2 Team analysis 2

8
2.3 Team analysis 3

9
2.4 Team analysis 4

10
2.5 Team analysis 5

11
3.0 Meeting minutes
3.1 Meeting minutes 1

12
13
3.2 Meeting minutes 2

14
15
3.3 Meeting minutes 3

16
17
3.4 Meeting minutes 4

18
19
3.5 Meeting minutes 5

20
21
3.6 Meeting minutes 6

22
23
3.7 Meeting minutes 7

24
25
3.8 Meeting minutes 8

26
27
3.9 Meeting minutes 9

28
29
3.10 Meeting minutes 10

30
31
3.11 Meeting minutes 11

32
33
4.0 Evidence
Conceive
Qi Xiang was assigned to create some questions on the online survey about autonomous
parking and is autonomous parking useful in our everyday lives. I and Daniel was
assigned to spread the survey to the public. Foo Zi Jun and Jun Han will analyse the data
and create graphs using the data we collected.

Picture above show that we are having a brainstorming session.


Design
Me and Jun Han went to robotic in Kuala Lumpur to buy the components. We proposed
some ideas on how the robot car should be built and Qi Xiang finalize the drawings in
Tinker CAD to get a better view of the robot car before we construct it.

Picture above shows that Qi Xiang is designing the robot car.

34
Implement
After the designing part is done, Qi Xiang started building the robot car by soldering the
motor wheels with the wires. We make the chassis by cutting out from a plastic board
then we find out that it is imperfect so decide to go on laser cut. We have 2 levels for our
robot car the lower part is glued with the 4 motor wheels, a lipo battery, and an IR sensor.
The upper part has an Arduino board, breadboard and 3 ultrasonic sensors.

Picture above show that I


and Daniel are sticking
Picture the
above shows that I am
tires to the perspex.
drilling holes on the perspex so
that wires on the bottom part
can easily connect to the
Arduino on the upper part.

Picture on the left shows that


Foo Zi Jun is operating the laser
cut machine to cut out the
chassis.

35
Picture above shows that
Picture above shows that
Qi Xiang is soldering the
Jun Han is programming
motor wheels with wires.
the robot car.

36
Picture above shows that I am
Picture above shows that Foo Zi
cutting the perspex.
Jun is connecting the wires to
the breadboard.

Operate
After building the robot car, we are testing the robot car
in the maze and the black tape where the robot car
should stop and also the parking.

37
Picture above show that we
Picture above shows that Jun
are testing the IR sensor on
Han is testing out the robot car.
the robot car

Picture on the left show that we


are brainstorming some ideas to
solve the robot car issues.

38
5.1 Coding
int E1 = 10;
int M1 = 12;
int E2 = 11; ///////////////low/high(right)////high/low(left)
int M2 = 13;
char incoming_byte = 0;
int value = 0;
int irSensorFront = A0;
int Sensorvalue1 = 1;
#define echoPin1 A2 // Echo Pin Front
#define trigPin1 A1 // Trigger Pin Front
#define echoPin2 9 // Echo Pin Left
#define trigPin2 8 // Trigger Pin Left
#define echoPin3 A3 // Echo Pin Right
#define trigPin3 A4// Trigger Pin Right
long durationF, distanceF;// Duration used to calculate
long durationL, distanceL;
long durationR, distanceR;

void setup() {
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(irSensorFront, INPUT);

39
}

void loop() {
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
durationF = pulseIn(echoPin1, HIGH);
distanceF = durationF * 0.034/2;

digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2 , HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
durationL = pulseIn(echoPin2, HIGH);
distanceL = durationL * 0.034/2;

digitalWrite(trigPin3, LOW);
delayMicroseconds(2);
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin3, LOW);
durationR = pulseIn(echoPin3, HIGH);
distanceR = durationR * 0.034/2;

Serial.println("distanceF =");
Serial.println(distanceF);

40
Serial.println("distanceL =");
Serial.println(distanceL);
Serial.println("distanceR =");
Serial.println(distanceR);

////////// IR SENSOR////////
Sensorvalue1 = analogRead(irSensorFront);
Serial.print("FrontSensor:");
Serial.println(Sensorvalue1);

//////////COMMAND/////
if ((distanceF >= 15) && (distanceR >= 7) && (distanceL >= 7)) {
///FORWARD///
Serial.println("W");
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 160);
analogWrite(E2, 150);}

//left//
else if ((distanceL >= 25) && (distanceF <= 14) && (distanceR <= 15))
{
Serial.println("A");
digitalWrite(M1, HIGH);
digitalWrite(M2, LOW);
analogWrite(E1, 210);
analogWrite(E2, 210);
delay(600);

41
}
else if ((distanceF >= 15) && (distanceR <= 8) && (distanceL >= 8))
/////////SLIGHT left/
{ digitalWrite(M1, HIGH);
digitalWrite(M2, LOW);
analogWrite(E1, 150);
analogWrite(E2, 140);

}
else if ((distanceF >= 15 ) && (distanceL <= 8) && (distanceR >= 8))
{ //SLIGHT right//
digitalWrite(M1, LOW);
digitalWrite(M2, HIGH);
analogWrite(E1, 140);
analogWrite(E2, 150);

else if ((distanceR >= 25) && (distanceF <= 13) && (distanceL <= 15))
{////RIGHT////
Serial.println("D");
digitalWrite(M1, LOW);
digitalWrite(M2, HIGH);
analogWrite(E1, 210);
analogWrite(E2, 210);
delay(650);

42
}

if (Sensorvalue1 >= 400)


{
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(5000);/////////////////Black line stop
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(2550);///////////////forward
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(5000);////////////parking 1 stop
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(635);/////////////reverse
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);

43
delay(200);
digitalWrite(M1, LOW);
digitalWrite(M2, HIGH);
analogWrite(E1, 200);
analogWrite(E2, 200);
delay(805);///////////////turn right
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(2100);///////////////forward
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(150);//////////////backward a bit
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(20);
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 225);

44
analogWrite(E2, 10);
delay(1000);/////////////reverse right
digitalWrite(M1, HIGH);
digitalWrite(M1, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(100);
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(130);////////////backward a bit
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(100);
digitalWrite(M1, HIGH);
digitalWrite(M2, LOW);
analogWrite(E1, 120);
analogWrite(E2, 225);
delay(900);////////////reverse left
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(5000);///////////////parking 2 stop
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);

45
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(200);/////////////forward a bit
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(200);
digitalWrite(M1, LOW);
digitalWrite(M2, HIGH);
analogWrite(E1, 200);
analogWrite(E2, 200);
delay(810);///////////////turn right
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(100);
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(2350);//////////forward
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(100);
digitalWrite(M1, LOW);

46
digitalWrite(M2, HIGH);
analogWrite(E1, 200);
analogWrite(E2, 200);
delay(900);//////////////turn right
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(100);
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 160);
analogWrite(E2, 150);
delay(200);///////////forward a bit
digitalWrite(M1, LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(5000);//////////parking 3 stop

47
6.0 Conclusion
In this project, we have implemented an autonomous robot car. This robot car is
programmed to prevent colliding with the obstacles in his path and navigate
according to the actions we set for it by using ultrasonic sensors. The robot car can
stop at a certain position where the floor has a black or dark color tape and lastly this
robot car can also do autonomous parking without colliding with the obstacles in
front. By doing this project as a group, I have learned that teamwork and
communication are very important. At first, we were not familiar with every
particular of the requirements, then when we had our first meeting, we gradually
understand what the project is about and we know our direction. After on, when we
were designing the chassis for the robot car, we contributed plenty of design on where
should the components be placed. We voted and chose the best applicable design for
the robot car. Fortunately, the design looks moderate although it did not meet our
expectations. I feel very glad to work with them as a group and wish to be as a group
again next time.

48

You might also like