# 1. Cómo utilizar Echidna # Tema 1 ¿Cómo utilizar Echidna? En este tema veremos: - **1.1 Qué es Echidna pero antes hay que conocer el ARDUINO** - **1.2 Qué programa** vamos a utilizar para programarlo - **1.3 Comparativa** de otros robots y propuestas para enseñar el pensamiento computacional en nuestras clases. Todos los programas de este curso se encuentran en este repositorio: [https://github.com/JavierQuintana/Echidna](https://github.com/JavierQuintana/Echidna) ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-olfj6gji.png) Source: https://echidna.es/ # Conocer el Arduino primero {{@2936}} # Hardware del Arduino {{@2937}} # Software del Arduino {{@7552}} # Sensores {{@7009}} # Actuadores y otras salidas del Arduino {{@11506}} # ¿Qué es EchidnaShield? ### Ahora sí: ¿Qué es Echidna? Es una Shield de Arduino diseñada para facilitar la programación del Arduino en los últimos cursos de primaria y primeros de secundaria, pensado en minimizar el cableado de la electrónica (ya lo sabemos pues es una Shield) y enfocado a nivel educativo y al lenguaje por símbolos *¿Por qué hemos elegido esta Shield?* Porque tiene un buen equilibrio calidad/precio sencillez/potencial orientado a últimos cursos de primaria, primeros de secundaria: - Es **OpenHardware**, por lo tanto es un proyecto con garantías de estabilidad, libre, colaborativo y vivo, con la misma filosofía que la placa Arduino. ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-epr5prmw.png) [Source: Web oficial Echidna- documentación](https://echidnashield.wordpress.com/hardware/documentacion/) - **Salidas acertadas**: - Diodos Red D13, Orange D12 y Green D11. - Diodo de 3 colores RGB gobernados por D9, D5 y D6 respectivamente. - Audio en D10. - **Entradas o sensores acertados**: - Joystick (estupendo para hacer proyectos atractivos) xy con A0 y A1 - Acelerómetro (idem) xy en A2 y A3 - Luz LDR en A5 - Botones digitales D2 y D3 - **Es MakeyMakey**: ¡Dos Shields en una!: Sensores y [MakeyMakey](https://www.makeymakey.com) por lo tanto da más potencial a nuestros proyectos.(Tenemos [un curso de Makey Makey)](https://libros.catedu.es/books/scratch-avanzado-y-makey-makey) - **Conexión a periféricos**: - Bluetooth que da más potencial a nuestros proyectos. - Tiene pines para conexión de otros elementos como relés pero no pueden pasar de 300mA para más potencia es mejor utilizar Shield adaptados para ello como Edubásica.

Te recomendamos visitar - [https://echidna.es/](https://echidna.es/)

Twitter : - [https://x.com/EchidnaSTEAM?s=20](https://x.com/EchidnaSTEAM?s=20)

**¿Estás preparado? adelante !!!** # Cómo se programa Echidna Shield Tenemos dos opciones: - Programación **mediante lenguajes gráficos**: símbolos, gráficos… tipo [Scratch](https://scratch.mit.edu) - **Ventajas**: Mucho más sencillo e intuitivo, ideal para principiantes en programación como es nuestro caso entre primaria y secundaria. - **Inconvenientes**: No se llega a aprovechar todas las posibilidades del Arduino. - **Programas**: [Snap4Arduino](http://snap4arduino.rocks), [mBlock](http://www.mblock.cc), [ArduinoBlocks,](http://www.arduinoblocks.com) [Bitbloq](http://bitbloq.bq.com), [S4A](http://s4a.cat)... - Programación mediante **código**: - **Ventaja**: Se aprovecha todo el potencial de programación, puesto que se controla todas las variables - **Inconvenientes**: Como toda programación en código, tiene su dificultad y abstracción. - **Programas**: [ArduinoIDE](https://www.arduino.cc/en/Main/Software). Cómo este curso trata del Echidna, que es una shield sencilla, nos decantamos por la programación mediante lenguajes gráficos, no obstante vas a ver las diferencias en el siguiente apartado. Vamos a enseñarte **tres formas** de hacer un mismo programa: **Un semáforo** Nota: Acuerdate en toda esta sección de poner la Echidna en modo Sensor ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-fnia6ln8.png) # MONTAJE 1 SEMÁFORO con mBlock ### PRIMERO QUÉ ES MBLOCK ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-jyaunzvz.png) Es un programa propietario de la empresa MakeBlock basado en Scratch 2.0 Open Software para sus robots. Aunque la anterior definición hace pensar que es un programa que no nos interesa, todo lo contrario, pues los robots de Makeblock están basados en Arduino por lo tanto se programa realmente el corazón de Arduino. Que sea un software propietario, tampoco nos tiene que echar para atrás, pues es gratuito, multiplataforma y nos asegura el mantenimiento y las actualizaciones. Su página de descarga es [http://www.mblock.cc/](http://www.mblock.cc) ### SEGUNDO LA CONFIGURACIÓN DE MBLOCK Es importante seguir el orden de los pasos: ### TERCERO VER EL EJEMPLO DEL SEMÁFORO Y ECHIDNA Ponemos este programa con la Echidna y en mBlock hemos cambiado el disfraz del oso panda por tres círculos con tres disfraces, y el programa del objeto semáforo es [![echidna-semaforo2.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-semaforo2.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-semaforo2.png) El programa en el objeto Arduino es el siguente [![echidna-semaforo-1.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/echidna-semaforo-1.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/echidna-semaforo-1.png) Todo el proyecto esta en [https://planet.mblock.cc/project/3228189](https://planet.mblock.cc/project/3228189) Y este es el resultado: [Video](https://www.youtube.com/watch?v=84Hm0tx5bMo&;feature=youtu.be) Nota, esta realizado con mBlock3.0 que no era necesario enviar mensajes entre objetos y el arduino # MONTAJE 1 SEMÁFORO con Snap4Arduino ### PRIMERO QUÉ ES SNAP4ARDUINO ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-bzjfmkox.png) Es también un programa gráfico basado en Scratch, multiplataforma, libre y abierto y permite muchas versiones de placa, bibliotecas, etc… Es la evolución del [S4A](http://s4a.cat) Usa el firmware standard [Firmata](http://firmata.org). ¿Y qué es un firmware ? Es un programa que se graba y se ejecuta en una placa hardware. En el caso del firmware Firmata, hay que instalarlo en el Arduino para que se comunique con Snap4Arduino. (en mBlock también hay un firmware pero está contenido en el propio mBlock y se instala cuando le damos a Conectar-Actualizar Firmware) Si todo esto del firmware no lo entiendes del todo, no pasa nada, son los pasos que se explican en apartado de la configuración. No es necesario para programar, pero si lo entiendes, mejor. El programa se puede descargar de su web [http://snap4arduino.rocks/](http://snap4arduino.rocks) En principio es la aplicación más acorde con la filosofía de la Shield Echidna. ### SEGUNDO LA CONFIGURACIÓN DE SNAP4ARDUINO En esta presentación se enseña COMO CONFIGURAR SNAP4ARDUINO para que se comunique con nuestro Arduino y la Echidna ### TERCERO EL EJEMPLO SEMÁFORO CON ECHIDNA El programa es el mismo que el anterior, con los mismos disfraces y se puede abrir desde Snap4Arduino desde [esta URL](http://snap4arduino.rocks/run/#present:Username=javierquintana&ProjectName=SEMAFORO) El resultado es [este vídeo](https://youtu.be/Ziuze9mRkys) # MONTAJE 1 SEMÁFORO mediante código ## MONTAJE 1 SEMÁFORO MEDIANTE CÓDIGO ### PRIMERO QUÉ ES "MEDIANTE CODIGO" Es la forma de trabajar de forma profesional el Arduino: con su lenguaje código, en realidad, los otros lenguajes traducen el programa gráfico en lenguaje código Arduino, es decir son meros intermediarios. ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-wpdf7rts.png) El programa se puede descargar de su web oficial, aunque también hay una versión online [https://www.arduino.cc/](https://www.arduino.cc/) ### SEGUNDO LA CONFIGURACIÓN Aquí no hay que instalar ningún Firmware, pues el código, o sea tú programa, es el mismo “firmware”. Digamos que no necesitas intermediarios si tratas con el agricultor ;) ### TERCERO EL EJEMPLO SEMÁFORO CON CÓDIGO Aquí es donde vemos que la programación no es apropiada para Primaria, y la explicación de cada línea necesitaría un curso entero, como [éste](https://libros.catedu.es/books/programa-arduino-mediante-codigo), pero si eres un poco *pito* seguro que eres capaz de leerlo intuitivamente sin problemas. ```C++ /* Semáforo Arduino Leds conectados a pines 11,12,13 = EchidnaShield */ int verde = 11; int amarillo = 12; int rojo = 13; void setup() { pinMode(verde, OUTPUT); pinMode(amarillo, OUTPUT); pinMode(rojo, OUTPUT); Serial.begin(9600); //inicializa la comunicación Serial } void loop() { Serial.println("Semaforo - Inicio"); //Escribe el texto digitalWrite(verde, HIGH); Serial.println("Semaforo - Verde"); //Escribe el texto delay(2000); digitalWrite(verde, LOW); digitalWrite(amarillo, HIGH); Serial.println("Semaforo - Amarillo"); //Escribe texto delay(1000); digitalWrite(amarillo, LOW); digitalWrite(rojo, HIGH); Serial.println("Semaforo - Rojo"); //Escribe el texto delay(2000); digitalWrite(rojo, LOW); } ``` Este programa se escribe (o copia y pega ¡es un texto !!) en el software del Arduino y se carga en la placa, en[ el vídeo](https://youtu.be/S8dQdCqOtto) se ve muy bien: ### Desventaja En este programa queremos que te fijes en una **desventaja**: La interacción con el ordenador se pierde frente a mBlock y Snap4Arduino: - En los lenguajes gráficos, tenemos a **interacción con el ordenador** igual que en Scratch: si te fijas en la pantalla el dibujo del semáforo va cambiando de disfraz para representar los colores de la luz que se enciende a la vez que en el Arduino. - En un programa grabado en el Arduino **perdemos esa interacción**, lo máximo que podemos visualizar es una ventana donde se representa en formato texto qué es lo que le está pasando al Arduino (en el ejemplo del semáforo sale "Semáforo - Verde, Semáforo- Rojo …."). Esto lo vemos como una **desventaja** desde el punto de vista de la enseñanza de la programación pues perdemos el potencial de interactuar con los elementos del ordenador crear personajes, disfraces, sonidos, teclado…, es decir **el sprite** (el oso panda que aparece por defecto en mBlock, la flecha que aparece por defecto en Snap4Arduino o el que nosotros creamos, como este ejemplo el dibujo del semáforo). ### Ventaja Pero… (siempre hay un “pero” para estropear la fiesta) la programación en código tiene una **ventaja**: Se graba en el Arduino, no hay ningún intermediario entre nuestro programa y el Arduino (en mBlock y Snap está el ordenador), quien manda en el Arduino es nuestro programa, no nuestro ordenador, esto se traduce en: **rapidez !**, en mBlock veremos que podemos grabar nuestro programa en Arduino, pero perdemos la interacción con el sprite, como lo veremos más adelante. ### Conclusión Profesionalmente es mejor utilizar lenguaje con código pero en la enseñanza es mejor el lenguaje gráfico. Lo hemos visto en el [apartado ¿Cómo se programa Echidna?](https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/12-como-se-programa-echidna-shield). Es una Shield Educativa, y lo lógico es utilizar un lenguaje adaptado al nivel educativo: Gráfico. Pero … ¿cual? # mBlock vs Snap4Arduino ¿cuál es el mejor?

**Conclusión: mejor el lenguaje gráfico**

¿Pero cual? Siempre es mejor moverse en estándares, y actualmente el lenguaje gráfico que está más extendido y donde hay más proyectos es **Scratch**, luego vamos a centrarnos en dos programas que se basan en Scratch: mBlock y Snap pero ¿cual es mejor? Snap4Arduino o mBock ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-gxm78cfd.gif) ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-r20kjjsp.png) [via GIPHY](https://giphy.com/gifs/jim-parsons-UkrZKxuX8wjeM) ### **Instrucciones específicas para Arduino** ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-cziyfokr.png) Si entramos en la sección de instrucciones específicas para Arduino, en Snap4Arduino sólo tenemos las instrucciones básicas simples, a partir de estas piezas tienes que hacer el puzzle. Mientras que en mBlock tenemos más instrucciones que nos simplifican los programas pues la misma instrucción implican varias de las simples básicas: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-nkqipgo2.png) Esto parece una tontería pero no lo es: por ejemplo, supongamos que queremos reproducir el tono C4 es más o menos 262Hz: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-iarw4jf2.png) Luego tiempo que dura la onda es =1/262 = 0.0038 segundos es decir el tiempo de “encendido HIGH” es 0.0038/2= 0.0019seg y el tiempo de “apagado LOW” es 0.0035/2= 0.0019seg. o sea… que para hacer esta instrucción en mBlock ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-8yb3htzk.png) necesitas hacer todo esto en Snap4Arduino : ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-1jrn6g4s.png) ### **Importación de librerías** ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-apscecma.png) Snap4Arduino puede importar instrucciones o librerías que pueden aumentar el repertorio de instrucciones. mBlock también tiene en Extensiones-Administrar extensiones pero no son tan específicas para el Arduino. ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-aybaqdkm.png) #### **Librería propia para Echidna** Snap4Arduino al ser un software libre, estará siempre ligado a los prototipos que se lancen en hardware libre, y en este caso lo tenemos [![libreriapropiaecihidna.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/libreriapropiaecihidna.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/libreriapropiaecihidna.png) ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-apscecma.png) ### **Reutilizar proyectos desde Scratch** ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-x0ypvpzx.png) Si vemos un proyecto en [Scratch ](https://scratch.mit.edu/)que nos gusta y lo queremos reutilizar lo descargamos y si lo queremos reutilizar... **En mBlock** lo podemos abrir, pero **no** siempre va bien. **En Snap4Arduino** no acepta ficheros Scratch, pero hay conversores online como [Snapin8r](https://snapinator.github.io/), y también da problemas. Conclusión: tortazo a los dos!! ### **Entorno amigable** ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-9sivsk8i.png) En Snap4Arduino no existe un menú arriba, las opciones no se encuentran tan inmediatamente ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-g8i8eexd.png) Mientras que en mBlock es más intuitivo: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-uq7x5626.png) ### **Importante CARGAR A ARDUINO** En mBlock podemos poner la vista de Modo Arduino Y NOS MUESTRA NUESTRO PROGRAMA ESCRITO EN LENGUAJE GRAFICO CONVERTIDO A LENGUAJE CÓDIGO ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-0g0llgez.png) Esto nos permite **SUBIR AL ARDUINO** es decir, nuestro programa grabarlo en el Arduino como si fuera un Firmware y ganar velocidad aquí tienes una captura y puedes observar cómo traduce el programa gráfico en código: [![Subirarduino.png](https://libros.catedu.es/uploads/images/gallery/2023-11/scaled-1680-/subirarduino.png)](https://libros.catedu.es/uploads/images/gallery/2023-11/subirarduino.png) **QUEREMOS EXPLICARTE LO IMPORTANTE QUE ES ESTO** El anterior programa funciona bien si lo hacemos subir al Arduino, pero si lo hacemos de forma normal (cambiamos el evento “Programa Arduino” por evento bandera): ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-njiec2kc.png) **NO FUNCIONA BIEN** ¿por qué?: por la lentitud. Si apretamos el pulsador 2 le pedimos al ordenador que encienda y apague D10 a una velocidad de 0.00175 segundos esto lo tiene que procesar el ordenador, pasa por el cuello de botella del puerto serie y al final se ejecuta en el Arduino a una velocidad mucho más baja, más o menos 0.5 segundos, en vez de oirse un tono, se oye tut,tut,tut,tut…. Si apretamos el pulsador 3 sí que se oye bien, porque mBlock manda el código del bucle de golpe para que se oiga bien. Volveremos a este programa varias veces, no te preocupes si no lo has entendido del todo bien. **Desventajas** de subir un programa al Arduino: 1. **NO PODEMOS INTERACTUAR CON EL ORDENADOR** es decir, no podemos hacer que el sprite (el oso por defecto) se mueva o que al pulsar una tecla del ordenador… porque EL ARDUINO ES INDEPENDIENTE DEL ORDENADOR, incluso podemos desconectarlo y sigue funcionando !!! 2. **Nos hemos cargado el Firmware** que tenía antes !! luego al finalizar tu programa, tenemos que volver a configurar el Arduino para que haga caso al programa mBlock visto en [esta presentación](https://docs.google.com/presentation/d/e/2PACX-1vRLqEoJCT355xMCeCXsd0Wc7JcJRk9JkwLCyzEPb_h1S2IbYKK7OdUf33yWRIXq216Zgh9Da7-gIOq1/pub?start%3Dfalse%26loop%3Dfalse%26delayms%3D3000). **Ventajas** de subir un programa al Arduino: 1. **Rapidez**, tenemos la ventaja del lenguaje con código, el programa se ejecuta a la velocidad del Arduino sin tener el ordenador como intermediario. 2. **Independencia**: Alimentamos el arduino con una batería ¡¡ y funciona !! esto es esencial para proyectos que impliquen movimiento y no queramos tener el ordenador encendido para que funcione. #### **Aunque...: Rapidez en la simulación** Aunque Snap4Arduino no sube el programa, sólo simula, es mucho más rápido en la simulación que mBlock ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-wylssqoa.png) En este [apartado ](https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/montaje-3-timbre)veremos las diferencias. Estan algo reñidos, pero le vamos a dar el premio a mBlock por dos razones - Subir al Arduino - Entorno amigable ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-kel6f1lw.png) Todo es cuestión de gustos, las capturas y descargas de programas de este curso serán en mBlock, pero algunas veces utilizaremos Snap4Arduino cuando nos interesa rapidez en la simulación,. # Programación en mBlock {{@2986}} # Otros Existen otros programas gráficos, el ArduinoBlocks, Bitblock… pero no tienen la posibilidad de iteraccionar con Sprites del ordenador, ni tienen el mismo entorno del referente Scratch, por lo que no se utilizarán en este curso, pero son posibilidades interesantes, os mostramos dos capturas de pantalla del mismo programa semáforo visto anteriormente, fíjate que aquí no hay *Sprite*: Con Bitbloq: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-0yj5jsc3.png) Con ArduinoBlocks: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-umpvhzdc.png) Y un favorito nuestro el **VISUALINO** pues a la vez que haces programación gráfica, va enseñando el código a la derecha: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-8e68ohgq.jpeg) # Alimentación del Echidna ### Alimentación USB: El Echidna **normalmente se alimenta a través de la alimentación USB** del Arduino, ya sea cuando está conectado con el ordenador, o cuando se utiliza un PowerBank por ejemplo, o cargador de móvil (esto ocurre cuando Arduino tiene el programa grabado en él y puede vivir sin el ordenador). ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-4mbpdbny.jpeg) Lo que hay que hacer es que el jumper que tiene arriba a la izquierda tenerlo conectado a 5V: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-7z4es0ae.png) **No utilizar la alimentación 5V cuando los [servos o dispositivos](https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/chapter/5-extensiones "5. Extensiones") a controlar consuman más de 300mA**, para no sobrepasar el regulador del Arduino, en este caso utilizar la alimentación externa: ### Alimentacion externa: Arduino se puede alimentar con un portapilas o fuente de alimentación, sin ningún problema, con un rango desde 9V hasta 12V. ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-1iehzk7l.png) Pero hay que decirle al Echidna que la alimentación no es por 5V sino por **Vin**, pues el Arduino también se alimenta por Vin, esto se hace cambiando el jumper: ![](https://libros.catedu.es/uploads/images/gallery/2022-03/embedded-image-qpsezqgb.png) **Nota**: Es posible que en ocasiones nos interese utilizar **las dos alimentaciones a la vez**, por ejemplo queremos usar el Arduino dependiendo del ordenador, porque queremos por ejemplo que interactue con el *Sprite oso panda del mBlock* (por lo tanto está conectado al cable USB) pero *las extensiones que queremos conectar necesitan potencia* (más de 300mA) por lo tanto conectamos también un portapilas o fuente de alimentación, así pues estamos obligados de decirle al Echidna que alimente las extensiones por Vin cambiando el jumper a Vin. # Kit de préstamo en CATEDU Para hacer este curso te hemos preparado este kit de préstamo, donde tienes todo lo necesario para realizar este tutorial, menos unas bananas para hacer un [piano](https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/42-montaje-11-piano-con-bananas "4.2 MONTAJE 11 Piano con bananas") :) ![]() [![image-1648722025969.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648722025969.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648722025969.png) Ahora déjate de teorías, y vamos a jugar !!