Está en la página 1de 20

Sede Esmeraldas

Carrera de ……………

Sensor Ultrasónico de Movimiento con interfaz de radar en Processing para


detección de objetos con Arduino

Ultrasonic Motion Sensor with radar interface in Processing for object detection
with Arduino

José Gonzáles Zuleta, Robin Chévez, Rafael Scatizzi


Sistemas electrónicos digitales, PUCESE
Instructor: Mgt. Manuel Nevárez T.
manuel.nevarez@pucese.edu.ec
jose.gonzales@pucese.edu.ec, zahid.scatizzi@pucese.edu.ec, robin.chevez@pucese.edu.ec.

distancia, poner en práctica todo lo aprendido en


Resumen: clases y llevarlo al campo real en la ciudad de
Proyecto de un radar ultrasónico basado en Esmeraldas.
Arduino y Processing, conectado a un servomotor
con un sensor ultrasónico, todo esto conectado Palabras claves:
con cables de conexión que van a un protoboard,
Arduino, Processing, radar ultrasónico,
para la automatización de sistemas de seguridad y
protoboard, servomotor.
estacionamientos, por la detección de
movimientos de objetos cercanos al radar, en un
rango determinado por el usuario. Se utilizo la
placa Arduino Uno como principal plataforma de Introducción
procesamiento de nuestro proyecto para
controlar el resto de los elementos como lo fue el
Desde ya varios años, la humanidad ha querido
servomotor y el sensor ultrasónico. Se trabajo con
tratar de automatizar la mayoría de las
un servomotor que se encargara de realizar la
actividades que el ser humano puede y podrá
rotación del sensor en un radio de 0º hasta 180º
realizar, esto es debido a que el mundo está lleno
para la detección de objetos que se encuentran
de necesidades que se requieren cumplir de
en ese radio de rotación. Otro material utilizado
manera rápida y eficaz, reduciendo el trabajo que
fue un sensor ultrasónico que se encarga de
deben realizar las personas que se beneficiaran
detectar todos los objetos en una distancia
con la aparición de nuevas técnicas de
máxima de 40cm y con el apoyo del servomotor
automatización haciendo de su vida algo más
este puede detectar objetos no solo enfrente,
llevadera y cómoda. Por tanto, las personas que
sino que también que se encuentren alrededor en
tienen el conocimiento necesario para crear
un radio máximo de 180º. Finalmente se utilizó el
nuevas tecnologías o técnicas electrónicas se han
software de visualización Processing con el cual
preocupado por las necesidades ya mencionadas,
visualizaremos los objetos que se encuentren
de manera han desarrollado métodos electrónicos
dentro de la distancia y radio máximo del sensor
y tecnológicos que pueden representar un avance
ultrasónico, este software también nos permite
y ayuda importante en su utilización, es así como
ver a que distancia y en qué posición se encuentra
en este proyecto se tratara sobre los sensores de
el objeto. Todas estas herramientas fueron
movimientos para detección de objetos, de
utilizadas para la realización de nuestro proyecto
manera que se pueda localizar, saber y prevenir
con el objetivo de poder detectar objetos a cierta

Esmeraldas – Ecuador
www.pucese.edu.ec
futuros accidentes. Un sensor ultrasónico de inicio de la introducción para la detección de
movimiento es un dispositivo electrónico objetos que se encuentran en el ambiente. En una
compuesto de varias unidades receptoras y de las investigaciones se muestra que se puede
emisoras de señales capaces de captar variaciones implementar para la realidad virtual, porque en
en el espacio a través de una onda ultrasónica que las simulaciones, las personas para observar lo
recorre el área y vuelve al detector rebotando en que tienen en su entorno, en otras palabras, el
cada objeto que se encuentra en el ambiente; si el mapeo de su espacio.
dispositivo detecta un nuevo objeto se activa [1].
También estos sistemas de mapeos usando los
Existen muchos campos en los cuales utilizar los sensores ultrasónicos, no solo sirven para los
sensores ultrasónicos de movimiento y también seres humanos, también se aplica en la creación
otros muchos que se tienen que experimentar, de sistemas avanzados para robots, la exploración
por eso en este proyecto se da un enfoque un de zonas desconocidas y/o peligrosas para
tanto general sobre la utilización y aplicación de acceder [3]. Los sensores ultrasónicos más
estos dispositivos en los diferentes ámbitos de comunes al momento de usarse son el HC-SR04,
trabajo y entretenimiento. Resaltando varias de para proyectos de bajo presupuesto, combinado
las aplicaciones fundamentales de estos sensores con un Arduino y un protoboard, se crea un fácil
se pueden mencionar algunas como: sensor, si queremos darle un movimiento más
real, podemos usar un servomotor.
 Control del nivel de llenado en silos de
grava Un servomotor es un tipo especial de motor que
 Detección de altura del brazo en permite controlar la posición del eje en un
maquinarias agrícolas movimiento dado, fue diseñado para moverse una
 Protección antichoque en plataformas de determinada cantidad de grados y luego
trabajo aéreo mantenerse fijo en una posición. Existen varios
 Detección de orificios en arboles tipos de servomotores para todo tipo de usos, en
 Control de vehículos recogedores de robótica, se implementa, en el interior de las
basura impresoras, también están los servomotores de
tipo industrial, esos se usan ya para proyectos
empresariales. En este caso se usará un
Estas son solo algunas de muchas aplicaciones
servomotor de modelismo.
que tienen este tipo de sensores que permiten
facilitar en gran medida el trabajo que deben
El uso que se les da es común en la construcción
realizar las personas en dichos campos de trabajo.
de robots porque permiten un movimiento
De tal forma que la automatización que se quiere
controlado y por entregar un mayor par de torsión
lograr actualmente y hace años no está tan lejos
(torque) que otro motor como el DC. Puede ser
cuando se plantean ideas con este tipo de
configurado por medio de la plataforma Arduino,
dispositivos. Claro está que no todo es perfecto y
para calibrar la cantidad de grados que deseamos
es que hay que ser conscientes de que se tiene
que gire y medir la velocidad de giro del mismo.
que informar sobre estos artefactos para evitar
Como en este proyecto buscamos que nuestro
posibles inconvenientes a la hora de aplicarlos
sensor tenga movimiento suave, no tan brusco
principalmente en hogares donde la seguridad de
para que tenga una lectura de objetos más precisa
las personas es muy baja en comparación a las
al momento de observarlo en la interfaz gráfica
empresas con un equipo especializado para
del radar. La demanda de mediciones de baja
prevenir accidentes y trabajar de manera segura y
frecuencia y baja presión promueve la mejora
organizada[2].
continua del dispositivo de calibración de presión
dinámica [4]. Un aparato de calibración basado en
Lo bueno de los radares ultrasónicos, es que,
servomotor puede llegar a tener problemas,
tienen muchas utilidades en cualquier campo de
depende de cómo enlacemos el sensor
nuestra imaginación, es cuestión, de saber de qué
ultrasónico, puede perder estabilidad para la
manera lo vamos a implementar, como se dijo al
detección de objetos a su alrededor, podemos

PAGE 2
Sede Esmeraldas
Carrera de ……………

enlazar con silicona o un pequeño pedazo de mayoría de estas aplicaciones requieren que el
madera, lo primordial es que se encuentre en una sistema de detección sea no invasivo y no
superficie plana para mayor equilibrio. En este perturbe el entorno de trabajo normal, los
caso, se calibro como prueba a 90° para mayor dispositivos o los seres vivos en el área de
exactitud y con baja velocidad de movimiento. detección. Esto implica la elección de vectores
discretos para el transporte de información, con
Para la programación del Arduino, el servomotor y alta inmunidad a todos los demás factores, a
el radar, se usará dos programas, uno para el menos que el estado de movimiento [5]. Por
movimiento del servomotor y otro para la interfaz ejemplo, el sistema de piloto de asistencia de
de detección de objetos. Uno de estos programas estacionamiento (PAP) desarrollado por Volvo
se llama “Processing”. Es un lenguaje de puede llevar a los conductores a encontrar
programación algo desconocido para el espacios de estacionamiento al combinarse con la
aprendizaje de las ciencias de la computación, tecnología de sensores de imagen inteligentes,
puede que se quede en segundo plano al lado de detectar obstáculos cercanos, planificar rutas de
Python o Scratch. Processing es un dialecto de dirección múltiple y controlar la dirección auxiliar
Java que se diseñó para el desarrollo del arte eléctrica, [6]. Enfocado más en carros eléctricos
gráfico, para las animaciones y aplicaciones de de última generación, como los Tesla, que tienen
todo tipo, como es basado en Java, quiere decir variedad de sensores de movimiento. Para poder
que es multiplataforma, tiene la ventaja de que no fundamentar la investigación, tomamos varias
necesita mucha configuración para comenzar a referencias de artículos que están relacionados
usarlo, a diferencia de Arduino u otras específicamente con la base teórica del proyecto,
plataformas. Gracias a la escalabilidad, podemos uno de ellos es “Object Detection Using Ultrasonic
combinarlo con aplicaciones de Java en dos Sensor”, este articulo ayudo a tener una idea más
sentidos. Para nuestro proyecto es usado, para la clara para poder tener un soporte con el trabajar
demostración del sensor ultrasónico, ahí se refleja en el planteamiento del proyecto. Tomando como
el objeto que está pasando por el sensor, se guía las ideas de este artículo se pudieron
dibuja unas franjas rojas en el radar, depende del establecer nuestras propias ideas sin alejarnos del
alcance del radar se va a detectar en la interfaz de marco teórico de las referencias. En el artículo
Processing. anteriormente mencionado se expresan ideas
como que “los sensores ayudan a detectar los
Además, se usó la plataforma Arduino, que es objetos debido a ondas de rebote que dan
conocido por la gran variedad inmensa de información de donde se encuentran”. Además,
proyectos ahí creadas, es algo más compleja en proporcionan el dato de la distancia a la cual se
configuraciones que Processing, esta se usó encuentra el objeto. Por tanto, con la ayuda de la
principalmente para el movimiento del herramienta “Processing” se pudo visualizar esa
servomotor, regulando la velocidad y los grados distancia y forma de los objetos que el sensor
del mismo. Al combinarse estos 2 programas detectaba conforme rotar en 180 grados [7].
podemos el funcionamiento en tiempo real, si
tenemos conceptos básicos de programación, Para poder comprender un poco más sobre como
podemos modificarlo a nuestro gusto, darle establecer la distancia a la que se encuentran los
“delay” al movimiento del servomotor, etc. Por cuerpos nos vimos en la necesidad de
último, La detección de movimiento de objetos o fundamentar las ideas en un artículo que se titula
seres vivos podría ser interesante en muchos “Distance Measuring by Ultrasonic Sensor” este
dominios, como dispositivos de seguridad, articulo proyecta ideas específicas sobre cómo
radares, posicionamiento de robots industriales, lidiar con la distancia a la hora de implementar un
niveles de líquido en tanques, profundidad de sensor ultrasónico en Arduino y así tener más
bancos de nieve y sistemas de guía automática. La información en pantalla, que en consecuencia se

Esmeraldas – Ecuador
www.pucese.edu.ec
tendrá mayor precisión con los cálculos. Una de internas. La imagen de pulso-eco de LU es similar
las ideas más importantes del artículo es que para al ultrasonido tradicional. Sin embargo, en lugar
medir la distancia de los objetos respecto al de utilizar transductores piezoeléctricos para
sensor ultrasónico, se tienen que tomar en generar y recibir un pulso de sonda acústica corto,
consideración algunos factores importantes para utiliza un pulso de láser corto típicamente [10].
la correcta medición de la distancia, como
ejemplo está el material del objeto, de manera Una de las aplicaciones que podemos dar a los
que para lograrlo se realiza un código general para sensores ultrasónicos son para la seguridad vial de
los materiales más comunes y así calcular lo la ciudad, debido a la cantidad de infracciones o
deseado. Una vez analizado las ideas planteadas accidentes que ocurren en Esmeraldas, no se
en el artículo se obtuvo un escenario más claro pone en práctica una solución por parte de las
sobre como juntar todos los recursos para llevar a autoridades, la preocupación de seguridad más
cabo el proyecto y poder presentar los resultados importante es la velocidad excesiva que resulta en
[8]. accidentes, lesiones, muerte, así como daños en
público propiedad. Por lo tanto, la imposición de
Los conjuntos de sensores enfocados pueden la velocidad automática es esencial e importante
utilizarse en imágenes foto acústicas y láser en el arsenal del municipio para prevenir y
ultrasónicas para aumentar la sensibilidad y la combatir la velocidad excesiva. El sistema de
resolución espacial en una región espacial control de velocidad que utilizado en el proyecto
limitada. El enfoque de un arreglo lineal en la “Implementation of a Speed Control System Using
dirección de elevación permite formar el plano de Arduino” nos da otra manera de uso de este
la imagen para imágenes de sección transversal sensor, puede prevenir la muerte de personas si
2D. El enfoque adicional de un arreglo lineal en son colocados en lugares estratégicos, y así que el
dirección lateral puede mejorar la resolución sistema de multas funcione de la mejor forma y la
lateral, sacrificando el tamaño de la región de ciudadanía tome conciencia al momento de
sensibilidad. Generalmente, la forma resultante manejar, porque ponen en riesgo sus vidas, las de
del arreglo será toroidal. Además, cuanto mayor sus familiares, incluso de los peatones [11].
sea el ancho de la región espacial con alta
sensibilidad, menor será la resolución espacial en Además, podemos combinar la tecnología de
la dirección correspondiente. Las matrices Arduino con Android, ya que, al combinar el
enfocadas son de particular interés en las sondas sensor que se implementa en un robot junto con
de imagenología PA de mano debido a la mejor una cámara de vigilancia, a través de un enlace de
resolución lateral, la reducción de los artefactos Wifi, que esto se facilita con el uso de APIs
de imagenología y la capacidad de visualizar (Interfaces de programación de aplicaciones), el
superficies inclinadas. Además, sólo se debe costo puede variar, dependiendo del uso y el
iluminar la región de sensibilidad, para que el rango en que el robot va a realizar su trabajo, es
sistema de suministro de luz pueda ser así que en el proyecto “An Android Mobile Robot
optimizado [9]. for Monitoring and Surveillance” se propone esta
idea y reflejan variedad de resultados al colocar
La PA combinada y la imagenología de ultrasonido diferentes objetos para probar la agilidad con la
de pulso-eco tradicional pueden proporcionar que evita obstáculos, se reflejan resultados
información funcional y morfológica sobre el decentes, logra una comunicación a una distancia
tejido. En las imágenes de PA, la radiación láser es de 50m de distancia del teléfono [12].
absorbida en el propio objeto y los pulsos
acústicos generados se utilizan para reconstruir la
distribución y la fuerza de los absorbentes ópticos.
En el ultrasonido tradicional de pulso eco de
inmersión, se utiliza un pulso corto de sonda
acústica para insonificar el objeto y el campo
acústico retro disperso se utiliza para reconstruir
el límite externo y las homogeneidades acústicas

PAGE 2
Sede Esmeraldas
Carrera de ……………

protoboard, también refleja el funcionamiento de


los pines.

Métodos y materiales
Este proyecto fue propuesto, debido a que la
ciudad en la mayoría de los lugares de la ciudad
de Esmeraldas, en sistemas de seguridad,
estacionamientos, no cuentan con sensores
ultrasónicos para saber que objetos están cerca
del rango del mismo. Por eso es que se necesitan
estos sensores para aumentar la seguridad de los
establecimientos de la ciudad, para así evitar
robos y automatizar los espacios de
estacionamiento, estos sensores son muy
versátiles, se usa en muchas partes. Figura 1. Esquema de conexión
Por medio de la observación, en el grupo se
dedujo que es un problema el que no se use estos
instrumentos, si tenemos en cuenta las ventajas
que tienen, nuestra ciudad tendría más seguridad
y más automatizada, siempre y cuando se tome
una iniciativa para su implementación.

Para el armado de la maqueta del sensor


ultrasónico, se realizó el esquema de armado en
el protoboard junto con el servomotor, en la foto
se muestra en los pines que van conectados. Se
usó el sensor ultrasónico Hc-sr04 porque es capaz
detectar objetos en un rango de 2 a 450cm, en
este caso, optamos por limitarlo a 40cm de
distancia, ya que, se está realizando una Figura 2. Segundo esquema de conexión
demostración del funcionamiento básico del
mismo, además de ser muy preciso, de bajo
consumo y costo. Después se usó el servomotor
En el código se muestra lo esencial para el giro del
Tower Pro Sg5010 180 Grados, como se resaltó
servomotor
líneas atrás, es una pequeña demostración y por
se escogió un servomotor pequeño, de bajo costo, for(int i=165;i>15;i--){
además es esencial porque con su giro de 180° myServo.write(i);
combinado con el sensor ultrasónico, se ve un
buen funcionamiento al momento de girar y
detectar objetos. El puerto de comunicación del Arduino depende
de que USB del computador se use en este caso
En la programación y el esquema muestra el cómo es:
se debe conectar los cables al Arduino y al

Esmeraldas – Ecuador
www.pucese.edu.ec
else {
myPort = new
Serial(this,"COM5", 9600); noObject = "In Range";

}
Además, este comando indica la distancia medida
con los microsegundos de giro del servomotor,
esta parte va en la IDE de Arduino:

distance= duration*0.034/2;
Luego en programa de Arduino en su versión
1.8.5, se programó la velocidad y los grados del
servomotor, se estableció la rotación del
servomotor de 15 a 165° grados, con un “delay”
de 10 microsegundos. Aparte se usó, el IDE
Processing para el desarrollo de la interfaz de Figura 3. Interfaz del radar
radar donde se establece la distancia del radar de
un máximo de 40 cm, para la detección los Resultados:
objetos cercanos. Con el siguiente comando se
establece cuando un objeto esta fuera o dentro Los resultados fueron los esperados al inicio de las
del rango: pruebas, ya que no hubo problemas al momento
de conectar los componentes al Arduino y al
if(iDistance>40) { protoboard. Los únicos 2 problemas presentados
fueron, con los puertos de conexión en la laptop,
noObject = "Out of Range"; y el servomotor que no encendía,
afortunadamente fueron resueltos de manera
} inmediata, con ayuda del docente.

alrededor para luego mostrar en pantalla la forma


del objeto detectado.

Para empezar, se escoge los materiales adecuados


al proyecto que se desea realizar, acto seguido se
conectan los cables y demás artefactos que hacen
posible el funcionamiento del proyecto. Se procede
a hacer el código fuente del proyecto para que todo
salga según lo planeado, de manera que se empieza
Figura 4. Funcionamiento Completo Del Radar a experimentar con el proyecto para de esa forma
verificar y comprobar sí existe algún fallo físico o
Discusión virtual (refiriéndose al código del proyecto).

Al entrar en Arduino ya habiendo editado parte del


El planteamiento general del proyecto es crear un
código, se ejecuta el código para observar cómo
dispositivo electrónico con ayuda de Arduino IDE
avanza el proyecto, en caso de que funcione
y Processing IDE, capaz de detectar objetos a su
correctamente al primer intento, se procede a
configurar el código de Processing IDE para poder

PAGE 2
Sede Esmeraldas
Carrera de ……………

observar en pantalla lo que capta el sensor Si tenemos un bajo presupuesto no podemos


ultrasónico ya mencionado anteriormente. En tener un super sistema de seguridad para la
primera instancia aparecen errores como que no se detección de objetos, sin embargo, con nuestro
visualiza ningún objeto, el sensor no hace lo que proyecto se pueden hacer test, para la posterior
está programado y demás inconvenientes que implementación de proyectos empresariales o
impiden el avance del proyecto. industriales.
Una vez resuelto los problemas que surge cuando
se está experimentando, se empieza a hacer
pruebas finales que comprueban la validez y Referencias Bibliográficas
exactitud de toda la preparación que se lleva a
cabo antes de terminar el proyecto, de manera que [1] S. Mancheno,
se visualiza en pantalla la forma de los objetos “IMPLEMENTACIÓN DE SENSOR
detectados por el sensor ultrasónico. DE PROXIMIDAD AUDIBLE A TRAVÉS
DE PLACA ARDUINO PARA EL
PARQUEO DE VEHÍCULOS,” p.
Conclusiones 137, 2016.
Tal y como se esperaba el proyecto planteado
cumple con las exceptivas que se tenían en un [2] F. Ferdeghini, D. Brengi, and D.
principio. Como es obvio, se presentaron algunos Lupi, “Sistema De Detección
problemas con el desarrollo teórico-practico del Combinado Para Sensores
proyecto que se desarrolló, concretamente en el
software que se utilizó para poder dar Ultrasónicos,” no. 1650, p. 6,
funcionamiento al proyecto. Teniendo en 2015.
funcionamiento el proyecto, se puede utilizar en
diferentes áreas como detección de vehículos en [3] A. Tedeschi, S. Calcaterra, and F.
sistemas de barreras de tránsito, recuento de Benedetto, “Ultrasonic RAdar
botellas en máquinas de llenado, también system (URAS): Arduino and
refiriéndonos al ámbito académico se pueden
virtual reality for a light-free
utilizar para detección de objetos metálicos al
ingreso de cualquier institución. mapping of indoor
environments,” IEEE Sens. J., vol.
Además, que el sensor es de gran ayuda para 17, no. 14, pp. 4595–4604, 2017.
muchos ámbitos de la vida, para la detección de
objetos, a corta o largas distancias, dependiendo [4] D. Liu, A. Liu, F. Zhang, X. Gang, L.
para que lo necesitemos, por eso se usan en Li, and H. Wu, “A dynamic
parqueaderos, sistemas de seguridad de bancos o
de empresas importantes o para personas ciegas pressure calibration device based
que, por medio de un bastón, poder saber que on the low speed servomotor and
trayectoria. pistonphone technique,” Meas. J.
Int. Meas. Confed., vol. 151, p.
107254, 2019.
[5] M. V. Paulet, A. Salceanu, and O.
M. Neacsu, “Ultrasonic radar,”

Esmeraldas – Ecuador
www.pucese.edu.ec
Proc. 2016 Int. Conf. Expo. Electr. pressures simultaneously
Power Eng. EPE 2016, no. Epe, pp. with high sensitivity and
551–554, 2016. linearity,” 2020.
[6] T. F. Wu, P. S. Tsai, N. T. Hu, and J.
Y. Chen, “Research and
[11] B. K. Engiz and R. Bashir,
implementation of auto parking “Implementation of a speed
system based on ultrasonic control system using
sensors,” Proc. IEEE Int. Conf. arduino,” Proc. - 2019 6th
Adv. Mater. Sci. Eng. Innov. Sci. Int. Conf. Electr. Electron.
Eng. IEEE-ICAMSE 2016, pp. 643– Eng. ICEEE 2019, pp. 294–
645, 2017. 297, 2019.
[7] G. Arun Francis, M. Arulselvan, P.
Elangkumaran, S. Keerthivarman,
[12] J. Azeta et al., “An android
and J. Vijaya Kumar, “Object based mobile robot for
detection using ultrasonic monitoring and surveillance,”
sensor,” Int. J. Innov. Technol. Procedia Manuf., vol. 35, pp.
Explor. Eng., vol. 8, no. 6, pp. 1129–1134, 2019.
207–209, 2019.
[8] L. Koval, J. Vaňuš, and P. Bilík,
“Distance Measuring by
Ultrasonic Sensor,” IFAC- Anexos:
PapersOnLine, vol. 49, no. 25, pp.
153–158, 2016.
[9] A. Bychkov, V. Simonova, V.
Zarubin, I. Kudinov, E.
Cherepetskaya, and A. Karabutov,
“Toroidally focused sensor array
for real-time laser-ultrasonic
imaging: The first experimental
study,” Photoacoustics, vol. 17, p.
100160, 2020.
[10] X. Zhang, L. Yu, Q. Guo, D. Li, and
H. Zhang, “Resonance frequency
analysis of a dual- frequency
capacitive micromechanical
ultrasonic transducer for
detecting high and low

PAGE 2
Sede Esmeraldas
Carrera de ……………

Código de Arduino

// Includes the Servo library

#include <Servo.h>. 

// Defines Tirg and Echo pins of


the Ultrasonic Sensor

const int trigPin = 10;

const int echoPin = 11;

// Variables for the duration


and the distance

long duration;

int distance;

Servo myServo; // Creates a


servo object for controlling the
servo motor

void setup() {

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

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

  Serial.begin(9600);

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

Esmeraldas – Ecuador
www.pucese.edu.ec
}

void loop() {

  // rotates the servo motor


from 15 to 165 degrees

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

  myServo.write(i);

  delay(30);

  distance =
calculateDistance();// Calls a
function for calculating the
distance measured by the
Ultrasonic sensor for each
degree

  

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

PAGE 2
Sede Esmeraldas
Carrera de ……………

  delay(30);

  distance =
calculateDistance();

  Serial.print(i);

  Serial.print(",");

  Serial.print(distance);

  Serial.print(".");

  }

// 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

  distance= duration*0.034/2;

  return distance;}

Esmeraldas – Ecuador
www.pucese.edu.ec
Codigo de Processing

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,"COM5", 9600); //
starts the serial communication

PAGE 2
Sede Esmeraldas
Carrera de ……………

 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

Esmeraldas – Ecuador
www.pucese.edu.ec
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

PAGE 2
Sede Esmeraldas
Carrera de ……………

  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,widt

Esmeraldas – Ecuador
www.pucese.edu.ec
h/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();

PAGE 2
Sede Esmeraldas
Carrera de ……………

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

Esmeraldas – Ecuador
www.pucese.edu.ec
  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("Espacio de César",
width-width*0.875, height-
height*0.0277);

  text("Angulo: " + iAngle +"


°", width-width*0.48, height-
height*0.0277);

  text("Dist:", 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);

PAGE 2
Sede Esmeraldas
Carrera de ……………

  translate((width-
width*0.4994)+width/2*cos(radian
s(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(radian

Esmeraldas – Ecuador
www.pucese.edu.ec
s(150)),(height-height*0.0574)-
width/2*sin(radians(150)));

  rotate(radians(-60));

  text("150°",0,0);

  popMatrix(); 

PAGE 2

También podría gustarte