# 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,.