{"id":7169,"date":"2023-12-14T15:16:43","date_gmt":"2023-12-14T14:16:43","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=7169"},"modified":"2023-12-14T15:16:45","modified_gmt":"2023-12-14T14:16:45","slug":"proyecto-calimeros-rampage","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/","title":{"rendered":"Proyecto: Calimero&#8217;s Rampage"},"content":{"rendered":"\n<ol class=\"wp-block-list\">\n<li class=\"has-large-font-size\"><strong>Introducci\u00f3n<\/strong><\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a02085962a90&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a02085962a90\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-1024x768.jpg\" alt=\"P\u00f3ster del proyecto Calimero's Rampage\" class=\"wp-image-7170\" style=\"width:600px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandar\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">P\u00f3ster del proyecto final<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Elaboraci\u00f3n de un sistema empotrado basado en la placa de microcontrolador abierto Arduino Uno o similares, documentando su concepci\u00f3n, desarrollo y prototipado.<br><br>T\u00edtulo: Juego arcade de cacer\u00eda de gansos basado en sistema l\u00e1ser. <br><br>Descripci\u00f3n: Juego de una ronda de tiempo donde con una escopeta (Elegoo Uno): l\u00e1ser IR, <em>buzzer<\/em> y led, al pulsar un bot\u00f3n se env\u00eda a objetivos receptores una se\u00f1al que recoge un administrador de juego (Elegoo Mega 2560), que emite sonido y muestra una puntuaci\u00f3n en un <em>display<\/em> HD44780 LCD de acuerdo a los aciertos, as\u00ed como guarda las puntuaciones en memoria no vol\u00e1til para comparar las puntuaciones.<br><br>Inspirado en el videojuego cl\u00e1sico de Nintendo Duck Hunt (1984) y la funcionalidad del Wii Remote (2006), Calimero&#8217;s Rampage pretende emular una m\u00e1quina recreativa que carga un videojuego de simulaci\u00f3n de pr\u00e1cticas de tiro en su memoria. Para ello, se introduce una moneda para iniciar una partida y se manipula la pistola inal\u00e1mbrica que acompa\u00f1a a la m\u00e1quina para interactuar con el juego.<\/p>\n\n\n\n<p class=\"has-large-font-size\">2. <strong>Objetivos: propuesta de valor<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Las principales motivaciones en la concepci\u00f3n del proyecto ser\u00edan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Soluci\u00f3n a la comunicaci\u00f3n espacial entre dos sistemas empotrados mediante l\u00e1ser infrarrojo.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Demostraci\u00f3n de la utilizaci\u00f3n de diversos m\u00f3dulos para sistemas empotrados con prop\u00f3sitos acad\u00e9micos.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-large-font-size\">2.1 Implementaci\u00f3n hardware<\/p>\n\n\n\n<p class=\"has-medium-font-size\">El proyecto consta de un sistema emisor y otro receptor.<br><br>El sistema emisor ha sido denominado como Escopeta, <em>Shotgun <\/em>en ingl\u00e9s, y parte de la Figura siguiente.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a02085962f27&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a02085962f27\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"985\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb-985x1024.png\" alt=\"\" class=\"wp-image-7171\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb-985x1024.png 985w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb-289x300.png 289w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb-768x798.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb-1478x1536.png 1478w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Shotgun_bb.png 1833w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandar\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Prototipo de dise\u00f1o electr\u00f3nico del sistema <em>Shotgun,<\/em> realizado con Fritzing<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Requiere, como m\u00ednimo, de un emisor infrarrojo, y un bot\u00f3n para decidir cu\u00e1ndo se env\u00eda la se\u00f1al al sistema receptor, as\u00ed como una fuente de alimentaci\u00f3n para que sea inal\u00e1mbrico.<br><br>Adem\u00e1s, adicionalmente por razones de usabilidad, consta de un led rojo, que indica cu\u00e1ndo se puede disparar tras un tiempo de espera, un <em>buzzer,<\/em> que emite un sonido al haber completado la transmisi\u00f3n del l\u00e1ser IR, y un emisor l\u00e1ser rojo para ayudar al usuario a apuntar al objetivo.<br><br>Por otro lado, el sistema receptor se ha denominado Administrador de Juego, <em>Game Manager<\/em> en ingl\u00e9s, y parte de la Figura siguiente<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a02085963233&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a02085963233\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"854\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb-1024x854.png\" alt=\"\" class=\"wp-image-7172\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb-1024x854.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb-300x250.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb-768x641.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb-1536x1282.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_GameManager_bb.png 2046w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandar\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Prototipo de dise\u00f1o electr\u00f3nico del sistema <em>Game Manager,<\/em> realizado con Fritzing<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Se compone de una pantalla LCD para mostrar los resultados de recepci\u00f3n, un receptor y sensor y un transmisor l\u00e1ser para detectar la moneda que entra en el arcade, y por supuesto al menos un receptor de IR.<br><br>Igualmente, por motivos de usabilidad, se han paralelizado tres receptores IR en vez de uno, que produce una puerta CMOS OR a la hora de percibir se\u00f1ales, pero no es capaz de determinar de cu\u00e1l receptor recibe la se\u00f1al. Tambi\u00e9n, se ha incluido un <em>buzzer <\/em>que emite sonidos que reflejan los estados de la m\u00e1quina.<\/p>\n\n\n\n<p class=\"has-large-font-size\">2.2 Gesti\u00f3n de tareas<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Lo primero fue conocer qu\u00e9 componentes ser\u00edan de utilidad para el desarrollo de la pr\u00e1ctica, y por tanto sus adquisiciones y debidas pruebas software. Las pruebas determinaron que la distancia m\u00e1xima de emisi\u00f3n es de 4.22 m para que el receptor reciba la se\u00f1al correctamente.<br><br>Alg\u00fan componente como la pantalla LED tuvo que soldarse para su correcto funcionamiento.<\/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=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-1024x768.jpg\" alt=\"\" class=\"wp-image-7177\" style=\"width:400px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img1-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Soldadura de la pantalla LCD<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Segundo, se estim\u00f3 el espacio que ocupar\u00eda el proyecto final para medir y acomodar los componentes funcionales en un encapsulado, en este caso de madera. Las dimensiones de la caja son 13 x 16.5 x 5 cm.<br><br>Hubo que serrar y unir las piezas para componer la caja e integrar adecuadamente los componentes.<\/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=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-1024x768.jpg\" alt=\"\" class=\"wp-image-7178\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img2-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Trabajo manual con las piezas de madera<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Tercero, se arregl\u00f3 la apariencia del proyecto para darle un acabado m\u00e1s profesional, como si fuera a exponerse, a\u00fan siendo un prototipo.<\/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=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-1024x768.jpg\" alt=\"\" class=\"wp-image-7180\" style=\"width:400px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img4-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Componentes de la escopeta<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-1024x768.jpg\" alt=\"\" class=\"wp-image-7181\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img5-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Prototipo en fase de validaci\u00f3n, plano picado<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-1024x768.jpg\" alt=\"\" class=\"wp-image-7182\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img6-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Prototipo en fase de validaci\u00f3n, plano cenital<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Por \u00faltimo y despu\u00e9s de validar la funcionalidad de todos los componentes en conjunci\u00f3n del c\u00f3digo realizado, solo falt\u00f3 acabar la apariencia visual.<\/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=\"512\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-1024x512.png\" alt=\"\" class=\"wp-image-7176\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-1024x512.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-300x150.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-768x384.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-1536x768.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img7-2048x1024.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Escopeta final, plano lateral y cenital<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-1024x512.png\" alt=\"\" class=\"wp-image-7175\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-1024x512.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-300x150.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-768x384.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-1536x768.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img8-2048x1024.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Escopeta final, planos frontolaterales}<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-1024x1024.png\" alt=\"\" class=\"wp-image-7174\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-1024x1024.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-300x300.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-150x150.png 150w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-768x768.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-80x80.png 80w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9-320x320.png 320w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img9.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Administrador de juego final, plano frontal<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-1024x512.png\" alt=\"\" class=\"wp-image-7173\" style=\"width:400px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-1024x512.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-300x150.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-768x384.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-1536x768.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/img10-2048x1024.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Administrador de juego final, planos laterales<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Desde el comienzo hasta la finalizaci\u00f3n, se han descartado algunos elementos por su complejidad que hubiera demorado el proyecto, o por su falta de utilidad en el dise\u00f1o.<br><br>La elecci\u00f3n de una placa de microcontrolador ATmega2560 para el Game Manager fue un acierto en cuanto a la memoria. La placa Elegoo Mega 2560 tiene m\u00e1ximo 253 952 bytes de espacio de almacenamiento del programa (memoria flash), del que se usa finalmente un 5%, y de 8 192 bytes m\u00e1ximo que tiene la memoria din\u00e1mica (SRAM), solo se emplea un 11% para variables globales. Adem\u00e1s, contiene 4 096 bytes de memoria EEPROM integrada, que como se puede visualizar en el c\u00f3digo, \u00a1permite almacenar la puntuaci\u00f3n de hasta 4 096 partidas diferentes!<br><br>En el caso de haber seleccionado una placa de microcontrolador ATmega328p, la memoria flash estar\u00eda ocupada en un 37%, la SRAM un 44%, y a lo sumo podr\u00edan grabarse 1 024 bytes internos, que representa alrededor de un <strong>75% menos<\/strong> de espacio que la propuesta de la placa Elegoo Mega 2560.<br><br>Asimismo, la placa Elegoo Mega 2560 hace uso de 10 pines digitales, que en su disposici\u00f3n representa cerca de un 18.5% de su capacidad, mientras que de la placa UNO ser\u00eda un 71% aproximado de ocupaci\u00f3n.<\/p>\n\n\n\n<p class=\"has-large-font-size\">2.3 Proyecci\u00f3n financiera<\/p>\n\n\n\n<p class=\"has-medium-font-size\">El coste total del proyecta ha sido de 126.33\u20ac, sin herramientas.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"341\" height=\"239\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-132905.png\" alt=\"\" class=\"wp-image-7187\" style=\"width:180px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-132905.png 341w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-132905-300x210.png 300w\" sizes=\"auto, (max-width: 341px) 100vw, 341px\" \/><figcaption class=\"wp-element-caption\">Herramientas indispensables para la elaboraci\u00f3n del proyecto<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-medium-font-size\">Como se puede observar, ha habido un remanente de componentes que podr\u00eda disminuirse adquiriendo las piezas por separado. Con ello, tambi\u00e9n se habr\u00edan reducido los costes, as\u00ed como solicitando los componentes a trav\u00e9s de AliExpress.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"580\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133019.png\" alt=\"\" class=\"wp-image-7188\" style=\"width:550px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133019.png 1020w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133019-300x171.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133019-768x437.png 768w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><figcaption class=\"wp-element-caption\">Desglose del coste del proyecto por paquetes solicitados<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"491\" height=\"201\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133117.png\" alt=\"\" class=\"wp-image-7189\" style=\"width:250px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133117.png 491w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133117-300x123.png 300w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><figcaption class=\"wp-element-caption\">Componentes del Set 3<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"495\" height=\"960\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133126.png\" alt=\"\" class=\"wp-image-7190\" style=\"width:250px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133126.png 495w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133126-155x300.png 155w\" sizes=\"auto, (max-width: 495px) 100vw, 495px\" \/><figcaption class=\"wp-element-caption\">Componentes del Set 1<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"203\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133132.png\" alt=\"\" class=\"wp-image-7191\" style=\"width:350px\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133132.png 700w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Screenshot-2023-12-11-133132-300x87.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption class=\"wp-element-caption\">Componentes del Set 2<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-large-font-size\">2.4 Implementaci\u00f3n software<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Todo el c\u00f3digo de los programas o <em>sketches<\/em> se encuentra comentado y contiene las referencias necesarias para comprender la elaboraci\u00f3n del proyecto y su desempe\u00f1o.<br><br>Cabe rese\u00f1ar el uso de la memoria EEPROM con el objeto de guardar las partidas jugadas con anterioridad y crear un <em>ranking<\/em> de puntuaciones, que aunque pierda corriente est\u00e9 grabado en la memoria.<br><br>Se ha orientado la programaci\u00f3n a un modelo donde se aproveche siempre que se pueda la memoria flash en vez de la din\u00e1mica. Por ello, todo el c\u00f3digo, en la medida de lo posible, muestra por pantalla las acciones en el monitor con la funci\u00f3n Serial.print(F()), que libera SRAM, as\u00ed como se han usado constantes y variables define en la medida de lo posible.<br><br>Por tanto, el c\u00f3digo se ha comprimido al m\u00e1ximo y definido con la mayor claridad, eficacia y eficiencia seg\u00fan lo descrito anteriormente.<\/p>\n\n\n\n<p class=\"has-large-font-size\">2.5 Casos de uso<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Adjunto se encuentra un v\u00eddeo explicativo y demostrativo de los componentes y funcionalidades que finalmente presenta el desarrollo del proyecto.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"113\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Demo.gif\" alt=\"\" class=\"wp-image-7193\" style=\"width:600px\" \/><figcaption class=\"wp-element-caption\">Gif animado de la presentaci\u00f3n del proyecto<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-large-font-size\">3. <strong>Resultados<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">El resultado es un prototipo altamente funcional de una m\u00e1quina arcade que resuelve el problema de comunicar dos sistemas a distancia mediante l\u00e1seres IR y adem\u00e1s ejemplifica el uso de varios m\u00f3dulos y componentes para placas de microcontrolador como la ATmega2560 y la ATmega328p.<br><br>Adem\u00e1s, presenta una comparativa en cuanto a las capacidades de una y otra placa, para qu\u00e9 se orienta sus distintos tipos de memoria y su uso aplicado en proyectos similares al presente.<br><br>Se han adquirido competencias en la concepci\u00f3n, el dise\u00f1o, implementaci\u00f3n y presentaci\u00f3n de un proyecto basado en un sistema empotrado, con el objeto de ganar soltura en un posible desempe\u00f1o empresarial, as\u00ed se han obtenido conocimientos acad\u00e9micos aplicados a este \u00e1rea de conocimiento.<\/p>\n\n\n\n<p class=\"has-large-font-size\">4. <strong>Problemas y soluciones<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Los problemas m\u00e1s relevantes en el desarrollo han sido:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Ausencia de documentaci\u00f3n t\u00e9cnica de algunos productos adquiridos.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Uso de librer\u00edas modernas, que no se encuentran tan empleadas en la actualidad ni hay una extensa documentaci\u00f3n y ejemplificaci\u00f3n en Internet.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Ajuste de \u00e1ngulo de emisi\u00f3n y posici\u00f3n\/ocultaci\u00f3n del transceptor y receptor IR, as\u00ed como el empleo de los protocolos. Los l\u00e1seres IR reflejan en abundancia sus rayos por todo tipo de superficies, lo que genera ruido y m\u00e1s detecciones de las esperadas para este proyecto.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size\">Las soluciones encontradas, respectivamente, fueron:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Adquisici\u00f3n de nuevos componentes correctamente documentados.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Iteraci\u00f3n continua de pruebas de componentes y software, con el fin de encontrar el m\u00e1s sencillo y que cumpla con las expectativas de realizaci\u00f3n.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Iteraci\u00f3n continua de pruebas de componentes y software tambi\u00e9n, hasta lograr una emisi\u00f3n que sea recibida correctamente solo si se incide la alineaci\u00f3n apropiada. El protocolo usado es el NEC, que es el contiene menos bits de emisi\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-large-font-size\"><strong>Ap\u00e9ndices<\/strong><\/p>\n\n\n\n<p>Lista 1: GameManager source code written in c<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background has-link-color wp-elements-59aee959e203ac517f6b7daa82d83072\" style=\"font-size:11px\"><code>\/*\n * Written by Alejandro Asensio. DSE Course 2023\/2024.\n * King Juan Carlos University (URJC).\n *\n * Game Manager\n *\n * This sketch is part of the Calimero's Rampage project.\n * Designed to be used with ATmega2560 microcontroller.\n * Manages two states: idle and ingame.\n * \u00b7 When in idle state, it plays a music and waits for the\n *   player to start the game (coin inserted).\n * \u00b7 When in ingame state, it waits for the player to shoot\n *   while keeps track of the time left and the score. When\n *   the time is over, it shows the results, saves and\n *   returns to idle state.\n *\/\n\n\/\/ Standard libraries\n#include &lt;Arduino.h&gt;\n#include &lt;EEPROM.h&gt;\n\n\/\/ Ables to decode NEC and Universal Pulsedistance infrared signals\n#define DECODE_NEC\n#define DECODE_DISTANCE_WIDTH\n\n\/\/ IRremote pin definitions library\n#include \"PinDefinitionsAndMore.h\"\n\n\/\/ Pin definitions\n#define IR_RECEIVE_PIN 22\n#define BUZZER_PIN 8\n#define LASER_TRANSCEIVER_PIN 50\n#define LASER_RECEIVER_PIN 35\n\n\/\/ LCD pin definitions\nconst uint8_t rs = 12, e = 11, d4 = 5, d5 = 4, d6 = 3,\n    d7 = 2;\n\n\/\/ IRremote library with implementations ver. 4.2.0\n#include &lt;IRremote.hpp&gt;\n#include &lt;LiquidCrystal.h&gt;\n#include &lt;pitches.h&gt;\n\n\/\/ LCD input manager definition\nLiquidCrystal lcd(rs, e, d4, d5, d6, d7);\n\n\/\/ Global const variables\nconst uint32_t IDLE_PERIOD = 5000L;\nconst uint32_t GAME_PERIOD = 60000L;\nconst int SHOWDOWN_PERIOD = 10000;\nconst int SCORE_UPDATE_PERIOD = 1000;\nconst int MAX_SCORE = 255;\n\n\/\/ Global to crash variables\nbool onGame = false;\nint iScore = 0;\nint eeAddress = 0;\n\n\/\/ Musical piece definition for the idle state. Src:\n\/\/ +----------------------------------------------------+\n\/\/ |  https:\/\/github.com\/hibit-dev\/buzzer\/tree\/master   |\n\/\/ +----------------------------------------------------+\nconst int Melody&#091;] =\n{\n  NOTE_E2, NOTE_E2, NOTE_E3, NOTE_E2, NOTE_E2, NOTE_D3,\n  NOTE_E2, NOTE_E2, NOTE_C3, NOTE_E2, NOTE_E2, NOTE_AS2,\n  NOTE_E2, NOTE_E2, NOTE_B2, NOTE_C3, NOTE_E2, NOTE_E2,\n  NOTE_E3, NOTE_E2, NOTE_E2, NOTE_D3, NOTE_E2, NOTE_E2,\n  NOTE_C3, NOTE_E2, NOTE_E2, NOTE_AS2,\n\n  NOTE_E2, NOTE_E2, NOTE_E3, NOTE_E2, NOTE_E2, NOTE_D3,\n  NOTE_E2, NOTE_E2, NOTE_C3, NOTE_E2, NOTE_E2, NOTE_AS2,\n  NOTE_E2, NOTE_E2, NOTE_B2, NOTE_C3, NOTE_E2, NOTE_E2,\n  NOTE_E3, NOTE_E2, NOTE_E2, NOTE_D3, NOTE_E2, NOTE_E2,\n  NOTE_C3, NOTE_E2, NOTE_E2, NOTE_AS2\n};\n\nconst int Durations&#091;] =\n{\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 2,\n\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 8, 8, 8,\n  8, 8, 8, 2\n};\n\n\/\/ Saves the score in the EEPROM memory.\n\/\/ Arduino Mega has 4kb or 4 096 bytes of EEPROM storage.\n\/\/ +----------------------------------------------------+\n\/\/ |  SaveScore. I\/O: None, void                        |\n\/\/ +----------------------------------------------------+\nvoid SaveScore()\n{\n  if (eeAddress == EEPROM.length()) eeAddress = 0;\n\n  \/\/ Max score is 25 points * 255 max per byte = 6 375\n  if (iScore &lt; MAX_SCORE) EEPROM.put(eeAddress, iScore\/25);\n  else EEPROM.put(eeAddress, MAX_SCORE);\n\n  Serial.print(F(\"WRITTEN \"));\n  Serial.print(iScore);\n  Serial.print(F(\" IN \"));\n  Serial.print(eeAddress);\n  Serial.println(F(\" POS\"));\n}\n\n\/\/ Plays a trigger sound a number of times.\n\/\/ +----------------------------------------------------+\n\/\/ |  PlayTriggerSound. I\/O: int, void                  |\n\/\/ +----------------------------------------------------+\nvoid PlayTriggerSound(int num)\n{\n  for (int i = 0; i &lt; num; i++)\n  {\n    tone(BUZZER_PIN, NOTE_DS7, 125);\n    delay(162.5);\n    noTone(BUZZER_PIN);\n  }\n}\n\n\/\/ Reads the scores from the EEPROM memory and shows the\n\/\/ best score and the player's score.\n\/\/ +----------------------------------------------------+\n\/\/ |  ShowResults. I\/O: None, void                      |\n\/\/ +----------------------------------------------------+\nvoid ShowResults()\n{\n  int bestScore = iScore;\n  bool isLastValue = false;\n\n  Serial.println(F(\"VALES READ FROM EEPROM\"));\n\n  for (int idx = 2; idx &lt; EEPROM.length() &amp;&amp; !isLastValue;\n    idx++)\n  {\n    int value = EEPROM.read(idx) * 25;\n    int nextValue = EEPROM.read(idx + 1) * 25;\n\n    if (nextValue == 0 || nextValue == 6375)\n    {\n      isLastValue = true;\n      eeAddress = idx + 1;\n    }\n\n    if (value &gt; bestScore) bestScore = value;\n\n    Serial.print(idx);\n    Serial.print(F(\"\\t\"));\n    Serial.print(value);\n    idx++;\n  }\n\n  lcd.clear();\n\n  char a&#091;16];\n  sprintf (a, \"BEST SCORE: %d \", bestScore);\n  lcd.setCursor(0, 0);\n  lcd.print(a);\n  \n  char b&#091;16];\n  if (bestScore != iScore) sprintf(b, \"YOUR SCORE: %d \",\n    iScore);\n  else sprintf(b, \"YOU ARE THE BEST\");\n  lcd.setCursor(0,1);\n  lcd.print(b);\n\n  PlayTriggerSound(3);\n  delay(SHOWDOWN_PERIOD);\n}\n\n\/\/ Shows the ingame screen with the time left and score.\n\/\/ +----------------------------------------------------+\n\/\/ |  ShowIngame. I\/O: None, void                       |\n\/\/ +----------------------------------------------------+\nvoid ShowIngame()\n{\n  char a&#091;16];\n  sprintf (a, \"60s TO SHOWDOWN!\");\n  lcd.setCursor(0, 0);\n  lcd.print(a);\n\n  char b&#091;16];\n  sprintf (b, \"SCORE: %d       \", iScore);\n  lcd.setCursor(0,1);\n  lcd.print(b);\n\n  Serial.println(F(\"GAME STARTED\"));\n}\n\n\/\/ Shows the score and a message to continue playing.\n\/\/ +----------------------------------------------------+\n\/\/ |  UpdateScore. I\/O: None, void                      |\n\/\/ +----------------------------------------------------+\nvoid UpdateScore()\n{\n  char s&#091;16];\n  sprintf (s, \"SCORE: %d, GO!  \", iScore);\n  lcd.setCursor(0,1);\n  lcd.print(s);\n\n  delay(SCORE_UPDATE_PERIOD);\n}\n\n\/\/ Plays the idle music note by note.\n\/\/ +----------------------------------------------------+\n\/\/ |  PlayIdleMusic. I\/O: int, void                     |\n\/\/ +----------------------------------------------------+\nvoid PlayIdleMusic(int note)\n{\n  int duration = 1000 \/ Durations&#091;note];\n  tone(BUZZER_PIN, Melody&#091;note], duration);\n  int pauseBetweenNotes = duration * 1.30;\n  delay(pauseBetweenNotes);\n  noTone(BUZZER_PIN);\n}\n\n\/\/ Shows the countdown to start the game.\n\/\/ +----------------------------------------------------+\n\/\/ |  ShowCountdownToPlay. I\/O: int, void               |\n\/\/ +----------------------------------------------------+\nvoid ShowCountdownToPlay()\n{\n  for (int i = 9; i &gt;= 0; i--)\n  {\n    char s&#091;16];\n    sprintf (s, \"  %ds TO START!  \", i);\n    lcd.setCursor(0,1);\n    lcd.print(s);\n    lcd.blink();\n\n    tone(BUZZER_PIN, NOTE_DS7, 125);\n    delay(875);\n  }\n}\n\n\/\/ Initializes the LCD screen.\n\/\/ +----------------------------------------------------+\n\/\/ |  ShowIdle. I\/O: None, void                         |\n\/\/ +----------------------------------------------------+\nvoid ShowIdle()\n{\n  lcd.begin(16,2);\n  lcd.print(\"CALIMERO RAMPAGE\");\n\n  lcd.setCursor(0,1);\n  lcd.print(\"25c INSERT COIN\");\n  lcd.setCursor(15,1);\n  lcd.blink();\n\n  iScore = 0;\n}\n\n\/\/ Setup function. Initializes the serial port, IRremote\n\/\/ and the other components.\nvoid setup()\n{\n  Serial.begin(115200);\n\n  \/\/ Wait for serial port to connect\n  while (!Serial);\n\n  \/\/ Initialize IRremote\n  Serial.println(F(\"Start \" __FILE__ \" from \" __DATE__));\n  Serial.println(F(\"Using library version \" VERSION_IRREMOTE));\n  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);\n  Serial.println(F(\"Ready to receive IR signals of protocols: \"));\n  printActiveIRProtocols(&amp;Serial);\n  Serial.println(F(\"at pin \" STR(IR_RECEIVE_PIN)));\n\n  \/\/ Initialize the other components\n  ShowIdle();\n  pinMode (LASER_TRANSCEIVER_PIN, OUTPUT);\n  pinMode(LASER_RECEIVER_PIN, INPUT);\n  digitalWrite (LASER_TRANSCEIVER_PIN, HIGH);\n\n  \/\/ Show the EEPROM memory length\n  Serial.print(F(\"EEPROM length: \"));\n  Serial.println(EEPROM.length());\n}\n\n\/\/ Loop function. Manages the two states: idle and ingame.\nvoid loop()\n{\n  if (onGame)\n  {\n    \/\/ Show the ingame screen and wait for the player to shoot\n    ShowIngame();\n\n    for(uint32_t tStart = millis();\n      (millis()-tStart) &lt; GAME_PERIOD;)\n    {\n      \/\/ Check if the player has shot\n      if (IrReceiver.decode())\n      {\n        Serial.print(F(\"Decoded protocol: \"));\n        Serial.print(getProtocolString(IrReceiver.decodedIRData.protocol));\n        Serial.print(F(\", decoded raw data: \"));\n        Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);\n\n        \/\/ If the player has shot, update the score. Discard noise\n        if (getProtocolString(IrReceiver.decodedIRData.protocol) != \"UNKNOWN\"\n          &amp;&amp; IrReceiver.decodedIRData.decodedRawData &gt;= 4)\n        {\n          iScore += 25;\n          UpdateScore();\n          PlayTriggerSound(2);\n        }\n\n        \/\/ Ready to receive next value\n        IrReceiver.resume();\n      }\n    }\n    \/\/ End of the game. Stop receiving IR signals\n\n    \/\/ Show the results, save score and return to idle state\n    ShowResults();\n    SaveScore();\n    ShowIdle();\n    onGame = false;\n  }\n  else\n  {\n    \/\/ Play the idle music and wait for the player to start\n    int note = 0;\n\n    for(uint32_t tStart = millis();\n      (millis()-tStart) &lt; IDLE_PERIOD;)\n    {\n      note++;\n      PlayIdleMusic(note);\n      int value = digitalRead(LASER_RECEIVER_PIN);\n\n      \/\/ If the player has inserted a coin, start the game\n      if (value == 1)\n      {\n        ShowCountdownToPlay();\n        PlayTriggerSound(2);\n        onGame = true;\n        break;\n      }\n    }\n    \/\/ End of the idle period. Stop playing the music\n  }\n  \/\/ Repeat the loop and find out the next state\n}<\/code><\/pre>\n\n\n\n<p>Lista 2: Shotgun source code written in c<\/p>\n\n\n\n<pre class=\"wp-block-code has-cyan-bluish-gray-background-color has-background\" style=\"font-size:11px\"><code>\/*\n * Written by Alejandro Asensio. DSE Course 2023\/2024.\n * King Juan Carlos University (URJC).\n *\n * Shotgun\n *\n * This sketch is part of the Calimero's Rampage project.\n * Designed to be used with Atmega328p microcontroller.\n * Controls the shotgun's infrared laser transceiver.\n *\/\n\n\/\/ Standard libraries\n#include &lt;Arduino.h&gt;\n\n\/\/ Disables restarting receiver after each send. Saves mem\n#define DISABLE_CODE_FOR_RECEIVER\n\n\/\/ IRremote pin definitions library\n#include \"PinDefinitionsAndMore.h\"\n\n\/\/ IRremote library with implementations ver. 4.2.0\n#include &lt;IRremote.hpp&gt;\n#include &lt;pitches.h&gt;\n\n\/\/ Pin definitions\n#define LED_PIN 13\n#define BUTTON_PIN 2\n#define BUZZER_PIN 8\n#define LASER_SENDER_PIN 12\n\n\/\/ Global to crash variables\nuint16_t sAddress = 0x0102;\nuint8_t sCommand = 0x34;\nuint8_t sRepeats = 1;\nint buttonState = 0;\n\n\/\/ Setup function. Initializes the serial port, IRremote\n\/\/ and the other components.\nvoid setup() \n{\n  Serial.begin(115200);\n\n  \/\/ Wait for serial port to connect\n  while (!Serial);\n\n  \/\/ Initialize IRremote\n  Serial.println(F(\"Start \" __FILE__ \" from \" __DATE__));\n  Serial.println(F(\"Using library version \" VERSION_IRREMOTE));\n  Serial.print(F(\"Send IR signals at pin \"));\n  Serial.println(IR_SEND_PIN);\n  IrSender.begin();\n  Serial.print(F(\"Send now: address=0x00, command=0x\"));\n  Serial.print(sCommand, HEX);\n  Serial.print(F(\", repeats=\"));\n  Serial.println(sRepeats);\n  Serial.println(F(\"Send standard NEC with 8 bit address\"));\n  Serial.flush();\n\n  \/\/ Initialize the other components\n  pinMode(LED_PIN, OUTPUT);\n  digitalWrite(LED_PIN, HIGH);\n  pinMode(LASER_SENDER_PIN, OUTPUT);\n  digitalWrite (LASER_SENDER_PIN, HIGH);\n  pinMode(BUZZER_PIN, OUTPUT);\n}\n\n\/\/ Loop function. Reads the button state and sends the IR\nvoid loop() \n{\n  buttonState = digitalRead(BUTTON_PIN);\n\n  if (buttonState == 1)\n  {\n    \/\/ Send the IR signal\n    \/\/ Turn off the laser and led as feedback\n    digitalWrite (LASER_SENDER_PIN, LOW);\n    digitalWrite(LED_PIN, LOW);\n\n    \/\/ Send the IR signal\n    Serial.print(F(\"Sending: 0x\"));\n    Serial.print(sAddress, HEX);\n    Serial.print(sCommand, HEX);\n    Serial.println(sRepeats, HEX);\n    \/\/ Avoids disturbing the software PWM gen by serial interrupts\n    Serial.flush();\n    IrSender.sendNEC(sAddress, sCommand, sRepeats);\n\n    \/\/ Play the shot sound\n    tone(BUZZER_PIN, NOTE_C7, 250);\n    delay(162.5);\n    noTone(BUZZER_PIN);\n\n    \/\/ Delay must be greater than 5 ms if short signal\n    delay(2837.5);\n\n    \/\/ Turn on the laser and led as feedback\n    digitalWrite (LASER_SENDER_PIN, HIGH);\n    digitalWrite(LED_PIN, HIGH);\n  }\n  \/\/ Now the button is released\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Elaboraci\u00f3n de un sistema empotrado basado en la placa de microcontrolador abierto Arduino Uno o similares, documentando su concepci\u00f3n, desarrollo y prototipado. T\u00edtulo: Juego arcade de cacer\u00eda de gansos basado en sistema l\u00e1ser. Descripci\u00f3n:&#46;&#46;&#46;<\/p>\n","protected":false},"author":189,"featured_media":7170,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[8],"class_list":["post-7169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos","tag-arduino"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Proyecto: Calimero&#039;s Rampage - 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-calimeros-rampage\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proyecto: Calimero&#039;s Rampage - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Elaboraci\u00f3n de un sistema empotrado basado en la placa de microcontrolador abierto Arduino Uno o similares, documentando su concepci\u00f3n, desarrollo y prototipado. T\u00edtulo: Juego arcade de cacer\u00eda de gansos basado en sistema l\u00e1ser. Descripci\u00f3n:&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-14T14:16:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-14T14:16:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-1024x768.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DSE_2023_24_G08\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"DSE_2023_24_G08\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 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-calimeros-rampage\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/\"},\"author\":{\"name\":\"DSE_2023_24_G08\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/712fd461ff25e293219d0f94b71de460\"},\"headline\":\"Proyecto: Calimero&#8217;s Rampage\",\"datePublished\":\"2023-12-14T14:16:43+00:00\",\"dateModified\":\"2023-12-14T14:16:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/\"},\"wordCount\":1531,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/12\\\/Proyecto_Grupo8_Poster.jpg\",\"keywords\":[\"Arduino\"],\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/\",\"name\":\"Proyecto: Calimero's Rampage - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/12\\\/Proyecto_Grupo8_Poster.jpg\",\"datePublished\":\"2023-12-14T14:16:43+00:00\",\"dateModified\":\"2023-12-14T14:16:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/12\\\/Proyecto_Grupo8_Poster.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/12\\\/Proyecto_Grupo8_Poster.jpg\",\"width\":2400,\"height\":1800,\"caption\":\"P\u00f3ster del proyecto Calimero's Rampage\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/proyecto-calimeros-rampage\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proyecto: Calimero&#8217;s Rampage\"}]},{\"@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\\\/712fd461ff25e293219d0f94b71de460\",\"name\":\"DSE_2023_24_G08\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g\",\"caption\":\"DSE_2023_24_G08\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dse202324g08\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Proyecto: Calimero's Rampage - 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-calimeros-rampage\/","og_locale":"es_ES","og_type":"article","og_title":"Proyecto: Calimero's Rampage - Proyectos con Arduino.","og_description":"Elaboraci\u00f3n de un sistema empotrado basado en la placa de microcontrolador abierto Arduino Uno o similares, documentando su concepci\u00f3n, desarrollo y prototipado. T\u00edtulo: Juego arcade de cacer\u00eda de gansos basado en sistema l\u00e1ser. Descripci\u00f3n:&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2023-12-14T14:16:43+00:00","article_modified_time":"2023-12-14T14:16:45+00:00","og_image":[{"width":1024,"height":768,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster-1024x768.jpg","type":"image\/jpeg"}],"author":"DSE_2023_24_G08","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"DSE_2023_24_G08","Tiempo de lectura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/"},"author":{"name":"DSE_2023_24_G08","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/712fd461ff25e293219d0f94b71de460"},"headline":"Proyecto: Calimero&#8217;s Rampage","datePublished":"2023-12-14T14:16:43+00:00","dateModified":"2023-12-14T14:16:45+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/"},"wordCount":1531,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster.jpg","keywords":["Arduino"],"articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/","name":"Proyecto: Calimero's Rampage - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster.jpg","datePublished":"2023-12-14T14:16:43+00:00","dateModified":"2023-12-14T14:16:45+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/12\/Proyecto_Grupo8_Poster.jpg","width":2400,"height":1800,"caption":"P\u00f3ster del proyecto Calimero's Rampage"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/proyecto-calimeros-rampage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Proyecto: Calimero&#8217;s Rampage"}]},{"@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\/712fd461ff25e293219d0f94b71de460","name":"DSE_2023_24_G08","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4325b8ed457b7dd0597f338cfa01e960cad07592dd504e1ee447aed52500f036?s=96&d=mm&r=g","caption":"DSE_2023_24_G08"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dse202324g08\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7169","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\/189"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=7169"}],"version-history":[{"count":4,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7169\/revisions"}],"predecessor-version":[{"id":7195,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/7169\/revisions\/7195"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/7170"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=7169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=7169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=7169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}