3. Entradas de Echidna

Otra vez acuérdate

Aquí es donde vamos a sacar todo el jugo a esta Shield.

Nota: Si has hecho el anterior programa Grabar a Arduino, recuerda dejarlo preparado para que haga caso a mBlock: Conectar-Actualizar Firmware.

Nota: Acuérdate en toda esta sección de poner la Echidna en modo Sensor

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

MONTAJE 4 ENCENDIDOAPAGADO

El anterior programa ya es un ejemplo de uso de estos botones digitales que están conectados a los pines digitales 2 y 3 de Arduino. Ten en cuenta que sólo pueden leer niveles lógicos.

MONTAJE4-ENCENDIDOAPAGADO

Al pulsar el botón D2 se enciende los 3 leds del Echidna y al soltarlo se apagan. El programa también tiene que tener un efecto en un sprite

Solución con EchidnaScratch

Cambiamos el sprite del gato por otro más acorde y cambiamos el disfraz, no lo desarrollamos aquí pues vimos cómo se hace con el MONTAJE1

2024-12-03 13_31_41-EchidnaML.png

El código :

2024-12-03 13_38_56-EchidnaML.png

El fichero lo tienes en el Github : https://github.com/JavierQuintana/Echidna

Solución con mBlock

Elegimos un objeto que cambie el disfraz, y le ponemos el código

echidna-d2-encendido-apagado1.png
Y al arduino:

echidna-d2-encendido-apagado2.png
El programa lo tienes aquí https://planet.mblock.cc/project/3228733

MONTAJE4-ENCENDIDOAPAGADO-AVANZADO

MONTAJE4-ENCENDIDOAPAGADO-AVANZADO

Al pulsar D2 tiene que encenderse los leds, y sólo se apagaran si se vuelve a pulsar D2. O sea, utilizar sólo un pulsador para encender y apagar los leds.

Solución EchidnaShield

En este caso creamos una variable ENCENDIDO que registra si están los leds y el sprite encendidos o no

El código es

2024-12-03 13_56_27-EchidnaML.png

Para evitar que el programa sea engorroso, se ha creado los bloques ENCENDER y APAGAR, pero perfectamente se puede meter estas instrucciones dentro del algoritmo principal y pasar de bloques.

FIJATE que la variable ENCENDIDO se cambia a 1 o a 0 para que refleje el estado en el que ha quedado el sistema

2024-12-03 13_58_18-EchidnaML.png

2024-12-03 13_58_49-EchidnaML.png

El programa lo tienes en : https://github.com/JavierQuintana/Echidna

Solución con mBlock
echidna-d2-encendido-apagado3.png

El objeto que cambia el disfraz es igual que en RETO1

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

UNA CURIOSIDAD Fíjate como hay un retraso de 0.5 segundos para que "te de tiempo de apartar el dedo del pulsador" en caso contrario, volvería al otro estado. Si no sabes lo que quiero decir, quita la instrucciones "Espera 0.5 segundos" y verás qué pasa.

UN POCO DE PARÉNTESIS TEÓRICO Fíjate en el enunciado del RETO1: “al pulsar el botón D2 se enciende y al soltarlo se apaga” ES UNA MÁQUINA LÓGICA pues el estado de la máquina sólo depende de las entradas (en este caso de un botón): Pulsar la entrada (botón D2) produce una salida concreta (encender leds).

CONTINUAMOS ...

Pero tal y como está redactado, el RETO2 tiene que memorizar el estado anterior, no es trivial el enunciado “Al pulsar D2 tiene que encenderse los leds, y sólo se apagaran si se vuelve a pulsar D2.” ES UNA MÁQUINA SECUENCIAL pues el estado de la máquina depende de las entradas y de lo que ha pasado antes. Pulsar la entrada (botón D2) NO produce una salida concreta (depende si estaba apagado o encendido anteriormente).

No pasa nada si no lo entiendes del todo, es teoría.

La programación se complica necesitamos añadir una variable que recuerde lo que ha pasado antes la vamos a llamar _encendido _que recordará si está encendido los leds o no:

Muchos de nuestros aparatos electrónicos se encienden y se apagan con el mismo botón, así que a partir de ahora aprecia que su funcionamiento no es trivial.

MONTAJE 5 LDR

¿Qué es un LDR?

Vamos a la Wikipedia:

Fotorresistor Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor, fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuyas siglas, LDR, se originan de su nombre en inglés light-dependent resistor. Su cuerpo está formado por una célula fotorreceptora y dos patillas. More at Wikipedia (ES)

Lo verás en el Echidna arriba un poco a la derecha, y está conectado a la entrada analógica del Arduino A5 y según https://echidna.es/ los valores van desde 20 en ausencia de luz, hasta 1.000 con mucha luz.

Comprobar los límites

No os creáis al pie de la letra los límites oficiales del LDR! Los componentes electrónicos no son ideales, cada uno es particular, probar esos límites en vuestro Echidna

2024-12-03 19_55_23-EchidnaML.png

¿Qué vamos a hacer?

Jugar un poco con vuestras condiciones de luz, y definir unos valores de oscuridad, poca luz, media luz y mucha luz, en mi caso mis valores son 

Con estos valores vamos a realizar un programa que

MONTAJE 5 Semáforo luminoso

RETO Vamos a reutilizar esfuerzos: reutilizar el semáforo visto pero vamos a hacer que se iluminen los colores según la luz:

Semáforo Luz
Todo apagado Mucha oscuridad
Rojo Oscuridad
Amarillo Luz normal
Verde Mucha luz

Según nuestros valores experimentales, (puedes poner otros según las condiciones de luz de tu aula)

Semáforo Luz Límite inferior Límite superior
Todo apagado Mucha oscuridad --- 199
Rojo Oscuridad 200 499
Amarillo Luz normal 500 799
Verde Mucha luz 800 ---
Solución con EchidnaScratch

2024-12-05 09_43_50-Presentación1 - PowerPoint.png

Lo puedes encontrar en en este repositorio: https://github.com/JavierQuintana/Echidna

Reto

Haz un sprite tipo semáforo que también se enciendan las luces igual que el Echidna real, tal y como hicimos en MONTAJE1 SEMAFORO y encima que diga los valores

echidna-medirluz4.png

El resultado lo puedes ver en este vídeo:

Solución con mBlock

Con mBlock al no tener instrucciones específicas para Echidna, para leer en directo los valores del LDR, hay que utilizar nuestro mBlock y que nuestro simpático oso panda nos diga esos valores, con este sencillo programa en el decice dispositivo Arduino:echidna-medirluz1.png

DONDE LUZ ES UNA VARIABLE GLOBAL QUE LO LEEN TODOS LOS OBJETOS luego ahora el panda con este programa puede decirnos cuánta luz hay

echidna-medirluz3.pngechidna-medirluz2.png

El valor que leemos con máxima luz (utilizando una linterna) y el valor de máxima oscuridad (a tapar con el dedo, no te compliques) no llegan a los límites que se marcan oficiales en Echidna EN TU CASO PUEDEN SER OTROS !! pero parecidos.

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

Programa mBlock


echidna-medirluz6.png

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

MONTAJE 5 SEMAFORO SONIDO

No vamos a dejar sin poder experimentar este sensor que mide la intensidad del sonido y como está conectado a la salida analógica A7 sus valores van desde el 0 al 1024

Vamos a hacer un semáforo que mida la intensidad del sonido, verde si es poco, y sube hasta rojo cuando es elevado

El programa en EchidnaScratch es :

2024-12-08 13_37_26-EchidnaML.png

Hemos simulado el sonido soplando en el micro :

¿Te gustaría este semáforo pero que se ejecute de manera independiente (sin necesidad de ordenador), para usarlo en el aula, comedor...? Pues claro, cargando el programa, pero no con Echidna Scratch sino con código, ver en el punto 8 semaforo sonido

¿Te atreves a ...?
Realizar un programa que haga lo mismo pero con la temperatura (los valores límites de encendido y apagado de las luces dependen de la temperatura de trabajo)

MONTAJE 6 Piano luminoso

Enunciado

Realizar un programa que suene una nota diferente según la luz

Solución en EchidnaScratch

En echidna no podemos dar las notas numéricas (en mBlock sí)  tenemos que utilizar la notación midi a b c d e f g luego simplemente según un nivel de luz que toque una de esas notas

2024-12-05 12_29_44-Presentación1 - PowerPoint.png

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

Solución con mBlock5

En el Arduino el programa es

ECHIDNA-PIANOLUZ1.png

En el objeto, el panda es

ECHIDNA-PIANOLUZ2.png

Nota: se ha incorporado una música con un tono, el C Elec Piano

El programa lo tienes aquí

https://planet.mblock.cc/project/projectshare/3228812

Con mBlock versión 3  ATENCIÓN ESTA VERSIÓN ES OBSOLETA NO RECOMENDADO sólo para PCs muy viejos

En esta versión no es tan sencillo ¿por qué? Porque hay cambios de escala: el LDR nuestro trabaja con valores distintos al de las notas, por lo tanto hay que hacer UN CAMBIO DE ESCALA, y esto necesita un apartado diferente, te recomendamos ver 3.2.3.1 Cambios de escala

Solución


El programa es pues el siguiente



¿por qué lo hacemos con la opción de subir a Arduino? Porque la simulación va lenta (se oye tut-tut-tut) si lo subes al Arduino reproduce el tono correctamente. VER COMO SUBIR AL ARDUINO.

El resultado lo puedes ver en este vídeo:

3.2.3.1 Cambios de escala

Nos encontramos que:

Problema: ¿cómo convertimos X en Y?

Matemáticamente es una recta con una pendiente m y una ordenada n :

Y = m*X + n

Para calcular m y n tenemos que utilizar un sistema de ecuaciones dadas las condiciones límites de X e Y:

Ala! dos ecuaciones y dos incógnitas: calcula m y n

Buen ejercicio para los alumnos para que vean matemáticas aplicadas

No obstante, como esto lo repetiremos muchas veces los cambios de escala, hemos confeccionado ESTA HOJA DE CÁLCULO que te lo puedes descargar y facilita las cosas: Ponemos en las celdas amarillas los valores límites :

Y nos da los valores m y n automáticamente:

Luego la fórmula para el cálculo de la Y (las notas) en función de la luminosidad X es:

Y = 0.027 * X + 45

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 potenciómetro X está conectado en los pines A0 del Arduino y el del eje Y al A1 por lo tanto si has leído los capítulos de ARDUINO sus valores varía desde 100 hasta 1024. El pulsador está conectado al D10.

ATENCIÓN esta instrucción NO funciona, hay que utilizar las que se ponen en los ejemplos
2025-04-30 19_54_37-EchidnaML.png

Reto Telesketch

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

TELSKET.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 considerar estas condiciones:

¿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 :

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

Programa 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.

Mapeo

¿Qué es eso de "mapeo"?

En la jerga robótica, dicho pronto y mal pero para que se entienda, mapear significa hacer un cambio de escala

¿Cuándo se dan esas situaciones?

SITUACION A : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 y queremos que se copie en una salida digital PWM de Arduino que va de 0-255

SITUACION B : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 e interpretarlo en sus valores de voltios. Si suponemos que la placa se alimenta a 5V la variable de salida irá desde 0 a 5V

SITUACION C : Queremos leer el valor de un LDR, que tapándolo nos da 917 e iluminándolo al máximo es 1023, lo queremos copiar en una salida digital PWM, o sea que la salida va desde 0 a 255

Nota: El mínimo de 917 (puede ser otro número, es un valor experimental) es debido a que los LDR van montados en un divisor de tensión como el de la figura, y la resistencia de abajo, siempre se queda algo de tensión

2025-01-04 00_34_57-Recursos_electronica_Black_EchidnaBlack_0_ESQ.pdf at master · EchidnaShield_Recu.png

SITUACION D : Queremos según el valor de un joystick conectado a las entradas analógicas de un Arduino (esto pasa en Echidna) se representen en la pantalla de Scratch 2*220 por 2*180, es decir
  - Eje X : el potenciómetro (vamos a llamarlo potx) va de 0 a 1023 y la salida (ejex) va de -220 a 220
  - Eje Y : el potenciómetro (vamos a llamarlo poty) va de 0 a 1023 y la salida (ejey) va de -180 a 180

SITUACION E: Ídem pero no con el potenciómetro, sino con el acelerómetro (vamos a llamarlo acel) que va 250 a 500

SITUACION F : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 y queremos que se copie en una salida de un servo, por lo tanto lo que necesita es un ángulo que va de 0-180

SITUACION G : Idem que F pero una raspberry por lo tanto GPI va de 0-65.535

¿Cómo se consigue mapear?

Para entendernos :

Luego y tiene esta ecuación :

2025-01-08 20_03_40-Equation Editor for online mathematics - create, integrate and download.png

donde m es 

2025-01-08 20_05_18-Equation Editor for online mathematics - create, integrate and download.png

Gráficamente 

2025-01-08 20_07_29-ecuación de una recta - Buscar con Google.png

¿Una hoja de cálculo para poder hacer esos cálculos?

Sí, claro, en este enlace https://docs.google.com/spreadsheets/d/1qNbaZ2c_H1UCNhtvp2LimfWSbaGvZLVl5gJr9Wu0ifU/edit?usp=sharing dale a descargar

Rellena las casillas amarillas, y en las naranjas tienes el resultado de m y n

2025-07-01 19_26_48-MAPEO - Hojas de cálculo de Google.png

¿Me lo puedes hacer para cada situación anterior?

Si claro:

SITUACION A : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 y queremos que se copie en una salida digital PWM de Arduino que va de 0-255

SITUACION B : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 e interpretarlo en sus valores de voltios. Si suponemos que la placa se alimenta a 5V la variable de salida irá desde 0 a 5V

SITUACION C : Queremos leer el valor de un LDR, que tapándolo nos da 917 e iluminándolo al máximo es 1023, lo queremos copiar en una salida digital PWM, o sea que la salida va desde 0 a 255

SITUACION D : Queremos según el valor de un joystick conectado a las entradas analógicas de un Arduino (esto pasa en Echidna) se representen en la pantalla de Scratch 2*220 por 2*180, es decir
  - Eje X : el potenciómetro (vamos a llamarlo potx) va de 0 a 1023 y la salida (ejex) va de -220 a 220
  - Eje Y : el potenciómetro (vamos a llamarlo poty) va de 0 a 1023 y la salida (ejey) va de -180 a 180

SITUACION E: Ídem pero no con el potenciómetro, sino con el acelerómetro (vamos a llamarlo acel) que va 250 a 500

SITUACION F : Queremos leer un valor de entrada analógica en un Arduino, por lo tanto va de 0-1023 y queremos que se copie en una salida de un servo, por lo tanto lo que necesita es un ángulo que va de 0-180

SITUACION G : Idem que F pero una raspberry por lo tanto GPI va de 0-65.535

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

Solución con EchidnaScratch

Añadimos los Sprite Beetle y Bat y borramos el gato

Al sprite BEETLE vamos a moverlo aleatoriamente con este script

2024-12-05 16_36_16-EchidnaML.png

El sprite BAT se moverá según la posición del JOYSTICK pero mapeadas es la SITUACION D de la página que has visto mapeo algo retocadas.

mapeo-bat.png

y le añadimos el siguiente código al BAT para que cuente los bichos comidos. Previamente crear una variable COMIDOS

2024-12-05 16_50_38-EchidnaML.png

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

Solución con mBlock


El bicho Bettle 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

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

MONTAJE 9 SPRITEVOLADOR

¿Qué es un 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:

Los valores van desde 250 hasta 500

MONTAJE 9 SPRITEVOLADOR

Vamos a realizar un sencillo videojuego: Mover un sprite volador, 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 sprite vuela.

El reto te lo complicamos con dos premisas:

Este programa tienes tres pasos

  1. Sprite volador moviéndose según acelerómetro
    1. Le añadimos un disfraz de explosión reutilizando de otro Sprite "sun"
    2. Movimiento según acelerómetro
  2. Sprite edificios
    1. Exportación de sprites externos de otro autor
    2. Importación a nuestro proyecto
  3. Muerte del sprite volador si toca edificio. Aquí es el código propio del juego

A SOLUCIÓN CON ECHIDNASCRATCH

A1 Sprite PARROT moviéndose según acelerómetro

A1.1 Añadir un disfraz al PARROT de explosión. 

  1. Quitamos el sprite del gato y añadimos el sprite SUN
  2. Entramos en edición del sprite
  3. Lo tuneamos un poco para que parezca una explosión (simplemente pintar de rojo el centro)
  4. Lo exportamos
  5. Guardamos con explosion.svg

2024-12-06 08_45_02-EchidnaML.png

Ahora añadimos el Sprite PARROT y al sprite PARROT le ponemos el disfraz de explosión:

  1. Añadimos el sprite PARROT
  2. Borramos el anterior SUN ya no lo necesitamos
  3. Entramos en Edición del sprite
  4. Menú del disfraz (costume)
  5. Upload costume
  6. elegimos el fichero creado anteriormente "explosion.svg"
  7. Abrimos
  8. Ya tenemos un disfraz añadido al Parrot. Clica en el primer disfraz pues cuando vuelvas a la ventana de código verás el de explosión si no lo haces.

2024-12-06 08_55_12-EchidnaML.png

Otra manera más fácil sería simplemente añadir un disfraz de los sprite por defecto y en paz

2024-12-06 09_02_39-EchidnaML.png

A1.2 Movimiento del sprite PARROT 

Vamos a hacer que el pájaro se mueva según el acelerómetro: (Ver al final DETALLES MAPEO)

2024-12-06 09_12_19-EchidnaML.png

A2 Sprite EDIFICIO moviéndose de derecha a izquierda

Dará sensación al sprite pájaro que está volando.

A21 Exportación de Sprites externos

Vamos a ser vagos: Nos vamos a copiar de alguien externo: 

Entramos en este proyecto FLY de scratch https://scratch.mit.edu/projects/113582791/ entramos en su código y exportamos los edificios, nubes, etc...

2024-12-06 09_16_21-Fly, fly, fly !!! on Scratch.png

Una vez dentro del editor EXPORTAMOS ESTOS SPRITES

2024-12-06 09_19_07-Configuración.png

Simplemente botón derecho y EXPORTAR

echidna-helicoptero2.jpg

Y guardamos esos ficheros generados Buildings2.sprite3 Clouds.sprite3 Cloud.sprite3 Buildings.sprite3

A22 Importación de los Sprites externos

  1. Entramos en Añadir Sprite
  2. Upload
  3. Elegimos los ficheros exportados anteriormente en A21

2024-12-06 09_22_17-EchidnaML.png

INCREIBLE
nos importa el Sprite CON SU CÓDIGO INCLUIDO si le das a la Bandera verás que el efecto sin apenas realizar trabajo

A3 Muerte del PARROT

Ya lo tenemos casi, añadimos al bucle de PARROT un condicional:

2024-12-06 10_07_06-EchidnaML.png

MEJORAS
Ya sé que colocando el helicóptero siempre arriba, siempre ganas!!
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

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

B SOLUCIÓN CON mBlock

B1 Sprite helicóptero moviéndose según acelerómetro

B11 Añadir un disfraz al helicóptero de explosión. 

Vamos a añadir un objetos: helicóptero 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

B12 Movimiento helicóptero

Vamos a hacer que helicóptero que se mueva según el acelerómetro: (Ver al final DETALLES MAPEO)

echidna-helicoptero12.jpg

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

echidna-helicoptero11.jpg

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

B21 Exportación de un Sprites externos

Esta parte es igual que A21 luego no lo repetimos

B22 Importación de Sprites externos

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

B3 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

MEJORAS
Ya sé que colocando el helicóptero siempre arriba, siempre ganas!!
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

Detalles MAPEO verlo en la situación E de mapeo: https://libros.catedu.es/books/echidna/page/mapeo

PUEDES CAMBIAR ESTOS VALORES TESTEANDO LOS MOVIMIENTOS DEL SPRITE

MONTAJE 10 MATA-ALIENS con Joystick. 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.

Vamos a copiar un proyecto ALIENS INVASION nave espacial con nuestro JOYSTICK de la Echidna.

1.- IMPORTANDO PROYECTO EXTERNO SCRATCH A EchidnaScratch o mBlock

Entramos en SCRATCH https://scratch.mit.edu/  y buscamos ALIENS INVASION, concretamente este : https://scratch.mit.edu/projects/593781518/

2025-07-01 20_36_25-Scratch - Search.png

Entramos en SEE INSIDE

2025-07-01 20_39_34-Aliens invasion on Scratch.png

Lo grabamos en nuestro ordenador

2025-07-01 20_40_59-Aliens invasion on Scratch.png

Nos vamos al programa ECHIDNA ML y cargamos el programa descargado

2025-07-01 20_42_13-EchidnaML.png

2.- Hackear el código para que funcione la nave con el joystick

Vamos a fijarnos en el código de la nave, si nos fijamos se mueve si se pulsan las teclas ⬅️➡️

2025-07-01 20_45_53-EchidnaML.png

Vamos a cambiar el código para que se mueva según el Joystick

Como el joystick está conectado a las entradas analógicas del Arduino, su valor va desde 0 a 1024 siendo aproximadamente 512 cuando esta en reposo o en posición del medio. Vamos a poner unas condicionales para que se mueva hacia la izquierda o hacia la derecha según estos valores, siendo 400 y 600 unos valores arbitrarios pero menores y mayores que 512 :

2025-07-01 20_53_11-EchidnaML.png

3.-Un poco más, disparar con D2 SR

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

En el sprite de la nave vamos a cambiar "Al presionar la tecla espacio"

2025-07-01 20_54_42-EchidnaML.png

Lo vamos a cambiar por 

2025-07-01 20_56_11-EchidnaML.png

Igualmente en el sprite Button2 que es el "láser" hay que cambiar

2025-07-01 20_56_47-EchidnaML.png

Por

2025-07-01 20_58_12-EchidnaML.png

MEJORALO !!!
- es un poco solo ¿le añades un sonido cada vez que se dispara?
- se pueden hacer trampas, dejando apretado el botón hace una ráfaga continua. ¿Puedes limitar a un disparo láser cada vez que se aprieta? 

MONTAJE 10 MATA-ALIENS con acelerómetro

¿Se puede hacer el anterior ejercicio con el acelerómetro? Por supuesto que sí, la única diferencia es que el Joystick va de 0 a 1024 pero el acelerómetro tiene otros valores como puedes ve en esta página https://echidna.es/hardware/componentes/acelerometro-black/


VALOR MÍNIMO VALOR REPOSO VALOR MÁXIMO
JOYSTICK 0 512 1.024
ACELERÓMETRO 285 359 428

más o menos, pues cada placa es diferente

Luego definimos los valores 300 y 400 arbitrarios pero menores y mayores que 359 pero sin llegar a los extremos 285 y 428 para que nuestro sprite nave se mueva :

2025-07-02 07_13_45-EchidnaML.png