0% found this document useful (0 votes)
13 views17 pages

ME381 - E9 - Raushan Kumar - 220877 - B3 (1)

Uploaded by

mdprv5167rk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views17 pages

ME381 - E9 - Raushan Kumar - 220877 - B3 (1)

Uploaded by

mdprv5167rk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

ME381

L AB REPORT

o NAME : RAUSHAN KUMAR


o ROLL NO. – 220877
o GROUP NO. : B3
o EXPERIMENT NO. : 09
o EXPERIMENT TITLE: MOBILE ROBOT
CONTROL AND ITS APPLICATION
EXPERIMENT 1: EXPERIMENT ON MOTION OF AN OPEN LOOP MOBILE ROBOT
PA R T 1 : L E A R N I N G B A S I C M O V E M E N T S
- D E M O N S T R AT I O N O F M O V E M E N T S :

1
PA R T 2 : N AV I G AT I N G A
R E C TA N G U L A R PAT H
• TA K E P I C T U R E S O F
THE ROBOT AS IT
REACHES EACH CORNER
O F T H E R E C TA N G L E .

.
• R E C O R D T H E T I M E I T TA K E S T O R E A C H E A C H C O R N E R U S I N G A
S T O P W AT C H
- T I M E TA K E N F R O M O N E C O R N E R T O T H E N E X T C O R N E R I S
10. 19 SE C OND S, T H IS IS T IME A LONG T H E L E NGT H
- ANOTHE R TIME IS 7.33S, WHICH IS THE T IME ALONG
THE BREADTH.

7
o EXPERIMENT 2.
LABORATORY EXPERIMENT
ON OBSTACLE AVOIDANCE
IN A MOBILE ROBOT
o
o -PART 1: DEMONSTRATING
OBSTACLE AVOIDANCE
8
-PART 2: S T UD ENT
OBS ERVAT I ON
AND
EXPER I M ENTAT I ON

o 9
o EXPERIMENT 3. LABORATORY
EXPERIMENT ON LINE
FOLLOWING USING IR
SENSORS
o
o PART 2: STUDENT
CHALLENGE – NAVIGATING A
COMPLEX MAZE
10
◦ Students must submit the code they developed to handle navigation with two IR
sensors.

//Line Tracking IO define


#define LEFT_LINE_TRACJING 2
//#define CENTER_LINE_TRACJING 3
#define right_LINE_TRACJING 4
int Left_Tra_Value;
int Center_Tra_Value;
int Right_Tra_Value;

#define ENA 5
#define IN1 6
#define IN2 7
#define IN3 8
#define IN4 9
#define ENB 10

#define carSpeed 150


#define turnSpeed 100
void Forward() {
analogWrite(ENA, carSpeed); //enable L298n A channel
analogWrite(ENB, carSpeed); //enable L298n B channel
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
Serial.println("go forward!");
}

void Back() {
analogWrite(ENA, carSpeed); //enable L298n A channel
analogWrite(ENB, carSpeed); //enable L298n B channel
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
Serial.println("go back!");
}
void Left() {
analogWrite(ENA, carSpeed); //enable L298n
A channel
analogWrite(ENB, carSpeed); //enable L298n
B channel
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
Serial.println("go left!");
}

void Right() {
analogWrite(ENA, carSpeed); //enable L298n
A channel
analogWrite(ENB, carSpeed); //enable L298n
B channel
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
}
void Stop() {
analogWrite(ENA, 0); //enable L298n A channel
analogWrite(ENB, 0); //enable L298n B channel
Serial.println("Stop!");
}

void setup() {
Serial.begin(19200);
pinMode(LEFT_LINE_TRACJING, INPUT);
// pinMode(CENTER_LINE_TRACJING, INPUT);
pinMode(right_LINE_TRACJING, INPUT);
pinMode(IN1, OUTPUT); //before useing io pin, pin mode must be set
first
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Left_Tra_Value = digitalRead(LEFT_LINE_TRACJING);

Right_Tra_Value = digitalRead(right_LINE_TRACJING);
Serial.println("l,r:");
Serial.println(Left_Tra_Value);
//Serial.println(Center_Tra_Value);
Serial.println(Right_Tra_Value);
if (Left_Tra_Value == 1 && Right_Tra_Value == 1)
{
Stop();
}
if (Left_Tra_Value == 1 && Right_Tra_Value == 0)
{
Left();
}
if (Left_Tra_Value == 0 && Right_Tra_Value == 1)
{
Right();
}
if (Left_Tra_Value == 0 && Right_Tra_Value == 0)
{
Forward();
}
// if (Left_Tra_Value == 0 && Right_Tra_Value == 0)
// {
// Left();
// }
}
if (Left_Tra_Value == 1 && Right_Tra_Value == 0)
{
Left();
}
if (Left_Tra_Value == 0 && Right_Tra_Value == 1)
{
Right();
}
if (Left_Tra_Value == 0 && Right_Tra_Value == 0)
{
Forward();
}
// if (Left_Tra_Value == 0 && Right_Tra_Value == 0)
// {
// Left();
// }

}
◦ Include the
video
documentation of
the robot's maze
navigation and
observations

You might also like