{"id":6441,"date":"2023-05-05T23:35:12","date_gmt":"2023-05-05T21:35:12","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=6441"},"modified":"2023-05-05T23:35:13","modified_gmt":"2023-05-05T21:35:13","slug":"space-laser","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/","title":{"rendered":"Space Laser"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Autores<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Laura Ortiz \u00c9cija<\/li>\n\n\n\n<li>Gonzalo Rico Esteban<\/li>\n\n\n\n<li>Gabriel S\u00e1nchez Losa<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Idea y planteamiento<\/h2>\n\n\n\n<p>Partimos de una idea sobre un proyecto ante todo l\u00fadico. Un proyecto que divirtiera y fuera entretenido de ver y ejecutar. Como primera impresi\u00f3n, rond\u00e1bamos la idea de ingeniar un \u201cConecta 4\u201d, pero no nos terminaba de convencer por la simplicidad intr\u00ednseca del proyecto. Estuvimos d\u00e1ndole vueltas a la posibilidad de proporcionar un giro de originalidad hasta que se nos ocurri\u00f3 una nueva idea tambi\u00e9n relacionada con el ocio y mucho m\u00e1s original y divertida. Es as\u00ed como elegimos recrear un stand de disparos como el de las casetas de feria, con dianas objetivo que se alzasen y bajasen aleatoriamente, pistola l\u00e1ser y un contador de puntos y tiempo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Casos de uso<\/h2>\n\n\n\n<p>El funcionamiento consta de dos partes diferenciadas: la elecci\u00f3n del modo de juego y la partida. En cuanto se alimenta el circuito, las dianas se levantan a la vez a modo de men\u00fa, listas para regir uno de los tres niveles de dificultad del juego. La primera diana es el nivel f\u00e1cil, la segunda es el medio y la \u00faltima el dif\u00edcil (dificultad inversamente proporcional al tiempo de vida de las dianas, cuanto mayor dificultad, menor tiempo de vida). Al pasar el l\u00e1ser por encima del centro de alguna de las dianas, su respectivo led se enciende para remarcar la diana seleccionada, y si se dispara manteniendo la diana marcada, el juego comienza en cualquiera de los niveles.<\/p>\n\n\n\n<p>Al iniciar la partida, suena un sonido emitido por el zumbador y los tres leds se encienden y se apagan siguiendo un determinado patr\u00f3n programado. El display tambi\u00e9n se encender\u00e1, mostrando en la parte derecha un temporizador inicializado en 30 que ir\u00e1 disminuyendo cada segundo, y en la izquierda la puntuaci\u00f3n del jugador. Cada punto s\u00f3lo se contar\u00e1 si se apunta al centro de la diana y se aprieta el bot\u00f3n de la pistola mientras la diana est\u00e1 levantada. Si no se cumplen estas condiciones, no hay punto. Por cada punto obtenido, el zumbador emitir\u00e1 un sonido. Al finalizar la partida, sonar\u00e1 tambi\u00e9n un sonido de victoria y el resultado de la puntuaci\u00f3n se guardar\u00e1 a modo de r\u00e9cord, que se podr\u00e1 batir en la siguiente partida.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Materiales empleados<\/h2>\n\n\n\n<p>Los materiales empleados se dividen en dos categor\u00edas: los del montaje y los de la circuiter\u00eda.<\/p>\n\n\n\n<p>En cuanto a los primeros, tuvimos la suerte de contar con una tabla de contrachapado a nuestra disposici\u00f3n, por lo que fuimos capaces de dibujar, recortar y perfilar la estructura del stand y de las dianas.<\/p>\n\n\n\n<p>Para los materiales necesarios para la circuiter\u00eda, adem\u00e1s de los b\u00e1sicos (cables, protoboards, Arduino UNO), requerimos de:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3 fotorresistencias que funcionar\u00e1n como receptor del puntero l\u00e1ser en el centro de las dianas.<\/li>\n\n\n\n<li>3 servomotores que elevar\u00e1n y bajar\u00e1n la estructura de madera de la diana.<\/li>\n\n\n\n<li>3 leds, cada uno asignado a una diana, para simbolizar de manera m\u00e1s visual su elecci\u00f3n.<\/li>\n\n\n\n<li>1 diodo l\u00e1ser que har\u00e1 de mirilla de la pistola.<\/li>\n\n\n\n<li>1 bot\u00f3n que simbolizar\u00e1 el gatillo de la pistola.<\/li>\n\n\n\n<li>1 zumbador que emitir\u00e1 sonidos al iniciar la partida, al finalizarla y al contar punto.<\/li>\n\n\n\n<li>1 display de siete segmentos para visualizar el contador de puntuaci\u00f3n y el temporizador.<\/li>\n\n\n\n<li>1 bater\u00eda de 9V y 2 pilas de 4.5V para proporcionar la alimentaci\u00f3n necesaria al circuito<\/li>\n<\/ul>\n\n\n\n<p>Para los materiales externos dedicados a la maqueta del proyecto (stand, dianas, pistola) utilizamos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Madera de contrachapado para el stand y dianas.<\/li>\n\n\n\n<li>Cart\u00f3n para la pistola.<\/li>\n\n\n\n<li>Silicona caliente para unir las piezas.<\/li>\n\n\n\n<li>Cinta para mayor sujeci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Presupuesto total del proyecto<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table\"><table><tbody><tr><td>COMPONENTES<\/td><td>UNIDADES<\/td><td>PRECIO<\/td><\/tr><tr><td>Arduino UNO<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Bater\u00eda 9V<\/td><td>1<\/td><td>5,25\u20ac<\/td><\/tr><tr><td>Pilas 4.5V<\/td><td>2<\/td><td>&#8211;<\/td><\/tr><tr><td>Protoboard<\/td><td>2<\/td><td>&#8211;<\/td><\/tr><tr><td>Fotorresistor<\/td><td>3<\/td><td>&#8211;<\/td><\/tr><tr><td>Diodo L\u00e1ser<\/td><td>1<\/td><td>1,25\u20ac<\/td><\/tr><tr><td>Pulsador<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Zumbador piezzo<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Banco de interruptores<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Servomotores SG90<\/td><td>3<\/td><td>14,70\u20ac<\/td><\/tr><tr><td>M\u00f3dulo Display 7 segmentos HT16K33 BACKPACK<\/td><td>1<\/td><td>14,34\u20ac<\/td><\/tr><tr><td><strong>Coste total<\/strong><\/td><td><\/td><td><strong>35,54\u20ac<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>MATERIALES<\/td><td>UNIDADES<\/td><td>PRECIO<\/td><\/tr><tr><td>Tablas de madera de contrachapado<\/td><td>4<\/td><td>&#8211;<\/td><\/tr><tr><td>Rollos de cart\u00f3n<\/td><td>3<\/td><td>&#8211;<\/td><\/tr><tr><td>Segueta<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Taladro<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Cinta americana<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Pistola de silicona + silicona<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td><strong>Coste total<\/strong><\/td><td><\/td><td><strong>0,00\u20ac<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Esquema en Tinkercad e im\u00e1genes<\/h2>\n\n\n\n<p>Como se puede observar en la siguiente imagen (esquema de tinkercad que realizamos como simulaci\u00f3n del circuito), son necesarios tres pines de salida anal\u00f3gica para los servomotores, cinco pines de entradas anal\u00f3gicas para las fotorresistencias y el display y el resto de pines empleados son digitales o de alimentaci\u00f3n y tierra. Cabe destacar la protecci\u00f3n de los leds y las fotorresistencias con resistencias de 220 ohmios para evitar posibles desastres y el led rojo de la izquierda simbolizando el diodo l\u00e1ser (tinkercad no tiene ese componente disponible para los esquemas de conexi\u00f3n).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/image-6.png\" alt=\"\" class=\"wp-image-6569\" width=\"768\" height=\"542\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/image-6.png 830w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/image-6-300x212.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/image-6-768x542.png 768w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>En cuanto a la alimentaci\u00f3n, en nuestro circuito final decidimos alimentar una protoboard adicional con una pila de 4\u20195V, la pistola (diodo l\u00e1ser y bot\u00f3n) tambi\u00e9n se conectaron a otra pila de 4\u20195V y la placa de Arduino se aliment\u00f3 con una bater\u00eda de 9V, suficiente para el nivel de voltaje recomendado (entre 7 y 12V).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Software<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n----------PROYECTO SPACE LASER-------------\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n**\/\n\n#include &lt;Servo.h&gt;\n#include &lt;Wire.h&gt;\n#include &lt;Adafruit_LEDBackpack.h&gt;\n\nAdafruit_7segment matrix = Adafruit_7segment();\n\nServo servo&#091;3];\n \n\/\/ ASIGNACION DE PINES\n\nconst int button = 2;\n\nconst int led1_pin = 8;\nconst int led2_pin = 12;\nconst int led3_pin = 13;\n\nconst int buzzerPin = 3;\n\nconst int ldr1_pin = A0;\nconst int ldr2_pin = A1;\nconst int ldr3_pin = A2;\n\n\n\/\/ VARIABLES DE ESTADO DE BOTONES Y SENSORES\n\nint estadoButton = HIGH;\n\nint valor_led&#091;3] = {8,12,13};\n\nint valor_ldr&#091;3] = {0,0,0};\n\n\n\/\/ VARIABLES PARA CONTROLAR EL TIEMPO\n\n\/\/Utilizamos \"unsigned long\" para variables que manejan el tiempo\n\/\/El valor se har\u00eda demasiado extenso para almancenar en un entero\n\nunsigned long startTime_servo&#091;3] = {0,0,0};  \/\/ will store last time SERVO was updated\nunsigned long startTime_servoVida&#091;3] = {0,0,0}; \/\/will store last time SERVOVIDA was updated\nunsigned long startTime_game = 0;  \/\/ will store last time GAME was updated\nunsigned long timer = 0; \/\/ will store\n\n\/\/ INTERVALOS CONSTANTES\n\nconst unsigned long interval_second = 1000;  \/\/ interval at which to blink (milliseconds)\nconst unsigned long interval_servo = 2;  \/\/ interval at which to generate motion on the gear (milliseconds)\nconst unsigned long interval_game = 36000;  \/\/ interval at which to finish the game (milliseconds)\nunsigned long interval_mode&#091;3] = {4000, 2500, 1000};\n\/\/----------------------------------------\n\n\/\/ VARIABLES GENERALES\n\nint puntuacion = 0;\nint record = 0;\n\nint angle&#091;3] = {0,0,0};\nint diana = random(0,3);\n\nint tiempo = 30;\n\nint condicion = 0;\nint opcion = 0;\n\nboolean menu = true;\nboolean select = false;\n\nboolean partida = false;\n\nboolean acierto = false;\nboolean fail = false;\n\nboolean diana_viva&#091;3] = {false, false, false};\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid setup() {\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n  Serial.begin(9600);\n  \n  \/\/ CONFIGURAR PINES COMO ENTRADAS\n  pinMode(button, INPUT);\n  \n  \/\/ CONFIGURAR PINES COMO SALIDAS\n  pinMode(LED_BUILTIN, OUTPUT);\n  \n  pinMode(led1_pin, OUTPUT);\n  pinMode(led2_pin, OUTPUT);\n  pinMode(led3_pin, OUTPUT);\n  \n  \n  servo&#091;0].attach(9);\n  servo&#091;1].attach(10);\n  servo&#091;2].attach(11);\n  servo&#091;0].write(0);\n  servo&#091;1].write(0);\n  servo&#091;2].write(0);\n  \n  matrix.begin(0x70);  \/\/ Inicializa el display en la direcci\u00f3n 0x70\n  matrix.setBrightness(15); \/\/ ajusta el brillo del display (0 a 15)\n  \n  randomSeed(analogRead(A3));  \n}\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid loop() {\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\n  \/\/TIEMPO\n  \/*Returns the number of milliseconds passed since the Arduino board began running the current program.*\/\n  unsigned long currentMillis = millis();\n\n  \/\/LEER EL ESTADO DE LOS PINES\n  valor_ldr&#091;0] = analogRead(ldr1_pin);\n  valor_ldr&#091;1] = analogRead(ldr2_pin);\n  valor_ldr&#091;2] = analogRead(ldr3_pin);\n\n  estadoButton = digitalRead(button);\n  delay(15);\n\n  \/\/====================================\n  \/\/MENU INICIAL\n  \/\/====================================\n  if (menu == true) {\n    \n    \/\/ (Step 0) SET-UP DIANAS \n    if (condicion == 0) {\n      \n      if(currentMillis - timer &gt;= interval_servo){\n        timer = currentMillis;\n\n        if(angle&#091;0] &gt;= 90 &amp;&amp; angle&#091;1] &gt;= 90 &amp;&amp; angle&#091;2] &gt;= 90) {\n          condicion = 1;\n          sonidoAcierto();\n        }\n        else {\n          angle&#091;0] += 10;\n          servo&#091;0].write(angle&#091;0]);\n          angle&#091;1] += 10;\n          servo&#091;1].write(angle&#091;1]);\n          angle&#091;2] += 10;\n          servo&#091;2].write(angle&#091;2]);\n        }\n      }\n    }\n\n    \/\/\/ (Step 1) DIANAS ALZADAS MENU DESPLEGADO\n    if (condicion == 1) {\n\n      \/\/ ---- INFO EN DISPLAY SOBRE RECORD -----\n      if (record &lt; 10) {\n        matrix.writeDigitNum(0,record);\n      }\n      else {\n        matrix.writeDigitNum(0, record\/10);\n        matrix.writeDigitNum(1, record - (record\/10 * 10));\n      }\n      matrix.writeDisplay();\n\n\n      \/\/ ELEGIR MODO DE DIFICULTAD\n      if (valor_ldr&#091;2] &gt; 500) {\n          digitalWrite(valor_led&#091;2], HIGH);\n          if (estadoButton == HIGH &amp;&amp; condicion != 2) {\n              condicion = 2; \/\/SIGUIENTE FASE\n              opcion = 2; \/\/MODO DIFICIL\n              sonidoAcierto();\n          }\n      }\n      else { digitalWrite(valor_led&#091;2], LOW); }\n\n      if (valor_ldr&#091;1] &gt; 500) {\n          digitalWrite(valor_led&#091;1], HIGH);\n          if (estadoButton == HIGH &amp;&amp; condicion != 2) {\n              condicion = 2; \/\/SIGUIENTE FASE\n              opcion = 1; \/\/MODO INTERMEDIO\n              sonidoAcierto();\n          }\n      }\n      else { digitalWrite(valor_led&#091;1], LOW); }\n\n      if (valor_ldr&#091;0] &gt; 500) {\n        digitalWrite(valor_led&#091;0], HIGH);\n        if (estadoButton == HIGH &amp;&amp; condicion != 2) {\n            condicion = 2; \/\/SIGUIENTE FASE\n            opcion = 0; \/\/MODO FACIL\n            sonidoAcierto();\n        }\n      }\n      else { digitalWrite(valor_led&#091;0], LOW); }\n    }\n    \n    \/\/ (Step 2) OCULTAR DIANAS\n    if (condicion == 2) {\n    \n      if (currentMillis - timer &gt;= interval_servo) {\n          timer = currentMillis;\n\n          if (angle&#091;0] &lt;= 0 &amp;&amp; angle&#091;1] &lt;= 0 &amp;&amp; angle&#091;2] &lt;= 0) {\n            condicion = 0;\n            select = true;\n            menu = false;\n          }\n          else {\n            angle&#091;0] -= 12;\n            servo&#091;0].write(angle&#091;0]);\n            angle&#091;1] -= 12;\n            servo&#091;1].write(angle&#091;1]);\n            angle&#091;2] -= 12;\n            servo&#091;2].write(angle&#091;2]);\n          }\n      }\n    }\n  }\n\n  \/\/====================================\n  \/\/FIN DEL JUEGO\n  \/\/====================================\n  if (partida == true &amp;&amp; currentMillis - startTime_game &gt;= interval_game) {\n\n    if (diana_viva&#091;diana] == true || angle&#091;diana] &gt; 0) {\n\n      if (currentMillis - startTime_servo&#091;diana] &gt;= interval_servo){\n          startTime_servo&#091;diana] = currentMillis;\n          servo&#091;diana].write(angle&#091;diana]);\n          angle&#091;diana] -= 10;\n\n          if(angle&#091;diana] &lt;= 0) {\n              diana_viva&#091;diana] = false;\n          }\n      }\n    } \n    else {\n      diana = random(0,3);\n    \n      digitalWrite(valor_led&#091;0], HIGH);\n      digitalWrite(valor_led&#091;1], HIGH);\n      digitalWrite(valor_led&#091;2], HIGH);\n    \n      sonidoVictoria();\n\n      partida = false;\n\n      menu = true;\n      select = false;\n      \n      startTime_game = currentMillis;\n\n      if (puntuacion &gt; record) record = puntuacion;\n    \n      digitalWrite(valor_led&#091;0], LOW);\n      delay(100);\n      digitalWrite(valor_led&#091;1], LOW);\n      delay(100);\n      digitalWrite(valor_led&#091;2], LOW);\n    }\n  }\n\n  \/\/====================================\n  \/\/ INICIO PARTIDA \n  \/\/====================================\n  if (partida == false &amp;&amp; select == true) {\n    partida = true;\n\n    if (opcion == 0) startSpaceOdyssey(); \/\/EMPIEZA MELOD\u00cdA INICIO\n    \n    digitalWrite(valor_led&#091;0], HIGH);\n    digitalWrite(valor_led&#091;1], HIGH);\n    digitalWrite(valor_led&#091;2], HIGH);\n    \n    delay(1000);\n    \n    digitalWrite(valor_led&#091;0], LOW);\n    digitalWrite(valor_led&#091;1], LOW);\n    digitalWrite(valor_led&#091;2], LOW);\n    \n    delay(500);\n    \n    digitalWrite(valor_led&#091;0], HIGH);\n    delay(300);\n    digitalWrite(valor_led&#091;1], HIGH);\n    delay(300);\n    digitalWrite(valor_led&#091;2], HIGH);\n    delay(300);\n    \n    digitalWrite(valor_led&#091;0], LOW);\n    digitalWrite(valor_led&#091;1], LOW);\n    digitalWrite(valor_led&#091;2], LOW);\n    delay(300);\n    \n    startTime_game = currentMillis;\n    \n    tiempo = 30;\n    puntuacion = 0;\n  }\n  \n  \/\/ ==================================================\n  if (partida == true) { \/\/ ====  DENTRO DE LA PARTIDA\n  \/\/ ==================================================\n\n    \/\/ MOSTRAR INFO EN NUESTROS DISPLAYS DE 7 SEGMENTOS\n    if(currentMillis - timer &gt;= interval_second) {\n        timer = currentMillis;\n\n        matrix.print(tiempo);\n        \n        if (puntuacion &lt; 10) {\n          matrix.writeDigitNum(0,puntuacion);\n        }\n        else {\n          matrix.writeDigitNum(0, puntuacion\/10);\n          matrix.writeDigitNum(1, puntuacion - (puntuacion\/10 * 10));\n        }\n        matrix.writeDisplay();\n        tiempo--;\n    }\n    \n    \/\/ ALZAR DIANA RANDOM ------------------------------\n    if (diana_viva&#091;diana] == false) {\n      \n      if (valor_led&#091;diana] != HIGH) digitalWrite(valor_led&#091;diana], HIGH);\n      \n      if(currentMillis - startTime_servo&#091;diana] &gt;= interval_servo){\n        startTime_servo&#091;diana] = currentMillis;\n\n        if(angle&#091;diana] &gt;= 90) {\n          diana_viva&#091;diana] = true;\n          startTime_servoVida&#091;diana] = currentMillis;\n        }\n        else {\n          angle&#091;diana] += 10;\n          servo&#091;diana].write(angle&#091;diana]);\n        }\n      }\n    }\n\n    \/\/ \u00bfSE OPRIMIO EL BOTON DE ENCENDIDO? ----------------\n    if (estadoButton == HIGH &amp;&amp; valor_ldr&#091;diana] &gt; 500 &amp;&amp; diana_viva&#091;diana] == true) \n    {\n      acierto = true;\n    }\n\n    \/\/\u00a1ACIERTO! DIANA VUELVE A POSICION INICIAL Y SUMAMOS PUNTO  \n    if (acierto == true) {\n      if (currentMillis - startTime_servo&#091;diana] &gt;= interval_servo){\n        startTime_servo&#091;diana] = currentMillis;\n            \n        if(angle&#091;diana] &lt;= 0) { \/\/ Diana estabilizada\n              \n          acierto = false;\n          puntuacion++; \/\/ Sumamos punto\n              \n          \/\/ ----- Diana tumbada -------\n          diana_viva&#091;diana] = false; \n              \n          sonidoAcierto();\n\n          digitalWrite(valor_led&#091;diana], LOW);\n              \n          \/* NUEVO VALOR DE DIANA INDICARA CUAL SERA LA PROX DIANA A LEVANTARSE *\/\n          diana = random(0,3); \n        }\n        else {\n          angle&#091;diana] -= 10;\n          servo&#091;diana].write(angle&#091;diana]);\n        }\n      }\n    }\n\n    \/\/ TIEMPO DE VIDA DE DIANA SUPERADO -----------------\n    if (currentMillis - startTime_servoVida&#091;diana] &gt;= interval_mode&#091;opcion] &amp;&amp; diana_viva&#091;diana] == true) \n    { \/\/ Segun que modo hayamos seleccionado el rango de tiempo del intervalo variar\u00e1\n      fail = true;\n    }\n\n    \/\/ FALLO, LA DIANA VOLVERA A BAJAR\n    if (fail == true) {\n      if (currentMillis - startTime_servo&#091;diana] &gt;= interval_servo){\n        startTime_servo&#091;diana] = currentMillis;\n          \n        if(angle&#091;diana] &lt;= 0) { \/\/ Diana estabilizada\n            \n          acierto = false; \/\/No se contabiliza punto\n          fail = false;\n            \n          \/\/ ----- Diana tumbada --------\n          diana_viva&#091;diana] = false; \n            \n          digitalWrite(valor_led&#091;diana], LOW);\n            \n          \/* NUEVO VALOR DE DIANA INDICARA CUAL SERA LA PROX DIANA A LEVANTARSE *\/\n          diana = random(0,3);\n        }\n        else {\n          angle&#091;diana] -= 12;\n          servo&#091;diana].write(angle&#091;diana]);\n        }\n      }\n    }\n  } \n\n  \/\/ FINAL DENTRO DE PARTIDA ==================\n  delay(5);\n}\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\nvoid sonidoAcierto(){\n  tone(buzzerPin, 400);\n  delay(50);\n  tone(buzzerPin, 500);\n  delay(50);\n  tone(buzzerPin, 600);\n  delay(50);\n  tone(buzzerPin, 700);\n  delay(100);\n  noTone(buzzerPin);\n  delay(50);\n}\n\nvoid sonidoVictoria(){\n  tone(buzzerPin, 659); \/\/ E5\n  delay(200);\n  tone(buzzerPin, 784); \/\/ G5\n  delay(200);\n  tone(buzzerPin, 880); \/\/ A5\n  delay(200);\n  tone(buzzerPin, 1047); \/\/ C6\n  delay(400);\n  tone(buzzerPin, 880); \/\/ A5\n  delay(200);\n  tone(buzzerPin, 784); \/\/ G5\n  delay(200);\n  tone(buzzerPin, 659); \/\/ E5\n  delay(200);\n  tone(buzzerPin, 523); \/\/ C5\n  delay(800);\n  noTone(buzzerPin);\n}\n\nvoid startSpaceOdyssey(){\n  tone(buzzerPin, 1175); \/\/ D6\n  delay(200);\n  tone(buzzerPin, 988); \/\/ D#6\/Eb6\n  delay(200);\n  tone(buzzerPin, 880); \/\/ A5\n  delay(200);\n  tone(buzzerPin, 783); \/\/ G5\n  delay(400);\n  tone(buzzerPin, 880); \/\/ A5\n  delay(200);\n  tone(buzzerPin, 988); \/\/ D#6\/Eb6\n  delay(200);\n  tone(buzzerPin, 1175); \/\/ D6\n  delay(200);\n  tone(buzzerPin, 1319); \/\/ E6\n  delay(800);\n  noTone(buzzerPin);\n}\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Problemas surgidos y soluciones<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Problema encontrado con la sincronizaci\u00f3n<\/h4>\n\n\n\n<p>La funci\u00f3n <strong>delay()<\/strong> detiene la ejecuci\u00f3n del c\u00f3digo por completo durante el tiempo que se especifique. Esto produc\u00eda un retardo tremendo a la hora de registrar el tiempo transcurrido de forma que dilataba su valor. Lo mismo ocurr\u00eda con la acci\u00f3n de pulsar el bot\u00f3n. Deb\u00eda mantenerse hasta 3 segundos para que el valor del LED al que apuntaba consiguiera activarse. Todo esto ocurr\u00eda por culpa de la rotaci\u00f3n de los motores, ya que para que las dianas pasaran a levantarse el valor del \u00e1ngulo del servomotor deb\u00eda variar entre 0 y 90 grados. No iba a ser posible por tanto realizar una acci\u00f3n mientras un led se encend\u00eda o una diana se accionaba.<\/p>\n\n\n\n<p>Para solucionar esto se opt\u00f3 por utilizar la funci\u00f3n <strong>millis()<\/strong>. El funcionamiento de \u00e9sta es relativamente sencillo. En el momento en el que se ejecute el sketch cargado en placa un contador empieza a guardar los milisegundos transcurridos. De esta manera, nos permite saber el tiempo que nosotros determinemos a partir de realizar una operaci\u00f3n y comparando con el intervalo de tiempo que queramos (1 seg. 30 seg. o incluso d\u00e9cimas de segundo). El resultado de esta funci\u00f3n se guardar\u00e1 en la variable <strong>\u201ccurrentMillis\u201d<\/strong>. Guardaremos tambi\u00e9n en cada iteraci\u00f3n el valor que tenga el bot\u00f3n (HIGH-LOW) y los sensores de luz.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Problema encontrado con la alimentaci\u00f3n<\/h4>\n\n\n\n<p>La raz\u00f3n por la que algunos de los componentes tengan que gozar de alimentaci\u00f3n propia es porque no llegaba la que proporcionaba el regulador de Arduino para todos y porque alguno de los componentes requer\u00eda cuidados especiales.<\/p>\n\n\n\n<p>En el caso de los servomotores, las tensiones ca\u00edan en el resto de los componentes y a los motores les faltaba fuerza para levantar la diana.<\/p>\n\n\n\n<p>En caso de la pistola, el bot\u00f3n interfer\u00eda con las dem\u00e1s tensiones. Se intent\u00f3 conectar a la misma protoboard que el resto de los componentes del circuito (display, leds, LDR, buzzer) y el l\u00e1ser disminu\u00eda la intensidad cuando el bot\u00f3n era pulsado, por lo que la soluci\u00f3n fue darles alimentaci\u00f3n propia.<\/p>\n\n\n\n<p>Respecto al display, en un principio quisimos darle alimentaci\u00f3n propia como a los servomotores y a la pistola, sin embargo, prob\u00e1ramos lo que prob\u00e1ramos, el display no funcionaba. Al final decidimos probar a dejarlo conectado junto con el resto de los componentes aliment\u00e1ndose del regulador de 5V de Arduino y descubrimos que de esta manera s\u00ed que funcionaba \u201cperfectamente\u201d (pues si un cable se atrev\u00eda a no hacer buena conexi\u00f3n, el display se encargaba de \u201cestropear\u201d el resto del circuito, actuaba como un pulsador, por lo que tuvimos much\u00edsimo cuidado con todas las conexiones).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Problema encontrado con el display LCD<\/h4>\n\n\n\n<p>Nuestra idea principal fue integrar una pantalla LCD para mostrar el men\u00fa de los juegos y puntuaciones, pero esta requer\u00eda much\u00edsimos pines, por lo que investigamos la posibilidad de emplear desplazadores para ampliar la capacidad de pines de Arduino. Desgraciadamente, no llegamos a buen puerto por ese camino, pues no logramos hacer que el desplazador funcionara, as\u00ed que abortamos la idea y lo solucionamos creando el men\u00fa por selecci\u00f3n de dianas que tenemos actualmente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Posibles mejoras<\/h2>\n\n\n\n<p>Mientras trabaj\u00e1bamos en el proyecto, nos surgieron ideas para mejorar la idea general y hacerla m\u00e1s atractiva y compleja.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pantalla LCD.<\/strong>\n<ul class=\"wp-block-list\">\n<li>A\u00f1adir una pantalla LCD para la elecci\u00f3n de modos de juego o dificultad y para ver informaci\u00f3n relevante de la partida como r\u00e9cord de puntos, sustituyendo el mecanismo de men\u00fa-diana que hemos establecido nosotros.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Nuevos modos.<\/strong>\n<ul class=\"wp-block-list\">\n<li>En lugar de modos de dificultad, podr\u00eda haberse creado varios juegos diferentes.<ul><li>Pistola con munici\u00f3n determinada, por lo que ser\u00eda un desaf\u00edo de absoluta punter\u00eda. Una vez agotadas las balas, termina la partida.<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>Dianas con vida. Disparar varias veces a la misma diana hasta que se \u201crompa\u201d.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Pistola bluetooth.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Con un m\u00f3dulo bluetooth, hacer la pistola inal\u00e1mbrica e independiente del resto del circuito. Mejorar\u00eda aspectos como la posibilidad de desconexi\u00f3n de cables por alg\u00fan tir\u00f3n sin mala intenci\u00f3n.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Dos jugadores.<\/strong>\n<ul class=\"wp-block-list\">\n<li>La posibilidad multijugador abarcar\u00eda un espectro de ideas muy grande. Se podr\u00eda replicar el mismo stand, pero contrapuesto, y que los dos jugadores se mirasen cara a cara mientras aciertan o fallan disparos. Se podr\u00eda incluso implementar alg\u00fan modo de juego especial para dos jugadores, con movimientos inesperados de dianas en un campo o en otro, o penalizaciones de restricci\u00f3n de balas hacia el jugador contrario si aciertas una diana en un determinado momento.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Atractivo general.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Mejorar la tem\u00e1tica del proyecto, como ten\u00edamos pensado inicialmente, y decorarlo todo con aspecto espacial.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Video explicativo<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Proyecto Space Laser\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/RH_-YiFBmc4?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<h2 class=\"wp-block-heading\">Anexo con im\u00e1genes del proceso<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0001-2-768x1024.jpg\" alt=\"\" class=\"wp-image-6632\" width=\"524\" height=\"699\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0001-2-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0001-2-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0001-2-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0001-2.jpg 1200w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3-1024x729.jpg\" alt=\"\" class=\"wp-image-6638\" width=\"487\" height=\"346\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3-1024x729.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3-300x214.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3-768x547.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3-1536x1094.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0002-3.jpg 1618w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2-576x1024.jpg\" alt=\"\" class=\"wp-image-6639\" width=\"334\" height=\"594\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2-576x1024.jpg 576w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2-169x300.jpg 169w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2-768x1366.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2-864x1536.jpg 864w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0003-2.jpg 899w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-1024x577.jpg\" alt=\"\" class=\"wp-image-6642\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-1024x577.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-1536x865.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0005-2-2048x1153.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-577x1024.jpg\" alt=\"\" class=\"wp-image-6643\" width=\"279\" height=\"495\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-577x1024.jpg 577w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-169x300.jpg 169w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-768x1364.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-865x1536.jpg 865w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-1153x2048.jpg 1153w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0006-1-1-scaled.jpg 1442w\" sizes=\"auto, (max-width: 279px) 100vw, 279px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"577\" height=\"1024\" data-id=\"6626\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-577x1024.jpg\" alt=\"\" class=\"wp-image-6626\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-577x1024.jpg 577w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-169x300.jpg 169w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-768x1364.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-865x1536.jpg 865w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-1153x2048.jpg 1153w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/0007-1-scaled.jpg 1442w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" data-id=\"6627\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-1024x1024.jpg\" alt=\"\" class=\"wp-image-6627\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-1024x1024.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-300x300.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-150x150.jpg 150w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-768x768.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-1536x1536.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-2048x2048.jpg 2048w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-80x80.jpg 80w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-1-320x320.jpg 320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Autores Idea y planteamiento Partimos de una idea sobre un proyecto ante todo l\u00fadico. Un proyecto que divirtiera y fuera entretenido de ver y ejecutar. Como primera impresi\u00f3n, rond\u00e1bamos la idea de ingeniar un&#46;&#46;&#46;<\/p>\n","protected":false},"author":8,"featured_media":6657,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6441","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.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Space Laser - 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\/space-laser\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Space Laser - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Autores Idea y planteamiento Partimos de una idea sobre un proyecto ante todo l\u00fadico. Un proyecto que divirtiera y fuera entretenido de ver y ejecutar. Como primera impresi\u00f3n, rond\u00e1bamos la idea de ingeniar un&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-05T21:35:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-05T21:35:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"2560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"gdhwsw2\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"gdhwsw2\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 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\\\/space-laser\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/\"},\"author\":{\"name\":\"gdhwsw2\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/7491e54afbe5e7fd53467fccb9c7ce44\"},\"headline\":\"Space Laser\",\"datePublished\":\"2023-05-05T21:35:12+00:00\",\"dateModified\":\"2023-05-05T21:35:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/\"},\"wordCount\":1677,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/final-1-2-scaled.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/\",\"name\":\"Space Laser - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/final-1-2-scaled.jpg\",\"datePublished\":\"2023-05-05T21:35:12+00:00\",\"dateModified\":\"2023-05-05T21:35:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/final-1-2-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2023\\\/05\\\/final-1-2-scaled.jpg\",\"width\":2560,\"height\":2560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/space-laser\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Space Laser\"}]},{\"@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\\\/7491e54afbe5e7fd53467fccb9c7ce44\",\"name\":\"gdhwsw2\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g\",\"caption\":\"gdhwsw2\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/gdhwsw2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Space Laser - 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\/space-laser\/","og_locale":"es_ES","og_type":"article","og_title":"Space Laser - Proyectos con Arduino.","og_description":"Autores Idea y planteamiento Partimos de una idea sobre un proyecto ante todo l\u00fadico. Un proyecto que divirtiera y fuera entretenido de ver y ejecutar. Como primera impresi\u00f3n, rond\u00e1bamos la idea de ingeniar un&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2023-05-05T21:35:12+00:00","article_modified_time":"2023-05-05T21:35:13+00:00","og_image":[{"width":2560,"height":2560,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg","type":"image\/jpeg"}],"author":"gdhwsw2","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"gdhwsw2","Tiempo de lectura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/"},"author":{"name":"gdhwsw2","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/7491e54afbe5e7fd53467fccb9c7ce44"},"headline":"Space Laser","datePublished":"2023-05-05T21:35:12+00:00","dateModified":"2023-05-05T21:35:13+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/"},"wordCount":1677,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/","name":"Space Laser - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg","datePublished":"2023-05-05T21:35:12+00:00","dateModified":"2023-05-05T21:35:13+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2023\/05\/final-1-2-scaled.jpg","width":2560,"height":2560},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/space-laser\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Space Laser"}]},{"@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\/7491e54afbe5e7fd53467fccb9c7ce44","name":"gdhwsw2","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed762cea3155134adfbecf1780d8a40c0fe5e4b642859a56b3a2b3611a1ca73a?s=96&d=mm&r=g","caption":"gdhwsw2"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/gdhwsw2\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6441","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=6441"}],"version-history":[{"count":45,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6441\/revisions"}],"predecessor-version":[{"id":6669,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6441\/revisions\/6669"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/6657"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=6441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=6441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=6441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}