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