Skip to main content

MONTAJE 7 Telesketch

¿Qué es el Joystick?

Son dos potenciómetros, uno en el eje X y otro en el eje Y además de un pulsador digital cuando se pulsa hacia dentro. 

El Joystickpotenciómetro X está conectado aen los pines A0 del Arduino y el del eje Y al A1 ypor sulo valortanto si has leído los capítulos de ARDUINO sus valores varía desde 100 hasta 1024.

 

El pinpulsador A0está controlaconectado elal eje X El pin A1 controla el eje YD10.

3.3.1 MONTAJE 7Reto Telesketch

Si no sabes lo que es esto, no has tenido infancia 😊😁

RETOTELSKET.jpg

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 EchidnaScratch y en mBlock.

Solución con EchidnaScratch

Simplemente vamos a comentarconsiderar estas condiciones:

  • Si el joystick en el eje X es menor que 300 es que estás inclinando el Joystick hacia la izquierda, luego el Sprite tiene que modificar su variable decrementando su valor, un valor fijo que lo definiremos como PASO

  • Si el joystick en el eje X 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 el valor predefinido PASO

  • Idem para el eje Y

  • PASO es una variable que de momento lo vamos a poner como 3, si es menor, va más preciso pero más lento, si es mayor es más rápido pero el dibujo es menos preciso.

  • Los botones SR y SL nos servirán para subir y bajar el lápiz y borrar

¿Lápiz ? ¿Qué lápiz?

Lápiz es una extensión para poder dibujar. Para instalar una extensión pulsa aquí

2024-12-05 15_49_35-EchidnaML.png

E instalamos esta extensión

2024-12-05 15_50_03-EchidnaML.png

Y se instalan nuevas instrucciones para dibujar

2024-12-05 15_51_36-EchidnaML.png

Código con EchidnaScratch

Recomendamos cambiar el sprite del gato por otro más apropiado, por ejemplo el lápiz y bajarlo a un tamaño 15

2024-12-05 15_54_22-EchidnaML.png

El programa :

  • Inicia las variables que hemos explicado
  • En el bucle, las condicionales principales:
    hacen que se incremente o decremente las variables X e Y la cantidad definida PASO
  • El botón SR 
    • si se pulsa, pinta
    • si se suelta no pinta
  • El botón SL borra todo
  • Mover el sprite según las coordenadas X e Y

2024-12-05 15_32_19-Presentación1 - PowerPoint.png

Todos los programas de este curso se encuentran en este repositorio: https://github.com/JavierQuintana/Echidna

Solución con mBlock

En mBlock no hay instrucciones especiales para Echidna, hay que hablar pues de A0 para el eje X y A1 para el eje Y por lo tanto las nuevas condiciones son:

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ÓNPrograma en mBlock

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 !!