{"id":8612,"date":"2024-05-08T21:39:46","date_gmt":"2024-05-08T19:39:46","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=8612"},"modified":"2024-05-08T21:44:18","modified_gmt":"2024-05-08T19:44:18","slug":"consola-arcade","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/","title":{"rendered":"Consola Arcade"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg\" alt=\"\" class=\"wp-image-8711\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-1536x2048.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>GRUPO 19<\/strong><\/p>\n\n\n\n<p>Formado por los integrantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Miguel Regato Herrero<\/li>\n\n\n\n<li>Alberto Jes\u00fas Garc\u00eda Guerra<\/li>\n<\/ul>\n\n\n\n<p><strong>\u00cdNDICE<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Introducci\u00f3n<\/li>\n\n\n\n<li>Componentes hardware<\/li>\n\n\n\n<li>Coste<\/li>\n\n\n\n<li>Circuito<\/li>\n\n\n\n<li>C\u00f3digo<\/li>\n\n\n\n<li>Pasos seguidos <\/li>\n\n\n\n<li>Problemas durante la realizaci\u00f3n<\/li>\n\n\n\n<li>Demostraci\u00f3n<\/li>\n\n\n\n<li>Conclusi\u00f3n<\/li>\n<\/ol>\n\n\n\n<p>1.<strong> INTRODUCCI\u00d3N<\/strong><\/p>\n\n\n\n<p>En este proyecto, hemos desarrollado una m\u00e1quina arcade con varios minijuegos, dise\u00f1ada para ofrecer diversi\u00f3n y entretenimiento tanto para jugar solo como en compa\u00f1\u00eda de amigos. Adem\u00e1s, gracias a su caja, es port\u00e1til, lo que permite llevar la diversi\u00f3n a cualquier lugar. A lo largo de este post detallaremos el proceso de dise\u00f1o, construcci\u00f3n y programaci\u00f3n, as\u00ed como los diferentes minijuegos que incluye y las tecnolog\u00edas utilizadas para su desarrollo, incluyendo hardware y software.<\/p>\n\n\n\n<p>      2. <strong>COMPONENTES HARDWARE<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pantalla<\/li>\n\n\n\n<li>Joystick<\/li>\n\n\n\n<li>Botones LED arcade<\/li>\n\n\n\n<li>Buzzer<\/li>\n\n\n\n<li>Arduino Uno<\/li>\n\n\n\n<li>Protoboard<\/li>\n\n\n\n<li>Pila 9V<\/li>\n\n\n\n<li>Cables y resistencias<\/li>\n\n\n\n<li>Caja de pl\u00e1stico<\/li>\n\n\n\n<li>Terminales faston hembra<\/li>\n<\/ul>\n\n\n\n<p>      3. <strong>COSTE<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>COMPONENTES<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>PRECIO<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Arduino Uno<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Protoboard<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Joystick<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Buzzer<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cables y resistencias<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Pantalla LCD con I2C<\/td><td class=\"has-text-align-center\" data-align=\"center\">3.82\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Botones LED arcade<\/td><td class=\"has-text-align-center\" data-align=\"center\">11.99\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Caja de pl\u00e1stico<\/td><td class=\"has-text-align-center\" data-align=\"center\">3.6\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Terminales faston hembra<\/td><td class=\"has-text-align-center\" data-align=\"center\">2.5\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Pintura y materiales para el montaje<\/td><td class=\"has-text-align-center\" data-align=\"center\">0\u20ac<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>TOTAL<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">21.91\u20ac<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>      4. <strong>CIRCUITO<\/strong><\/p>\n\n\n\n<p>A continuaci\u00f3n, se mostrar\u00e1 un diagrama de la conexi\u00f3n de los componentes. Es importante tener en cuenta que, debido a las limitaciones de la herramienta, los botones LED y el joystick se representar\u00e1n de manera simplificada. En el diagrama, los botones se muestran separados por un LED y un bot\u00f3n cada uno, aunque en el componente real estos estar\u00e1n unidos. En cuanto al joystick, se ha insertado un componente negro redondo para simular su utilizaci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"607\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad-1024x607.jpg\" alt=\"\" class=\"wp-image-8736\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad-1024x607.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad-300x178.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad-768x455.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad-1536x910.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/tinkercad.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Circuito con los componentes<\/figcaption><\/figure>\n<\/div>\n\n\n<p>5. <strong>C\u00d3DIGO<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Wire.h&gt;\n#include &lt;LiquidCrystal_I2C.h&gt;\nLiquidCrystal_I2C lcd(0x27, 20, 4); \/\/ Inicializaci\u00f3n de la pantalla LED\n\n\/\/ Definir los pines para el joystick, los botones y el zumbador\nconst int pinJoystickX = A0;\nconst int pinJoystickY = A1;\nconst int pinBotonAmarillo = 2; \/\/ Bot\u00f3n amarillo\nconst int pinBotonVerde = 3;  \/\/ Bot\u00f3n verde\nconst int pinBotonRojo = 4;    \/\/ Bot\u00f3n rojo\nconst int pinBotonAzul = 5;   \/\/ Bot\u00f3n azul\nconst int pinBuzzer = 6;       \/\/ Zumbador\nconst int pinLedAmarillo = 7;    \/\/ Led amarillo\nconst int pinLedVerde = 8;     \/\/ Led verde\nconst int pinLedRojo = 9;       \/\/ Led rojo\nconst int pinLedAzul = 10;     \/\/ Led azul\n\/\/ Melod\u00eda perdedor\nconst int melodia&#091;] = {262, 196, 196, 220, 196, 0, 247, 262};\nconst int duracionNotas&#091;] = {4, 8, 8, 4, 4, 4, 4, 4};\n\/\/ Nivel m\u00e1ximo Sim\u00f3n Dice\nconst int NIVEL_MAX = 33;\n\nint nivelActual = 1; \/\/ Variable para mantener el estado del juego actual\nint secuencia&#091;NIVEL_MAX];\nint secuenciaUsuario&#091;NIVEL_MAX];\n\nvoid setup()\n{\n  \/\/ Inicializar la pantalla LCD\n  lcd.init();\n  lcd.backlight();\n  delay(100);\n  \/\/ Mostrar mensaje de bienvenida\n  lcd.setCursor(0, 0);\n  lcd.print(\"Bienvenido\");\n  delay(1000);\n  lcd.clear();\n  \/\/ Mostrar el juego 1 como predeterminado\n  lcd.setCursor(0, 0);\n  lcd.print(\"Escoge juego...\");\n  lcd.setCursor(0, 1);\n  lcd.print(\"Simon dice\");\n\n  \/\/ Configurar los botones y el zumbador como entrada\/salida\n  pinMode(pinBotonAmarillo, INPUT_PULLUP);\n  pinMode(pinBotonVerde, INPUT_PULLUP);\n  pinMode(pinBotonRojo, INPUT_PULLUP);\n  pinMode(pinBotonAzul, INPUT_PULLUP);\n  pinMode(pinBuzzer, OUTPUT);\n  pinMode(pinLedAmarillo, OUTPUT);\n  pinMode(pinLedVerde, OUTPUT);\n  pinMode(pinLedRojo, OUTPUT);\n  pinMode(pinLedAzul, OUTPUT);\n}\n\nvoid loop()\n{\n  \/\/ Esperar a que el usuario mueva el joystick o presione un bot\u00f3n\n  while (true)\n  {\n    digitalWrite(pinLedAmarillo, HIGH);\n    int valY = analogRead(pinJoystickY);\n    int estadoBotonAmarillo = digitalRead(pinBotonAmarillo);\n\n    \/\/ Si se presiona el bot\u00f3n amarillo, entrar al men\u00fa del juego actual\n    if (estadoBotonAmarillo == LOW)\n    {\n      entraJuego();\n      break;\n    }\n\n    \/\/ Si el joystick se mueve hacia amarillo, pasar al siguiente juego\n    if (valY &gt; 800)\n    {\n      nivelActual = (nivelActual % 3) + 1; \/\/ Cambiar al siguiente juego (1, 2 o 3)\n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(\"Escoge juego...\");\n      lcd.setCursor(0, 1);\n      lcd.print(nombreJuego(nivelActual));\n      \/\/ break;\n    }\n    \/\/ Si el joystick se mueve hacia arriba, pasar al juego anterior\n    if (valY &lt; 200)\n    {\n      nivelActual = (nivelActual - 2 + 3) % 3 + 1; \/\/ Cambiar al juego anterior (1, 2 o 3)\n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(\"Escoge juego...\");\n      lcd.setCursor(0, 1);\n      lcd.print(nombreJuego(nivelActual));\n      \/\/ break;\n    }\n    delay(200); \/\/ Peque\u00f1a pausa para evitar el rebote\n  }\n}\n\n\/\/ M\u00e9todo para obtener el nombre del juego seg\u00fan su n\u00famero\nString nombreJuego(int numeroJuego) {\n  switch (numeroJuego) {\n  case 1:\n    return \"Simon dice\";\n  case 2:\n    return \"Duelo a Reflejos\";\n  case 3:\n    return \"Adivina...\";\n  default:\n    return \"Desconocido\";\n  }\n}\n\/\/ M\u00e9todo para entrar al men\u00fa del juego actual\nvoid entraJuego() {\n  digitalWrite(pinLedAmarillo, HIGH);\n  switch (nivelActual) {\n      case 1:\n        apagarLeds();\n        playGame1();\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Escoge juego...\");\n        lcd.setCursor(0, 1);\n        lcd.print(\"Simon dice\");\n        break;\n      case 2:\n        apagarLeds();\n        playGame2();\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Escoge juego...\");\n        lcd.setCursor(0, 1);\n        lcd.print(\"Duelo a Reflejos\");\n        break;\n      case 3:\n        apagarLeds();\n        playGame3();\n        lcd.clear();\n        lcd.setCursor(0, 0);\n        lcd.print(\"Escoge juego...\");\n        lcd.setCursor(0, 1);\n        lcd.print(\"Adivina...\");\n        break;\n  }\n}\n\n\/\/ Sim\u00f3n dice\nvoid playGame1()\n{\n  int secuencia&#091;NIVEL_MAX];\n  int secuenciaUsuario&#091;NIVEL_MAX];\n  int nivel = 0;\n  int longitudSecuencia = 0; \/\/ Longitud total de la secuencia\n  lcd.clear();\n  lcd.print(\"Jugando...\");\n  while (true)\n  {\n    \/\/ Generar nueva secuencia\n    for (int i = longitudSecuencia; i &lt;= nivel; ++i)\n    {\n      secuencia&#091;i] = random(4); \/\/ Generar un n\u00famero aleatorio entre 0 y 3\n      longitudSecuencia++;\n    }\n    delay(250);\n    \/\/ Mostrar la secuencia al usuario\n    for (int i = 0; i &lt; longitudSecuencia; ++i)\n    {\n      switch (secuencia&#091;i])\n      {\n      case 0:\n        digitalWrite(pinLedAmarillo, HIGH);\n        tone(pinBuzzer, 500, 100); \/\/ Pitido breve\n        delay(1000);\n        digitalWrite(pinLedAmarillo, LOW);\n        noTone(pinBuzzer); \/\/ Detener el tono\n        break;\n      case 1:\n        digitalWrite(pinLedVerde, HIGH);\n        tone(pinBuzzer, 600, 100); \/\/ Pitido breve\n        delay(1000);\n        digitalWrite(pinLedVerde, LOW);\n        noTone(pinBuzzer); \/\/ Detener el tono\n        break;\n      case 2:\n        digitalWrite(pinLedRojo, HIGH);\n        tone(pinBuzzer, 700, 100); \/\/ Pitido breve\n        delay(1000);\n        digitalWrite(pinLedRojo, LOW);\n        noTone(pinBuzzer); \/\/ Detener el tono\n        break;\n      case 3:\n        digitalWrite(pinLedAzul, HIGH);\n        tone(pinBuzzer, 800, 100); \/\/ Pitido breve\n        delay(1000);\n        digitalWrite(pinLedAzul, LOW);\n        noTone(pinBuzzer); \/\/ Detener el tono\n        break;\n      }\n      delay(500); \/\/ Esperar medio segundo antes de mostrar el siguiente LED\n    }\n\n    \/\/ Esperar un tiempo antes de que el usuario ingrese la secuencia\n    delay(100);\n\n    \/\/ Leer la secuencia del usuario\n    for (int i = 0; i &lt; longitudSecuencia; ++i)\n    {\n      while (true)\n      {\n        bool botonPresionado = false;\n        if (digitalRead(pinBotonAmarillo) == LOW)\n        {\n          secuenciaUsuario&#091;i] = 0;\n          digitalWrite(pinLedAmarillo, HIGH);\n          tone(pinBuzzer, 500, 100); \/\/ Pitido breve\n          delay(200);\n          digitalWrite(pinLedAmarillo, LOW);\n          noTone(pinBuzzer); \/\/ Detener el tono\n          botonPresionado = true;\n        }\n        else if (digitalRead(pinBotonVerde) == LOW)\n        {\n          secuenciaUsuario&#091;i] = 1;\n          digitalWrite(pinLedVerde, HIGH);\n          tone(pinBuzzer, 600, 100); \/\/ Pitido breve\n          delay(200);\n          digitalWrite(pinLedVerde, LOW);\n          noTone(pinBuzzer); \/\/ Detener el tono\n          botonPresionado = true;\n        }\n        else if (digitalRead(pinBotonRojo) == LOW)\n        {\n          secuenciaUsuario&#091;i] = 2;\n          digitalWrite(pinLedRojo, HIGH);\n          tone(pinBuzzer, 700, 100); \/\/ Pitido breve\n          delay(200);\n          digitalWrite(pinLedRojo, LOW);\n          noTone(pinBuzzer); \/\/ Detener el tono\n          botonPresionado = true;\n        }\n        else if (digitalRead(pinBotonAzul) == LOW)\n        {\n          secuenciaUsuario&#091;i] = 3;\n          digitalWrite(pinLedAzul, HIGH);\n          tone(pinBuzzer, 800, 100); \/\/ Pitido breve\n          delay(200);\n          digitalWrite(pinLedAzul, LOW);\n          noTone(pinBuzzer); \/\/ Detener el tono\n          botonPresionado = true;\n        }\n        \/\/ Esperar a que el bot\u00f3n se suelte completamente\n        while (botonPresionado &amp;&amp; (digitalRead(pinBotonAmarillo) == LOW || digitalRead(pinBotonVerde) == LOW ||\n                                   digitalRead(pinBotonRojo) == LOW || digitalRead(pinBotonAzul) == LOW))\n          ;\n        if (botonPresionado)\n          break; \/\/ Si el bot\u00f3n ha sido presionado, salir del bucle\n      }\n    }\n\n    \/\/ Verificar la secuencia\n    bool secuenciaCorrecta = true;\n    for (int i = 0; i &lt; longitudSecuencia; ++i)\n    {\n      if (secuencia&#091;i] != secuenciaUsuario&#091;i])\n      {\n        secuenciaCorrecta = false;\n        break;\n      }\n    }\n\n    if (secuenciaCorrecta)\n    {\n      nivel++;\n    }\n    else\n    {\n      \/\/ \u00a1Has perdido!\n      encenderLeds();\n      lcd.clear();\n      lcd.print(\"Has perdido!!\");\n      lcd.setCursor(0, 1);\n      lcd.print(\"Total: \" + String(nivel) + \" rondas\");\n      lcd.setCursor(0, 0);\n      delay(1000);\n      reproducirMelodia(); \/\/ Reproducir la melod\u00eda de la derrota\n      delay(2000);\n      lcd.clear();\n      lcd.write(\"Volviendo...\");\n      apagarLeds();\n      return;\n    }\n  }\n}\n\nvoid reproducirMelodia()\n{\n  for (int i = 0; i &lt; 8; i++)\n  {\n    int duracionNota = 1000 \/ duracionNotas&#091;i];\n    tone(pinBuzzer, melodia&#091;i], duracionNotas);\n    int pausaEntreNotas = duracionNota * 1.30;\n    delay(pausaEntreNotas);\n    noTone(pinBuzzer);\n  }\n}\n\n\/\/ Duelo de reflejos\nvoid playGame2() {\n  lcd.clear();\n  lcd.print(\"Preparados...\");\n  delay(1000);\n  bool game_over = false;\n  int botonAzul = digitalRead(pinBotonAzul);\n  int botonVerde = digitalRead(pinBotonVerde);\n  digitalWrite(pinLedAzul, LOW); \/\/ apagamos ledes de jugadores\n  digitalWrite(pinLedVerde, LOW);\n  digitalWrite(pinLedRojo, HIGH); \/\/ Encendemos el led de salida\n  delay(random(5000) + 1000);    \/\/ Tiempo aleatorio entre 1 y 10 segundos\n  lcd.clear();\n  digitalWrite(pinLedRojo, LOW); \/\/ Pistoletazo de salida\n  lcd.print(\"Adelante\");\n  digitalWrite(pinLedAmarillo, HIGH);\n  while (!game_over) {\n    if ((digitalRead(pinBotonAzul) == LOW) &amp;&amp; (!game_over)) { \/\/ Jugador 1 gana\n      digitalWrite(pinLedAzul, HIGH);\n      lcd.clear();\n      lcd.print(\"Gana Azul\");\n      tone(pinBuzzer, 800, 100); \/\/ Pitido breve\n      delay(200);\n      noTone(pinBuzzer); \/\/ Detener el tono\n      game_over = true;\n    }\n    if ((digitalRead(pinBotonVerde) == LOW) &amp;&amp; (!game_over)) { \/\/ Jugador 2 gana\n      digitalWrite(pinLedVerde, HIGH);\n      lcd.clear();\n      lcd.print(\"Gana verde\");\n      tone(pinBuzzer, 600, 100); \/\/ Pitido breve\n      delay(200);\n      noTone(pinBuzzer); \/\/ Detener el tono\n      game_over = true;\n    }\n  }\n  digitalWrite(pinLedAmarillo, LOW);\n  victoria();\n  delay(3000);\n  apagarLeds();\n  lcd.clear();\n  delay(1000);\n}\n\n\/\/ Adivina el n\u00famero\nvoid playGame3()\n{\n  lcd.clear();\n  lcd.print(\"Cargando...\");\n  delay(1000);\n  lcd.clear();\n  randomSeed(analogRead(0));\n  int numeroAdivinar = random(1, 11);\n  int numeroSeleccionado = 1;\n  bool acabarJuego = false;\n  int intentosRestantes = 5;\n  while (!acabarJuego &amp;&amp; intentosRestantes &gt; 0)\n  {\n    int valY = analogRead(pinJoystickY);\n    int estadoBotonAmarillo = digitalRead(pinBotonAmarillo);\n    lcd.clear();\n    lcd.setCursor(0, 0);\n    lcd.print(\"Tu numero: \");\n    lcd.setCursor(0, 1);\n    lcd.print(numeroSeleccionado);\n    digitalWrite(pinLedAmarillo, HIGH);\n    if ((valY &gt; 800) &amp;&amp; (numeroSeleccionado &gt; 1))\n    {\n      numeroSeleccionado--;\n    }\n    if ((valY &lt; 350) &amp;&amp; (numeroSeleccionado &lt; 10))\n    {\n      numeroSeleccionado++;\n    }\n\n    if (estadoBotonAmarillo == LOW)\n    {\n      lcd.clear();\n      lcd.setCursor(0, 0);\n      if (numeroSeleccionado == numeroAdivinar)\n      {\n        lcd.print(\"Enhorabuena\");\n        acabarJuego = true;\n      }\n      else\n      {\n        lcd.print(\"Incorrecto\");\n        intentosRestantes--;\n        if (intentosRestantes &gt; 0)\n        {\n          lcd.setCursor(0, 1);\n          if (numeroSeleccionado &gt; numeroAdivinar)\n          {\n            lcd.print(\"Es menor que \" + String(numeroSeleccionado));\n          }\n          else\n          {\n            lcd.print(\"Es mayor que \" + String(numeroSeleccionado));\n          }\n        }\n      }\n      delay(1000);\n    }\n    delay(200);\n  }\n  \/\/ Encender todos los leds para indicar el Fin del juego\n  encenderLeds();\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  if (intentosRestantes == 0)\n  {\n    lcd.print(\"Has perdido!!\");\n    reproducirMelodia();\n  }\n  else\n  {\n    lcd.print(\"Has ganado!!!\");\n    victoria();\n  }\n  delay(2000);\n  apagarLeds();\n  lcd.clear();\n  return;\n}\n\nvoid encenderLeds()\n{\n  digitalWrite(pinLedAzul, HIGH);\n  digitalWrite(pinLedVerde, HIGH);\n  digitalWrite(pinLedRojo, HIGH);\n  digitalWrite(pinLedAmarillo, HIGH);\n}\n\nvoid apagarLeds()\n{\n  digitalWrite(pinLedAzul, LOW);\n  digitalWrite(pinLedVerde, LOW);\n  digitalWrite(pinLedRojo, LOW);\n  digitalWrite(pinLedAmarillo, LOW);\n}\n\nvoid victoria()\n{\n  tone(pinBuzzer, 800, 100);\n  delay(200);\n  noTone(pinBuzzer);\n  tone(pinBuzzer, 800, 100);\n  delay(200);\n  noTone(pinBuzzer);\n  tone(pinBuzzer, 800, 100);\n  delay(200);\n  noTone(pinBuzzer);\n  tone(pinBuzzer, 800, 100);\n  delay(200);\n  noTone(pinBuzzer);\n}\n<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\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=\"Codigo proyecto arduino G19\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/fX9hiBCuBOE?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<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>6. <strong>PASOS SEGUIDOS<\/strong><\/p>\n\n\n\n<p>1. Planificar el proyecto<\/p>\n\n\n\n<p>En primer lugar, decidimos planificar c\u00f3mo quer\u00edamos que fuera el proyecto. Esto implicaba seleccionar qu\u00e9 minijuegos quer\u00edamos incluir y dise\u00f1ar la estructura de la caja que simular\u00eda ser la consola.<\/p>\n\n\n\n<p>2. Prueba de juegos a implementar<\/p>\n\n\n\n<p>Antes de comenzar con el proyecto en s\u00ed, decidimos emular los minijuegos que la consola iba a incluir. Esto nos permitir\u00eda verificar cual iba a ser la funcionalidad y determinar los componentes de hardware finales que necesitar\u00edamos. Esta fase inicial nos ayud\u00f3 a probar diferentes enfoques y mec\u00e1nicas de juego, as\u00ed como de identificar cualquier problema que pudiera surgir durante el desarrollo, adem\u00e1s de los componentes hardware necesarios para obtener los resultados deseados.<\/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\/2024\/05\/PruebaSimonDice-1-1024x768.jpg\" alt=\"\" class=\"wp-image-8697\" style=\"width:419px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/PruebaSimonDice-1-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/PruebaSimonDice-1-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/PruebaSimonDice-1-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/PruebaSimonDice-1-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/PruebaSimonDice-1-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Prueba juego Sim\u00f3n Dice<\/figcaption><\/figure>\n<\/div>\n\n\n<p>3. Fabricaci\u00f3n de la caja<\/p>\n\n\n\n<p><br>Para la realizaci\u00f3n de la consola, decidimos utilizar una caja de pl\u00e1stico, ya que nos ofrec\u00eda la posibilidad de abrirse para poder ocultar todo el hardware en su interior. Despu\u00e9s de seleccionar la caja adecuada, procedimos a pintarla y crear los agujeros necesarios para poder insertar todos 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\/2024\/05\/caja-1024x768.jpg\" alt=\"\" class=\"wp-image-8702\" style=\"width:345px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/caja-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/caja-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/caja-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/caja-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/caja-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Caja antes del proceso de fabricaci\u00f3n<\/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\/2024\/05\/cajaAntesDeCortar-1024x768.jpg\" alt=\"\" class=\"wp-image-8703\" style=\"width:344px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaAntesDeCortar-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaAntesDeCortar-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaAntesDeCortar-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaAntesDeCortar-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaAntesDeCortar-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Marcas para cortar la tapa<\/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=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-768x1024.jpg\" alt=\"\" class=\"wp-image-8704\" style=\"width:343px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-1536x2048.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaCortada-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Agujeros para los componentes<\/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=\"576\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-1024x576.jpg\" alt=\"\" class=\"wp-image-8705\" style=\"width:343px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-1024x576.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-1536x864.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaSecando-2048x1152.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Primera capa de pintura<\/figcaption><\/figure>\n<\/div>\n\n\n<p>4. Compra de componentes<\/p>\n\n\n\n<p>Una vez que tuvimos la caja preparada y conoc\u00edamos todos los componentes hardware necesarios, procedimos a comprarlos. Entre los componentes adquiridos se encontraban: una pantalla con adaptador que nos permit\u00eda utilizar menos pines de la placa de Arduino, botones con iluminaci\u00f3n LED y terminales faston hembra que nos facilitaban la conexi\u00f3n de estos botones a la placa evitando que los cables se soltaran.<\/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\/2024\/05\/botonesLED-1024x768.jpg\" alt=\"\" class=\"wp-image-8708\" style=\"width:336px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/botonesLED-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/botonesLED-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/botonesLED-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/botonesLED-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/botonesLED-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Botones LED arcade<\/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=\"576\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-1024x576.jpg\" alt=\"\" class=\"wp-image-8709\" style=\"width:338px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-1024x576.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-300x169.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-768x432.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-1536x864.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/nuevaPantalla-rotated.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Pantalla LCD con adaptador<\/figcaption><\/figure>\n<\/div>\n\n\n<p>5. Montaje componentes<\/p>\n\n\n\n<p><br>Una vez que los componentes llegaron, procedimos a montarlos en la caja de la consola. Durante este proceso, verificamos que todos los cables estuvieran correctamente conectados y que no hubiera posibilidad de cortocircuitos.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-768x1024.jpg\" alt=\"\" class=\"wp-image-8710\" style=\"width:334px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-1536x2048.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cajaPorDentro-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Montaje de botones y pantalla<\/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\/2024\/05\/cableado-1024x768.jpg\" alt=\"\" class=\"wp-image-8713\" style=\"width:337px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cableado-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cableado-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cableado-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cableado-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/cableado-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Cableado de todos los componentes<\/figcaption><\/figure>\n<\/div>\n\n\n<p>6. Implementaci\u00f3n de los juegos<\/p>\n\n\n\n<p>Una vez confirmamos que todos los componentes funcionaban correctamente, procedimos a implementar el c\u00f3digo de la consola.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg\" alt=\"\" class=\"wp-image-8711\" style=\"width:322px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-225x300.jpg 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-1152x1536.jpg 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-1536x2048.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Todos los componentes funcionando<\/figcaption><\/figure>\n<\/div>\n\n\n<p>7. <strong>PROBLEMAS DURANTE LA REALIZACI\u00d3N<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u00famero de pines de la placa Arduino Uno: Al contar con un n\u00famero limitado de pines en la placa de Arduino y teniendo en cuenta que la pantalla LCD ocupaba la mayor\u00eda de ellos, ten\u00edamos un problema de espacio para conectar los dem\u00e1s componentes de la consola. Para resolver este problema, decidimos comprar otra pantalla LCD id\u00e9ntica, pero esta vez con un adaptador I2C que reduc\u00eda a dos la cantidad de pines necesarios para su conexi\u00f3n a la placa, lo que nos permiti\u00f3 liberar un n\u00famero importante de pines para conectar el resto de componentes de la consola.<\/li>\n\n\n\n<li>Conexi\u00f3n de los cables y botones: En varias ocasiones, ocurrieron desconexiones debido a la forma de los propios cables, los cuales tend\u00edan a salirse de los pines de la placa de Arduino, especialmente cuando la consola estaba en movimiento. Esto provocaba que algunos componentes dejaran de funcionar temporalmente. Adem\u00e1s, los botones ten\u00edan un m\u00e9todo de conexi\u00f3n diferente a los dem\u00e1s componentes que dificultaba la conexi\u00f3n con los cables, complicando a\u00fan m\u00e1s el proceso de montaje. Para solucionar este problema, decidimos adquirir terminales faston hembra. Estos terminales proporcionaron una conexi\u00f3n mucho m\u00e1s segura y estable, garantizando que los cables permanecieran correctamente conectados incluso cuando la consola estaba en movimiento.<\/li>\n\n\n\n<li>Pintura y tama\u00f1o de los agujeros: Dado que no somos expertos en manualidades, al hacer los agujeros encontramos dificultades y estos quedaron un poco irregulares, ya que no ten\u00edamos los materiales adecuados para su elaboraci\u00f3n. Por otra parte, la pintura no se adher\u00eda correctamente al pl\u00e1stico, por lo que se desprend\u00eda f\u00e1cilmente, lo que nos oblig\u00f3 a aplicar varias capas adicionales para lograr el acabado deseado.<\/li>\n\n\n\n<li>Delay botones: En el juego del Sim\u00f3n Dice, nos dimos cuenta de que una vez que detectaba que se pulsaba un bot\u00f3n, no daba tiempo suficiente para que el usuario levantara el dedo y dejara de pulsar el bot\u00f3n. Esto provocaba que esa misma pulsaci\u00f3n se registrara como una entrada para la siguiente ronda del juego, lo que generaba un mal funcionamiento en el flujo correcto del juego. Para solucionar este problema, tuvimos que a\u00f1adir un fragmento de c\u00f3digo que esperara a que el usuario dejara de pulsar el bot\u00f3n antes de continuar con la ejecuci\u00f3n normal del juego. De esta manera, aseguramos que cada pulsaci\u00f3n se registrara correctamente y que el juego funcionara seg\u00fan lo esperado.<\/li>\n\n\n\n<li>Delay joystick: Para utilizar el joystick, es necesario crear bucles que est\u00e9n constantemente leyendo su estado para comprobar si se ha movido. Sin embargo, estos bucles deben incluir un retraso entre cada iteraci\u00f3n. De lo contrario, se ejecutar\u00edan tan r\u00e1pidamente que un solo movimiento del joystick ser\u00eda detectado m\u00faltiples veces, lo que har\u00eda que fuera muy dif\u00edcil de controlar. El problema con esta soluci\u00f3n es que, durante este retraso, el proceso de ejecuci\u00f3n se detiene. Por lo tanto, si mueves el joystick o pulsas un bot\u00f3n en ese momento, el sistema no lo detectar\u00e1. Para solucionar esto, hemos introducido un valor de retraso lo suficientemente grande como para minimizar la probabilidad de que el sistema est\u00e9 detenido cuando se realice alguna acci\u00f3n. Sin embargo, este valor no debe ser tan grande como para que la detecci\u00f3n de los movimientos del joystick deje de ser precisa y cuente varios cambios como un solo movimiento del joystick.<\/li>\n<\/ul>\n\n\n\n<p>8. <strong>DEMOSTRACI\u00d3N<\/strong><\/p>\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=\"Explicaci\u00f3n juego Arcade SEyTR G19\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/D84YaaeEGj8?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<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>9. <strong>CONCLUSI\u00d3N<\/strong><\/p>\n\n\n\n<p>Tras la finalizaci\u00f3n del proyecto, nos sentimos muy satisfechos con el resultado. Inicialmente, ninguno de los dos ten\u00eda conocimientos previos sobre Arduino, pero a lo largo de este proyecto hemos aprendido much\u00edsimo. Esto nos ha hecho darnos cuenta de la infinidad de posibilidades que ofrece este \u00e1rea por lo que nos encantar\u00eda seguir aprendiendo y continuar realizando proyectos por nuestra cuenta. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>GRUPO 19 Formado por los integrantes: \u00cdNDICE 1. INTRODUCCI\u00d3N En este proyecto, hemos desarrollado una m\u00e1quina arcade con varios minijuegos, dise\u00f1ada para ofrecer diversi\u00f3n y entretenimiento tanto para jugar solo como en compa\u00f1\u00eda de&#46;&#46;&#46;<\/p>\n","protected":false},"author":213,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8612","post","type-post","status-publish","format-standard","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>Consola Arcade - 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\/consola-arcade\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Consola Arcade - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"GRUPO 19 Formado por los integrantes: \u00cdNDICE 1. INTRODUCCI\u00d3N En este proyecto, hemos desarrollado una m\u00e1quina arcade con varios minijuegos, dise\u00f1ada para ofrecer diversi\u00f3n y entretenimiento tanto para jugar solo como en compa\u00f1\u00eda de&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-08T19:39:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-08T19:44:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg\" \/>\n<meta name=\"author\" content=\"dsemo2324g19\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dsemo2324g19\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 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\\\/consola-arcade\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/\"},\"author\":{\"name\":\"dsemo2324g19\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/7b1cd9490f17bdab277a5e33f0d3def2\"},\"headline\":\"Consola Arcade\",\"datePublished\":\"2024-05-08T19:39:46+00:00\",\"dateModified\":\"2024-05-08T19:44:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/\"},\"wordCount\":1301,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/pantallaNueva-768x1024.jpg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/\",\"name\":\"Consola Arcade - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/pantallaNueva-768x1024.jpg\",\"datePublished\":\"2024-05-08T19:39:46+00:00\",\"dateModified\":\"2024-05-08T19:44:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/pantallaNueva-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/05\\\/pantallaNueva-scaled.jpg\",\"width\":1920,\"height\":2560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/consola-arcade\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Consola Arcade\"}]},{\"@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\\\/7b1cd9490f17bdab277a5e33f0d3def2\",\"name\":\"dsemo2324g19\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g\",\"caption\":\"dsemo2324g19\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dsemo2324g19\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Consola Arcade - 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\/consola-arcade\/","og_locale":"es_ES","og_type":"article","og_title":"Consola Arcade - Proyectos con Arduino.","og_description":"GRUPO 19 Formado por los integrantes: \u00cdNDICE 1. INTRODUCCI\u00d3N En este proyecto, hemos desarrollado una m\u00e1quina arcade con varios minijuegos, dise\u00f1ada para ofrecer diversi\u00f3n y entretenimiento tanto para jugar solo como en compa\u00f1\u00eda de&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2024-05-08T19:39:46+00:00","article_modified_time":"2024-05-08T19:44:18+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg","type":"","width":"","height":""}],"author":"dsemo2324g19","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dsemo2324g19","Tiempo de lectura":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/"},"author":{"name":"dsemo2324g19","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/7b1cd9490f17bdab277a5e33f0d3def2"},"headline":"Consola Arcade","datePublished":"2024-05-08T19:39:46+00:00","dateModified":"2024-05-08T19:44:18+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/"},"wordCount":1301,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/","name":"Consola Arcade - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-768x1024.jpg","datePublished":"2024-05-08T19:39:46+00:00","dateModified":"2024-05-08T19:44:18+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-scaled.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/05\/pantallaNueva-scaled.jpg","width":1920,"height":2560},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/consola-arcade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Consola Arcade"}]},{"@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\/7b1cd9490f17bdab277a5e33f0d3def2","name":"dsemo2324g19","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0f96da83ee8f9371c362a694d419851cddc6a4526159afd8ce574c7ffa2ff9d8?s=96&d=mm&r=g","caption":"dsemo2324g19"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dsemo2324g19\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8612","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\/213"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=8612"}],"version-history":[{"count":59,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8612\/revisions"}],"predecessor-version":[{"id":8844,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8612\/revisions\/8844"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=8612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=8612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=8612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}