Juego del Laberinto

Ejercicio de mover Servos

  • He prepardo este juego, para mover un laberinto con Joystic
  • Consiste en utilizando dos servos, uno hace que una plataforma se mueva norte-sur y otra Este-oeste.
  • En esa plataforma ponemos un laberinto y una bola que tiene que llegar de un lugar a otro.
  • Primeramente con dos pulsadores moví un servo y luego con otros dos el segundo. Coloqué una plataforma con 4 agujeros y ya sirvió.
  • Luego quise añadir el Joistyc. Que es una resistencia variable. Pero al utilizar la forma proporcional se iba mucho, a pesar de mapear la variable.
  • Al final cuando se desplaza el Joystic < 400 en un sentido una variable disminuye una unidad y si es > 400 en el sentido contrario
  • El nivelado de los dos servos es ajustar para que se quede la plataforma en horizontal, uno en 85º y el otro en 93º, creo.

El Resultado

 

 

 

 

 

 

 

 

 

 

Código 

/************************************************************************
            PROGRAMA CAJA FUERTE  REAL FINAL
************************************************************************/
// Podemos iniciar nuestro código definiendo algunos argumentos
// Le damos nombre a nuestros pulsadores, y les definimos su correspondiente entrada
// Añado un servomotor para la cerradura
// también quiero hacer una pulsación especial que resetee para poder abrir la caja que se haya bloqueado. Con pulsador 4 + 7
// y una pulsacion para cerrar la caja Con pulsador 4 + 7
// añado también el sonido para cada pulsación y la cancioncilla si se ha conseguido abrir.

#include <Servo.h>  // Incluyo la librería del servo para la cerradura
Servo myservo;  // 
#define ROJO 4
#define VERDE 5
#define AZUL 6
#define BLANCO 7
//Incluimos las variables que creemos que nos harán falta para nuestro programa.
// Fijaros que he quitado el número entre los corchetes, puesto que lo determina de forma automática
bool FLAG = 0;
byte PASSWORD [] = {ROJO, VERDE, AZUL, VERDE, ROJO}; //Array con la clave correcta.
byte CLAVE [] = {0, 0, 0, 0, 0}; //Array para guardar la contraseña que se mete, al inicio a cero
byte PULSACION = 0; //Variable que me cuenta las pulsaciones
/* Quiero mover dos Servos  AYUDADOS POR UN JOYSTICk
*/
#include <Servo.h>
Servo myservo1;  // declaro miservo1
Servo myservo2;  // declaro miservo2
int  anguloX = 75;   // declaro variable angulo eje X
int  anguloY = 92;   // declaro variable angulo eje Y
int EJE_X = A1;   // declaro variable eje X y captura el valor de la entrada analógica A1
int EJE_Y = A2;   // declaro variable eje X y captura el valor de la entrada analógica A2
int salto =1;   //el incremento que añadiremos o quitaremos al ángulo original si se acciona en el Joystick según sea hacia adelante o atras.


void setup() {
  myservo1.attach(9);  // servo 1 en pin 9 y servo 2 pin 10
  myservo2.attach(10);  // 
  }

void loop()
{
    int p = analogRead (A1);  // variable entera p que en ella metemos el valor de la entrada analógica A1
    int q = analogRead (A2);  // variable entera q que en ella metemos el valor de la entrada analógica A2
    if (p<400)                    // si el valor central del joystic es 500, hacemos que a menos de 400 el ángulo vaya disminuyendo y es mayor de 600 va aumentando
      anguloX = anguloX - salto;
    if (p> 600)
      anguloX = anguloX + salto;
    if (q<400)
      anguloY = anguloY - salto;
    if (q> 600)
      anguloY = anguloY + salto; 
    myservo1.write (anguloX);  // gira el valor del ángulo eje X y eje Y
    myservo2.write (anguloY);
    delay (50);
}

Leave a Comment

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