8 Extensiones (avanzado)
- ¿Y este capítulo?
- Encendido sensible
- Alarma láser
- Tractor entrando al corral
- Semáforo distancia
- Bluetooth I Un poco de teoría
- Bluetooth II APP Serial Bluetooth Terminal
- Bluetooth III El HC06
- Bluetooth IV El programa en mBlock
¿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. :
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
En el panda
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.
- La alarma está protegida por un haz laser (que enfoca a nuestro querido LDR del Echidna), si se corta el haz la alarma suena.
- El disparo va a ser simulada en el ordenador, no queremos queremos que alertar a los vecinos, un sonido en el ordenador y en la pantalla una imagen en el ordenador.
- Para desactivar la alarma, pulsamos la tecla espacio, y nos pide introducir el código (tienes 10 segundos para darle más entusiasmo, sino se dispara), si has acertado, el laser se apaga y ya puedes entrar a tu lindo hogar.
Luego vamos a no ponernos nerviosos para desactivar la alarma y mantener la serenidad.
Solución
Conexiones son sencillas, el laser al D4 por ejemplo y hay que tener maña para que apunte al LDR:
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
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)
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:
El script que desactiva la alarma es cuando reciba el mensaje _Ufff _por lo tanto para el cronómetro y apaga el laser:
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
Y por último la explosión
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
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.
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
Hay que instalarlo en los dos, en el Arduino y en el objeto Panda
En el objeto panda pondremos este código
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
Resultado: El panda nos dice en cm el obstáculo que ponemos delante del sensor US:
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
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 ?
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:
- Amplitud: altura máxima de la onda. Hablando de sonido representaría el volumen. Si nos referimos a una onda eléctrica estaríamos representando normalmente el voltaje.
- Longitud de onda λ: distancia entre el primer y último punto de un ciclo de la onda (que normalmente se repite en el tiempo).
- Frecuencia f : Número de veces que la onda repite su ciclo en 1 segundo (se mide en hertzios).
- Periodo T es simplemente es la inversa de la frecuencia. T=1/f
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. 
- Hoy en día, este grupo está formado por miles de empresas y se utiliza no sólo para teléfonos sino para cientos de dispositivos.
- Bluetooth es una red inalámbrica de corto alcance pensada para conectar pares de dispositivos y crear una pequeña red punto a punto, (sólo 2 dispositivos).
- Utiliza una parte del espectro electromagnético llamado “Banda ISM”, reservado para fines no comerciales de la industria, área científica y medicina. Dentro de esta banda también se encuentran todas las redes WIFI que usamos a diario. En concreto funcionan a 2,4GHz. (Un G son 109) luego entre FM y Microondas.
¿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?
- Un vídeo de 7Mb usando versión 2 clase 2
- Una imagen de 2.5Mb usando versión 3 clase 1
- 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:
- Si acepta Bluetooth clásico o BLE
- Que la APP acepte leer datos desde el robot como enviar
Nosotros hemos elegido uno sencillo que cumple las dos condiciones (hay muchas APPs) Serial Bluetooth Terminal
Bluetooth II APP Serial Bluetooth Terminal
DESCARGA LA APP
Esta APP es muy sencilla y la puedes descargar aquí. Tiene las siguientes ventajas :
- Enviar / Recibir mensajes
- Permitir conexiones tanto
- BLUETOOTH CLÁSICO por ejemplo HC06 de Arduino, Echidna, ESP32 ...
- BLUETOOTH LE (Low emision) por ejemplo para la MICRO:BIT
EMPAREJAR DISPOSITIVOS
Si no esta emparejado con el móvil NO TE PUEDES CONECTAR, para ello entramos en Devices :
- Microbit: Entramos en Devices y en Bluetooth LE y nos conectamos a la Micro:bit
- HC06 para Arduino Echidna ESP32.... igual pero en Bluetooth clásico
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
¿Y si no aparece o no esta emparejado? Entras en el diálogo de Android de Bluetooth y lo emparejas
CONECTARTE
Una vez seleccionado el dispositivo emparejado ya puedes conectarte :
- Menú
- Entras en Terminal
- Enchufe
- Sale conectado, ya estas preparado para enviar y recibir
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...
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:
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)
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
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
- Si envío una R se enciende el Rojo
- Si envío una A se enciende el Amarillo
- Si envío una L que me diga el nivel de Luz que hay, 10 lecturas para ver cómo cambia
SOLUCIÓN
El programa lo puedes descargar aquí https://planet.mblock.cc/project/6844489
- 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
- PONEMOS LA VELOCIDAD DE BLUETOOTH A 9600 HAY QUE BAJARLO SINO NO FUNCIONA
- Y ponemos Rx que es D0 y Tx es D1 como hemos visto anteriormente
- El programa empieza con el clásico bucle y pregunta si se han recibido datos
- Si se han recibido datos pues entonces lo almacena en una variable interna llamada "Letra"
- Si Letra = R entonces se enciende el led Rojo
- Si Letra = A entonces se enciende el led Amarillo
- Si Letra = L entonces es que preguntamos qué nivel hay de Luz
- Entramos en un bucle de 10 veces tal y como dice el enunciado
- Escribe en la APP el valor de la luz medida en el sensor LDR que está en el A5
- 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
