Professional Documents
Culture Documents
Methodology and Design Analysis
Methodology and Design Analysis
Methodology and Design Analysis
Required components
1. Robot chassis
2. Arduino uno board
3. Ultrasonic sensor HC SR04
4. Ultrasonic sensor case / holder
5. L293D Motor driver shield
6. DC Gear Motors
7. BLDC Motor 100KV
8. Servo motor SG 90
9. ESC Module
10. Servo motor tester
11. 3 pin slide switches
12. 11.1V lipo battery
Material selection for the base
There are few materials such as wood, aluminium, mild steel or composite were
considered be forehand for the mower base. However,aluminium was selected as it
is lighter in weight and locally available in market.
Selection of electric motor
Selecting a suitable electric motor in one of the important criteria in designing a lawn
mower since the motor is the one that drives the generated torque to the cutting
head to trim the grass. Moreover, the size of the motor shall be small enough so that
it will fit in perfectly inside the lawn mower base. For the prototype we have used a
100KV BLDC motor which rotates at a very high speed . This motor is connected to
a cutting blade, which is used to cut the grass. The on/off mechanism and speed of
the motor is controlled using the Servo Motor tester
Selection of battery
The entire circuit is powered by an 11.1V Lithium-Ion Battery. The Arduino has a 5V
regulator which converts the 11.1V to 5V Supply. The BLDC Motor directly operates
at 11.1V.
What is a Grass Cutting Robot (Lawn Mower)?
A grass-cutting robot, also known as a lawn mower robot, is a robotic device
designed to automatically cut and maintain a lawn. These robots use sensors and
algorithms to navigate and mow the lawn and can be programmed to cut the grass
different components are connected and how they interact with one another to
The Arduino board acts as the brain of the robot, controlling all the other components
and executing the programmed instructions. The ultrasonic sensor is used to detect
The L293D motor driver Shield is used to control the movement of the robot and is
connected to the microcontroller. The 4 DC Gear motors are used to power the
movement of the robot. And Servo Motor SG90 is attached at the head so pan
For the cutting mechanism, a 100KV BLDC motor is used which rotates at a very
high speed. This motor is connected to a cutting blade, which is used to cut the
grass. The on/off mechanism and speed of the motor is controlled using the Servo
Motor tester. You can use BLDC Motor Controller for this application.
The robot requires a power source to operate, which can be a rechargeable battery
In this project we will make BLDC, Brushless DC Motor Driver Circuit using 555
Timer IC and DRV10866 driver IC. Brushless motors find applications in computer
peripherals like disk drives, printers, hand-held power tools, aircraft, automobiles
& drones.
The BLDC control usually requires rotor position information for selecting the
appropriate commutation angle. So for this, we use Driver Circuit. In most of the
applications, Hall Effects Sensors are used but here we will use Circuit Based
The 4 DC motors are connected to the Motor Driver shield which is controlled via
digital pins D1, D2, D3, and D4 of the Arduino UNO Board. The Servo Motor is
controlled via PWM Pin D10 of Arduino. The Ultrasonic Sensor HC-SR04 has
TRIGN& ECHO Pins which are connected to A0 & A1 of the Arduino Board.
To control the BLDC Motor an ESC Module Servo Tester is used. The entire circuit is
converts the 11.1V to 5V Supply. The BLDC Motor directly operates at 11.1V.
Source Code/Program
The program for Grass Cutting Lawn Mower Robot is written on Arduino IDE. We
need to add few libraries to the Arduino IDE.#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>
#define TRIG_PIN A0
#define ECHO_PIN A1
#define MAX_DISTANCE 200
#define MAX_SPEED 190
#define MAX_SPEED_OFFSET 20
NewPingsonar(TRIG_PIN,ECHO_PIN,MAX_DISTANCE);
AF_DCMotor motor1(1,MOTOR12_1KHZ);
AF_DCMotor motor2(2,MOTOR12_1KHZ);
AF_DCMotor motor3(3,MOTOR34_1KHZ);
AF_DCMotor motor4(4,MOTOR34_1KHZ);
Servo myservo;
booleangoesForward=false;
intdistance=100;
intspeedSet=0;
voidsetup(){
myservo.attach(10);
myservo.write(115);
delay(2000);
distance=readPing();
delay(100);
distance=readPing();
delay(100);
distance=readPing();
delay(100);
distance=readPing();
delay(100);
}
voidloop(){
intdistanceR=0;
intdistanceL= 0;
delay(40);
if(distance<=15)
{
moveStop();
delay(100);
moveBackward();
delay(300);
moveStop();
delay(200);
distanceR=lookRight();
delay(200);
distanceL=lookLeft();
delay(200);
if(distanceR>=distanceL)
{
turnRight();
moveStop();
}else
{
turnLeft();
moveStop();
}
}else
{
moveForward();
}
distance=readPing();
}
intlookRight()
{
myservo.write(50);
delay(500);
intdistance=readPing();
delay(100);
myservo.write(115);
returndistance;
}
intlookLeft()
{
myservo.write(170);
delay(500);
intdistance=readPing();
delay(100);
myservo.write(115);
returndistance;
delay(100);
}
intreadPing(){
delay(70);
intcm=sonar.ping_cm();
if(cm==0)
{
cm=250;
}
returncm;
}
voidmoveStop(){
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
voidmoveForward(){
if(!goesForward)
{
goesForward=true;
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
for(speedSet=0;speedSet<MAX_SPEED;speedSet+=2)
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet);
delay(5);
}
}
}
voidmoveBackward(){
goesForward=false;
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
for(speedSet=0;speedSet<MAX_SPEED;speedSet+=2)
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet);
delay(5);
}
}
voidturnRight(){
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
voidturnLeft(){
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
delay(500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
grass areas. The tall grass region area can be a good choice for testing.
CONCLUSION
In a nutshell, the prototype lawn mower has been designed, fabricated and tested
which meets all the above mentioned design objectives. Moreover, the usage of this
machine makes the grass cutting process faster by reducing the cutting time.
Besides that, it is lighter, environmental friendly and cost effective which is helpful for
non-commercial use (home users) in maintaining and trimming the grass in gardens,
homes.
Problem statement
To make an automatic grass cutting robot using Arduino. In this robotic project we
will build and manufacture an automatic grass cutting robot using Arduino. The
Robot can cut excess grass in the garden automatically. If there is an obstacle in the
another since 1876. But it is only in the last few decades where the
of modern solar cells has increased dramatically, and the cost per watt is
always falling.
It is for these reasons that I believe we will see solar panels used more
Hydrogen fuel cell – sounds like something out of sci-fi hey? Well, it’s not really
and it’s much closer than you think.
So what is a hydrogen fuel cell? In the simplest terms, a hydrogen fuel cell
combines hydrogen and oxygen to produce heat, electricity and water – they are
very similar to a battery, but they can keep producing power as long as
hydrogen is supplied.
There have already been tech companies experimenting with hydrogen fuel cell
powered mowers, so expect to see these mass produced in the next decade.
When the sun is out, these nifty machines will charge themselves by solar
powers – and when there isn’t enough sun to keep them going, they will simply
return to their docking station for a recharge from the mains power.
Using the sensors incorporated in the mowers chassis, they will automatically
keep your lawn at your desired length and even avoid obstacles such as trees,
garden ornaments and probably even dog poop!
And for those of you that want perfect mow lines in your lawn, I am predicting
that the more advanced models of robotic lawn mowers will include GPS
functionality that will keep your mow lines perfectly straight!