Skip to main content

Acelerómetro

El acelerómetro tiene el mismo efecto que el Joystick, nos da valores en el eje X o eje Y, en el caso del Joystick lo daba la inclinación de la palanca, en este caso lo da la inclinación del mismo Echidna.

Está conectado a los pines analógicos:

  • A2 nos da la inclinación en el eje X
  • A3 nos da la inclinación en el eje Y

Los valores van desde 250 hasta 500

MONTAJE 9 HELICOPTERO

Reto

Vamos a realizar un sencillo videojuego: Mover un helicóptero, el movimiento de un sprite con el acelerómetro y esquivando edificios que se mueven de derecha a izquierda dando la sensación de que el helicóptero vuela.

El reto te lo complicamos con dos premisas:

  • Reutiliza el "sprite" edificio copiándotelo desde Scratch
  • El helicóptero explota si choca con un edificio
Solución sprite helicóptero moviéndose según acelerómetro

Vamos a añadir un objetos: helicoptero de la biblioteca

Le vamos a añadir un disfraz explosión

1.- Añade un objeto sun, y borra el dibujo interior, y así parece una explosión

echidna-helicoptero1.jpg

2.- Exporta el fichero imagen svg

echidna-helicoptero5.jpg

3.- Añade al helicóptero el disfraz 

echidna-helicoptero6.jpg

4.- Eligiendo el fichero svg exportado en el paso 3

echidna-helicoptero7.jpg

Vamos a hacer que helicoptero que se mueva según el acelerómetro:

Posición X: La pantalla de mBlock tiene desde -240 hasta 240 y hemos visto que los márgenes de A2 del acelerómetro va desde 250 hasta 500 luego hacemos el cambio de escala con la HOJA DE CÁLCULO que comentamos anteriormente:

image-1648738671457.png

luego ya tenemos la fórmula para la posición X

E igualmente para la posición Y pero en este caso los márgenes de la pantalla van desde -180 a 180 luego:

image-1648738725542.png

Testeando un poco hemos subido m a 1.9 pues no llegaba arriba del todo

echidna-helicoptero12.jpg

En el arduino le asignamos las coordinadas a las variables globales A2 y A3

echidna-helicoptero11.jpg

Solución edificio, cómo se reutiliza un sprite

Reutilizamos un poco: Nos copiamos un Sprite, entramos en este proyecto FLY de scratch https://scratch.mit.edu/projects/113582791/ entramos en su código y exportamos los edificios, nubes, etc...

echidna-helicoptero2.jpg

Vamos a mblock e IMPORTAMOS el fichero que hemos exportado
echidna-helicoptero3.jpg

Nos importa con sus disfraces Y SU CÓDIGO

Nos queda pues esta colección de objetos

echidna-helicoptero9.jpg

Solución a la muerte del helicóptero

Vamos a poner que si toca un edificio, “explota” (o sea, cambia el disfraz a explosión), además envía el mensaje “komunikat1” que vemos que el script del edificio lo necesita para esconderse una vez terminado el juego (debe de ser ruso el mensaje es del autor del objeto edificio) :

echidna-helicoptero13.jpg

El programa lo tienes aquí https://planet.mblock.cc/project/3230430

El resultado se puede ver en este vídeo:

Mejoras

Ya sé que colocando el helicóptero siempre arriba, siempre ganas!!

RETO: HAZ QUE SOLO SI TOCA BUILTING1 MUERE, PERO SI TOCA A BULDING2 QUE GANE UN PUNTO de esta manera ya no se gana poniendo el helicóptero arriba del todo

via GIPHY

3.4.2 MONTAJE 10 MATA-ALIENS hackeando código

Esta vez no vamos a ser originales, vamos a ser un poco vagos y nos vamos a copiar el programa de otra persona. La web de Scratch tiene un repositorio de millones de proyectos, podemos seleccionar uno, y adaptarlo a nuestra simpática Echidna.

RETO Vamos a ver un ejemplo con este proyecto https://scratch.mit.edu/projects/29744/. El reto que te lanzamos es que funcione la nave espacial con nuestro acelerómetro de la Echidna.

Solución CON MBLOCK


En esta presentación se muestra cómo se importa un proyecto a mBlock: (las capturas están con mBlock3, para mBlock5 simplemente no es abrir, sino Importar desde el ordenador

Curiosamente con mBlock3 sale algún fallo pero con mBloc5 no hay, lo importa perfectamente



AcelerarHackear el código para que funcione con el acelerómetro


Una vez importando nos fijamos en el código que hay que modificar, está claro que lo que hay que tocar es el Sprite “Ship” que es el que queremos mover con el acelerómetro y modificar el “posicionX que se realiza con el ratón y cambiarlo por el acelerómetro:

image-1648739510056.png

Perooo como siempre: la posición del ratón es la misma que las coordenadas de la pantalla de mBloc y la x va desde -240 hasta 240 y nuestro acelerómetro de A2 va desde 250 hasta 500 luego hacemos el cambio de escala con la HOJA DE CÁLCULO anteriormente:

image-1648739533959.png

Y cambiamos el código:

echidna-mataaliens.jpg

En el arduino asignamos A2 (y también D2 luego lo comentamos)

echidna-mataaliens2.jpg

Un poco más, disparar con D2

También vamos a cambiar el disparador “espacio” :

echidna-mataaliens3.jpg

por pin digital 2 para disparar con el botón D2 del Echidna:



echidna-mataaliens4.jpg

El resultado en este vídeo:

SOLUCIÓN CON SNAP4ARDUINO

Este programa vemos que va lento, RECOMENDAMOS que para la ejecución de proyectos grandes desde el ordenador Snap4Arduino va más rápido, por lo que vamos a ver esta alternativa:

Importar un proyecto de Scratch a Snap4Arduino

Para importar un proyecto desde Scratch es un poco más complicado, ver esta presentación:



Cambios en el código en Snap4Arduino

Los cambios en el código son los mismos que los anteriores.

Recuerda que en esta presentación se enseña cómo configurar Snap4Arduino para que se comunique con nuestro Arduino y la Echidna.

El programa lo puedes abrir en Snap4Arduino en esta URL

El Sprite que tienes que conectar con Arduino es la nave esa con cuernos.

El resultado lo puedes ver en este vídeo