{"id":4638,"date":"2021-12-16T21:03:57","date_gmt":"2021-12-16T21:03:57","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=4638"},"modified":"2021-12-16T21:03:58","modified_gmt":"2021-12-16T21:03:58","slug":"retroboy-simonsays-console","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/","title":{"rendered":"RetroBoy: SimonSays Console"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-1024x1024.png\" alt=\"\" class=\"wp-image-4642\" width=\"543\" height=\"543\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-1024x1024.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-300x300.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-150x150.png 150w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-768x768.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-1536x1536.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-2048x2048.png 2048w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-80x80.png 80w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-320x320.png 320w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">RetroBoy: la consola de arduino<\/h2>\n\n\n\n<p class=\"has-text-align-left\">Este proyecto ha sido realizado por Tomasz Paterek del grupo 10 durante el curso 2021-2022 para la asignatura Dise\u00f1o de Sistemas Empotrados en la URJC. Consiste en el juego Sim\u00f3n Dice, programado en arduino y montado en una caja para lograr la apariencia de una consola retro.  <\/p>\n\n\n\n<h1 class=\"wp-block-heading\">HARDWARE<\/h1>\n\n\n\n<p>A continuaci\u00f3n se detalla el montaje de los componentes del proyecto en un circuito de la protoboard que conectar\u00e1 todos los componentes a la placa de arduino.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Esquema del circuito <\/h2>\n\n\n\n<p>La siguiente imagen muestra el montaje del circuito con el cual se ha desarrollado el proyecto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"443\" src=\"https:\/\/blogs.etsii.urjc.es\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software-1024x443.png\" alt=\"\" class=\"wp-image-4644\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software-1024x443.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software-300x130.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software-768x332.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software-1536x664.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/diagrama-software.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Pulsadores: <\/strong>los pulsadores se han conectado a las entradas anal\u00f3gicas de la placa de arduino para poder tomar sus valores. Estos a su vez se conectaron a la fuente de alimentaci\u00f3n de la placa y a la toma de tierra.<\/li><li><strong>Diodos LED:<\/strong> los diodos se han conectado a los pines digitales por los cuales se enviar\u00e1n las se\u00f1ales para encender y apagar los leds.<\/li><li><strong>Piezoel\u00e9ctrico: <\/strong>conectado al pin n\u00famero 7 y a la toma de tierra.<\/li><li><strong>LCD:<\/strong> se conecta al adaptador I2C para resumir su n\u00famero de pines de 16 a 4 para que as\u00ed la placa de arduino tenga pines suficientes para los dem\u00e1s componentes.<\/li><li><strong>Adaptador I2C:<\/strong> VCC y GND se conectan a sus respectivos pines de la placa de arduino y los pines SDA y SCL a los pines A4 y A5 de arduino.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Materiales<\/h2>\n\n\n\n<p>Para el montaje se han necesitado los siguientes materiales:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><tbody><tr><td>Componente<\/td><td>Precio<\/td><td>Cantidad<\/td><\/tr><tr><td>Placa Arduino Uno<\/td><td>&#8211;<\/td><td>1<\/td><\/tr><tr><td>LCD 16&#215;2<\/td><td>&#8211;<\/td><td>1<\/td><\/tr><tr><td>Adaptador LCD I2C<\/td><td>3,50\u20ac<\/td><td>1<\/td><\/tr><tr><td>Diodos LED<\/td><td>&#8211;<\/td><td>4<\/td><\/tr><tr><td>Pulsadores<\/td><td>11,20\u20ac<\/td><td>4<\/td><\/tr><tr><td>Protoboard<\/td><td>&#8211;<\/td><td>1<\/td><\/tr><tr><td>Resistencias 1K<\/td><td>&#8211;<\/td><td>8<\/td><\/tr><tr><td>Piezoel\u00e9ctrico<\/td><td>&#8211;<\/td><td>1<\/td><\/tr><tr><td>Caja<\/td><td>&#8211;<\/td><td>1<\/td><\/tr><tr><td>Cables<\/td><td>&#8211;<\/td><td>36<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Solo aparecen los precios de los componentes que se han comprado individualmente. Los dem\u00e1s componentes han sido proporcionados por la universidad.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">SOFTWARE<\/h1>\n\n\n\n<p>En este apartado se explica el funcionamiento del c\u00f3digo del proyecto con el cual se ha podido implementar las funcionalidades del juego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Funcionamiento<\/h2>\n\n\n\n<p>En primer lugar se ha planteado la filosof\u00eda del programa que deber\u00eda de seguir para su correcto funcionamiento. Despu\u00e9s de varios prototipos iniciales se ha decidido implementar todos los elementos del programa de la siguiente manera:<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Funci\u00f3n <em>loop<\/em><\/h5>\n\n\n\n<p>La funci\u00f3n principal del programa consiste en sentencias de control que comprueban el estado en el cual se encuentra RetroBoy. Se verifica si el jugador a empezado una partida y comienza el juego, en caso contrario aparece un mensaje de bienvenida y se pide que el jugador comience el juego, seleccionando el nivel de dificultad deseado.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Comienzo de la partida<\/h5>\n\n\n\n<p>Una vez se ha seleccionado el nivel de dificultad, se llama a la funci\u00f3n encargada de generar la secuencia de colores correspondientes. Esta secuencia se guarda en un array para posteriormente utilizarla para comprobar si la secuencia introducida por el jugador es correcta. A medida que va avanzando el juego, se van guardando los colores pulsados por el usuario y se comprueba si se corresponden con la secuencia que se gener\u00f3 antes de comenzar la partida. Si es as\u00ed la partida contin\u00faa hasta que el jugador consiga alcanzar el \u00faltimo nivel o introduzca una secuencia incorrecta. En ese caso la partida termina ense\u00f1ando la puntuaci\u00f3n conseguida y suena la melod\u00eda de victoria. En el caso contrario, si el jugador en cualquier momento pulsa un color que no se corresponde con la secuencia, la partida finaliza mostrando un <em>game over<\/em>. Independientemente del resultado, la consola vuelve al estado principal, es decir, vuelve a aparecer la pantalla de inicio para que el jugador comience una nueva partida.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Informaci\u00f3n acerca del adaptador<\/h5>\n\n\n\n<p>Para este proyecto se ha utilizado la librer\u00eda NewLiquidCrystal que no est\u00e1 integrada por defecto en el programa de arduino. Para poder descargar esta librer\u00eda se ha usado el siguiente <a href=\"https:\/\/github.com\/fmalpartida\/New-LiquidCrystal\">enlace<\/a> de un repositorio de Github y se ha implementado manualmente en la carpeta de librerias de arduino.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Demonstraci\u00f3n del funcionamiento<\/h2>\n\n\n\n<p>Por \u00faltimo se presenta una breve demonstraci\u00f3n del funcionamiento del proyecto. Para esta demo se muestra el proceso del arranque de la consola, la elecci\u00f3n de un nivel de dificultad y el transcurso de una partida.<\/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=\"RetroBoy demo\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/twBeLuLY7Ic?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\">Documentaci\u00f3n adicional<\/h2>\n\n\n\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1mDfFXItACqS5X6QcYQ7CGR39KjxrsfJD\/view?usp=sharing\">RetroBoy Documentaci\u00f3n<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3digo fuente<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;LCD.h&gt;\n#include &lt;Wire.h&gt;\n\/\/ Para el adaptador I2C \n#include &lt;LiquidCrystal_I2C.h&gt;\n\/\/ Iniciar la pantalla lcd\nLiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);\n\/\/\n#define SPEAKER 7\n#define BUTTON_RED A0\n#define BUTTON_GREEN A2\n#define BUTTON_BLUE A1\n#define BUTTON_YELLOW A3\n#define LED_RED 6\n#define LED_GREEN 3\n#define LED_BLUE 4\n#define LED_YELLOW 5\n\nint melody_GameOver&#091;] = {262, 196, 196, 220, 196, 0, 247, 262};\nint melody_GameOverNOTES&#091;] = {4, 8, 8, 4, 4, 4, 4, 4};\nint currentLevel = 1;\nint lvlSPEED = 500;\nint levelSequencePlayer&#091;20];\nint levelSequence&#091;20];\nint levelEnd;\n\nvoid setup(){\n  game_init();\n}\n\nvoid loop(){\n  if(currentLevel == 1){\n    display_start();\n    difficultySelect();\n    display_gameStatus();\n    showLevelSequence();\n    levelSequenceCheck();\n  }\n  if(currentLevel != 1){\n    display_gameStatus();\n    showLevelSequence();\n    levelSequenceCheck();\n  }\n}\n\/\/ PLANTILLAS PARA IMPRIMIR INFO POR EL LCD\n\/\/ Comienzo de la partida\nvoid display_start(){\n  boolean start = false;\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"RetroBoy\");\n  lcd.setCursor(0,1);\n  lcd.print(\"Press R to Start\");\n  while(start == false){\n    if(digitalRead(BUTTON_RED) == LOW){\n      start = true;\n      sound_start();\n      }\n    }\n  }\n\/\/ Seleccion del nivel de dificultad\nvoid display_difficultySelection(){\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Select level\");\n  delay(3000);\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Easy-B Normal-G\");\n  lcd.setCursor(0,1);\n  lcd.print(\"Hard-Y Lunatic-R\");\n  }\n\/\/ Info sobre el nivel de dificultad seleccionado\nvoid display_difficultySelected(String difficulty){\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Selected:\");\n  lcd.setCursor(0,1);\n  lcd.print(difficulty);\n  delay(2000);\n  }\n\/\/ Nivel actual\nvoid display_gameStatus(){\n    lcd.clear();\n    lcd.setCursor(0,0);\n    lcd.print(\"Current Level:\");\n    lcd.setCursor(0,1);\n    lcd.print(currentLevel);\n  }\n\/\/ Fin de la partida GAME OVER\nvoid display_gameOverStatus(){\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(\"GAME OVER\");\n  lcd.setCursor(0, 1);\n  lcd.print(\"Final Score: \");\n  lcd.print(currentLevel);\n  }\n\/\/ Fin de la partida VICTORIA\nvoid display_gameVictoryStatus(){\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Level Completed\");\n  lcd.setCursor(0,1);\n  lcd.print(\"Final Score: \");\n  lcd.print(currentLevel);\n  }\n\/\/ Inicializacion de pines y lcd\nvoid game_init(){\n  pinMode(BUTTON_RED, INPUT);\n  pinMode(BUTTON_GREEN, INPUT);\n  pinMode(BUTTON_BLUE, INPUT);\n  pinMode(BUTTON_YELLOW, INPUT);\n  pinMode(LED_RED, OUTPUT);\n  pinMode(LED_GREEN, OUTPUT);\n  pinMode(LED_BLUE, OUTPUT);\n  pinMode(LED_YELLOW, OUTPUT);\n  int begin = 0;\n  ledsOFF();\n  lcd.begin(16,2);\n  }\n\/\/ Encender todos los LEDs\nvoid ledsON(){\n  digitalWrite(LED_RED, HIGH);\n  digitalWrite(LED_GREEN, HIGH);\n  digitalWrite(LED_BLUE, HIGH);\n  digitalWrite(LED_YELLOW, HIGH);\n  }\n\/\/ Apagar todos los LEDs\nvoid ledsOFF(){\n  digitalWrite(LED_RED, LOW);\n  digitalWrite(LED_GREEN, LOW);\n  digitalWrite(LED_BLUE, LOW);\n  digitalWrite(LED_YELLOW, LOW);\n  }\n\/\/ Seleccion de dificultad\/modo de juego\nvoid difficultySelect(){\n  ledsOFF();\n  display_difficultySelection();\n  int aux = 1;\n  while(aux == 1){\n    if(digitalRead(BUTTON_BLUE) == LOW){\n      digitalWrite(LED_BLUE, HIGH);\n      tone(SPEAKER, 500);\n      delay(300);\n      noTone(SPEAKER);\n      digitalWrite(LED_BLUE, LOW);\n      display_difficultySelected(\"Easy\");\n      levelGenerator(0);\n      aux = 0;\n      }\n      else if(digitalRead(BUTTON_GREEN) == LOW){\n      digitalWrite(LED_GREEN, HIGH);\n      tone(SPEAKER, 500);\n      delay(300);\n      noTone(SPEAKER);\n      digitalWrite(LED_GREEN, LOW);\n      display_difficultySelected(\"Normal\");\n      levelGenerator(1);\n      aux = 0;\n      }\n      else if(digitalRead(BUTTON_YELLOW) == LOW){\n      digitalWrite(LED_YELLOW, HIGH);\n      tone(SPEAKER, 500);\n      delay(300);\n      noTone(SPEAKER);\n      digitalWrite(LED_YELLOW, LOW);\n      display_difficultySelected(\"Hard\");\n      levelGenerator(2);\n      aux = 0;\n      }\n      else if(digitalRead(BUTTON_RED) == LOW){\n      digitalWrite(LED_RED, HIGH);\n      tone(SPEAKER, 500);\n      delay(300);\n      noTone(SPEAKER);\n      digitalWrite(LED_RED, LOW);\n      display_difficultySelected(\"Lunatic\");\n      levelGenerator(3);\n      aux = 0;\n      }\n    }\n  }\n\/\/ Generacion de la secuencia de Simon Dice\nvoid levelGenerator(int difficulty){\n  randomSeed(millis());\n  if(difficulty==0){\n    for(int i = 0; i &lt; 5; i++){\n    levelSequence&#091;i] = rand() % (6 + 1 - 3) + 3;\n    }\n  levelEnd = 5;\n  }\n  else if(difficulty==1){\n    for(int i = 0; i &lt; 10; i++){\n    levelSequence&#091;i] = rand() % (6 + 1 - 3) + 3;\n    }\n  levelEnd = 10;\n  }\n  else if(difficulty==2){\n    for(int i = 0; i &lt; 15; i++){\n    levelSequence&#091;i] = rand() % (6 + 1 - 3) + 3;\n    }\n  levelEnd = 15;\n  }\n  else{\n    for(int i = 0; i &lt; 20; i++){\n    levelSequence&#091;i] = rand() % (6 + 1 - 3) + 3;\n    }\n  levelEnd = 20;\n  }\n}\n\/\/ Muestra la secuencia de colores\nvoid showLevelSequence(){\n  ledsOFF();\n  for(int i = 0; i &lt; currentLevel; i++){\n    if(levelSequence&#091;i] == LED_RED){\n      tone(SPEAKER, 200);\n      delay(200);\n      noTone(SPEAKER);\n    }\n    if(levelSequence&#091;i] == LED_GREEN){\n      tone(SPEAKER, 300);\n      delay(200);\n      noTone(SPEAKER);\n    }\n    if(levelSequence&#091;i] == LED_BLUE){\n      tone(SPEAKER, 400);\n      delay(200);\n      noTone(SPEAKER);\n    }\n    if(levelSequence&#091;i] == LED_YELLOW){\n      tone(SPEAKER, 500);\n      delay(200);\n      noTone(SPEAKER);\n    }\n    digitalWrite(levelSequence&#091;i], HIGH);\n    delay(lvlSPEED);\n    digitalWrite(levelSequence&#091;i], LOW);\n    delay(200);\n    }\n}\n\/\/ Comprueba la secuencia introducida por el jugador\nvoid levelSequenceCheck(){\n  int aux = 0;\n  for(int i = 0; i &lt; currentLevel; i++){\n    aux = 0;\n    while(aux == 0){\n      if(currentLevel == levelEnd+1){\n          victory();\n          }\n      if(digitalRead(BUTTON_YELLOW) == LOW){\n        digitalWrite(LED_YELLOW, HIGH);\n        tone(SPEAKER, 500);\n        delay(300);\n        noTone(SPEAKER);\n        levelSequencePlayer&#091;i] = LED_YELLOW;\n        aux = 1;\n        delay(200);\n        if(levelSequencePlayer&#091;i] != levelSequence&#091;i]){\n          GameOver();\n          return;\n        }\n        digitalWrite(LED_YELLOW, LOW);\n      }\n      if(digitalRead(BUTTON_BLUE) == LOW){\n        digitalWrite(LED_BLUE, HIGH);\n        tone(SPEAKER, 400);\n        delay(300);\n        noTone(SPEAKER);\n        levelSequencePlayer&#091;i] = LED_BLUE;\n        aux = 1;\n        delay(200);\n        if(levelSequencePlayer&#091;i] != levelSequence&#091;i]){\n          GameOver();\n          return;\n        }\n        digitalWrite(LED_BLUE, LOW);\n      }\n      if(digitalRead(BUTTON_GREEN) == LOW){\n        digitalWrite(LED_GREEN, HIGH);\n        tone(SPEAKER, 300);\n        delay(300);\n        noTone(SPEAKER);\n        levelSequencePlayer&#091;i] = LED_GREEN;\n        aux = 1;\n        delay(200);\n        if(levelSequencePlayer&#091;i] != levelSequence&#091;i]){\n          GameOver();\n          return;\n        }\n        digitalWrite(LED_GREEN, LOW);\n      }\n      if(digitalRead(BUTTON_RED) == LOW){\n        digitalWrite(LED_RED, HIGH);\n        tone(SPEAKER, 200);\n        delay(300);\n        noTone(SPEAKER);\n        levelSequencePlayer&#091;i] = LED_RED;\n        aux = 1;\n        delay(200);\n        if(levelSequencePlayer&#091;i] != levelSequence&#091;i]){\n          GameOver();\n          return;\n        }\n        digitalWrite(LED_RED, LOW);\n      }\n    }\n  }\n  if(currentLevel &lt; 20){\n    currentLevel++;\n    lvlSPEED -= 50;\n    delay(200);\n  }\n}\n\/\/ Sonido de fin de juego GAME OVER\nvoid sound_GameOver(){\n  for(int i = 0; i &lt; 8; i++){\n    int notesDURATION = 1000\/melody_GameOverNOTES&#091;i];\n    tone(SPEAKER, melody_GameOver&#091;i],melody_GameOverNOTES);\n    int notesPAUSE = notesDURATION * 1.30;\n    delay(notesPAUSE);\n    noTone(SPEAKER);\n  }\n}\n\/\/ Sonido de fin de juego VICTORY\nvoid sound_Victory(){\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,400);\n  delay(400);\n  tone(SPEAKER,415.30,400);\n  delay(400);\n  tone(SPEAKER,466.16,400);\n  delay(400);\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  delay(133);\n  tone(SPEAKER,466.16,133);\n  delay(133);\n  tone(SPEAKER,523.25,1200);\n  delay(1200);\n}\nvoid sound_start(){\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,133);\n  delay(133);\n  tone(SPEAKER,523.25,400);\n  delay(400);\n}\n\/\/ Fin de la partida GAME OVER\nvoid GameOver(){\n  ledsON();\n  delay(250);\n  ledsOFF();\n  delay(250);\n  display_gameOverStatus();\n  sound_GameOver();\n  delay(2000);\n  currentLevel = 1;\n  lvlSPEED = 500;\n}\n\/\/ Fin de la partida VICTORIA\nvoid victory(){\n  ledsON();\n  delay(250);\n  ledsOFF();\n  delay(250);\n  display_gameVictoryStatus();\n  sound_Victory();\n  delay(2000);\n  currentLevel = 1;\n  lvlSPEED = 500;\n  }\n<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>RetroBoy: la consola de arduino Este proyecto ha sido realizado por Tomasz Paterek del grupo 10 durante el curso 2021-2022 para la asignatura Dise\u00f1o de Sistemas Empotrados en la URJC. Consiste en el juego&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":4642,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4638","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RetroBoy: SimonSays Console - 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\/retroboy-simonsays-console\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RetroBoy: SimonSays Console - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"RetroBoy: la consola de arduino Este proyecto ha sido realizado por Tomasz Paterek del grupo 10 durante el curso 2021-2022 para la asignatura Dise\u00f1o de Sistemas Empotrados en la URJC. Consiste en el juego&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-16T21:03:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-16T21:03:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-1024x1024.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Administrador de la red\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Administrador de la red\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 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\\\/retroboy-simonsays-console\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/\"},\"author\":{\"name\":\"Administrador de la red\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/bdc38fea664f13638d2a51f4d2fc7211\"},\"headline\":\"RetroBoy: SimonSays Console\",\"datePublished\":\"2021-12-16T21:03:57+00:00\",\"dateModified\":\"2021-12-16T21:03:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/\"},\"wordCount\":718,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/retroboy-portada.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/\",\"name\":\"RetroBoy: SimonSays Console - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/retroboy-portada.png\",\"datePublished\":\"2021-12-16T21:03:57+00:00\",\"dateModified\":\"2021-12-16T21:03:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/retroboy-portada.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2021\\\/12\\\/retroboy-portada.png\",\"width\":2338,\"height\":2338},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/retroboy-simonsays-console\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RetroBoy: SimonSays Console\"}]},{\"@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\\\/bdc38fea664f13638d2a51f4d2fc7211\",\"name\":\"Administrador de la red\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g\",\"caption\":\"Administrador de la red\"},\"sameAs\":[\"https:\\\/\\\/blogs.etsii.urjc.es\"],\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/etsiiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RetroBoy: SimonSays Console - 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\/retroboy-simonsays-console\/","og_locale":"es_ES","og_type":"article","og_title":"RetroBoy: SimonSays Console - Proyectos con Arduino.","og_description":"RetroBoy: la consola de arduino Este proyecto ha sido realizado por Tomasz Paterek del grupo 10 durante el curso 2021-2022 para la asignatura Dise\u00f1o de Sistemas Empotrados en la URJC. Consiste en el juego&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2021-12-16T21:03:57+00:00","article_modified_time":"2021-12-16T21:03:58+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada-1024x1024.png","type":"image\/png"}],"author":"Administrador de la red","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Administrador de la red","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/"},"author":{"name":"Administrador de la red","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/bdc38fea664f13638d2a51f4d2fc7211"},"headline":"RetroBoy: SimonSays Console","datePublished":"2021-12-16T21:03:57+00:00","dateModified":"2021-12-16T21:03:58+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/"},"wordCount":718,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/","name":"RetroBoy: SimonSays Console - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada.png","datePublished":"2021-12-16T21:03:57+00:00","dateModified":"2021-12-16T21:03:58+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2021\/12\/retroboy-portada.png","width":2338,"height":2338},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/retroboy-simonsays-console\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"RetroBoy: SimonSays Console"}]},{"@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\/bdc38fea664f13638d2a51f4d2fc7211","name":"Administrador de la red","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e8e366128f81a82735b0b00fe6d280414b4bad087e380fa9fee9694454b8a6fa?s=96&d=mm&r=g","caption":"Administrador de la red"},"sameAs":["https:\/\/blogs.etsii.urjc.es"],"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/etsiiadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4638","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=4638"}],"version-history":[{"count":5,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4638\/revisions"}],"predecessor-version":[{"id":4672,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/4638\/revisions\/4672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/4642"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=4638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=4638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=4638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}