Está en la página 1de 20

PROYECTODE UN RADAR

ULTRASONICO

UNIVERSIDAD
NACIONAL PEDRO
RUIZ GALLO

ESCUELA
PROFESIONAL
INGENIERIA DE
SISTEMAS

CURSO: ROBOTICA

PROYECTO INGENIERO: BERNARDO

DE UN RADAR NUÑEZ MONTENEGRO

ULTRASONICO
CON ARDUINO Y INTEGRANTES:
ZEÑA VALDERA JOSE DAVID

PROCESSING CASIANO
YOSHIMAR
VARGAS

1
PROYECTODE UN RADAR
ULTRASONICO

PROYECTO DE UN RADAR ULTRASONICO CON ARDUINO Y PROCESSING

MATERIALES

1. Arduino UNO o clon


2. Servo motor pequeño (TowerPro SG-92R Micro Servo)
3. Cables jumper
4. Sensor Ultrasónico (HCSR04)
5. Palitos de chupete
6. Silicona

DESCRIPCION DE MATERIALES

Arduino UNO

Arduino Uno es una placa electrónica basada en el microcontrolador ATmega328.


Cuenta con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar como
salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas analógicas.
Además, incluye un resonador cerámico de 16 MHz, un conector USB, un
conector de alimentación, una cabecera ICSP y un botón de reseteado. La placa
incluye todo lo necesario para que el microcontrolador haga su trabajo, basta
conectarla a un ordenador con un cable USB o a la corriente eléctrica a través de
un transformador.

Características técnicas de Arduino Uno

- Microcontrolador: ATmega328

- Voltage: 5V

- Voltage entrada (recomendado): 7-12V

2
PROYECTODE UN RADAR
ULTRASONICO

- Voltage entrada (limites): 6-20V

- Digital I/O Pins: 14 (de los cuales 6 son salida PWM)

- Entradas Analogicas: 6

- DC Current per I/O Pin: 40 mA

- DC Current parar 3.3V Pin: 50 mA

- Flash Memory: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados para el


arranque

- SRAM: 2 KB (ATmega328)

- EEPROM: 1 KB (ATmega328)

- Clock Speed: 16 MHz

Servo motor pequeño (TowerPro SG-92R Micro Servo)

El servo SG90 Tower Pro un servo miniatura de gran calidad y diminutas


dimensiones, además es bastante económico. Funciona con la mayoría de tarjetas

3
PROYECTODE UN RADAR
ULTRASONICO

electrónicas de control con microcontroladores y además con la mayoría de los


sistemas de radio control comerciales. Funciona especialmente bien en aeronaves
de aeromodelismo dadas sus características de torque, tamaño y peso.

El servo SG90 tiene un conector universal tipo “S” que encaja perfectamente en la
mayoría de los receptores de radio control incluyendo los Futaba, JR, GWS,
Cirrus, Hitec y otros. Los cables en el conector están distribuidos de la siguiente
forma: Rojo =Alimentación (+), Cafe = Alimentación (–) o tierra, Naranja= Señal
PWM.

Este tipo de servo es ideal para las primeras experiencias de aprendizaje y


prácticas con servos, ya que sus requerimientos de energía son bastante bajos y
se permite alimentarlo con la misma fuente de alimentación que el circuito de
control. Por ejemplo, si se conecta a una tarjeta arduino, se puede alimentar
durante las pruebas desde el puerto USB del PC sin mayor problema.

Características técnicas

Micro Servo Tower-pro

Velocidad: 0.10 sec/60° @ 4.8V

Torque: 1.8 Kg-cm @ 4.8V

Voltaje de funcionamiento: 3.0-7.2V

Temperatura de funcionamiento: -30 ℃ ~ 60 ℃

Ángulo de rotación: 180°

Ancho de pulso: 500-2400 µs

Longitud de cable de conector: 24.5cm

4
PROYECTODE UN RADAR
ULTRASONICO

Sensor de ultrasonido

Con este laboratorio se pretende detectar , localizar e identificar objetos a


distancia. Su funcionamiento se efectúa emitiendo un impulso , que se refleja en el
objetivo y se recibe  en la misma posición del emisor. Se pretende visualizar el
radar en una interfaz en Processing empleando un sensor ultrasonico HC- SR04.

El sensor se basa simplemente en medir el tiempo entre el envío y la recepción de


un pulso sonoro. Sabemos que la velocidad del sonido es 343 m/s en condiciones
de temperatura 20 ºC, 50% de humedad, presión atmosférica a nivel del mar.
Transformando unidades resulta

Es decir, el sonido tarda 29,2 microsegundos en recorrer un centímetro. Por tanto,


podemos obtener la distancia a partir del tiempo entre la emisión y recepción del
pulso mediante la siguiente ecuación.

El motivo de divir por dos el tiempo (además de la velociad del sonido en las
unidades apropiadas, que hemos calculado antes) es porque hemos medido el
tiempo que tarda el pulso en ir y volver, por lo que la distancia recorrida por el
pulso es el doble de la que queremos medir.

FUNCIONAMIENTO

Un radar utiliza una señal que rebota en la superficie de cuerpos sólidos y regresa,
para determinar la distancia de objetos. EL radar hace un recorrido de 180 o 360
grados para detectar que existe alrededor, e incluso para determinar la velocidad
de cuerpos que se muevan hacia el radar.

5
PROYECTODE UN RADAR
ULTRASONICO

En este instructable construimos un radar sencillo utilizando un sensor ultrasónico,


un servo y Processing para graficar la información. Además aprendemos a
conectar Arduino y processing a través de puerto serial. Entonces, por el lado de
Arduino aprendemos:

Usar un servo:

Rotar el servo de forma contínua hacia la izquierda y derecha

Utilizar un sensor de distancia ultrasónico

Mandar información por puerto serial

Del lado de Processing:

Recibir infromación por puerto serial

Separar datos recibidos

Usar sistemas de referencia en Processing.

6
PROYECTODE UN RADAR
ULTRASONICO

PROBLEMÁTICA

Hoy en día en nuestra realidad peruana hay muchos problemas que aquejan a
nuestro país pero uno de ello es lo más primordial es la delincuencia en sentido
general porque de ello se deriva el robo cibernético, el espionaje etc. En esta era
de la información está el problema del robo intelectual que afecta a todas las
personas y naciones del mundo es por ello que como estudiante de ingeniería
que estamos en proceso de aprendizaje en el curso de robótica hemos hecho el
proyecto de un radar ultrasónico con arduino y processing para detectar objetos a
cierta distancia y Angulo y así corroborar con nuestro granito de arena a los
problemas que nos aquejan en la actualidad.

SOLUCION

Este proyecto de simulación a llevar a implementar con materiales más


sofisticados puede dar muchas soluciones a problemas de seguridad en una
casa, en guerras para detectar a los enemigos, en el vuelo de aviones del
sobrepaso del límite del territorio de otro país etc.

7
PROYECTODE UN RADAR
ULTRASONICO

CIRCUITO ELECTRONICO

8
PROYECTODE UN RADAR
ULTRASONICO

CABLEADO

CODIGO FUENTE

// Includes the Servo library

#include <Servo.h>.

int red=7;

int green=8;

const int trigPin = 10;

// Definemos Tirg and Echo pines del Ultrasonic Sensor

const int echoPin = 11;

9
PROYECTODE UN RADAR
ULTRASONICO

// Variables para la duracion y distancia

long duracion;

int distancia ;

Servo myServo; //creamos un servo objeto para controlar el servo motor

void setup() {

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

pinMode(red, OUTPUT); // ping output led

pinMode(green, OUTPUT);

digitalWrite(red, LOW); // off

digitalWrite(green, LOW);

Serial.begin(9600);

myServo.attach(12); // Defines on which pin is the servo motor attached

}void loop() { // rotates the servo motor from 15 to 165 degrees

for(int i=15;i<=165;i++){

myServo.write(i);

delay(30);

10
PROYECTODE UN RADAR
ULTRASONICO

distance = calculateDistance();// Calls a function for calculating the distance


measured by the Ultrasonic sensor for each degree

if(distance <=15){

digitalWrite(red, HIGH);

digitalWrite(green, LOW);

}else{

digitalWrite(red, LOW);

digitalWrite(green, HIGH);

}Serial.print(i); // Sends the current degree into the Serial Port

Serial.print(","); // Sends addition character right next to the previous value needed
later in

the Processing IDE for indexing

Serial.print(distance); // Sends the distance value into the Serial Port

Serial.print("."); // Sends addition character right next to the previous value needed
later in the Processing IDE for indexing

} // Repeats the previous lines from 165 to 15 degrees

for(int i=165;i>15;i--){

myServo.write(i);

delay(30);

11
PROYECTODE UN RADAR
ULTRASONICO

distance = calculateDistance();

Serial.print(i);

Serial.print(",");

Serial.print(distance);

Serial.print(".");

if(distance <=15){

digitalWrite(red, HIGH);

digitalWrite(green, LOW);

}else{digitalWrite(red, LOW);

digitalWrite(green, HIGH);

} }}// Function for calculating the distance measured by the Ultrasonic sensor

int calculateDistance(){

digitalWrite(trigPin, LOW);

delayMicroseconds(2);// Sets the trigPin on HIGH state for 10 micro seconds

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);duration = pulseIn(echoPin, HIGH); // Reads the


echoPin, returns the sound wave travel time in microseconds

12
PROYECTODE UN RADAR
ULTRASONICO

distance= duration*0.034/2;

return distance;

CODIGO FUENTE DE PROCCESSING

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;

13
PROYECTODE UN RADAR
ULTRASONICO

PFont orcFont;

void setup() {

size (1200, 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);

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

14
PROYECTODE UN RADAR
ULTRASONICO

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

15
PROYECTODE UN RADAR
ULTRASONICO

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

16
PROYECTODE UN RADAR
ULTRASONICO

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

17
PROYECTODE UN RADAR
ULTRASONICO

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

18
PROYECTODE UN RADAR
ULTRASONICO

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

19
PROYECTODE UN RADAR
ULTRASONICO

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

20

También podría gustarte