8 Extensiones (avanzado)


¿Y este capítulo?

Con los anteriores 15 montajes es suficiente para ya desarrollar proyectos con Echidna.

Este curso pertenece a otro antiguo que el paquete incluían más elementos

En este apartado lo mostramos aquí para que te sirvan de inspiración en tus futuros proyectos. Aunque están hechos con mBlock, son perfectamente realizables en EchidnaScratch

El antiguo paquete de préstamo contenía los siguientes elementos. :

image-1648722025969.png

En el caso de que tengas la ECHIDNA BLACK es lo mismo pero SIN LA PLACA ARDUINO pues la Echidna Black ya lo incorpora.

Aquí puedes ver un precio orientativo de los elementos:

Encendido sensible

Sensor infrarojos

Encendido Sensible 

Vamos a provechar las conexiones digitales que tiene Echidna preparado para conectar módulos exteriores, si te fijas está preparado para conectar fácilmente estos módulos pues facilita la alimentación, GND y el pin digital

Hay muchos módulos para conectar, y todos tienen la misma configuración en sus pines : GND, + , I/O, donde I/O es el pin digital o analógico de entrada o salida, dependiendo del sensor, y como puedes ver en la figura, hay mucha variedad (busca en Internet sensores para Arduino)

hay para a empezar con uno sencillo de entrada digital que es muy útil: el sensor Infrarrojos

Para ver más información de este sensor te recomendamos esta página.

En el Echidna arriba a la izquierda tienes 3 conectores digitales a elegir, nosotros elegimos el primero D4 luego el pin OUT del sensor se conecta al D4, el resto en el mismo orden

Nota: El potenciometro es para ajustar la sensibilidad

OJO Hay sensores que tiene los pines en otro orden FIJATE de lo contrario el sensor se pondrá a arder

Nota: Hay sensores con 4 pines, que permiten alimentar el diodo IR de forma independiente, pero tienen un jumper que inutiliza el 4 para sólo utilizar los 3 pines.

Realizamos un pequeño programa muy fácil que detecta si hay un obstáculo o no:

En el Arduino

echidna-infrarojos.jpg

En el panda

echidna-infrarojos2.jpg

Y el disfraz costume2 lo hemos tintado de rojo

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

El resultado es:

Alarma láser

Hemos visto anteriormente una entrada digital sencilla con el sensor IR, ahora vamos a ver una salida digital muy simple, buscando siempre la motivación en nuestros proyectos: El diodo Laser.

Si quieres saber más de este componente, te recomendamos la página de Luis Llamas. Si tienes que comprar uno, te recomendamos que no sea superior a 5mW, pues puede dañar permanentemente la retina del ojo [+info]. El modelo que te proponemos es de 1mW, no obstante, EVITA QUE EL LÁSER APUNTE A LOS OJOS espcialmente con niños.

RETO Te proponemos que realices un programa para desactivar una ALARMA LASER.

Luego vamos a no ponernos nerviosos para desactivar la alarma y mantener la serenidad.

via GIPHY

Solución


Conexiones son sencillas, el laser al D4 por ejemplo y hay que tener maña para que apunte al LDR:

image-1648741838386.png

El script que controla si se corta el haz laser que se dispare es un condicional que lee el LDR en A5, mientras sea mayor que 900 es que tiene una intensidad de luz muy grande, es decir, le está enfocando el laser, la variable _PARACRONO _es en el caso de que se desactive la alarma, el laser se apagará luego que no se crea que se corta el haz. Si se corta el haz envía un mensaje _Booom _que lo leeran los demás scripts. Se aprovecha este script para ENCENDER EL LASER pin digital 4 alto:

En el Arduino 

echidna-laser1.jpg

En el objeto (que hemos seleccionado una bomba y le hemos puesto un disfraz explosión tal y como se ha explicado antes, utilizando el objeto sun)

echidna-laser2.jpg

El script que controla la desactivación de la alarma mediante código es el siguiente. Si se acierta con el código secreto 666, se envía el mensaje _Ufff _al resto de scripts:

echidna-laser3.jpg

El script que desactiva la alarma es cuando reciba el mensaje _Ufff _por lo tanto para el cronómetro y apaga el laser:

echidna-laser4.jpg

El script del tiempo cuenta de forma descendente, y si finaliza envía el mensaje Boom al resto de scripts, sólo se para si PARACRONO=1

echidna-laser5.jpg

Y por último la explosión

echidna-laser6.jpg

El resto: esconder y mostrar scripts y disfraces se omiten por simplicidad, el programa lo puedes descargar aquí : https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/53-montaje-15-alarma-laser

El resultado es

OTRO RETO

Si se corta el haz, hay 10 segundos para desactivarlo con código, sino, se dispara. No ponemos la solución ¡¡ponlo tú en el muro !!

Seguro que se te ocurren muchas ideas...

Tractor entrando al corral

Te proponemos un reto utilizando dos elementos vistos en esta unidad, para dar un poco de rienda suelta a tu imaginación de la cantidad de proyectos que se pueden hacer.

Reto

Construir un proyecto donde la barrera (hecha de cartón y fijada al servo) está bajada y el semáforo en rojo. Si el sensor IR detecta un vehículo, tiene que abrir la barrera durante 5 segundos y el semáforo en verde. Antes de cerrar, se encenderá el semáforo en naranja para advertir que se va a cerrar la barrera.

Solución

Conectamos por ejemplo el servo al D4 y el sensor de IR al D7
Con mBlock 3


Con mBlock5 es igual

echidna-servo3.jpg

Lo tienes aquí https://planet.mblock.cc/project/3234387

Otro reto más difícil

Este ya es para los "sobresalientes":

Podemos hacer que la barrera se abra con Bluetooth, o que también baje si el sensor de Ultrasonidos en el otro lado detecta que el vehículo ya ha pasado. Aunque el vídeo está hecho con la Shield Edubásica perfectamente se puede hacer con Echidna, y en nuestro caso podemos sustituir un sensor ultrasonidos con un sensor IR.

Semáforo distancia

Queremos poner un ejemplo de un sensor que tenga 4 pines, barato y que puede darnos mucho juego pues nos da información de la distancia en la que se encuentra un objeto.

Funciona por eco entre la señal que se emite por Trg y la que se recibe por Echo y para su utilización requiere utilizar la fórmula de conversión de tiempo a espacio con la fórmula de la velocidad del sonido... tranqui !! no lo vamos a hacer, pues ya mBlock tiene una función especial para ello sin utilizar fórmulas y nos da directamente la distancia en cm, pero si quieres saber más sobre este sensor, te recomendamos la página de Luis Llamas.

echidna-semaforo-distancia1.jpg

RETO LEER EL VALOR DEL SENSOR ULTRASONIDOS

Queremos que el objeto panda nos diga la distancia en cm

SOLUCIÓN

Hay un problema

En mBlock3 se puede utilizar en vivo. En mBlock5 no se puede UTILIZAR EN VIVO LA INSTRUCCION LEE SENSOR ULTRASONIDOS no sabemos por qué. Sólo podemos cargar el programa en el Arduino

Gracias a la contestación de este foro, podemos hacerlo instalando una extensión

echidna-semaforo-distancia2.jpg

Hay que instalarlo en los dos, en el Arduino y en el objeto Panda

En el objeto panda pondremos este código

echidna-semaforo-distancia3..jpg

CONEXIOONES Como se necesitan 4 pines, y las extensiones tienen 3 utilizaremos alguno libre.

La conexión que vamos a realizar entre los pines I/O de Echidna y el sensor ultrasonidos HC-SR04 va a ser:

el D4 en Trig
el D7 en Echo
el '+' en Vcc
 el G en GND

y en el Arduino el siguiente programa, y pulsamos SUBIR

echidna-semaforo-distancia4.jpg

Resultado: El panda nos dice en cm el obstáculo que ponemos delante del sensor US:

echidna-semaforo-distancia5.jpg

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

RETO RADAR LUMINOSO

Realizar un programa que a medida que se acerque un objeto, se enciendan más luces

Solución

El programa es simplemente recoger la distancia con la instrucción que hemos señalado antes. La conexión igual que antes y por lo tanto el programa es poner de límites 50cm, 40cm, 30cm, 20cm y 10cm para ir encendiendo luces.

El programa es largo

echidna-semaforo-distancia6.jpg

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

El resultado es :

Los siguientes retos, aunque las imágenes se ve que no están hechos con Echidna, da igual, es simplemente conectar el trig y echo en los pines D4 y D7 del Echidna y utilizar la instrucción de "lee el sensor ultrasónico trig pin 4 echo pin 7" (o utilizar otro orden o el D8 si te pones revelde y cambiar los números anteriores) ¿Te atreves a hacerlos todos ?

via GIPHY

RETO HINCAR UNA PELOTA Pon de sprite una pelota y que se hinche a medida que acercas un objeto al ultrasonidos. Solución

RETO PIANO INVISIBLE

Que suene una nota según la distancia del objeto. Solución

RETO RADAR CON INTERMITENCIA DE UN LED

Cuanto más cerca está un objeto, más rápido un led se enciende y apaga. Solución

RETO SENSOR PARKING

Cuanto más cerca está un objeto, más rápido suena un pitido intermitente Solución

Bluetooth I Un poco de teoría

ONDAS

Una onda es una señal que se propaga por un medio. Por ejemplo el sonido, que es una onda mecánica que viaja usando el aire o cualquier otro material. Pero en el caso de las señales eléctricas pueden ser enviadas por el cable o a través del vacío (no necesitan un medio para transmitirse).

Dependen de 3 parámetros principalmente:

La relación entre ellas es muy fácil pues las ondas electromagnéticas viajan a la velocidad de la luz c y si velocidad es espacio/tiempo luego c = λ/T luego c= λ*f

Dentro del espectro electromagnético encontramos diferentes tipos de señales dependiendo de las características de su onda.

TRANSMISIÓN INALÁMBRICA: BLUETOOTH.   

¿Sabias que?
Su curioso nombre viene de un antiguo rey Noruego y Danés, y su símbolo, de las antiguas ruinas que representan ese mismo nombre. 

Hay 3 clases de bluetooth que nos indican la máxima potencia a la que emiten y por tanto la distancia máxima que podrán alcanzar:

También es muy importante la velocidad a la que pueden enviarse los datos con este protocolo:

Mbps : Mega Bits por segundo.       MBps: Mega Bytes por segundo.
kb = 1.024 b     M = 1.024 k     G = 1.024 M

¿Te atreves a calcularlo . ?

¿Cuántos ciclos por segundo tendrán las ondas que están en la Banda ISM? ¿Cuál es el periodo de esas ondas?

Solución 
a)  f = 2.4G
b) λ=c/f= 12.5cm o sea, las antenas tendrían que ser de esta longitud. Hay muchos trucos para reducirla, una de ellas es la forma de serpiente que puedes ver en el HC-06

¿Te atreves a calcularlo...?

¿A qué distancia y cuanto tiempo tardarían en enviarse los siguientes archivos por Bluetooth?

  1. Un vídeo de 7Mb usando versión 2 clase 2
  2. Una imagen de 2.5Mb usando versión 3 clase 1
  3. Un archivo de texto de 240KB usando versión 1.2 clase 1

Solución 
1) 7Mb / 3Mbs = 2.3 seg.
2) 2.5Mb / 24Mbs = 0.1 seg.
3) 240 kB 8b/B = 1.920 kb   1.920 kb  / 1.024 =   1.875 Mb     1.875Mb / 1Mbs  = 1.875 seg. 

¿Bluetooth clásico o Bluetooth Low Energy = BLE?

Es un protocolo similar al clásico Bluetooth pero diseñado a consumir menos potencia manteniendo funcionalidad. Su popularidad ha crecido en multitud de dispositivos  

En robótica, el clásico device que utiliza BLE es la Micro:bit. Aunque la Micro:bit no tiene Wifi integrada, posee una radiofrecuencia que podemos configurar para Bluetooth (hay que elegir, o utilizar sus comandos de Radio o utilizar comandos de Bluetooth)

Por eso a la hora de elegir la APP tienes que tener en cuenta:

Nosotros hemos elegido uno sencillo que cumple las dos condiciones (hay muchas APPs) Serial Bluetooth Terminal

2025-12-05 08_05_39-WhatsApp.png

Bluetooth II APP Serial Bluetooth Terminal

DESCARGA LA APP

Esta APP es muy sencilla y la puedes descargar aquí. Tiene las siguientes ventajas :

2025-11-02 21_50_49-Greenshot.png

EMPAREJAR DISPOSITIVOS

Si no esta emparejado con el móvil NO TE PUEDES CONECTAR, para ello entramos en Devices :

2026-01-19 10_15_17-WhatsApp.png

Aquí puedes ver dos capturas de dispositivos en Bluetooth clásico y Bluetooth BLE

LOS QUE ESTAN EN VERDE SON LOS QUE TIENES EMPAREJADOS Y PUEDES CONECTARTE

unnamed.webp  2026-01-19 10_08_05-WhatsApp.png

¿Y si no aparece o no esta emparejado? Entras en el diálogo de Android de Bluetooth y lo emparejas
2026-01-19 10_12_41-Greenshot image editor.png

CONECTARTE

Una vez seleccionado el dispositivo emparejado ya puedes conectarte :

  1. Menú
  2. Entras en Terminal
  3. Enchufe
  4. Sale conectado, ya estas preparado para enviar y recibir

2026-01-19 10_15_17-WhatsApp.png


Bluetooth III El HC06

ADVERTENCIA

ATENCIÓN: COMO PUEDES VER LOS PINES DE TRANSMISIÓN Y DE RECEPCIÓN SON D0 Y D1 QUE COINCIDEN CON LA TRANSMISIÓN Y RECEPCIÓN DEL PUERTO SERIE UCB POR LO TANTO NO SE PUEDE UTILIZAR A LA VEZ EL HC06 Y LOS DATOS POR EL USB EL HC06 BLOQUEA LA COMUNICACIÓN POR CABLE

ESTA ES LA RAZÓN POR LA CUAL NO SE PUEDE UTILIZAR EL PROGRAMA ECHIDNA ML PARA PROGRAMAR
PUES TRABAJA EN VIVO, puedes utilizar cualquier programa que trabaje en carga: mBlock, ArduinoIDE...

2025-12-05 09_34_26-Microsoft PowerPoint - [Presentación1].png
Fuente de las imágenes: www.echidna.es

COMO SE CONECTA

Echidna tiene un conector preparado para conectar un módulo de Bluetooth

Nosotros utilizaremos un JY-MCU o HC-06 muy común y barato :

Para conectar el HC-06 lo hacemos hacia abajo de modo que coincida los pines:

Pines del HC-06 Pines del Echidna Pines del Arduino
Vcc 5V 5V
GND GND GND
RX TX D1
TX RX D0


En la foto aparece un echidna red

Een la black es igual hacia abajo pero ponlo en medio del zócalo para que coincida bien, pues en el Echidna Black el zócalo hembra tiene 6 pines y el HC06 tiene 4:

EchidnaBlack_0_BT34-600x336.png
Imagen www.echidna.es

 

Bluetooth IV El programa en mBlock

Como ya hemos visto NO podemos usar EdhidnaML pues trabaja en vivo y el HC06 bloquea el cable USB

PASO 1 INSTALAMOS EL DISPOSITIVO ARDUINO IDE

Vamos a Dispositivos - Añadir - Arduino UNO (no vale el Echidna ni el Arduino nano)

2025-12-05 10_03_34-mBlock v5.4.3.png

PASO 2 INSTALAMOS LA EXTENSIÓN BLUETOOTH SERIAL

Hay muchas extensiones que trabajan el Bluetooth con Arduino (hay mucha basura) hemos elegido este pues es una extensión sencilla, en castellano y que envía como recibe por el Bluetooth

2025-12-05 10_15_18-Greenshot image editor.png

PASO 3 PROGRAMA

Con la extensión instalada y el dispositivo ya podemos empezar a programar

ENUNCIADO Vamos a realizar un programa que envíe y reciba datos desde la APP del móvil al Echidna

SOLUCIÓN

2025-12-05 10_17_34-mBlock v5.4.3.png
El programa lo puedes descargar aquí https://planet.mblock.cc/project/6844489

  1. Utilizamos los pines del Arduino (busca instrucciones azules Pin) el led rojo está en D13 y en naranja en el 12 de momento empezamos poniéndolos apagados
  2. PONEMOS LA VELOCIDAD DE BLUETOOTH A 9600 HAY QUE BAJARLO SINO NO FUNCIONA
    1. Y ponemos Rx que es D0 y Tx es D1 como hemos visto anteriormente
  3. El programa empieza con el clásico bucle y pregunta si se han recibido datos
  4. Si se han recibido datos pues entonces lo almacena en una variable interna llamada "Letra"
  5. Si Letra = R entonces se enciende el led Rojo
  6. Si Letra = A entonces se enciende el led Amarillo
  7. Si Letra = L entonces es que preguntamos qué nivel hay de Luz
  8. Entramos en un bucle de 10 veces tal y como dice el enunciado
  9. Escribe en la APP el valor de la luz medida en el sensor LDR que está en el A5
    1. OJO HAY QUE MAPEARLO (ya hemos visto qué significa esto) y la instrucción de mapear está en violeta en Datos

CUÁNTO HAY QUE MAPEARLO pues el LDR según www.echidna.es va desde 1 a 900 y Bluetooth solo lee un carácter en ASCII luego convertimos el valor de A5 (1-900) a un valor ASCII que si vemos la tabla, lo hacemos para los valores de los caracteres 48 (0) a 57 (9) y así nos da una lectura de la cantidad de luz entre 0 y 9

VALOR ASCII CARACTER
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9

Resultado

Otras APPs

Hay otras apps como el Arduino Bluetooth Control  que permite poner flechas, control de voz... pero no permite envío de Echidna a APP

Incluso se podría hacer un coche teledirigido, el programa lo tienes en el repositorio: https://github.com/JavierQuintana/Echidna y el vídeo en el muro