Minijuego con Arduino: «Ping-Pong»

Y otro mini juego más por aquí. En este caso se trata de un minijuego con Arduino que simula el PING-PONG. Es ideal para jugar con tus amigos y ver quien tiene mayores reflejos! Te reto!

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

El funcionamiento de este minijuego es muy muy sencillo. Este minijuego esta pensado para jugar 2 personas, aunque también puedes jugar tu solo pulsando ambos botones.

El mini juego consiste en una fila de leds, la cual en cada extremo tiene un led de color amarillo y otro de color rojo. La finalidad es pulsar el botón cuando el led amarillo se encienda, sin que llegue nunca a encenderse el led rojo, ya se si este se enciende, se acaba el juego. 

Al pulsar el botón cuando esta en el led amarillo, la «pelota» rebota hacia el otro lado, haciendo que tu contrincante sea el encargado de pulsar el botón cuando se encienda su led de color amarillo, para así devolverte la «pelota».

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

El color de los leds no importa, puedes poner los colores que quieras, aun así, te recomiendo utilizar esta combinación de colores ya que es muy intuitiva, pero si quieres puedes dejar volar tu imaginación!

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal YouTube -> RobotUNO
//Proyecto Ping pong
#define rojo1 A2
#define amarillo2 A1
#define verde3 A0
#define verde4 2
#define verde5 3
#define verde6 4
#define verde7 5
#define verde8 6
#define verde9 7
#define verde10 8
#define verde11 9
#define verde12 10
#define verde13 11
#define amarillo14 12
#define rojo15 13
int BOTON_IZQ;
int BOTON_DER;
int aux=7, vel=400;
int direccion_der=1;
int direccion_izq=0;
void setup() {
  pinMode(rojo1,OUTPUT);
  pinMode(amarillo2,OUTPUT);
  pinMode(verde3,OUTPUT);
  pinMode(verde4,OUTPUT);
  pinMode(verde5,OUTPUT);
  pinMode(verde6,OUTPUT);
  pinMode(verde7,OUTPUT);
  pinMode(verde8,OUTPUT);
  pinMode(verde9,OUTPUT);
  pinMode(verde10,OUTPUT);
  pinMode(verde11,OUTPUT);
  pinMode(verde12,OUTPUT);
  pinMode(verde13,OUTPUT);
  pinMode(amarillo14,OUTPUT);
  pinMode(rojo15,OUTPUT);
  
  pinMode(A5,INPUT);
  pinMode(A4,INPUT);
}
void loop() {
  BOTON_IZQ=digitalRead(A5);
  BOTON_DER=digitalRead(A4);
  if (aux==2 && BOTON_IZQ==1){
    aux++;
    direccion_der=1;
    direccion_izq=0;
    PELOTA();
    vel=vel-50;
  }
  else if (aux==14 && BOTON_DER==1){
    aux--;
    direccion_der=0;
    direccion_izq=1;
    PELOTA();
  }
  else if (direccion_der==1){
    aux++;
    PELOTA();
  }
  else if (direccion_izq==1){
    aux--;
    PELOTA();
  } 
  delay(vel);
}
void PELOTA(){
  switch (aux) {
  case 1: //pierdes el juego
    digitalWrite(rojo1,HIGH);
    digitalWrite(amarillo2,LOW);
  break;
  case 2: //amarillo izquierda
    digitalWrite(rojo1,LOW);
    digitalWrite(amarillo2,HIGH);
    digitalWrite(verde3,LOW);
  break;
  case 3:
    digitalWrite(amarillo2,LOW);
    digitalWrite(verde3,HIGH);
    digitalWrite(verde4,LOW);
  break;
  case 4:
    digitalWrite(verde3,LOW);
    digitalWrite(verde4,HIGH);
    digitalWrite(verde5,LOW);
  break;
  case 5:
    digitalWrite(verde4,LOW);
    digitalWrite(verde5,HIGH);
    digitalWrite(verde6,LOW);
  break;
  case 6:
    digitalWrite(verde5,LOW);
    digitalWrite(verde6,HIGH);
    digitalWrite(verde7,LOW);
  break;
  case 7:
    digitalWrite(verde6,LOW);
    digitalWrite(verde7,HIGH);
    digitalWrite(verde8,LOW);
  break;
  case 8:
    digitalWrite(verde7,LOW);
    digitalWrite(verde8,HIGH);
    digitalWrite(verde9,LOW);
  break;
  case 9:
    digitalWrite(verde8,LOW);
    digitalWrite(verde9,HIGH);
    digitalWrite(verde10,LOW);
  break;
  case 10:
    digitalWrite(verde9,LOW);
    digitalWrite(verde10,HIGH);
    digitalWrite(verde11,LOW);
  break;
  case 11:
    digitalWrite(verde10,LOW);
    digitalWrite(verde11,HIGH);
    digitalWrite(verde12,LOW);
  break;
  case 12:
    digitalWrite(verde11,LOW);
    digitalWrite(verde12,HIGH);
    digitalWrite(verde13,LOW);
  break;
  case 13:
    digitalWrite(verde12,LOW);
    digitalWrite(verde13,HIGH);
    digitalWrite(amarillo14,LOW);
  break;
  case 14: //amarillo derecha
    digitalWrite(verde13,LOW);
    digitalWrite(amarillo14,HIGH);
    digitalWrite(rojo15,LOW);
  break;
  case 15: //pierdes el juego
    digitalWrite(rojo15,HIGH);
    digitalWrite(amarillo14,LOW);
  break;
  
  default:
    digitalWrite(rojo15,HIGH);
    digitalWrite(rojo1,HIGH);
  break;
}
}

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

 

 

Publicado en Minijuegos.

Un comentario

  1. This blog is definitely rather handy since I’m at the moment creating an internet floral website – although I am only starting out therefore it’s really fairly small, nothing like this site. Can link to a few of the posts here as they are quite. Thanks much. Zoey Olsen

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *