RSB Report
RSB Report
PROJECT REPORT
ON
RADAR SENSING BOT USING EMBEDDED SYSTEMS
AND ROBOTICS
2022-2023
1
ACKNOWLEDGMENT
We would like to express our gratitude towards Mr. Ashish Sharma and our honorable head of
department Electronics & communication engineering Dr. Sandeep Vyas (HOD, ECE) for his
kind support in accomplishment of our project on Radar Sensing Bot using Embedded systems
and Robotics I would like to extent my deep appreciation to all my team members, without their
support and coordination we would not have been able to complete this project.
Lastly, thanks to all faculty members of Electronics and communication engineering department for
their moral support and guidance.
2
TABLE OF CONTENTS
1 Introduction 5-6
3 Procedure 8-9
4 Working 10
5 Advantages 11
6 Conclusion 12
8 References 17
3
ABSTRACT
Radar is an object detection system which uses radio waves to determine the range,
altitude, direction, or speed of objects. It can be used to detect aircraft, ships, spacecraft, guided
missiles, motor vehicles, weather formations, and terrain. The radar dish or antenna transmits
pulses of radio waves or micro waves which bounce off any object in their path. The object
returns a tiny part of the wave's energy to a dish or antenna which is usually locatedat the same site
as the transmitter.
The modern uses of radar are highly diverse, including air traffic control, radar
astronomy, air-defense systems, antimissile systems ;marine radar start locate landmarks
and other ships; aircraft anti-collision systems; ocean surveillance systems, outer space
surveillance and rendezvous systems; meteorological precipitation monitoring; altimetry
and flight control systems; guided missile target locating systems; and ground-penetrating
radar for geological observations. High tech radar systems are associated with digital signal
processing and are capable of extracting useful information from very high noise levels.
The Arduino based project requires a ultrasonic sensor, the sensor released the waves which
we want to measure the distance of a object. The microcontrollers of the Arduino board can
be programmed using C and C++ languages. When a code is written in Arduino UNO IDE
software and connected to the board through a USB cable, Arduino boards have lot of
applications in the present day scenario, so we have decided to do a small project on them.
4
INTRODUCTION
5
1.1. How to program an Arduino ?
The Arduino tool window consists of the toolbar with the buttons like verify, upload, new,
open, save, serialmonitor. It also consists of a text editor to write the code, a message area
which displays the feedback like showing the errors, the text console which displays the
output and a series of menus like the File, Edit, Tools menu. Thus the code is uploaded by
the bootloader onto the microcontroller.
6
PRINCIPLE OR MEDTHODOLOGY
A radar system has a transmitter that emits radio waves called a radar signals in
predetermined directions. When these come into contact with an object they are
usually reflected or scattered in manydirections Example:- let us take example for
bat
Bat released the eco sound while travelling .if any object came in middle and it reflect back
to the bat
The development of the radar technology took place during the World War II in which
it was used for detecting the approaching aircraft and then later for many other purposes
which finally led to the development of advanced military radars being used these
days. Military radars have a highlyspecialized design to be highly mobile and easily
transportable, by air as well as ground. Military radar should be an early warning,
altering along with weapon control functions. It is specially designed to be highly
mobile and should be such that it can be deployed within minutes.
7
PROCEDURE
Components Required:
In this project we have used the arduino and ultrasonic sensor along with the jumping
wires and the relay motors and details list of the hard ware components are
Arduino board and arduino cable
Servo motor
Gear motors
Jumper wires
Breadboard
8
L293D motor driver IC
Li ion batteries
Arduino.cc
processing software
9
WORKING
After uploading the code, the servo motors start running from 15 to 165 degrees and again back to 15
degrees. An ultrasonic sensor also rotates along with the servo as it is mounted on the motor.
The graphical representation of data from the Ultrasonic Sensor is represented in a radar type display.
If an ultrasonic sensor detects any object within its range, you can see the same on the graphical
representation. The image shows the output of the Arduino radar project.
10
ADVANTAGES:-
2. Improvised accuracy: The resistors with low value in milliohms are used in advanced cars
with sensitive power steering and break circuits. Now a days these advancements have
become the major cause for the severe accidents . Therefore the components used in such
circuits must have accurate and precise value for smooth working of such circuits. Ultimately
this refers to the accurate testing of the resistors used. Improvised accuracy is thus the second
primary aim of the sensor.
3. Reduced hardware complexity: Hardware complexity is one of the reasons for the high
cost of the ultrasonic sensor. The use of arduino Uno is to reduce the motherboard present in
the conventional ohmmeter in arduino based ultrasonic sensor. The arduino acts as the central
board. Since arduino are readily available in market it leads to the reduction in the complexity
of the design. The automated range selection is also the objective in order to speedup the
testing process. This will also reduce the faults in range selection in manually operated
conventional sensor.
11
CONCLUSIONS:-
This project aims on the use of Ultrasonic Sensor by connected to the Arduino UNO board
and the signal from the sensor further provided to the screen formed on the laptop to
measure the presence of any obstacle in front of the sensor as well as determine the range
and angle at which the obstacle is detected by the sensor. it is also an IR remote controlled
real life application of this bot is "SLC2 RSB" (slc2 radar sensing bot)
12
Source code
Arduino code
#include <Servo.h>.
const int trigPin = 10;
const int echoPin = 11;
long duration;
int distance;
Servo myServo;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
myServo.attach(12);
}
void loop() {
for(int i=15;i<=165;i++){
myServo.write(i);
delay(30);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
for(int i=165;i>15;i--){
myServo.write(i);
delay(30);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
}
int calculateDistance(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
return distance;
}
13
Processing code
import processing.serial.*; // imports library for serial communication
import java.awt.event.KeyEvent; // imports library for reading the data from the serial port
import java.io.IOException;
Serial myPort; // defines Object Serial
String angle="";
String distance="";
String data="";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;
PFont orcFont;
void setup() {
size (1350, 700); // **CHANGE THIS TO YOUR SCREEN RESOLUTION**
smooth();
myPort = new Serial(this,"COM5", 9600); // starts the serial communication
myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it
reads this: angle,distance.
}
void draw() {
fill(98,245,31);
noStroke();
fill(0,4);
rect(0, 0, width, height-height*0.065);
index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1"
angle= data.substring(0, index1); // read the data from position "0" to position of the variable
index1 or thats the value of the angle the Arduino Board sent into the Serial Port
distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the
end of the data pr thats the value of the distance
iAngle = int(angle);
iDistance = int(distance);
}
void drawRadar() {
14
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
noFill();
strokeWeight(2);
stroke(98,245,31);
arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
line(-width/2,0,width/2,0);
line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
line((-width/2)*cos(radians(30)),0,width/2,0);
popMatrix();
}
void drawObject() {
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
strokeWeight(9);
stroke(255,10,10); // red color
pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor
from cm to pixels
// limiting the range to 40 cms
if(iDistance<40){
// draws the object according to the angle and the distance
line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-
width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
}
popMatrix();
}
void drawLine() {
pushMatrix();
strokeWeight(9);
stroke(30,250,60);
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle)));
// draws the line according to the angle
popMatrix();
}
void drawText() { // draws the texts on the screen
pushMatrix();
if(iDistance>40) {
noObject = "Out of Range";
}
else {
noObject = "In Range";
}
fill(0,0,0);
15
noStroke();
rect(0, height-height*0.0648, width, height);
fill(98,245,31);
textSize(25);
text("10cm",width-width*0.3854,height-height*0.0833);
text("20cm",width-width*0.281,height-height*0.0833);
text("30cm",width-width*0.177,height-height*0.0833);
text("40cm",width-width*0.0729,height-height*0.0833);
textSize(40);
text("U.S.A.S ", width-width*0.89, height-height*0.0277);
text("Angle: " + iAngle +" °", width-width*0.60, height-height*0.0277);
text("Distance: ", width-width*0.30, height-height*0.0277);
if(iDistance<40) {
text(" " + iDistance +" cm", width-width*0.225, height-height*0.0277);
}
textSize(25);
fill(98,245,60);
translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-
width/2*sin(radians(30)));
rotate(-radians(-60));
text("30°",0,0);
resetMatrix();
translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-
width/2*sin(radians(60)));
rotate(-radians(-30));
text("60°",0,0);
resetMatrix();
translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-
width/2*sin(radians(90)));
rotate(radians(0));
text("90°",0,0);
resetMatrix();
translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-
width/2*sin(radians(120)));
rotate(radians(-30));
text("120°",0,0);
resetMatrix();
translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-
width/2*sin(radians(150)));
rotate(radians(-60));
text("150°",0,0);
popMatrix();
}
16
REFERENCES
17