ME381 - E9 - Raushan Kumar - 220877 - B3 (1)
ME381 - E9 - Raushan Kumar - 220877 - B3 (1)
L AB REPORT
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.
#define ENA 5
#define IN1 6
#define IN2 7
#define IN3 8
#define IN4 9
#define ENB 10
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