0% found this document useful (0 votes)
3 views

methodology

The document outlines the project methodology for developing an ultrasonic radar system aimed at enhancing security and surveillance in Anytown. It details the hardware components, software used, and the working mechanism of the system, which includes an Arduino Uno, ultrasonic sensor, and a servo motor for detecting movement. The project aims to improve public safety through reliable intrusion detection and monitoring using advanced sensor technologies.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

methodology

The document outlines the project methodology for developing an ultrasonic radar system aimed at enhancing security and surveillance in Anytown. It details the hardware components, software used, and the working mechanism of the system, which includes an Arduino Uno, ultrasonic sensor, and a servo motor for detecting movement. The project aims to improve public safety through reliable intrusion detection and monitoring using advanced sensor technologies.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

PROJECT METHODOLOGY

PROJECT TITLE : ULTRASONIC RADAR SYSTEM FOR SECURITY AND SURVEILLANCE

PREPARED BY : NELSON JUNIOR NDLOVU (R2212715B)

: BLESSING MUCHEMWA (R229694J)

SUPERVISOR : MR DUBE

DATE : 19/05/2024
This project methodology outlines the approach for designing, developing, and deploying an
ultrasonic radar system to enhance security and surveillance capabilities for the City of Anytown. The
system will utilize high-frequency sound waves to detect movement and intrusion within a defined
monitoring area.

HARDWARE COMPONENTS

Arduino Uno R3

It is a microcontroller board based on a removable, dual-inline-package (DIP) ATmega328 AVR


microcontroller. It has 20 digital input/output pins (of which 6 can be used as PWM outputs and 6
can be used as analog inputs).

HC-SR04 Ultrasonic Sensor

This sensor is a 4 pin module, whose pin names are Vcc (5v), Trigger, Echo and Ground respectively.
This sensor is a very popular sensor used in many applications where measuring distance or sensing
objects are required. The module has two eyes like projects in the front which forms the Ultrasonic
transmitter and Receiver.

SG90 Servo Motor

This servo is 180° rotation servo. It is a Digital Servo Motor which receives and processes PWM signal
faster and better. It equips sophisticated internal circuitry that provides good torque, holding power,
and faster updates in response to external forces. The servo motor has a female connector with
three pins coloured brown, red and yellow individually.

Buzzer
16 X 2 LCD Display

16x2 LCD display is an alphanumeric display. It is based on the HD44780 display controller, and ready
to interface with most microcontrollers. It works on 5V and has a Green Backlight which can be
switched on and off as desired. The contrast of the screen can also be controlled by varying the
voltage at the contrast control pin (Pin 3).

Large Breadboard

A breadboard, also known as a solderless breadboard, is a construction base used for building and
testing electronics circuits. It is a common tool used in electronics prototyping and education.

Jumper wires / Connecting Wires

SOFTWARES

Arduino IDE

The Arduino software, also known as the Arduino Integrated Development Environment (IDE), is the
primary software used to program and interact with Arduino microcontroller boards.

Processing IDE
The Processing IDE (Integrated Development Environment) is a software application used for creating
visual, interactive programs and applications. It is a popular tool for artists, designers, and creative
coders.

TinkerCad

TinkerCAD is a free, browser-based, 3D design and modelling tool that allows users to create and
manipulate 3D designs and models.

CIRCUIT 3D AND SCHEMATIC DIAGRAM

3D Design
Schematic Diagram

WORKING

In this study, ultrasonic sensor and servo were both major components. These were connected with
and controlled by an Arduino UNO through jumper wires. The four pins of the sensor are Vcc, Trig,
Echo and GND or ground pin. The interface between the ultrasonic sensor and the Arduino was
implemented as follows:

Sensor Pin_VCC----------------5V

Sensor Pin_Trig------------------8 of Arduino Uno

Sensor Pin_Echo-----------------9 of Arduino Uno

Sensor Pin_GND------------------GND

The ultrasonic sensor was mounted on a servo motor such that the servo motor rotates the
ultrasound sensor. The ultrasonic sensor transmits ultra sound and receives the reflected sound
waves acting as a transceiver.
Once the signal is picked up by the receiver, the buzzer sounds. HC-SR04 ultrasonic sensor was used
in this study as it transmits the sound wave of high frequency near about 40 kHz to 70 kHz. Humans
cannot hear it. Servo motor (SG90) is a rotatory motor which runs with the help of servo
mechanism. Servo motor is used here to detect the angle of the moving object. 0 to 180 degree is
the rotatory range of servo motor, but
depending on the manufacturing it
can go up to 360 degrees. Servo
motor receives the control signal and
tunes the shaft. Servo motor is
used to set up the position and
velocity of the ultrasonic sensor.
Three wires from the servo motor have
to be connected manually. The
servo motor interfaces with the Arduino Uno as follows:

Brown/Black: Connected to Ground

Red: Connected to VCC (5v)

Yellow/White: Connected to data pin 6

The Arduino UNO consists of USB connector, microcontroller, analogue input pins, power port digital
pins etc. The Arduino UNO power was supplied by the computer. The code that was uploaded onto
the Arduino UNO software ran through the data generate to results.

The LCD was also interfaced with the Arduino board through the jumper wires. It displays the
distance of intrusion and angle of rotation of the servo motor. The connections were as follows:

LCD PIN_RS------------------ 12 of Arduino Uno

LCD PIN_RW ------------------ GND

LCD PIN_EN -------------------11 of Arduino Uno

LCD PIN_D0 ------------------- NC

LCD PIN_D1 ------------------- NC

LCD PIN_D2 ------------------- NC

LCD PIN_D3 ------------------- NC


LCD PIN_D4 ------------------- 5 of Arduino Uno

LCD PIN_D5 ------------------- 4 of Arduino Uno

LCD PIN_D6 ------------------- 3 of Arduino Uno

LCD PIN_D7 ------------------- 2 of Arduino Uno

LCD PIN_VSS------------------ GND

LCD PIN_VDD------------------ 5V

Flow Diagram

Arduino Uno Code

#include <Servo.h>

#include <LiquidCrystal.h>

const int trigPin = 8;

const int echoPin = 9;

#define buzzer 7

long duration;

int distance;

Servo myservo;

int pos = 0;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;


LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {

pinMode( 7, OUTPUT);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

Serial.begin(9600);

myservo.attach(6);

lcd.begin(16, 2);

lcd.clear();

void distance123()

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance= duration*0.034/2;

void loop() {

for (int i=0;i<=180;i+=5)

distance123();

Serial.print(i);
Serial.print(",");

Serial.print(distance);

Serial.print(".");

myservo.write(i);

if(distance<50)

lcd.clear();

lcd.print("Obstacle Detected");

lcd.setCursor(0,2);

lcd.print("Dist:");

lcd.print(distance);

lcd.print("cm");

lcd.print(",");

lcd.print("at");

lcd.print(i);

lcd.print((char)223);

digitalWrite( 7, HIGH);

delay(500);

else

lcd.clear();

lcd.print("No Obstacle");

lcd.setCursor(0,2);

lcd.print("Dist:");

lcd.print(distance);

lcd.print("cm");

lcd.print(",");
lcd.print("at");

lcd.print(i);

lcd.print((char)223);

digitalWrite( 7, LOW);

delay(500);

delay(10);

for (int i=180;i>=0;i-=5)

distance123();

Serial.print(i);

Serial.print(",");

Serial.print(distance);

Serial.print(".");

if(distance<50)

lcd.clear();

lcd.print("Obstacle Detected");

lcd.setCursor(0,2);

lcd.print("Dist:");

lcd.print(distance);

lcd.print("cm");

lcd.print(",");

lcd.print("at");

lcd.print(i);

lcd.print((char)223);
digitalWrite( 7, HIGH);

delay(500);

else

lcd.clear();

lcd.print("No Obstacle");

lcd.setCursor(0,2);

lcd.print("Dist:");

lcd.print(distance);

lcd.print("cm");

lcd.print(",");

lcd.print("at");

lcd.print(i);

lcd.print((char)223);

digitalWrite( 7, LOW);

delay(500);

delay(10);

myservo.write(i);

After the code was uploaded to Arduino IDE, the motor started rotating and the LCD displayed the
contents of interest. The buzzer sounded when there was an object in front of the ultrasonic sensor.
A visual representation of the objects detection was produced by the processing IDE software when
the processing code was uploaded to the software.

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

// defubes variables

String angle="";

String distance="";

String data="";

String noObject;

float pixsDistance;

int iAngle, iDistance;

int index1=0;

int index2=0;

PFont orcFont;

void setup() {

size (1200, 700); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***

smooth();

myPort = new Serial(this,"COM6", 9600); // starts the serial communication and change the COM
according to arduino port

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);

// simulating motion blur and slow fade of the moving line

noStroke();

fill(0,4);

rect(0, 0, width, height-height*0.065);

fill(98,245,31); // green color

// calls the functions for drawing the radar

drawRadar();

drawLine();
drawObject();

drawText();

void serialEvent (Serial myPort) { // starts reading data from the Serial Port

// reads the data from the Serial Port up to the character '.' and puts it into the String variable
"data".

data = myPort.readStringUntil('.');

data = data.substring(0,data.length()-1);

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

// converts the String variables into Integer

iAngle = int(angle);

iDistance = int(distance);

void drawRadar() {

pushMatrix();

translate(width/2,height-height*0.074); // moves the starting coordinats to new location

noFill();

strokeWeight(2);

stroke(98,245,31);

// draws the arc lines

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);

// draws the angle lines

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);

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("Elementz ", width-width*0.875, height-height*0.0277);

text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277);

text("Distance: ", width-width*0.26, 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();

Processing IDE Visual Representation

The red spectrum represented a detected object.


CONCLUSION

This project methodology outlines the approach for delivering a state-of-the-art ultrasonic radar
system that will significantly enhance the security and surveillance capabilities of the city of any
town. The proposed system leverages advanced sensor technologies and intelligent signal processing
to provide reliable intrusion detection and monitoring, ultimately improving public safety and
protecting critical infrastructure.

You might also like