# 3. Entradas de Echidna

# Otra vez acuérdate

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

<p class="callout info">**Nota**: Si has hecho el anterior programa Grabar a Arduino, recuerda dejarlo preparado para que haga caso a mBlock: Conectar-Actualizar Firmware.</p>

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

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-rlz9avhi.png)

Todos los programas de este curso se encuentran en este repositorio: [https://github.com/JavierQuintana/Echidna](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.

##### <span style="color: rgb(22, 145, 121);">**MONTAJE4-ENCENDIDOAPAGADO**</span>

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

##### <span style="color: rgb(22, 145, 121);">**Solución con EchidnaScratch**</span>

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](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-13-31-41-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-03-13-31-41-echidnaml.png)

El código :

[![2024-12-03 13_38_56-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-13-38-56-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-03-13-38-56-echidnaml.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="634" src="https://www.youtube.com/embed/9pn_a5v6PA4" title="echidna black" width="356"></iframe>

El fichero lo tienes en el Github : [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)

##### <span style="color: rgb(22, 145, 121);">**Solución con mBlock**</span>

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

[![echidna-d2-encendido-apagado1.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-d2-encendido-apagado1.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-d2-encendido-apagado1.png)  
Y al arduino:

[![echidna-d2-encendido-apagado2.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-d2-encendido-apagado2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-d2-encendido-apagado2.png)  
El programa lo tienes aquí [https://planet.mblock.cc/project/3228733](https://planet.mblock.cc/project/3228733)

# MONTAJE 4-ENCENDIDOAPAGADO-AVANZADO

##### <span style="color: rgb(22, 145, 121);">**MONTAJE4-ENCENDIDOAPAGADO-AVANZADO**</span>

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.

##### <span style="color: rgb(22, 145, 121);">**Solución EchidnaShield**</span>

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](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-13-56-27-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/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.

<p class="callout warning">**FIJATE 👁️👁️** que la variable ENCENDIDO se cambia a 1 o a 0 para que refleje el estado en el que ha quedado el sistema</p>

<p class="callout warning">**FIJATE** 😎 que hay una espera de 0.5segundos para que en ese tiempo **no lea** si no lo pones, esta todo el rato cambiando los pocos milisegundos que pulsas el botón  
Una manera de quitar ese efecto es poner un "Esperar que NO este pulsado" mira:  
[![2025-11-28 14_38_16-Manual EchidnaBlack y EchidnaML - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-28-14-38-16-manual-echidnablack-y-echidnaml-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-28-14-38-16-manual-echidnablack-y-echidnaml-pdf-xchange-viewer.png)  
Manual EchidnaBlack<sup>2</sup> y EchidnaML [www.echidna.es](https://www.echidna.es) CC-BY-SA</p>

[![2024-12-03 13_58_18-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-13-58-18-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-03-13-58-18-echidnaml.png)

[![2024-12-03 13_58_49-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-13-58-49-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-03-13-58-49-echidnaml.png)

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/ZH-nsYdAazY" width="560"></iframe>

El programa lo tienes en : [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)

##### <span style="color: rgb(22, 145, 121);">**Solución con mBlock**</span>

##### *[![echidna-d2-encendido-apagado3.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-d2-encendido-apagado3.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/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](https://planet.mblock.cc/project/3228741)

<p class="callout info">***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.</p>

<p class="callout success">***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).</p>

<p class="callout success">*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.  
  
</p>

# MONTAJE 5 LDR

##### <span style="color: rgb(22, 145, 121);">**¿Qué es un LDR?** </span>

Vamos a la Wikipedia:

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-fst2wkeg.png)

> [Fotorresistor ](https://es.wikipedia.org/wiki/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.* ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-emnrxno0.png)[More at Wikipedia (ES)](https://es.wikipedia.org/wiki/Fotorresistor)

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/](https://echidna.es/) los valores van desde 20 en ausencia de luz, hasta 1.000 con mucha luz.

#### <span style="color: rgb(22, 145, 121);">**Comprobar los límites**</span>

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](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-03-19-55-23-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-03-19-55-23-echidnaml.png)

##### <span style="color: rgb(22, 145, 121);">**¿Qué vamos a hacer?**</span>

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

- Oscuridad menor 200
- Poca luz entre 200 y 500
- Media luz entre 500 y 800
- Mucha luz mayor 800

Con estos valores vamos a realizar un programa que

- Oscuridad: Ningún led encendido
- Poca luz Luz roja
- Media luz Luz naranja
- Mucha luz Luz verde

#### <span style="color: rgb(22, 145, 121);">**MONTAJE 5 Semáforo luminoso**</span>

<p class="callout info">**RETO** Vamos a reutilizar esfuerzos: reutilizar el semáforo visto pero vamos a hacer que se iluminen los colores según la luz:</p>

<table id="bkmrk-sem%C3%A1foro-luz-todo-ap"><thead><tr><th>Semáforo</th><th>Luz</th></tr></thead><tbody><tr><td>Todo apagado</td><td>Mucha oscuridad</td></tr><tr><td>Rojo</td><td>Oscuridad</td></tr><tr><td>Amarillo</td><td>Luz normal</td></tr><tr><td>Verde</td><td>Mucha luz</td></tr></tbody></table>

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

<table id="bkmrk-sem%C3%A1foro-luz-l%C3%ADmite-"><thead><tr><th>Semáforo</th><th>Luz</th><th>Límite inferior</th><th>Límite superior</th></tr></thead><tbody><tr><td>Todo apagado</td><td>Mucha oscuridad</td><td>---</td><td>199</td></tr><tr><td>Rojo</td><td>Oscuridad</td><td>200</td><td>499</td></tr><tr><td>Amarillo</td><td>Luz normal</td><td>500</td><td>799</td></tr><tr><td>Verde</td><td>Mucha luz</td><td>800</td><td>---</td></tr></tbody></table>

##### <span style="color: rgb(22, 145, 121);">**Solución con EchidnaScratch**</span>

[![2024-12-05 09_43_50-Presentación1 - PowerPoint.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-09-43-50-presentacion1-powerpoint.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-09-43-50-presentacion1-powerpoint.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="634" src="https://www.youtube.com/embed/5JJY39A2Fm8" title="montaje5 echidna ldr" width="356"></iframe>

Lo puedes encontrar en en este repositorio: [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)

##### <span style="color: rgb(22, 145, 121);">**Reto**</span>

<p class="callout info">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</p>

[![echidna-medirluz4.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-medirluz4.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-medirluz4.png)

El resultado lo puedes ver en [este vídeo](https://www.youtube.com/watch?v%3DMX558VKV_pE):

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--7" src="//www.youtube.com/embed/MX558VKV_pE" width="560"></iframe>


##### <span style="color: rgb(22, 145, 121);">**Solución con mBlock**</span>

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](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-medirluz1.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-medirluz1.png)

<p class="callout warning">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</p>

[![echidna-medirluz3.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-medirluz3.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-medirluz3.png)[![echidna-medirluz2.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-medirluz2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-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 ](http://echidna.es/)EN TU CASO PUEDEN SER OTROS !! pero parecidos.

El programa lo tienes aquí [https://planet.mblock.cc/project/3228782](https://planet.mblock.cc/project/3228782)

#### **Programa mBlock**

  
[![echidna-medirluz6.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-medirluz6.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-medirluz6.png)

El programa lo tienes aquí [https://planet.mblock.cc/project/3228793](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

<p class="callout info">Vamos a hacer un semáforo que mida la intensidad del sonido, verde si es poco, y sube hasta rojo cuando es elevado</p>

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

El programa en EchidnaScratch es :

[![2024-12-08 13_37_26-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-08-13-37-26-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-08-13-37-26-echidnaml.png)

Hemos simulado el sonido soplando en el micro :

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/bi17ruyNxSg" title="8 de diciembre de 2024" width="337"></iframe>

<p class="callout info">¿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</p>

<p class="callout success">**¿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)</p>

# MONTAJE 6 Piano luminoso

#### <span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">**Enunciado**</span>

<p class="callout info">*Realizar un programa que suene una nota diferente según la luz*</p>

##### <span style="color: rgb(22, 145, 121);">**Solución en EchidnaScratch**</span>

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](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-12-29-44-presentacion1-powerpoint.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-12-29-44-presentacion1-powerpoint.png)

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/O59dMDvtELQ" width="560"></iframe>

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

##### <span style="color: rgb(22, 145, 121);">**Solución con mBlock5**</span>

En el Arduino el programa es

[![ECHIDNA-PIANOLUZ1.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-pianoluz1.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-pianoluz1.png)

En el objeto, el panda es

[![ECHIDNA-PIANOLUZ2.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-pianoluz2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-pianoluz2.png)

<p class="callout warning">Nota: se ha incorporado una música con un tono, el C Elec Piano</p>

El programa lo tienes aquí

[https://planet.mblock.cc/project/projectshare/3228812](https://planet.mblock.cc/project/projectshare/3228812)

##### <span style="background-color: rgb(22, 145, 121);">**Con mBlock versión 3 ATENCIÓN ESTA VERSIÓN ES OBSOLETA NO RECOMENDADO sólo para PCs muy viejos**</span>

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](#bkmrk-3.2.3.1-cambios-de-e)*

##### Solución

  
El programa es pues el siguiente  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-pc7ndklq.png)  
  
¿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](https://libros.catedu.es/books/echidna/page/124-mblock-vs-snap4arduino-cual-es-el-mejor#bkmrk-1.2.4.7-importante-s).

El resultado lo puedes ver en [este vídeo](https://www.youtube.com/watch?v=b7SSXn4q8WM):

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--11" src="//www.youtube.com/embed/b7SSXn4q8WM" width="560"></iframe>

##### 3.2.3.1 Cambios de escala

Nos encontramos que:

- Los valores de entrada, es decir, el LDR trabaja con unos límites, que según hemos visto en [el apartado comprobar los límites](#3-2-1-comprobar-los-l-mites), el nuestro va de 108 a 982, llamaremos a esta **variable de entrada X**
- Los valores de salida son los tonos,que mBlock trabaja con la norma americana (la europea es el típico Do-Re-Mi-Fa-Sol) y los americanos, son valores numéricos que van desde 48 hasta 72 (lo puedes comprobar con la instrucción “tocar nota” que está en Programas-Sonido). Llamaremos a la **variable salida de notas Y**:

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-sd1d3wb8.png)

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:

- Cuando X = 108 quiero que Y valga 48: 48=m\*108 + n
- Cuando X = 982 quiero que Y valga 72: 72=m\*982 + n

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

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-nmekugja.png)

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](https://docs.google.com/spreadsheets/d/e/2PACX-1vTyASTvUIs_xsZ8c4RZOJ1sEstk4Cc6d--_Drne_U0o1_CXhgzxQkvZ4ZNYGLdKa2lrhLHDKmAwsKnK/pub?output%3Dxlsx) que te lo puedes descargar y facilita las cosas: Ponemos en las celdas amarillas los valores límites :

- X1= 108 X2=982
- Y1=48 Y2=72

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

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-ayouzjze.png)

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

##### <span style="color: rgb(22, 145, 121);">**¿Qué es el Joystick?**</span>

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.

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-p7kviww7.png)

<p class="callout info"><span style="color: rgb(22, 145, 121);">**<span style="color: rgb(0, 0, 0);">LAS COSAS CLARAS: IGUAL DA ESTA INSTRUCCIÓN</span>**  
[![2025-04-30 19_54_37-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-04/scaled-1680-/2025-04-30-19-54-37-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-04/2025-04-30-19-54-37-echidnaml.png)  
**<span style="color: rgb(0, 0, 0);">QUE ESTA: ( poniendo A0) </span>  
[![2025-11-22 23_41_08-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-41-08-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-41-08-echidnaml.png)  
<span style="color: rgb(0, 0, 0);">Preferimos la primera pues EchidnaML se adapta a la versión de la placa</span>**<span style="color: rgb(0, 0, 0);"> *es decir, que si en el futuro el joystick x en una versión furura es por ejemplo A5 la instrucción primera se adapta y lo envía a la A5 siendo transparente al alumnado, mientras que en la segunda tienes que saber que ha cambiado a A5*</span>  
</span></p>

#### <span style="color: rgb(22, 145, 121);">**Reto Telesketch**</span>

<span style="color: rgb(0, 0, 0);">Si no sabes lo que es esto, no has tenido infancia 😊😁</span>

**[![TELSKET.jpg](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/telsket.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-12/telsket.jpg)**

<p class="callout info">Vamos a realizar el mismo ejemplo que [este vídeo de Jorge Lobo](https://youtu.be/Hx5DjQw7e_U) pero en vez de realizado en Snap4Arduino lo vamos a hacer en EchidnaScratch y en mBlock.</p>

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--8" src="//www.youtube.com/embed/Hx5DjQw7e_U" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución con EchidnaScratch**</span>

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

Simplemente vamos a considerar estas condiciones:

- <p class="callout success">*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*</p>
- <p class="callout success">*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*</p>
- <p class="callout success">*Idem para el **eje Y***</p>
- <p class="callout success">***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.*</p>
- <p class="callout success">*Los botones SR y SL nos servirán para subir y bajar el lápiz y borrar*</p>

##### <span style="color: rgb(22, 145, 121);">**¿Lápiz ? ¿Qué lápiz?**</span>

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

[![2024-12-05 15_49_35-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-15-49-35-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-15-49-35-echidnaml.png)

E instalamos esta extensión

[![2024-12-05 15_50_03-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-15-50-03-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-15-50-03-echidnaml.png)

Y se instalan nuevas instrucciones para dibujar

[![2024-12-05 15_51_36-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-15-51-36-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-15-51-36-echidnaml.png)

##### **<span style="color: rgb(22, 145, 121);">Código con EchidnaScratch</span>**

<span style="color: rgb(0, 0, 0);">Recomendamos cambiar el sprite del gato por otro más apropiado, por ejemplo el lápiz y bajarlo a un tamaño 15</span>

<span style="color: rgb(0, 0, 0);">[![2024-12-05 15_54_22-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-05-15-54-22-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-05-15-54-22-echidnaml.png)</span>

<span style="color: rgb(0, 0, 0);">El programa :</span>

- <span style="color: rgb(0, 0, 0);">Inicia las variables que hemos explicado</span>
- <span style="color: rgb(0, 0, 0);">En el bucle, las condicionales hacen que se incremente o decremente las variables X e Y la cantidad definida PASO</span>
- <span style="color: rgb(0, 0, 0);">El botón SR </span>
    - <span style="color: rgb(0, 0, 0);">si se pulsa, pinta</span>
    - <span style="color: rgb(0, 0, 0);">si se suelta no pinta</span>
- <span style="color: rgb(0, 0, 0);">El botón SL borra todo</span>
- <span style="color: rgb(0, 0, 0);">Mover el sprite según las coordenadas X e Y</span>

[![2025-04-30 20_06_40-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-04/scaled-1680-/2025-04-30-20-06-40-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-04/2025-04-30-20-06-40-echidnaml.png)

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

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/a27fEoP_A2w" width="560"></iframe>

##### **<span style="color: rgb(22, 145, 121);">Solución con mBlock</span>**

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:

<p class="callout success">*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  
![](https://libros.catedu.es/images/image86.png)*[![image-1648727378013.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648727378013.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/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  
![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-6kzsd3fc.png)  
Para los valores del eje Y es igual, cambiando A0 por A1  
</p>

#### <span style="color: rgb(22, 145, 121);">**Programa en mBlock**</span>

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

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/xft-6Nz3yzE" width="560"></iframe>

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

[![echidna-teleschetch.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-teleschetch.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/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](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-teleschetch2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-teleschetch2.png)

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

**VA MUY LENTO** El resultado lo puedes ver en [este vídeo](https://www.youtube.com/watch?v%3DJzyd5cPb2-Y):

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--13" src="//www.youtube.com/embed/Jzyd5cPb2-Y" width="560"></iframe>

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

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--15" src="//www.youtube.com/embed/j1lsYq6X5-U" width="560"></iframe>

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

# MONTAJE 7 BIS MATA ALIENS con JOYSTICK

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](https://scratch.mit.edu/) tiene un repositorio de millones de proyectos, podemos seleccionar uno, y adaptarlo a nuestra simpática Echidna.

![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-uleq7uz5.png)

<p class="callout info">Vamos a copiar un proyecto ALIENS INVASION nave espacial con nuestro JOYSTICK de la Echidna.</p>

##### <span style="color: rgb(22, 145, 121);">**1.- IMPORTANDO PROYECTO EXTERNO SCRATCH A EchidnaScratch o mBlock**</span>

Entramos en SCRATCH [https://scratch.mit.edu/](https://scratch.mit.edu/) y buscamos ALIEN INVASION, concretamente este : [https://scratch.mit.edu/projects/29744/](https://scratch.mit.edu/projects/29744/)

[![2025-11-22 23_13_30-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-13-30-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-13-30-echidnaml.png)

Entramos en **SEE INSIDE**

[![2025-07-01 20_39_34-Aliens invasion on Scratch.png](https://libros.catedu.es/uploads/images/gallery/2025-07/scaled-1680-/2025-07-01-20-39-34-aliens-invasion-on-scratch.png)](https://libros.catedu.es/uploads/images/gallery/2025-07/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](https://libros.catedu.es/uploads/images/gallery/2025-07/scaled-1680-/2025-07-01-20-40-59-aliens-invasion-on-scratch.png)](https://libros.catedu.es/uploads/images/gallery/2025-07/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](https://libros.catedu.es/uploads/images/gallery/2025-07/scaled-1680-/2025-07-01-20-42-13-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-07/2025-07-01-20-42-13-echidnaml.png)

##### <span style="color: rgb(22, 145, 121);">**2.- Hackear el código para que funcione la nave con el joystick**</span>

<span style="color: rgb(0, 0, 0);">Vamos a fijarnos en el código de la nave, si nos fijamos se mueve según la posición X del ratón, **vamos a cambiar ese código**</span>

<span style="color: rgb(0, 0, 0);">**[![2025-11-22 23_19_05-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-19-05-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-19-05-echidnaml.png)**</span>

<span style="color: rgb(0, 0, 0);">**Creamos** dos variables :</span>

- <span style="color: rgb(0, 0, 0);">Una que se llame **X** que tendrá la posición X de la nave, la inicializamos a 0 al principio y así se coloca la nave enmedio al empezar la partida</span>
- <span style="color: rgb(0, 0, 0);">Otra que se llame **PASO** que fija el paso o incremento cuando se mueva, cuanto más alto, más rápido se mueve, pero menos preciso, a golpes, cuanto más bajo, más lento pero más preciso, lo pondremos a 2</span>

<span style="color: rgb(0, 0, 0);">Y cambiamos el código de mover la nave :</span>

<span style="color: rgb(0, 0, 0);">[![2025-11-22 23_27_17-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-27-17-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-27-17-echidnaml.png)</span>

- <span style="color: rgb(0, 0, 0);">Si el joystick en el sentido X **baja** de 200 (puede ser un número entre 0-512 pues 512 en teoría es enmedio) pues que X se **decremente** un PASO</span>
- <span style="color: rgb(0, 0, 0);">Si el joystick en el sentido X **sube** de 600 (puede ser un número entre 512-1021 pues 1024 es el máximo) pues que X se **incremente** un PASO</span>

##### <span style="color: rgb(45, 194, 107);">**3.- QUE DISPARE APRETANDO EL BOTÓN SL**</span>

<span style="color: rgb(0, 0, 0);">Si nos fijamos, dispara si pulsamos la tecla **espacio**, lo quitamos y ponemos todo ese código dentro del código nuevo que se ejecuta si apretamos el botón SL</span>

<span style="color: rgb(0, 0, 0);">[![2025-11-22 23_31_09-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-31-09-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-31-09-echidnaml.png)</span>

<span style="color: rgb(0, 0, 0);">Queda pues</span>

<span style="color: rgb(0, 0, 0);">[![2025-11-22 23_33_12-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-22-23-33-12-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-22-23-33-12-echidnaml.png)</span>

##### <span style="color: rgb(45, 194, 107);">**El resultado**</span>

<span style="color: rgb(0, 0, 0);">Todos los programas de este curso se encuentran en este repositorio: [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna)</span>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/Ps3jB89KIg8" width="560"></iframe>

# MONTAJE 7 BIS 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/](https://echidna.es/hardware/componentes/acelerometro-black/)

<table border="1" id="bkmrk-valor-m%C3%8Dnimo-valor-r" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><colgroup><col style="width: 25%;"></col><col style="width: 25%;"></col><col style="width: 25%;"></col><col style="width: 25%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">**VALOR MÍNIMO**</td><td style="height: 29.7969px;">**VALOR REPOSO**</td><td style="height: 29.7969px;">**VALOR MÁXIMO**</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**JOYSTICK**</td><td style="height: 29.7969px;">0</td><td style="height: 29.7969px;">512</td><td style="height: 29.7969px;">1.024</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**ACELERÓMETRO**</td><td style="height: 29.7969px;">285</td><td style="height: 29.7969px;">359</td><td style="height: 29.7969px;">428</td></tr></tbody></table>

más o menos, pues cada placa es diferente

Puedes probar tus valores con este sencillo programa

[![2025-11-23 08_50_15-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-23-08-50-15-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-23-08-50-15-echidnaml.png)

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-11-23 08_53_18-EchidnaML.png](https://libros.catedu.es/uploads/images/gallery/2025-11/scaled-1680-/2025-11-23-08-53-18-echidnaml.png)](https://libros.catedu.es/uploads/images/gallery/2025-11/2025-11-23-08-53-18-echidnaml.png)