{"id":9658,"date":"2025-12-19T12:09:09","date_gmt":"2025-12-19T11:09:09","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=9658"},"modified":"2025-12-19T12:37:24","modified_gmt":"2025-12-19T11:37:24","slug":"proyecto-dse-sonar-grupo-4","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/","title":{"rendered":"PROYECTO DSE SONAR &#8211; Grupo 4"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada-988x1024.jpeg\" alt=\"\" class=\"wp-image-9711\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada-988x1024.jpeg 988w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada-290x300.jpeg 290w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada-768x796.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada.jpeg 1219w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><mark style=\"background-color:#ffffff\" class=\"has-inline-color has-vivid-cyan-blue-color\">\u00cdndice<\/mark><\/h1>\n\n\n\n<p>&#8211; Introducci\u00f3n<\/p>\n\n\n\n<p>&#8211; Materiales necesarios&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Fase de pruebas previas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Realizaci\u00f3n y dise\u00f1o del prototipo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Montaje del Hardware y Circuito&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Desarrollo del Software&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Comentarios Personales&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>&#8211; Anexo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><br><a id=\"_Toc217034524\">Introducci\u00f3n<\/a><\/h1>\n\n\n\n<p>El sonar es una tecnolog\u00eda que solemos asociar con los submarinos o la navegaci\u00f3n mar\u00edtima, aunque tambi\u00e9n est\u00e1 presente en la naturaleza en animales como los murci\u00e9lagos o los delfines. Su funcionamiento se basa en un principio f\u00edsico fundamental: emitir un sonido y escuchar el eco que rebota para saber a qu\u00e9 distancia se encuentra un objeto.<\/p>\n\n\n\n<p>El objetivo de nuestro proyecto es replicar esta tecnolog\u00eda a nivel de prototipo. La idea principal ha sido dise\u00f1ar y construir un sistema de sonar funcional que sea capaz de detectar obst\u00e1culos en su entorno y representar su posici\u00f3n en la pantalla de un ordenador en tiempo real, junto con un LED, el cual permanecer\u00e1 de un color mientras no se detecte ning\u00fan objeto y cambiar\u00e1 en el momento en que se produzca una detecci\u00f3n, se incorporar\u00e1 tambi\u00e9n un zumbador que permanecer\u00e1 silencioso durante la fase de b\u00fasqueda y que, en cuanto se detecte cualquier objeto a una cierta distancia que impondremos, emitir\u00e1 una melod\u00eda.<\/p>\n\n\n\n<p>Para hacerlo posible, hemos combinado dos potentes herramientas del mundo de la electr\u00f3nica y la programaci\u00f3n: Arduino y Processing. La placa Arduino act\u00faa como el \u00abcerebro\u00bb del sistema, controlando el movimiento de los sensores y tomando las medidas de distancia. Por otro lado, el entorno Processing se encarga de la parte visual, recibiendo esos datos y dibujando una interfaz gr\u00e1fica similar a la de un radar convencional.<\/p>\n\n\n\n<p>A lo largo de esta memoria, explicaremos paso a paso c\u00f3mo hemos llevado a cabo el montaje de los componentes, c\u00f3mo funcionan los programas inform\u00e1ticos que controlan el sistema y, finalmente, analizaremos los resultados obtenidos tras realizar las pruebas de funcionamiento.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><a id=\"_Toc217034525\">Materiales necesarios<\/a><\/h1>\n\n\n\n<p>Para la construcci\u00f3n de nuestro prototipo de sonar, hemos empleado una combinaci\u00f3n de componentes electr\u00f3nicos, materiales de montaje y software espec\u00edfico. A continuaci\u00f3n, detallamos la lista completa de los elementos necesarios:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034526\">1. Componentes Electr\u00f3nicos y M\u00f3dulos<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Placa de desarrollo Arduino:<\/strong> Hemos utilizado un <strong>Arduino Uno R3<\/strong>, que act\u00faa como la unidad central de control del proyecto.<\/li>\n\n\n\n<li><strong>Sensor Ultras\u00f3nico:<\/strong> Se emple\u00f3 un m\u00f3dulo <strong>HC-SR04<\/strong>. Este componente es el responsable de emitir el pulso de sonido y recibir el eco para medir la distancia.<\/li>\n\n\n\n<li><strong>Servomotor:<\/strong> Utilizamos un micro servomotor, modelo SG90. Su funci\u00f3n es rotar el sensor ultras\u00f3nico para realizar el barrido angular.<\/li>\n\n\n\n<li><strong>Placa de Pruebas (Protoboard):<\/strong> Una protoboard est\u00e1ndar para facilitar las conexiones temporales del circuito sin necesidad de soldar.<\/li>\n\n\n\n<li><strong>Cables de Conexi\u00f3n: <\/strong>Varios cables tipo macho-macho y macho-hembra para interconectar el Arduino, el sensor , el led , el buzzer y el servomotor.<\/li>\n\n\n\n<li><strong>LED<\/strong><strong> RGB: <\/strong>Una luz led, que cambiar\u00e1 de color durante la b\u00fasqueda y la detecci\u00f3n de objetos.<\/li>\n\n\n\n<li><strong>Zumbador: <\/strong>Conectado a la protoboard y activado con la se\u00f1al el\u00e9ctrica de la Arduino y que se mantendr\u00e1 en silencio durante la b\u00fasqueda y emitir\u00e1 una melod\u00eda cuando se detecta un objeto a menos de 30 cm.<\/li>\n\n\n\n<li><strong>Resistencias 220<\/strong><strong>\u03a9: <\/strong>Hemos colocado dos resistencias de 220\u03a9 en algunas patillas del LED RGB.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034527\">2. Materiales de Montaje y Estructura<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pieza de Cart\u00f3n R\u00edgido:<\/strong> Un peque\u00f1o rect\u00e1ngulo de cart\u00f3n (dimensiones aproximadas 8&#215;4 cm) que sirve como soporte para montar el sensor ultras\u00f3nico sobre el brazo del servomotor.<\/li>\n\n\n\n<li><strong>Caja de cart\u00f3n:<\/strong> Esta caja emula la estructura de un submarino, luego decorado para darle m\u00e1s realismo, actuando como soporte del servomotor, y de la placa protoboard y la Arduino.<\/li>\n\n\n\n<li><strong>Cinta de precinto:<\/strong> Utilizada para fijar el cuerpo del servomotor a la caja de cart\u00f3n que act\u00faa como estructura del submarino.<\/li>\n\n\n\n<li><strong>Cinta de pintor:<\/strong> Esta nos sirvi\u00f3 de ayuda para realizar la pintura con los sprays de manera que no ensuci\u00e1ramos y destroz\u00e1ramos las partes ya pintadas, y as\u00ed poder hacerlo de manera precisa y perfecta.<\/li>\n\n\n\n<li><strong>Sprays de pintura:<\/strong> Compramos unos sprays, de colores azul y amarillo, para proporcionar un toque m\u00e1s llamativo y decorado a nuestro prototipo, d\u00e1ndole un mayor acercamiento a la imagen de un submarino.<\/li>\n\n\n\n<li><strong>Cutter: <\/strong>Utilizamos un cutter afilado para poder recortar y darle m\u00e1s rango de giro al servomotor, y espacio al cableado que lo conecta para su funcionamiento.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034528\">3. Software<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Arduino IDE:<\/strong> El entorno de desarrollo integrado oficial de Arduino (versi\u00f3n 1.8.x o superior). Lo usamos para programar y cargar el <em>sketch<\/em> (sonarduino.ino) en la placa.<\/li>\n\n\n\n<li><strong>Processing IDE:<\/strong> El entorno de desarrollo de Processing utilizado para ejecutar el programa (sonarduino.pde) que recibe los datos del puerto serie y genera la visualizaci\u00f3n gr\u00e1fica del sonar.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034529\">4. Herramientas Auxiliares<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Computadora Personal<\/strong><strong>: <\/strong>Necesaria para utilizar los entornos IDE y para ejecutar la visualizaci\u00f3n de Processing.<\/li>\n\n\n\n<li><strong>Cable USB:<\/strong> Para conectar la placa Arduino a la computadora, tanto para alimentarla como para la comunicaci\u00f3n de datos.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"502\" height=\"658\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-28.png\" alt=\"\" class=\"wp-image-9691\" style=\"aspect-ratio:0.7629368734760228;width:426px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-28.png 502w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-28-229x300.png 229w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/figure>\n<\/div>\n\n\n<h1 class=\"wp-block-heading\"><a id=\"_Toc217034530\">Fase de pruebas previas<\/a><\/h1>\n\n\n\n<p>Antes de ensamblar el proyecto final, consideramos fundamental realizar una serie de pruebas preliminares. El objetivo de esta fase era validar el funcionamiento de cada componente de hardware (sensor ultras\u00f3nico y servomotor) de forma aislada. Este enfoque nos permite aislar problemas y asegurarnos de que cada pieza funciona seg\u00fan lo esperado antes de integrarlas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034531\">Prueba 1: Radar Est\u00e1tico (Validaci\u00f3n del Sensor HC-SR04)<\/a><\/h3>\n\n\n\n<p>La primera prueba consisti\u00f3 en implementar un \u00abradar\u00bb est\u00e1tico, como el mencionado anteriormente. El objetivo era verificar la correcta conexi\u00f3n y la precisi\u00f3n del sensor ultras\u00f3nico HC-SR04.<\/p>\n\n\n\n<p><strong>Metodolog\u00eda:<\/strong> Se mont\u00f3 un circuito simple con el Arduino y el sensor. El c\u00f3digo de prueba no utiliza el servomotor, simplemente mide la distancia de un objeto colocado frente al sensor y muestra el resultado en cent\u00edmetros a trav\u00e9s del Monitor Serie del IDE de Arduino.<\/p>\n\n\n\n<p><strong>C\u00f3digo de Prueba (Sensor Ultras\u00f3nico):<\/strong> Este <em>sketch<\/em> nos permiti\u00f3 confirmar que el sensor estaba cableado correctamente y que la f\u00f3rmula para convertir el tiempo de eco en distancia era la adecuada.<\/p>\n\n\n\n<p><strong>Resultados de la Prueba 1:<\/strong> Al ejecutar este c\u00f3digo y mover un objeto (como la mano) delante del sensor, pudimos observar en el Monitor Serie c\u00f3mo los valores de distancia cambiaban de forma coherente y precisa. Esto valid\u00f3 el funcionamiento del sensor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034532\">Prueba 2: Barrido del Servomotor<\/a><\/h3>\n\n\n\n<p>La segunda prueba se centr\u00f3 en asegurar el correcto funcionamiento y el rango de movimiento del servomotor SG90.<\/p>\n\n\n\n<p><strong>Metodolog\u00eda:<\/strong> Utilizamos el ejemplo \u00abSweep\u00bb (barrido) de la librer\u00eda est\u00e1ndar Servo.h de Arduino. El objetivo era verificar que el servo pod\u00eda moverse suavemente en el rango angular que necesitar\u00edamos para el sonar (de 15 a 165 grados).<\/p>\n\n\n\n<p><strong>C\u00f3digo de Prueba (Servomotor):<\/strong> Este <em>sketch<\/em> simplemente mueve el servo de un extremo al otro de su rango.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034533\">Prototipo inicial<\/a><\/h3>\n\n\n\n<p>Despu\u00e9s de realizar estas pruebas iniciales, dise\u00f1amos un prototipo inicial, que mostraremos su funcionamiento con videos en el a nexo.<\/p>\n\n\n\n<p>Se basaba en el mismo funcionamiento, pero estaba toda la placa sobre nuestro soporte, y encontramos varios problemas, como que nuestra protoboard se tambaleaba mucho, ya que tenia mucho peso encima y el servomotor la estaba girando, y no aguantaba el equilibrio bien. Otra raz\u00f3n fue, que el servo y el HC consum\u00edan mucho voltaje los dos juntos, ya que estaban conectados a trav\u00e9s de un cable puente a 5V, y el servomotor necesitaba m\u00e1s voltaje para funcionar fluido.<\/p>\n\n\n\n<p>Por estas razones decidimos cambiar el protototipo inicial al final, el que os explicaremos a continuaci\u00f3n como intentamos solventar estos problemas.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><a id=\"_Toc217034534\">Realizaci\u00f3n y dise\u00f1o del prototipo<\/a><\/h1>\n\n\n\n<p>Esta secci\u00f3n describe el proceso de ensamblaje y programaci\u00f3n del sistema de sonar. Hemos dividido el proceso en dos grandes fases: el montaje del hardware y la configuraci\u00f3n del software que le da vida.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a id=\"_Toc217034535\">1. Montaje del Hardware y Circuito<\/a><\/h2>\n\n\n\n<p>El primer paso fue ensamblar la parte f\u00edsica del sonar. El objetivo era crear una unidad compacta donde el servomotor pudiera rotar el sensor ultras\u00f3nico de forma estable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034536\">Montaje Estructural:<\/a><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Primero, fijamos el servomotor (SG90) al cart\u00f3n que simulamos como si fuese el submarino y lo unimos con los cables a la placa Arduino Uno. Para esto, utilizamos cinta de precinto para que quede fijo al cart\u00f3n de manera que no se mueva el servomotor pero si su h\u00e9lice.<\/li>\n\n\n\n<li>A continuaci\u00f3n, unimos el peque\u00f1o trozo de cart\u00f3n al brazo (o h\u00e9lice) del servomotor a trav\u00e9s de cinta de precinto dejando \u00fanicamente un hueco para que se una con el servomotor.<\/li>\n\n\n\n<li>Ahora insertamos los 4 pines del sensor ultras\u00f3nico (HC-SR04) a trav\u00e9s del cart\u00f3n, de manera que el sensor \u00abmire\u00bb hacia adelante. Este soporte de cart\u00f3n es lo que permite que, al girar el servo, gire tambi\u00e9n el sensor. Para conectar los pines del sensor a la placa se ha usado cables macho hembra<\/li>\n\n\n\n<li>Finalmente pintamos la caja que simula el submarino y que es la base de todo de color amarillo y azul para que quedara un poco m\u00e1s est\u00e9tico.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034537\">Conexiones El\u00e9ctricas:<\/a><\/h3>\n\n\n\n<p>Las conexiones se realizaron de la siguiente manera:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"_Toc217034538\">Alimentaci\u00f3n General<\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conectamos el pin <strong>GND<\/strong> (Tierra) del Arduino a la l\u00ednea negativa (-) de la protoboard.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"_Toc217034539\">Servomotor (<\/a>SG90)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cable Rojo (VCC):<\/strong> Conectado al pin 5V del Arduino<ul><li><strong>Cable Marr\u00f3n (GND):<\/strong> Conectado a la l\u00ednea negativa (-) de la protoboard.<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li><strong>Cable Amarillo (Se\u00f1al):<\/strong> Conectado al pin digital <strong>D12<\/strong> del Arduino.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"_Toc217034540\">Sensor Ultras\u00f3nico (HC-SR04)<\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pin VCC:<\/strong> Conectado al pin digital D6 del Arduino<ul><li><strong>Pin GND:<\/strong> Conectado a la l\u00ednea negativa (-) de la protoboard.<\/li><\/ul><ul><li><strong>Pin Trig:<\/strong> Conectado al pin digital <strong>D10<\/strong> del Arduino.<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li><strong>Pin Echo:<\/strong> Conectado al pin digital <strong>D11<\/strong> del Arduino.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"_Toc217034541\">Led RGB<\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Patilla Larga (C\u00e1todo):<\/strong> Conectamos a la l\u00ednea negativa (-) de la protoboard.<ul><li><strong>Patilla Roja (R):<\/strong><ul><li>Colocamos una <strong>resistencia<\/strong> 220 \u03a9 en esta pata.<\/li><\/ul><ul><li>Conectamos el otro extremo de la resistencia al Pin Digital 8.<\/li><\/ul><\/li><\/ul><ul><li><strong>Patilla Verde (G):<\/strong><ul><li>Colocamos una <strong>resistencia<\/strong> 220 \u03a9 en esta pata.<\/li><\/ul><ul><li>Conectamos el otro extremo de la resistencia al Pin Digital 9<\/li><\/ul><\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li><strong>Patilla Azul (B):<\/strong>\n<ul class=\"wp-block-list\">\n<li>La dejamos desconectada, ya que nuestro c\u00f3digo indica Azul=unused y no se utiliza.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><a id=\"_Toc217034542\">Buzzer<\/a><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Positivo (+) \/ Patilla larga:<\/strong> Conectar al Pin Digital 7\n<ul class=\"wp-block-list\">\n<li><strong>Negativo (-) \/ Patilla corta:<\/strong> Conectar a l\u00ednea negativa (-) protoboard.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Con estos pasos, el hardware queda completamente ensamblado y listo para recibir el software.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-29-1024x650.png\" alt=\"\" class=\"wp-image-9692\" style=\"aspect-ratio:1.5754154907494513;width:725px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-29-1024x650.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-29-300x190.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-29-768x488.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-29.png 1257w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><a id=\"_Toc217034543\">2. Desarrollo del Software<\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034544\">ARDUINO<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"240\" height=\"41\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-4.png\" alt=\"\" class=\"wp-image-9662\" style=\"aspect-ratio:5.85389809699202;width:187px;height:auto\" \/><\/figure>\n\n\n\n<p>Importa la librer\u00eda Servo de Arduino que permite controlar f\u00e1cilmente el servomotor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"252\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-5.png\" alt=\"\" class=\"wp-image-9663\" style=\"width:232px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-5.png 354w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-5-300x214.png 300w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/figure>\n\n\n\n<p>Estas constantes nos indican donde conectamos los pines de los diferentes componentes de Arduino.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"130\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-6.png\" alt=\"\" class=\"wp-image-9664\" style=\"width:238px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-6.png 390w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-6-300x100.png 300w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/figure>\n\n\n\n<p><strong>ANG_MIN<\/strong> es el \u00e1ngulo m\u00ednimo del barrido del radar y <strong>ANG_MAX <\/strong>el m\u00e1ximo. <strong>SERVO_DELAY<\/strong> es el tiempo en miliseg que esperas entre cada paso del servo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"260\" height=\"192\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-7.png\" alt=\"\" class=\"wp-image-9665\" style=\"width:192px;height:auto\" \/><\/figure>\n\n\n\n<p>Crea un objeto tipo Servo para controlar el <strong>attach() <\/strong>y <strong>write(). <\/strong>La variable <strong>angulo<\/strong> guarda el \u00e1ngulo actual, inicializado en 90 grados. <strong>Paso <\/strong>indica de cu\u00e1nto en cu\u00e1nto cambia el \u00e1ngulo en cada iteraci\u00f3n. <strong>Distancia <\/strong>guarda la \u00faltima distancia medida por el HC-SR04.<\/p>\n\n\n\n<p>Esto nos permite hacer el pitido cuando el objeto est\u00e1 cerca.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"552\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-8.png\" alt=\"\" class=\"wp-image-9666\" style=\"aspect-ratio:1.159450269198073;width:391px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-8.png 640w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-8-300x259.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<p>Primero necesitamos que el pin TRIG est\u00e9 en LOW para resetear el sensor. Despu\u00e9s enviamos un pulso de 10 microsegundos al pin TRIG usando ese tiempo para medirlo posteriormente. En la variable <strong>duracion<\/strong> se mide con <strong>pulseIn() <\/strong>cu\u00e1nto tiempo ha estado el pin en HIGH. Convertimos ese tiempo en distancia.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"459\" height=\"553\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-9.png\" alt=\"\" class=\"wp-image-9667\" style=\"width:298px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-9.png 459w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-9-249x300.png 249w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><\/figure>\n\n\n\n<p>Se configuran los pines para que sean de salida o entrada, dependiendo de si van a enviar algo o recibirlo. Sespu\u00e9s se inicia la comunicaci\u00f3n serie a 9600 baudios. Despu\u00e9s ponemos el servo en la posici\u00f3n inicial con <strong>write()<\/strong> y por \u00faltimo, le decimos al Servo en qu\u00e9 pin est\u00e1 conectado.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-10-677x1024.png\" alt=\"\" class=\"wp-image-9668\" style=\"aspect-ratio:0.6611352582849941;width:445px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-10-677x1024.png 677w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-10-198x300.png 198w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-10-768x1161.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-10.png 825w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/figure>\n\n\n\n<p>Primero se mueve el servo al \u00e1ngulo actual esperando un poco entre cada movimiento con <strong>SERVO_DELAY. <\/strong>La variable <strong>distancia <\/strong>llama a <strong>medirDistanciaCM(). <\/strong>Env\u00eda los datos al Processing con el formato correcto (distancia;angulo). A continuaci\u00f3n actualiza el barrido sumando o restando uno a <strong>paso, <\/strong>dependiendo de donde est\u00e9. Por \u00faltimo si el objeto est\u00e1 a menos de 30 cm el led se pone en rojo y suena la melod\u00eda en el buzzer. Si est\u00e1 lejos el led se ilumina en verde y no suena melod\u00eda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"_Toc217034545\">PROCESSING<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"255\" height=\"63\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-2.png\" alt=\"\" class=\"wp-image-9659\" \/><\/figure>\n\n\n\n<p>El c\u00f3digo comienza con un <strong>import<\/strong>, permitiendo a Processing hablar con el Arduino por el puerto COM. Despu\u00e9s se declara una variable llamada <strong>puerto<\/strong> de tipo <strong>Serial; <\/strong>ser\u00e1 el canal de comunicaci\u00f3n entre Processing y Arduino.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"81\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-11.png\" alt=\"\" class=\"wp-image-9669\" style=\"width:247px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-11.png 379w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-11-300x64.png 300w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><\/figure>\n\n\n\n<p>Se guarda en la variable <strong>PORT<\/strong> el nombre del puerto serie que usa Arduino. En nuestro caso es COM3. Tambi\u00e9n se define la velocidad de comunicaci\u00f3n en baudios, coincidiendo con el <strong>Serial.begin(9600) <\/strong>de Arduino.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"74\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-12.png\" alt=\"\" class=\"wp-image-9670\" style=\"width:238px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-12.png 420w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-12-300x53.png 300w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/><\/figure>\n\n\n\n<p>Definimos las constantes que indican el rango completo posible del servo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"456\" height=\"140\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-13.png\" alt=\"\" class=\"wp-image-9671\" style=\"width:281px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-13.png 456w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-13-300x92.png 300w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><\/figure>\n\n\n\n<p><strong>DIST_MAX_HW <\/strong>es el rango m\u00e1ximo f\u00edsico del sensor HC-SR04. <strong>distMaxVisual <\/strong>es la escala actual del radar en pantalla, cambiando cuando se mueve la rueda del rat\u00f3n. <strong>DIST_MIN_VIS <\/strong>es el l\u00edmite m\u00ednimo del zoom. <strong>DIST_MAX_VIS <\/strong>es el l\u00edmite m\u00e1ximo de zoom.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"80\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-14.png\" alt=\"\" class=\"wp-image-9672\" style=\"width:469px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-14.png 601w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-14-300x40.png 300w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/figure>\n\n\n\n<p><strong>angSteps <\/strong>calcula cu\u00e1ntos valores de \u00e1ngulo tenemos en total<strong>. <\/strong>En nuestro caso tenemos 181 valores. <strong>ultimaDist <\/strong>crea un array donde se guarda la \u00faltima distancia medida para cada \u00e1ngulo. Esto nos permite dibujar el mapa de calor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"68\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-15.png\" alt=\"\" class=\"wp-image-9673\" style=\"width:247px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-15.png 372w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-15-300x55.png 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/figure>\n\n\n\n<p><strong>distanciaActual<\/strong> guarda la \u00faltia distancia recibida por serie Se usa para mostrar en el HUD y para actualizar <strong>ultimaDist.<\/strong> Empieza en -1 para decir que no hay lectura. <strong>anguloActual <\/strong>guarda el \u00faltimo \u00e1ngulo recibido desde Arduino. Lo usa la funci\u00f3n <strong>dibujarBarrido() <\/strong>para colocar la l\u00ednea del radar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"77\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-16.png\" alt=\"\" class=\"wp-image-9674\" style=\"width:216px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-16.png 320w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-16-300x72.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<p><strong>Cx <\/strong>y <strong>cy <\/strong>son las coordenadas del centro del radar en la ventana. Se inicializan en <strong>setup() <\/strong>usando <strong>width <\/strong>y <strong>height<\/strong>. <strong>Radar <\/strong>es el radio m\u00e1ximo del radar en p\u00edxeles. <strong>radSteps <\/strong>es el n\u00famero de anillos internos que se usan para dibujar el heatmap. Cuantos m\u00e1s <strong>radSteps<\/strong> m\u00e1s suave y detallado se ve el radas, pero se dibuja m\u00e1s lento.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"607\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-17.png\" alt=\"\" class=\"wp-image-9675\" style=\"width:322px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-17.png 572w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-17-283x300.png 283w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/figure>\n\n\n\n<p>Con <strong>size(900, 600, P2D) <\/strong>se crea una ventana de 900&#215;600 pixeles usando un render 2D acelerado. <strong>Smooth(8) <\/strong>activa el suavizado de los bordes para que las l\u00edneas y c\u00edrculos no se vean pixelados. En <strong>cx <\/strong>coloca el radar en el centro horizontal y <strong>cy<\/strong> coloca el radar casi abajo del todo para que el abanico salga hacia arriba. <strong>Radio <\/strong>hace que el radar ocupe gran parte de la ventana. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"261\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-18.png\" alt=\"\" class=\"wp-image-9676\" style=\"width:198px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-18.png 356w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-18-300x220.png 300w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/figure>\n\n\n\n<p>El for reocrre todas las posiciones del array <strong>ultimaDist<\/strong> y pone en cada una un valor mayor que el rango m\u00e1ximo. Eso significa que no ha detectado nada todav\u00eda en ese \u00e1ngulo, as\u00ed el radar no dibuja nada de inicio hasta que recibe los datos reales. <strong>colorMode <\/strong>cambia el color. Por \u00faltimo muestra en consola la lista de puertos disponibles, abre el puerto serie COM3 a 9600 baudios usando <strong>this <\/strong>como sketch de Processing e indica que no llame a <strong>serialEvent() <\/strong>hasta que reciba un salto de l\u00ednea \\n.<\/p>\n\n\n\n<p>Processing llama a <strong>draw() <\/strong>muchas veces por segundo. Dentro hacemos con <strong>background(0) <\/strong>que el fondo de la ventana se ponga en negro cada frame, borrando toda la pantalla antes de dibujar todo. <strong>dibujarAbanicoBase() <\/strong>dibuja la estructura del radar. <strong>dibujarHeatmap() <\/strong>dibuja los puntos del color seg\u00fan las distancias guardadas en <strong>ultimaDist<\/strong>. <strong>dibujarBarrido() <\/strong>dibuja la l\u00ednea de barrido que sigue el \u00e1ngulo del servo. Por \u00faltimo, <strong>dibujarHUD() <\/strong>dibuja el texto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"492\" height=\"101\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-19.png\" alt=\"\" class=\"wp-image-9677\" style=\"width:367px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-19.png 492w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-19-300x62.png 300w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><\/figure>\n\n\n\n<p>Esta funci\u00f3n es clave, tansformando el \u00e1ngulo que viene del servo (grados) al \u00e1ngulo que se usa para dibujar en pantalla (radianes). Adem\u00e1s, le aplico una simetr\u00eda <strong>(180 \u2013 deg)<\/strong> para que la direcci\u00f3n de giro del servo coincida visualmente con la direcci\u00f3n de la l\u00ednea en el radar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-20-692x1024.png\" alt=\"\" class=\"wp-image-9678\" style=\"aspect-ratio:0.6757890564354964;width:383px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-20-692x1024.png 692w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-20-203x300.png 203w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-20.png 720w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n\n\n\n<p><strong>strokeWeight(3) <\/strong>indica que el grosor de las l\u00edneas sea de 3 p\u00edxeles. <strong>Stroke <\/strong>pone el color del trazo en verde brillante. <strong>noFill() <\/strong>hace que no rellene el interior de figuras. La funci\u00f3n <strong>arc(\u2026) <\/strong>dibuja el semic\u00edrculo centrado en <strong>cx <\/strong>y <strong>cy<\/strong>. En el bucle se dibujan las l\u00edneas radiales. Por \u00faltimo <strong>line(\u2026) <\/strong>dibuja una l\u00ednea horizontal de izquierda a derecha en la base del semic\u00edrculo, siendo la base del radar.<\/p>\n\n\n\n<p><strong>noStroke()<\/strong> le dice a Processing que solo dibuje relleno, no contorno. Con ello conseguimos que los puntos del radar sean c\u00edrculos s\u00f3lidos. El primer <strong>for<\/strong> recorre todos los \u00e1ngulos, de 0 a 180. <strong>aRad <\/strong>coge el \u00e1ngulo en radiantes para dibujar y <strong>distMedida <\/strong>es la \u00faltima distancia registrada para ese \u00e1ngulo. En el segundo for, <strong>ir<\/strong> recorre desde el centro del radar hasta el borde, en <strong>radSteps. <\/strong>Cada <strong>map(\u2026) <\/strong>convierte cada paso <strong>ir <\/strong>en una distancia en cm y <strong>dMid <\/strong>es la distancia central de esa capa. Despu\u00e9s calculamos la intensidad con la que se pinta, contra m\u00e1s cerca m\u00e1s brillante y si la intensidad es baja ni se pinta. Tambi\u00e9n si no hay intensidad no dibujamos. Se calcula la posici\u00f3n en pantalla con <strong>r0, r1, rMid, x <\/strong>e <strong>y. <\/strong>Se elige el color dependiendo de la intesidad mediante <strong>lerp()<\/strong> que interpola entre verde y rojo. <strong>B <\/strong>y <strong>alpha <\/strong>calculan el brillo y la transparencia dependiendo de la intensidad. Por \u00faltimo, se dibuja el punto: se calcula el color con <strong>fill()<\/strong>, con <strong>size() <\/strong>el tama\u00f1o y <strong>eclipse() <\/strong>dibuja el \u201ceco\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"486\" height=\"383\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-21.png\" alt=\"\" class=\"wp-image-9679\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-21.png 486w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-21-300x236.png 300w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/figure>\n\n\n\n<p><strong>stroke() <\/strong>y <strong>strokeWight()<\/strong> indican el estilo de la l\u00ednea de barrido. <strong>aRad<\/strong> usa el \u00e1ngulo actual del servo recibido desde Arduino y lo pasa a \u00e1ngulo de pantalla ya reflejado. Con <strong>line() <\/strong>se dibuja la l\u00ednea desde el centro del radar hasta la punta. Por \u00faltimo se dibuja un punto en la punta para remarcar la posici\u00f3n.<\/p>\n\n\n\n<p>Define que el color del texto es verde, alineandolo arriba a la izquierda. Muestra el titulo, la \u00faltima distancia medida, el \u00faltimo \u00e1ngulo recibido y la escala actual del radar que cambia con la rueda del rat\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"806\" height=\"258\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-22.png\" alt=\"\" class=\"wp-image-9680\" style=\"aspect-ratio:3.1241505688325573;width:442px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-22.png 806w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-22-300x96.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-22-768x246.png 768w\" sizes=\"auto, (max-width: 806px) 100vw, 806px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"681\" height=\"717\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-23.png\" alt=\"\" class=\"wp-image-9681\" style=\"aspect-ratio:0.949791086350975;width:358px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-23.png 681w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-23-285x300.png 285w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><\/figure>\n\n\n\n<p>Esta funci\u00f3n se llama autom\u00e1ticamente cuando llega una l\u00ednea nueva por serie, gracias a <strong>puerto.bufferUntil(\u2018\\n\u2019).<\/strong> Primero lee una l\u00ednea completa, quitando espacios y retornos con&nbsp; <strong>trim(). <\/strong>Si la l\u00ednea est\u00e1 vac\u00eda se sale. Despu\u00e9s busca el separador \u201c;\u201d, ya que el formato es <strong>distancia;angulo. <\/strong>Si no lo encuentra descarta la l\u00ednea. Separa distancia y \u00e1ngulo como String. Convierte ambas distancias en enteros y las guarda en las variables locales. El <strong>constrain() <\/strong>limita el \u00e1ngulo entre <strong>DEG_MIN <\/strong>y <strong>DEG_MAX.<\/strong> Por \u00faltimo se actualiza el array <strong>ultimaDist: <\/strong>si la distancia es v\u00e1lida (mayor que 0 y dentro del rango del sensor) se guarda <strong>d <\/strong>en el hueco del array, sino se marca como \u201csin objeto\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"131\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-24.png\" alt=\"\" class=\"wp-image-9682\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-24.png 797w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-24-300x49.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-24-768x126.png 768w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/figure>\n\n\n\n<p>Esta es la \u00faltima funci\u00f3n, que permite al usuario hacer zoom sobre el radar. Al mover la rueda, se ajusta el valor de <strong>distMaxVisual<\/strong>, que es el rango m\u00e1ximo de distancia que se representa gr\u00e1ficamente, dentro de unos l\u00edmites m\u00e1ximos y m\u00ednimos.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Comentarios Personales<\/a><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Problemas Encontrados<\/a><\/h2>\n\n\n\n<p>En un principio, durante el inicio del desarrollo de nuestro proyecto, encontramos un inconveniente, y es que el servomotor que a priori nos ven\u00eda en el kit entregado, no funcionaba desde un primer momento, por lo que por nuestra cuenta hemos tenido que comprar uno de forma externa, cost\u00e1ndonos alrededor de 14 euros, y resultando un atraso a la hora de empezar nuestro proyecto del sonar.<\/p>\n\n\n\n<p>Luego, durante el desarrollo del prototipo, quer\u00edamos haber puesto el detector de movimiento, HC-SR04 m\u00e1s lejos, pero nos ha resultado imposible, ya que necesit\u00e1bamos cables de tipo entrada-salida, por lo que hemos tenido que cambiar el dise\u00f1o de salida que hab\u00edamos explicado.<\/p>\n\n\n\n<p>En mitad del desarrollo, tambi\u00e9n hemos detectado que los cables que nos ven\u00edan en el kit no eran los m\u00e1s adecuados y algunos fallaban y no funcionaban, lo que nos ha obligado a tener que cambiar de forma reiterada cada uno de ellos e ir comprobando los para poder realizarlo y que nos ha retrasado a la hora de querer continuar con el desarrollo de nuestro proyecto.<\/p>\n\n\n\n<p>Tiempo despu\u00e9s, en uno de los d\u00edas habituales que seguimos con nuestro proyecto, la protoboard dejo de funcionar correctamente, dej\u00e1ndonos estancados durante el desarrollo del prototipo. Esto nos imped\u00eda el poder conectar distintas partes desde la arduino a la protoboard, ya que, el HC-SR04, el led, el zumbador y el servomotor los conect\u00e1bamos a 5V en la arduino, pero no funcionaba todo correctamente, ya que cuando ejecut\u00e1bamos el c\u00f3digo, el servomotor, conectado con cables a la protoboard no giraba, ya que era como si la protoboard no consiguiera dar la suficiente corriente a los dispositivos que conectamos en ella, siendo un impedimento a la hora de poder avanzar y terminar el prototipo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Cr\u00edticas Constructivas<\/a><\/h2>\n\n\n\n<p>A la hora de elegir el proyecto a dise\u00f1ar y desarrollar, podr\u00edamos a ver sido m\u00e1s eficientes a la hora de elegir cierto dise\u00f1o, ya que los cables que nos ven\u00edan en el kit no eran los m\u00e1s adecuados para poder construir lo pensado desde un primer momento, por lo que, debido a eso, tuvimos que realizar alguna que otra modificaci\u00f3n al dise\u00f1o, sumado al problema del servomotor. Entonces, como idea general, podr\u00edamos haber escogido un dise\u00f1o m\u00e1s adaptado a nuestras limitaciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Evaluaci\u00f3n Del Tiempo Dedicado<\/a><\/h2>\n\n\n\n<p>La realizaci\u00f3n del prototipo no ha sido f\u00e1cil, y nos ha obligado a dedicar bastantes sesiones para poder llegar a la versi\u00f3n definitiva. Adem\u00e1s del trabajo en casa, cuando ve\u00edamos que algo no sal\u00eda como deb\u00eda y deb\u00edamos solucionarlo. Aproximadamente el prototipo nos has llevado alrededor de un mes para poder concretarlo, quedando dos o tres d\u00edas por semana varias horas para poder avanzar y poder dejarlo lo m\u00e1s preparado posible a la hora de llegar a la presentaci\u00f3n, en nuestro caso, del d\u00eda 12 de diciembre. Con esto llegamos a la suma de aproximadamente 28 horas.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Anexo<\/a><\/h1>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\">\n<h3 class=\"wp-block-heading\"><a>Prueba barrida servomotor<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"1. Prueba barrida Servomotor\" width=\"422\" height=\"750\" src=\"https:\/\/www.youtube.com\/embed\/pAxuy929Hyg?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Prueba del HC-SR04 con el LED<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"2  Prueba del HC SR04 con el LED\" width=\"422\" height=\"750\" src=\"https:\/\/www.youtube.com\/embed\/t324wF49uwE?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Prueba del Processing IDE<\/a><a href=\"https:\/\/www.youtube.com\/embed\/rTR7LvuY1uU?feature=oembed\"><\/a><\/h3>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"3.  Prueba del Processing IDE\" width=\"422\" height=\"750\" src=\"https:\/\/www.youtube.com\/embed\/rTR7LvuY1uU?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Prueba del nuevo prototipo con Processing IDE<\/a><a href=\"https:\/\/www.youtube.com\/embed\/ByJjoDcOsbU?feature=oembed\"><\/a><\/h3>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"4.  Prueba del nuevo prototipo con Processing IDE\" width=\"422\" height=\"750\" src=\"https:\/\/www.youtube.com\/embed\/ByJjoDcOsbU?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Demostraci\u00f3n Processing<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"574\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-26.png\" alt=\"\" class=\"wp-image-9689\" style=\"aspect-ratio:1.4512262052630058;width:520px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-26.png 833w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-26-300x207.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-26-768x529.png 768w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Prototipo definitivo DSE Sonar \u2013 Arduino<\/a><a href=\"https:\/\/www.youtube.com\/embed\/WvRHqx7I2rk?feature=oembed\"><\/a><\/h3>\n\n\n\n<figure class=\"wp-block-embed alignleft is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"5.  Prototipo definitivo DSE Sonar - Arduino\" width=\"422\" height=\"750\" src=\"https:\/\/www.youtube.com\/embed\/WvRHqx7I2rk?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Demostraci\u00f3n C\u00f3digo Arduino<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"553\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-27.png\" alt=\"\" class=\"wp-image-9690\" style=\"width:195px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-27.png 283w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/image-27-154x300.png 154w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n","protected":false},"excerpt":{"rendered":"<p>\u00cdndice &#8211; Introducci\u00f3n &#8211; Materiales necesarios&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Fase de pruebas previas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Realizaci\u00f3n y dise\u00f1o del prototipo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Montaje del Hardware y Circuito&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Desarrollo del Software&nbsp;&nbsp;&nbsp; &#8211; Comentarios Personales&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Anexo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Introducci\u00f3n El&#46;&#46;&#46;<\/p>\n","protected":false},"author":302,"featured_media":9711,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"\u00cdndice &#8211; Introducci\u00f3n &#8211; Materiales necesarios&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Fase de pruebas previas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Realizaci\u00f3n y dise\u00f1o del prototipo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Montaje del Hardware y Circuito&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Desarrollo del Software&nbsp;&nbsp;&nbsp; &#8211; Comentarios Personales&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Anexo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Introducci\u00f3n El&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T11:09:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-19T11:37:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Demostracion-Processing.png\" \/>\n\t<meta property=\"og:image:width\" content=\"533\" \/>\n\t<meta property=\"og:image:height\" content=\"367\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"dse2526g04\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dse2526g04\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/\"},\"author\":{\"name\":\"dse2526g04\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/2e8b1e184d2f1d839c221d7adf741063\"},\"headline\":\"PROYECTO DSE SONAR &#8211; Grupo 4\",\"datePublished\":\"2025-12-19T11:09:09+00:00\",\"dateModified\":\"2025-12-19T11:37:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/\"},\"wordCount\":3847,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2025\\\/12\\\/Entrada.jpeg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/\",\"name\":\"PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2025\\\/12\\\/Entrada.jpeg\",\"datePublished\":\"2025-12-19T11:09:09+00:00\",\"dateModified\":\"2025-12-19T11:37:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2025\\\/12\\\/Entrada.jpeg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2025\\\/12\\\/Entrada.jpeg\",\"width\":1219,\"height\":1263},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-dse-sonar-grupo-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PROYECTO DSE SONAR &#8211; Grupo 4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/2e8b1e184d2f1d839c221d7adf741063\",\"name\":\"dse2526g04\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g\",\"caption\":\"dse2526g04\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dse2526g04\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/","og_locale":"es_ES","og_type":"article","og_title":"PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.","og_description":"\u00cdndice &#8211; Introducci\u00f3n &#8211; Materiales necesarios&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Fase de pruebas previas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Realizaci\u00f3n y dise\u00f1o del prototipo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Montaje del Hardware y Circuito&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Desarrollo del Software&nbsp;&nbsp;&nbsp; &#8211; Comentarios Personales&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; Anexo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Introducci\u00f3n El&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2025-12-19T11:09:09+00:00","article_modified_time":"2025-12-19T11:37:24+00:00","og_image":[{"width":533,"height":367,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Demostracion-Processing.png","type":"image\/png"}],"author":"dse2526g04","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dse2526g04","Tiempo de lectura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/"},"author":{"name":"dse2526g04","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/2e8b1e184d2f1d839c221d7adf741063"},"headline":"PROYECTO DSE SONAR &#8211; Grupo 4","datePublished":"2025-12-19T11:09:09+00:00","dateModified":"2025-12-19T11:37:24+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/"},"wordCount":3847,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada.jpeg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/","name":"PROYECTO DSE SONAR - Grupo 4 - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada.jpeg","datePublished":"2025-12-19T11:09:09+00:00","dateModified":"2025-12-19T11:37:24+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada.jpeg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2025\/12\/Entrada.jpeg","width":1219,"height":1263},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-dse-sonar-grupo-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"PROYECTO DSE SONAR &#8211; Grupo 4"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/2e8b1e184d2f1d839c221d7adf741063","name":"dse2526g04","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9abad3a9b3f2d86b88a6ef457ac94bc9f49b748fb5bf94cd28332f8d3ea46ca9?s=96&d=mm&r=g","caption":"dse2526g04"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dse2526g04\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/302"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=9658"}],"version-history":[{"count":12,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9658\/revisions"}],"predecessor-version":[{"id":9712,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/9658\/revisions\/9712"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/9711"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=9658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=9658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=9658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}