0% found this document useful (0 votes)
170 views24 pages

21985A0425 Report

robocoupler private limited To find the shortage path robot using stepper motors

Uploaded by

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

21985A0425 Report

robocoupler private limited To find the shortage path robot using stepper motors

Uploaded by

Srivamsi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

FINDING THE SHORTEST PATH USING STEPPER

MOTORS
An Internship Report Submitted in the partial fulfillment of the
requirements for the award of the degree of

BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION ENGINEERING

SUBMITTED BY
S. SRIVAMSI
(21985A0425)

RAGHU ENGINEERING COLLEGE (Autonomous)


(Affiliated to JNTU-GV, Approved by AICTE, Accredited by NBA, Accredited by
NAAC with A+ grade)
Dakamarri, Bhimili Mandal, Visakhapatnam - 531162
[Link]

i
ii
TABLE OF CONTENTS

SL No. DESCRIPTION PAGE NO.

1 Abstract 1

2 Introduction 2

3 List of the components used and 3


working

4 Specifications of the robot 9

5 Block diagram 10

6 Circuit diagram 11

7 Flow chart 12

8 Algorithm 13

7 Total project working 14-17

8 Result 17

9 Conclusion 18

10 Future scope 19-20

iii
LIST OF FIGURES

FIG No. FIGURE DESCRIPTION PAGE No.

1 Arduino UNO 3
2 CNC Shield 5
3 IR Sensor Working 5
4 IR Sensor 6
5 A4988 Driver 6
6 Stepper Motor 8
7 power Supply 9
8 Block Diagram 10
9 Circuit Diagram 11
10 Flow Chart 12

iv
ABSTRACT:
Our aim is to develop a shortest path finder robot using Arduino Uno, a popular open-
source electronic controller that is widely used in the field of robotics and automation.
This involves designing and implementing a software algorithm that can calculate the
shortest path between two points on a given graph, and then transmitting this
information to the Arduino board, which controls the robot's movements. We have
used only basic while loop conditions for graph search that can be used to find the
shortest distance between the two nodes in a graph. The conditions is implemented
using embedded C language programming language, Arduino library and the Arduino
IDE. The hardware used in this project includes an Arduino board, motor driver of
CNC Shield, IR sensors, DC motors and chassis. The system works by first detecting
the starting and ending points on the graph using the sensors. Once the starting and
ending points are detected, the conditions used calculates the shortest path between
these two points and then transmits the instructions to the Arduino board, which
controls the robot's movements. The robot then follows the instructions to navigate
along the shortest path, avoiding obstacles along the way. The project is aimed at
developing a low-cost and efficient solution for autonomous navigation of robots in
various applications such as warehouse management, automated guided vehicles,
hospital emergency direction detector and home automation. The system can be
further improved by adding more sensors and using more advanced algorithms to
optimize the path planning process.
Keywords: Arduino Uno, IR Sensors, CNC Shield, Stepper Motor, A4988 Drivers.

1
INTRODUCTION OF THE PROJECT:

Robots are now seen as an important part of society. This is because people
are being replaced by robots in fundamental and dangerous tasks. The most pressing
difficulties in autonomous robotics, however, are developing an efficient navigation
system for mobile robots and assuring their security. The aim of the developed
strategy is to solve the problem when the robot is located between two obstacles such
as the following: how the robot can detect that the distance between the two obstacles
is safe enough to reach the target without collision and how to avoid obstacles and
move between two obstacles in the shortest path.
This approach is focused firstly on searching the endpoint of a free segment
which gives the shortest path. Hence, if the distance of the free segment selected is
larger than the robot diameter, the endpoint is considered as a turning point. If this is
not the case, it must replay the algorithm to search a new endpoint of the free
segments. The disadvantages of this strategy are that it is focused firstly on finding
the shortest path without taking into consideration the safety and, after that, it is
focused on ensuring a safe path navigation which leads to an extensive and heavy
computation and needs more time for planning the adequate path for a mobile robot.
To overcome these disadvantages, our developed algorithm serves to ensure at first
the path safety by selecting the safest free segments.
Then, it searches the path length by determining the endpoint of the safest free
segments which gives the shortest path. Using this strategy, we can rapidly determine
the safest and the shortest path. Moreover, once the path is planned, a tracking law
based on sliding mode controller is used for the robot to follow the designed
trajectory.
The Shortest Path Finder Robot Using Arduino Uno is a project that involves
designing and building a robot capable of autonomously navigating through a given
environment in order to find the shortest path from a starting point to a target
destination. The project is implemented using the Arduino Uno microcontroller board,
which serves as a brain of the robot. The primary goal of the project is to create a
robot that can effectively explore it’s surroundings and identify obstacles which
finally calculates the shortest route to reach a specified endpoint.

2
LIST OF THE COMPONENETS USED & WORKING:
Discover the various components that make up this unique robotic
contraption, such as actuators, microcontrollers, etc. These elements work in harmony
to deliver a breathtaking and seamless user experience.

1) Arduino
2) CNC Shield
3) IR Sensor
4) Stepper Motor
5) A4988 Drivers
Arduino: Arduino is an open-source hardware and software platform designed for
computer programmers, industrial artists, professionals and those interested in
developing interactive devices and applications specific to an interactive development
environment. Arduino can receive input signals from various sensors and inputs. By
controlling light sources, motors, or other actuators, Arduino can change the
surrounding environment. Programs for the microcontroller on the Arduino board are
written in Arduino’s programming language (based on “Wiring”) and run in the
Arduino development environment (based on “Processing” an open source
programming language and integrated development environment). Arduino is able to
run independently or communicate with software running on a computer (for instance,
Flash, Processing and MaxMSP). The open-source Arduino IDE, which is free to
download, makes it easy for you to write code, upload it The Arduino Uno R3
consists of 14-digit I/O pins and it’s having ATmega328P based Microcontroller.
From these pins, 6-pins (3, 5, 6, 9, 10 & 11) can be utilized like PWM outputs. This
board includes 14 digital input/output pins, Analog inputs-6, a USB connection,
quartz crystal-16 MHz, a power jack, a USB connection, resonator-16Mhz, a power
jack, an ICSP(In-Circuit Serial Programming) header an RST button.

3
ATmega328P Micro Controller: The Atmel® ATmega328P is a low-power CMOS
8-bit microcontroller based on the AVR® enhanced RISC architecture. It features
32KB of flash memory, 2KB of SRAM, and 1KB of EEPROM. With a 16 MHz clock
speed, 23 I/O pins, ADC, timers, PWM, and communication interfaces, it is widely
employed in various electronic projects for its ease of use and flexibility.
Types of pins:
Digital pins: These pins can be used as both input and output pins on most Arduino
microcontrollers. This means that a single pin can both send and receive digital data.
Digital Arduino pins can be only "high" or "low." When a digital pin is high, a
constant voltage is present. When the pin is low, this voltage is gone.
The maximum current per pin is 40 mA.
to the board and come up with your own interactive devices.
 External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt
on a low value, a rising or falling edge, or a change in value. See the attach
Interrupt() function for details.
 SPI (Serial peripheral Interface): 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
These pins support SPI communication, which, although provided by the
underlying hardware, is not currently included in the Arduino language.
 PWM PINS: The number of PWM pins available on an Arduino board depends
on the model. For example, the Arduino Uno has 6 PWM pins, which are digital
pins 3, 5, 6, 9, 10, and 11. These pins are labelled with a tilde symbol (~) next to
their pin number on the board. In the Arduino IDE, you can utilize PWM
functionality with the analogWrite() function
 ANALOG INPUT PINS: The pins numbered from A0 to A5 are analog pins. The
function of Analog pins is to read the analog sensor used in the connection. It can
also act as GPIO (General Purpose Input Output) pins
 Power Pin: The power supply of the Arduino can be done with the help of an
exterior power supply otherwise USB connection. The exterior power supply (6 to
20 volts) mainly includes a battery or an AC to DC adapter.
 Vin: The input voltage or Vin to the Arduino while it is using an exterior power
supply opposite to volts from the connection of USB or else RPS (regulated power
supply). By using this pin, one can supply the voltage.
 5Volts: The RPS can be used to give the power supply to the microcontroller as
well as components which are used on the Arduino board. This can approach from
the input voltage through a regulator.
 3V3: A 3.3 supply voltage can be generated with the onboard regulator, and the
highest draw current will be 50 mA.
 AREF: It means Analogue Reference. It allows us to feed the Arduino a reference
voltage from an external power supply. For example, if we want to measure
voltages with a maximum range of 3.3V, we would feed a nice smooth 3.3V into

4
the AREF pin – perhaps from a voltage regulator IC. Then the each step of the
ADC would represent 3.22 millivolts.
CNC Shield:
A CNC shield is an electronic module designed to control CNC (Computer
Numerical Control) machines, such as 3D printers, laser cutters, and milling
machines. It acts as an interface between the microcontroller (usually an Arduino
board) and the various motors and actuators of the CNC machine. The shield typically
features stepper motor drivers, allowing precise control of motor movements. It also
provides connectors for limit switches, allowing end stop detection to set the
machine's reference points accurately. CNC shields often include a socket for an
external motor driver, enabling users to handle higher power requirements. With the
appropriate firmware and software, the CNC shield allows users to convert digital
designs into real-world creations, making it a popular choice for DIY CNC projects
and rapid prototyping applications.
It can handle four motors at a time (X, Y, Z, A-Can duplicate X, Y, Z)
Power supply: DC 12-36V (the A4988 can only manage 24V; only the DRV8825
drivers can handle up to 36V).
There are 3 main components needed to get the CNC Shield up and running,
1) CNC Shield. 2) Stepper Drivers. 3) Arduino UNO.

IR Sensor:
An infrared sensor is an electrical sensor that detects and measures infrared
light emitted by an object or its surroundings. The IR sensor emits or detects infrared
radiation to identify certain features in its surroundings. These sensors can also detect
or measure a target’s heat as well as its motion.

5
This IR Sensor consists of two parts, a Transmitter, and a Receiver. The transmitter
emits IR light, and the object reflects that light. The photodiode (receiver) receives the
reflected light. The amount of reflection and reception varies with distance. These
differences cause a change in the input and thus used for proximity detection. IR LED
sensor module has both the transmitter and emitter designed to work on the 940 nm
wavelength
IR Sensor Working Principle:
An infrared sensor works similarly as an
object detection sensor does. This sensor
contains an infrared LED and an infrared
photodiode, which can be combined to make
a photo-coupler or an optocoupler. Planks
radiation, Stephan Boltzmann, and Weins
displacement are the physics laws used in
this sensor

IR Transmitter or IR LED:
Infrared Transmitter is a light emitting diode (LED) which emits infrared
radiations called as IR LED’s. Even though an IR LED looks like a normal LED, the
radiation emitted by it is invisible to the human eye.

IR Receiver or Photodiode:
IR Photodiode functions as an IR receiver used to detect the light rays reflected
from an IR LED. The photodiode is basically a reverse-biased PN junction diode.
When the photodiode is exposed to light, the electrical resistance across the diode
decreases. Thereby increasing the reverse current. In case if the photodiode is not
exposed to light, the resistance across the diode will be high. Hence the reverse
current will be extremely small. This current is also known as a dark current.

A4988 Driver Chip:


The A4988 is a popular stepper motor driver chip used in various applications to
control the movement of stepper motors. It is designed to provide precise control and
reliable operation for both bipolar and unipolar stepper motors.

6
The module has a total of 16 pins which can be divided in four categories: the output
pins in blue which will be connected with the motor, the control pins in green, the step
size selection pins in brown and the power pins in red.

Motor Pins:
These are the motor coil pins connected to each of the four coils of the motor.
These pins will be connected with bipolar stepper motors (8V-35V) where output
maximum current is 2A per coil. Hence each pin will be able to supply max 2A to
each of the coil of the stepper motor.
 2B: This is connected with motor coil 2 second pin.
 2A: This is connected with motor coil 1 second pin.
 1A: This is connected with motor coil 1 first pin.
 1B: This is connected with motor coil 2 first pin.
Control Pins:
These are the control pins which are used to control the where EN, SLP and
RST control the power states and DIR and STEP control the input.
 STEP: This is the pin which controls the rotation steps (micro steps) of the
motor. It will be connected with a digital pin of the Arduino board. When a
high signal will be passed to this pin, the motor will move by one step. The
speed of the motor rotation will change according to how soon the signal of
the pin goes high.
 DIR: This is the pin which controls the direction of the rotation of the
motor. This will also be connected to a digital pin of the Arduino. When a
high signal is passed to this pin, the motor will rotate clockwise whereas if a
low signal is provided instead, the motor will rotate in an anti-clockwise
direction.
 EN: This is the enable pin. It is used to turn the outputs of the module on or
off. A high signal will disable the outputs. By default, this pin is at a low
state.
 RST: This is the reset pin. It sets the internal translator to a predefined
Home state which is the position where the motor starts initially. This
position will vary depending upon the microstep resolution. This is an active
low input where a HIGH signal will enable the driver.
 SLP: This is also an active low input pin which is used to reduce power
consumption by setting the module to sleep mode when the motors are not
in use. This is achieved by supplying a low signal to this pin.
Step Size Selection Pins: Stepper motors typically have a step size of 1.8° or 200
steps per revolution, this refers to full steps. A micro-stepping driver such as the

7
A4988 allows higher resolutions by allowing intermediate step locations. This is
achieved by energizing the coils with intermediate current levels.
For instance, driving a motor in quarter-step mode will give the 200-step-per-
revolution motor 800 micro steps per revolution by using four different current levels.

POWER PINS:

MS1 MS2 MS3 Microstep Resolution


Low Low Low Full step
High Low Low Half step
Low High Low Quarter step
High High Low Eighth step
High High High Sixteenth step

 VMOT, GND: This is the stepper motor power supply pins. Connect 8-35V
external power supply with VMOT and common ground.
 VCC, GND: This is the A4988 driver module power supply pins. Connect
3-5.5V from a microcontroller with VCC and common ground with a
microcontroller.
Stepper Motor:
Stepper motors, due to their unique design, can be controlled to a high degree
of accuracy without any feedback mechanisms. The shaft of a stepper, mounted with a
series of magnets, is controlled by a series of electromagnetic coils that are charged
positively and negatively in a specific sequence, precisely moving it forward or
backward in small "steps". The stepper is controlled by
with digital pins 8, 9, 10, and 11 for either unipolar or
bipolar motors. Here we use Stepper Motor NEMA 17.
 NEMA stands for “National Electrical
Manufacturers Association”. NEMA 17 stepper
motor is a brushless DC electric motor that
divides a full rotation down into equal steps. It is
suitable for applications where precise movement is required. In this article,
we will discuss the NEMA-17 stepper motor, its applications, and the pinout
of the motor. We will also discuss some of its technical specifications in
detail.
 NEMA 17 is a hybrid stepper motor that rotates with a step angle of 1.8
degrees. Thus to complete one revolution, the shaft takes 200 steps. The
term hybrid signifies that it is a combination of a permanent magnet and
variable reluctance stepper motor. With dimensions, of 1.7 x 1.7 inches (42
x 42 mm), NEMA 17 steppers are engineered to provide more torque than
smaller variants like NEMA 14 stepper motor. Like every other motor, the
NEMA 17 stepper motor consists of a stator and rotor. The rotor of the
NEMA 17 motor is a permanent magnet with 50 teeth on its circumference.
The stator is simply an electromagnet with 48 teeth. These are arranged into
four group pairs, where each group can be controlled by DC excitation. So,

8
when we excite the stator coil pairs using a microcontroller, the rotor rotates
with a smooth step angle.
 The maximum speed at which an open-loop NEMA 17 stepper motor can
run is 2000 RPM. But, the recommended speed range is 200-600 RPM.
While for a closed-loop NEMA 17 stepper motor, the maximum speed is
3000 RPM. For this, the recommended speed range is 200-700 RPM.
Power Supply:
The Arduino Uno can be powered in
multiple ways: via a USB connection, a DC power
jack, or an external power source. The board has a
voltage regulator that ensures a stable 5V power
supply to the microcontroller and other component.
The recommended operating voltage range for the
Uno is 7V to 12V.

SPECIFICATIONS OF THE ROBOT:

1) Arduino Board:
 Arduino Uno R3.
 Operating Voltage: 5V.
 Microcontroller: ATmega328P.
 Analog Input Pins: Sufficient for the HW130 DC motor control.
2) Stepper motors:
 Its rated voltage is 12V
 Phase current is 2.2A
 The Holding torque is equal to [Link]
 One step angle will be of 1.8 Deg.
 Total steps for each resolution will be 200.
 4-wire and 8-inch lead
 Number of phases are 4
 Total inductance by each phase will be 2.8 mH
 The resistance of the coil is 1.5 Ohm per coil.
3) A4988 Stepper Motor Driver:
 Motor output voltage 8V – 35V
 Logic input voltage 3V – 5.5V
 Continuous current per phase 1A
 Maximum current per phase 2A
 Microstep resolution full, 1/2, 1/4, 1/8 and 1/16
4) IR sensors:
 I/O pins – 3.3V & 5V
 Mounting hole
 The range is up to 20 centimetres
 The supply current is 20mA
 Fixed ambient light sensor
9
 The range of sensing is adjustable
 The operating voltage is 5VD
5) Battery and Power Supply:
 Battery Type: Depending on the voltage requirements of components, a
suitable battery 12V,1.2amp is used.
 switch: To turn the robot on and off easily.
6) Battery and Power Supply:
 Arduino IDE: For programming the Arduino board.
 Servo Library: To control servo motors.

BLOCK DIAGRAM

10
CIRCUIT DIAGRAM

11
FLOW CHART

12
ALGORITHM

Initialization:
Initialize the microcontroller or Arduino board, stepper motor drivers, and any
necessary variables or parameters.
Set a condition:
A condition is implemented here to check the available area to operate the
robot in sinusoidal path. The area can be selected by counting the greater number of
steps on either of the side, to operate in that particular area.
Set Target Positions:
Determine the target positions for both motors. These positions could be the
corner of the wall or the completion of the initialized steps.
Calculate Step Parameters:
Determine the step parameters for each motor based on the target positions.
This includes calculating the number of steps required, the direction of movement,
and the speed or time intervals between steps.
Movement Control Loop:
Implement a control loop that iterates over the required steps for both motors
until they reach their target positions.
The loop should perform the following steps:
1. Check if both motors have reached their target positions. If they have, exit the loop.
[Link] the next step for each motor based on the step parameters determined in
step 3
[Link] the control signals to the stepper motor drivers to move each motor by one
step in the calculated direction.
[Link] for the specified time interval or for the motors to complete their movement.
[Link] the current position of each motor based on the direction and number of
steps taken.
[Link] the loop from step 4.
End of Control:
Once both motors have reached their target positions, the control algorithm can either
stop completely or continue monitoring the positions for any further adjustments or
actions.

13
TOTAL PROJECT WORKING

HARDWARE SETUP:
Connect Arduino Uno to Computer:
 Plug one end of the USB cable into the USB port of the Arduino Uno.
 Plug the other end of the USB cable into an available USB port on your
computer.
Connect Motor Driver to CNC Shield:
 The CNC shield is an interface board that connects to your Arduino. It has a set
of header pins that need to be aligned with the corresponding pins on your
Arduino board.
 With four A4988 motor drivers on the CNC shield, you can control up to four
stepper motors. Each A4988 driver controls one stepper motor, and you have
two motors connected individually to each A4988 driver, totalling eight stepper
motor connections.
 The CNC shield will have screw terminals or headers to connect the stepper
motors.
 Identify the stepper motor outputs on the CNC shield (usually labelled as X, Y,
Z, A) and the corresponding terminals for each axis (for example, X+ and X-).
 Connect the wires of the first stepper motor to the appropriate terminals for that
axis (e.g., X+ and X-).
 Connect the wires of the second stepper motor to the appropriate terminals for
the other axis (e.g., Y+ and Y-).
 The motor driver (A4988) usually has two enable pins (ENA and ENB) that
control the speed of the stepper motors through PWM (Pulse Width
Modulation).
 Connect the ENA pin of the motor driver to a PWM-enabled digital pin on the
Arduino (e.g., D9).
 Connect the ENB pin of the motor driver to another PWM-enabled digital pin
on the Arduino (e.g., D10).

Connect IR Sensor to Arduino:


 The IR sensor has three pins: VCC, GND, and OUT.
 Connect the VCC pin of the IR sensor to the 5V pin on the Arduino.
 Connect the GND pin of the IR sensor to any of the GND pins on the Arduino.
 Connect the OUT pin of the IR sensor to a digital pin on the Arduino (e.g.,
D7).
Connect Input Pins of Motor Driver to Arduino:
 The motor driver has four input pins (IN1, IN2, IN3, IN4) that control the
direction of the motors.
 Connect IN1 to a digital pin on the Arduino (e.g., D2).
 Connect IN2 to another digital pin on the Arduino (e.g., D3).

14
 Connect IN3 to a different digital pin on the Arduino (e.g., D4).
 Connect IN4 to yet another digital pin on the Arduino (e.g., D5).
Connect Stepper Motors to Motor Driver (A4988) :-
 The motor driver has two control pins namely DIRECTION (DIR), STEP.
 DIRECTION (DIR): The DIR pin sets the direction of rotation for the stepper
motor. When this pin is set high or low, the motor will rotate in a specific
direction (clockwise or counter clockwise).
 STEP: The STEP pin is used to make the motor move in steps. When a pulse is
applied to this pin (rising edge or falling edge depending on configuration), the
motor will move one step in the direction defined by the DIR pin.
 The motor driver will have terminals for each of the DC motors.
 Connect the positive terminal (+) of the first motor to one of the motor output
terminals (e.g., M1+ or OUT1) on the motor driver.
 Connect the negative terminal (-) of the first motor to the corresponding
ground terminal (e.g., M1- or OUT2) on the motor driver.
 Repeat the same process for the second motor, connecting its positive and
negative terminals to the corresponding motor driver terminals.
Connect the Motor Driver to the Battery:
 Check the voltage requirements of the motor driver and make sure the battery
voltage matches or is within its operating range.
 Connect the positive terminal of the battery to the VCC or VIN pin of the
motor driver.
 Connect the negative terminal of the battery to the GND pin of the motor
driver.
Connect the CNC Shield to Power:
 Check the power requirements of the stepper motors and CNC shield.
 Connect an appropriate power supply (usually a higher voltage DC power
supply) to the power input terminals on the CNC shield. Make sure the power
supply meets the requirements of both the CNC shield and the stepper motors.
Upload the Code:
 Once all connections are made, upload the Arduino code to control the motors
and read data from the IR sensors.
 Ensure that the code properly reads the digital signals from the IR sensors and
reacts accordingly to control the motors.
Optimizing Robot’s area exploration and Movement:
Upon deploying the robot in a room, its primary objective is to determine the
available operating area within the space. The robot adopts a systematic approach to
comprehensively explore its surroundings, calculating steps while advancing until its
IR sensor detects obstacles or walls. This document presents a comprehensive account
of the robot's area exploration, path selection, and return to the initial position,
detailing its operations on both the left and right sides of the room.
Area Exploration:

15
 Upon activation, the robot initiates its area exploration by making a decisive
turn, choosing between left or right directions, to evaluate its operating space
thoroughly.
 The robot then advances, meticulously counting its steps, while its highly
sensitive IR sensor diligently scans for any obstacles or walls.
 Upon detecting an obstacle, the robot promptly reverses its direction, ensuring
a safe return to its original starting point, avoiding collisions or hindrances.

Path Selection:
 After completing the area exploration, the robot compares the number of steps
taken on the left and right sides of the room.
 If the left side presents a greater number of steps, the robot intelligently
decides to operate within the left-side area. It optimizes its movement by adopting
a sinusoidal path, facilitating efficient coverage of the designated region.
 Conversely, if the right side contains more steps, the robot selects the right-
side area for operation. Here again, it follows a sinusoidal path, optimizing its
movement pattern for complete coverage.
 In the exceptional scenario where both sides offer an equal number of steps,
the robot exercises its flexibility by freely choosing either the left or right side for
its operation.

Right side operation:


 In cases where the robot determines that the right side holds more steps, it
commences its operation from the initial position.
 Following a systematic approach, the robot moves forward until its advanced
sensor detects the presence of a wall or obstacle.
 On detecting an obstacle, the robot expertly executes a precise 90 0-right turn,
followed by one step forward. It then repeats the 90 0-right turn, continuing its
forward movement until encountering the next wall or obstacle.
 This sinusoidal pattern is consistently followed until the robot completes the
initialized steps or reaches the corner of the wall, at which point it gracefully halts
its operation.

Left side operation:


 The robot moves forward with utmost precision, carefully gauging the
presence of any obstacles or walls using its state-of-the-art sensor.
 On detecting an obstacle, the robot adeptly performs a calculated 90 0-left turn,
accompanied by one step forward. It then repeats the 90 0-left turn, proceeding
forward until encountering the next wall or obstacle.
 The sinusoidal movement pattern is consistently maintained during this
operation, ensuring that the robot fully explores the left-side area until either the
initialized steps are completed, or it reaches the corner of a wall, prompting it to
stop.

16
Returning to the initial position:
 Upon reaching the end of the wall or completing the initialized steps, the robot
carefully retraces its path to return to the initial position.
 The robot employs advanced algorithms to identify the shortest path back to
its starting point, disregarding any longer routes, and efficiently navigates its way
back without compromising safety or accuracy.
 After reaching the destination or encountering an obstacle, the robot will
assess its initial state or starting position.
 In case of right side operation. There are three possible conditions.
1. If the robot is already facing the direction of its initial state, it will turn 180 0,
move forward, and then turn 900 to the right to return to its initial position.
2. If the robot is positioned towards its initial position, it will move forward and
then turn 900 to the right to reach its initial state.
3. If the robot is located on the top of its initial position and facing towards right,
it will turn 900 to the right, move forward and then turn 90 0degrees right again to
reach its initial state.
 Conversely, if the robot determines the left side operation.

1. If the robot is already facing the direction of its initial state, it will turn 180 0,
move forward, and then turn 900 to the left to return to its initial position.
2. If the robot is positioned towards its initial position, it will move forward and
then turn 900 to the left to reach its initial state.
3. If the robot is located on the top of its initial position and facing towards left,
it will turn 900 to the left, and then turn 900 left again to reach its initial state.

This gives us a detailed description of the robot's area exploration process,


path selection based on the number of steps, and its efficient return to the initial
position. By utilizing state-of-the-art sensors and advanced algorithms, the robot
optimizes its movement and ensures effective coverage of the operating area while
prioritizing safety and precision.

Result:

A shortest path finder robot is a type of robot that is designed to determine the
shortest route or path between two points. These robots are commonly used in
industries, warehouses, and factories to optimize the time taken to deliver products
and goods. These robots can operate autonomously or be controlled by a human
operator. The use of shortest path finder robots can help reduce operational costs and
increase efficiency, making them an attractive investment for businesses It also
depends on the complexity of the environment, the robots’ sensors and capabilities,

17
and the efficiency of its pathfinding implementation. In an ideal scenario, the robot
should be able to find the shortest path efficiently and reach the target location
without colliding with obstacles. First the robot receives the information about
blocked parts and destination. Next it processes the information. It calculates the path
using left hand and right-hand method algorithms. It navigates to destination using
automated driving algorithm. By using that algorithm it will be arrived to the
destination by taking the shortest path.

Conclusion

In conclusion, the Shortest Path Finder Robot project has successfully


demonstrated the power of embedded C programming in the field of robotics. By
integrating Arduino UNO, CNC shield, stepper motors and other hardware
components and employing efficient algorithms for pathfinding, the robot has
showcased its ability to autonomously navigate through complex environments and
identify the shortest path between two point. Throughout the project, the Arduino Uno
served as the brain of the robot, processing the embedded C code to make decisions
based on the sensor inputs and control the stepper motors via the CNC shield. The
embedded C code played a crucial role in optimizing the robot's performance,
ensuring real-time responsiveness, and conserving resources to enhance the overall
efficiency of the system.
This project has not only provided valuable hands-on experience in embedded
systems development but also reinforced the importance of efficient coding practices,
algorithm optimization, and hardware integration in the field of robotics. As
technology continues to evolve, such projects serve as a stepping stone towards
building smarter, more versatile, and efficient robots to solve real-world challenges.
The robot's ability to find the shortest path has practical applications in various
industries, including warehouse management, automation, and exploration. It can be
further improved and customized by incorporating additional sensors, advanced
algorithms, and communication modules to enhance its capabilities.
In conclusion, selecting and implementing the appropriate shortest path
code on an Arduino -based robot involves careful considerations of the robot’s
requirements, sensor integration, computation efficiency, and real time performance.
It’s essential to strike a balance between algorithm complexity and resource

18
limitations to achieve reliable and efficient navigation in the robot’s environment.
Additionally, the design and integration of the robot's hardware and sensors play a
crucial role in the overall success of the pathfinding process.

FUTURE SCOPE

The future scope for the shortest path finder robot is immense. With the rapid
development in the field of robotics and artificial intelligence, these robots can be
further improved to navigate complex environments and optimize their pathfinding
algorithms. This will enable them to find the shortest and most efficient route even in
the most difficult terrains.

There is also a growing demand for autonomous robots that can perform tasks
such as package delivery, inventory management, and warehouse automation. The
shortest path finder robot can play a crucial role in these applications by reducing
delivery time and increasing productivity. Additionally, the use of shortest path finder
robots in disaster response operations can help rescue teams navigate through
hazardous environments and save lives. These robots can also be used in agriculture
to optimize irrigation routes, reducing water waste and improving crop yield.
Overall, the future of shortest path finder robots looks promising. With
continued advancement in technology and increased demand for their applications,
these robots will continue to play a crucial role in various industries and sectors.

Advanced Path finding Algorithms:


Researchers continue to develop more sophisticated algorithms for path
finding, such as D* (D-Star), A*, RRT (Rapidly-exploring Random Trees), and more.
These algorithms aim to optimize path finding in complex environments, leading to
faster and more efficient navigation for robots.

Multi Agent Coordination:


Multi-agent coordination for shortest path finding robots involves
implementing a system in which multiple robots work together to find the shortest
path from a starting point to a destination point. This can be achieved through the use
of various techniques such as centralized or decentralized coordination,
communication between robots, and the use of algorithms that allow the robots to
work together and share information.
One common approach to multi-agent coordination involves dividing the
pathfinding task into smaller sub-tasks that can be assigned to different robots. Each
robot can then use its sensors and algorithms to explore its assigned area and report its
findings back to a central controller. The controller can then use this information to
generate a consolidated map of the entire environment and determine the shortest path
for the group of robots.

19
Swarm Robotics:
The concept of swarm robotics involves coordinating multiple robots to work
collaboratively as a swarm. By doing so, they can explore an area more efficiently,
share information, and find the shortest path collectively. Swarm robotics holds
promise in scenarios like search and rescue operations and environmental monitoring.
Real Time Adaptability:
1. Incorporate sensors, such as proximity, temperature, and humidity sensors, to
gather real-time data about obstacles, environmental conditions, and other factors that
can affect the robot's movement.

2. Use machine learning algorithms to analyze the sensor data and adjust the robot's
route in real-time to avoid obstacles and navigate around changing environmental
conditions.

3. Develop an adaptive pathfinding algorithm that can take into account changing
conditions (such as a door opening or closing) and adjust the robot's route
accordingly.

4. Implement a feedback loop that continuously updates the robot's path based on
sensor data, while also collecting data on previous pathfinding decisions to improve
future performance.

5. Consider using a decentralized approach to pathfinding, where multiple robots


work together to find the shortest path in real-time, rather than relying on a
centralized system that may be slower to adapt to changing conditions.
Integration of Sensor Technologies:
As sensor technologies advance, robots will have access to more accurate and diverse
data about their surroundings. This information will enhance their ability to detect
obstacles, avoid collisions, and find optimal paths in intricate environments.

20

You might also like