Skip to main content

3.3 Joystick

El Joystick está conectado a los pines A0 y A1 y su valor varía desde 100 hasta 1024.

El pin A0 controla el eje X El pin A1 controla el eje Y

3.3.1 MONTAJE 7 Telesketch

RETO Vamos a realizar el mismo ejemplo que este vídeo de Jorge Lobo pero en vez de realizado en Snap4Arduino lo vamos a hacer en mBlock.

Simplemente vamos a comentar las condicionales principales:
Si A0 es menor que 300 es que estás inclinando el Joystick hacia la izquierda, luego el Sprite tiene que modificar su variable x hacia la derecha, es decir decrementando su valor
image-1648727378013.png
Si A0 es mayor que 700 es seguro que estás inclinando el Joystick hacia la derecha luego hay que incrementar el valor de la ordenada X

Para los valores del eje Y es igual, cambiando A0 por A1

SOLUCIÓN

Primero pondremo un objeto lápiz y añadiremos la extensión LAPIZ esto se entiende mejor con un vídeo

Pero no hagas la programación de hacer el cuadrado. Sino este

echidna-teleschetch.png

Donde BAJAR, SUBIR Y BORRAR SON MENSAJES y X e Y son variables globales a todos los objetos. En el arduino el programa será

echidna-teleschetch2.png

El programa te lo puedes descargar aqui https://planet.mblock.cc/project/3228849

VA MUY LENTO El resultado lo puedes ver en este vídeo:

Por curiosidad puedes ver el mismo programa en Snap4Arduino en este vídeo:

Puedes ver que es mucho más rápido que mBlock.

3.3.2 MONTAJE 8 Comebichos

No podemos dejar el Joystick sin hacer un videojuego !!

El siguiente RETO es: Mover un Sprite “Bat” con el Joystick para atrapar un Beetle

  • Bat se tiene que mover con el joystick por toda la pantalla.
  • Beetle se mueve horizontalmente desde el borde derecho hasta el borde izquierdo, y cuando llega al izquierdo, vuelve a aparecer en el derecho (y aleatoriamente desde cualquier altura)

Solución


El bicho lo haremos mover bastante rápido y al azar en el eje Y para que lo tenga difícil Bat:
image-1648727480224.png
Y bat tiene que moverse con el joystick, que le pasaremos las variables A0 y A1. Por lo tanto el Arduino tiene este programa:

echidna-comebichos1.png

Mapeo

Hay que realizar un cambio de unidades, pues la variable A0 y A1 van desde 100 a 1024 y queremos que se traduzcan en las coordenadas -220+220 en el eje x y -150+150 en el eje y. La fórmula de conversión será

  • A0= n + m*PinAnalogicoA0
  • A1= n + m*PinAnalogicoA1 m, y n diferentes de los anteiores

Los valores de m y n lo hemos calculado con la HOJA DE CÁLCULO que comentamos anteriormente, los valores límites que hemos puesto son:

Para el eje X e Y :0-715
image-1648727521000.png

Para el eje Y:

image-1648727528934.png

Además hemos añadido la puntuación y el cambio de disfraz para que parezca que aletea:

Por lo tanto el programa del objeto murciélago es
echidna-comebichos2.pngEl programa completo lo puedes descargar aquí https://planet.mblock.cc/project/projectshare/3230393

El resultado es:

Lo sé …. soy bastante malo !!