Archivo de la etiqueta: Programación por Bloques

Programación Dispositivos M5Stack con UIFLOW

UIFlow es una plataforma Web de programación usando Blockly y Python

Web: http://flow.m5stack.com/

UIFlow: https://m5stack.com/pages/uiflow

Foro UIFlow: http://forum.m5stack.com/category/5/uiflow

UIFlow Doc: https://m5stack.github.io/UIFlow_doc/en/

Tutorial: https://docs.m5stack.com/#/en/uiflow/uiflow_home_page

Manual de UIFlow: http://flow.m5stack.com/download/M5GO_User_Manual_en.pdf

Vídeos:

Quick Start UIFlow:

UIFlow-Desktop-IDE: https://m5stack.com/pages/download (UIFlow en local sin acceso a Internet)

Cargar Firmware UIFlow

Lo primero es cargar el firmware de UIFlow en M5Stack para poder programarlo con UIFlow, para ello debemos usar el programa M5Burner: https://docs.m5stack.com/#/en/quick_start/m5stickc/m5stickc_quick_start_with_uiflow que se puede descargar desde https://m5stack.com/pages/download

En caso que no nos reconozca el puerto serie M5Burner, habrá que instalar el driver como hemos hablado anteriormente desde: https://m5stack.com/pages/download 

El Driver Oficial para la interfaz serie CP210X se puede descargar en: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

A la hora de cargar el firmware, seleccionar la versión de UIFlow que se va a usar en http://flow.m5stack.com/ y en caso que no aparezca resaltada, descargarla.

Luego seleccionar el puerto serie y el modelo de M5Stack que vamos a usar y por último configurar la wifi a la que se va a conectar para programar on-line.

Y pulsar el botón burn, si da fallo probar a reducir el baudrate por defecto o borrar la flash con el botón erase.

En caso que no se haya configurado la wifi o no esté disponible la wifi, el M5Stack se configura como un AP Hotspot donde abre una red wifi a la que me puedo conectar y entrar a la web para configurar la wifi.

Modo Programación en Red

El modo de programación de red es un modo de acoplamiento entre el dispositivo M5Stack y la plataforma de programación web UIFlow. La pantalla mostrará el estado actual de la conexión de red del dispositivo. Cuando el indicador está en verde, significa que puede recibir un programa push en cualquier momento. Después de la primera configuración exitosa de la red WiFi, el dispositivo se reiniciará automáticamente e ingresará al modo de programación de red. 

Una vez que el M5Stack tiene cargado el firmware y se inicia, se conectará a la wifi configurada y nos mostrará en pantalla el API KEY:

Una vez conectado y con el icono en verde, ya puedo entrar en http://flow.m5stack.com/ y emparejar el dispositivo M5 para programarlo. Para ello debo indicar el APIKEY y el dispositivo.

Una vez hecho esto ya se puede comenzar a programar con UIFlow. Lo siguiente le mostrará un programa simple para manejar M5StickC.

Para encender el indicador LED:

  • Arrastre el LED para iluminar el bloque de programa.
  • Empalme con el programa de inicialización de configuración.
  • Haga clic en el botón Ejecutar en la esquina superior derecha

Modo Programación USB

UIFlow Desktop IDE es una versión offline del programador UIFlow que no requiere conexión de red y puede ser una alternativa en caso de no tener acceso a Internet o una conexión lenta . Haga clic en la versión correspondiente de UIFlow-Desktop-IDE para descargar de acuerdo con su sistema operativo en https://m5stack.com/pages/download

Una vez instalado, detectará automáticamente si su ordenador tiene un controlador USB (CP210X), haga clic en Instalar y siga las instrucciones para finalizar la instalación. M5StickC no requiere un controlador CP210X, por lo que los usuarios pueden elegir instalar u omitir.

Cuando se inicie la aplicación, ya podemos conectar nuestro dispositivo M5

Para poder programar como USB, debemos entrar en modo USB, para ello: Haga clic en el botón de encendido en el lado izquierdo del dispositivo para reiniciar. Seleccione rápidamente Configuración después de ingresar al menú, ingrese a la página de configuración y seleccione el modo USB.

Y por último seleccionar el puerto serie y el dispositivo en el programa para empezar a usarlo.

Más información:

Entorno de Programación

Independientemente si usamos la versión online o la versión offline, la programación es igual.

El entorno de programación se compone de 5 partes principales:

  • Coding Area:  Arrastre los bloques de código de la lista de bloques al área de codificación y conéctelos para crear un programa
  • Barra de menús: La barra de menú contiene la mayoría de las funciones importantes de la interfaz, como (Ejemplo,Deshacer y rehacer, cargar, ejecutar código, descargar código, guardar código, etc.
  • Blockly/Python: Todo el código que creamos en bloques se puede convertir a Python presionando este interruptor
  • Diseñador de UI: Arrastre los elementos de la interfaz de usuario (título, etiqueta, etc.) hacia la pantalla de para diseñar un avatar o interfaz de interfaz de usuario.
  • Unidades: Las unidades son sensores y actuadores que se pueden conectar y aquí es donde los configuramos.

Funciones de los botones:

Programación con Blockly:

Programación Básica

Para la programación vamos a usar estas tres documentaciones oficiales:

Setup: Cuando abra UIFlow, encontrará que ya hay un bloque de Configuración al principio. Cada programa debe tener un bloque de configuración. El programa se ejecuta desde el bloque de Configuración y solo se ejecutará una vez. Puedes considerarlo como un bloque de inicialización del programa

Loop: Loop es un bloque de bucle infinito. Cuando se ejecuta, ejecutará el programa contenido en el bloque indefinidamente hasta que ocurra algún evento que lo detenga, por ejemplo un reset o apagado. No tiene que existir en el programa, pero para que el programa ejecute funciones cíclicas debe usarse.

Los ficheros generados tienen la extensión .m5f, aquí puedes descargar un ejemplo de test: https://raw.githubusercontent.com/jecrespo/M5StickC-UIFlow/master/M5/Test.m5f

Primero hagamos un “Hola Mundo” con M5Stack. Que muestre por pantalla Hola mundo y haga blink el led.

Puedes descargar el código en: https://raw.githubusercontent.com/jecrespo/M5StickC-UIFlow/master/M5/Hola%20Mundo.m5f

Otros ejemplos:

¿Cuál es la diferencia entre ejecutar y descargar un programa? El botón de reproducción coloca nuestro código en la memoria volátil de su M5stack. Lo que significa que se perderá una vez que apague el M5stack. Sin embargo, la función de descarga almacenará su programa en la memoria flash de su dispositivo que no se borrará al reiniciar. Cada vez que enciende el M5stack después de descargar un programa, ese programa se ejecutará automáticamente, y también puede seleccionarlo de la lista de aplicaciones a la que se accede presionando el botón central al iniciar.

Ejecutar un programa: Una vez que haya terminado de programar, presione el botón de reproducción en la esquina superior derecha para ejecutar su código.

Descargar un programa: almacenará su programa en la memoria flash de su dispositivo que no se borrará al reiniciar.

La aplicación grabada se podrá seleccionar desde el menú de aplicaciones del dispositivo M5 y se ejecutará en el inicio cada vez que se resetee. Para volver al entorno de programación y cambiar el programa, si tengo una aplicacion en modo permanente, reiniciar y pulsar el botón mientras arranca para entrar en modo programación cloud o USB.

Unidades y HATs

La unidad o HAT es un módulo hardware de expansión de funciones proporcionado por el sistema M5. Estas deben conectarse al módulo M5 antes de programarlas.

Los módulos y faces de M5Stack ya aparecen automáticamente al seleccionar el HW Core.

Las unidades deben se añadidas en UIFlow para que aparezcan sus bloques de programación. Haga clic en la opción Units debajo del Simulador de UI, marque el módulo de Unidad que desea agregar y haga clic en Aceptar. Algunas unidades tienen configuraciones iniciales de parámetros.

Programación de Units: https://docs.m5stack.com/#/en/uiflow/Units

Programación de los módulos: https://docs.m5stack.com/#/en/uiflow/Modules

Programación de las faces: https://docs.m5stack.com/#/en/uiflow/FACES

Programación Hardware

Ver: https://docs.m5stack.com/#/en/uiflow/hardware

Boton: https://m5stack.github.io/UIFlow_doc/en/en/Start_programming/Button.html

Speaker:

IMU:

Power:

Ejemplo power en M5StickC: https://github.com/jecrespo/M5StickC-UIFlow/blob/master/M5/M5StickC_Power_Control.m5f

Display UI

Elementos del display: https://docs.m5stack.com/#/en/uiflow/ui_simulator?id=ui-elements

Display UI: https://m5stack.github.io/UIFlow_doc/en/en/Display/UI.html

Emoji: https://docs.m5stack.com/#/en/uiflow/ui_simulator?id=emoji

Pantalla: https://docs.m5stack.com/#/en/uiflow/ui_simulator?id=screen

Imágenes:

Gráficos:

Ejemplo que muestra un logo: https://raw.githubusercontent.com/jecrespo/M5StickC-UIFlow/master/M5/Logo%20M5Stack.m5f

Lógica

If:

Loop Condicional:

Iteración de datos:

Variables

Variables:

Operaciones básicas: https://docs.m5stack.com/#/en/uiflow/data_structure?id=basic-operation

Función map (diccionario en Python): https://docs.m5stack.com/#/en/uiflow/data_structure?id=introducing-a-map

Listas o arrays: https://m5stack.github.io/UIFlow_doc/en/en/Operation/List.html

JSON: https://docs.m5stack.com/#/en/uiflow/data_structure?id=introducing-json

Strings/Text: https://docs.m5stack.com/#/en/uiflow/data_structure?id=introducing-text

Funciones

Las funciones son una herramienta que nos ayuda a envolver nuestro código en un paquete ordenado al que podemos asignarle un nombre, y luego llamarlo en cualquier parte de nuestro programa y ejecutará el código que contiene. Las funciones pueden ayudar a mantener nuestro código ordenado y conciso y evitar repetir las mismas cosas una y otra vez.

Funciones:

Control Remoto

Control remoto de los dispositivos M5 mediante una web:

Página de control: https://docs.m5stack.com/#/en/uiflow/advanced?id=control-page

Dashboard: https://docs.m5stack.com/#/en/uiflow/advanced?id=dashboard

Lo carga en http://flow-remote.m5stack.com/

Bloques Personalizados

Es posible crear bloques personalizados.

Para crear un nuevo bloque, debemos proporcionar:

  • nombre del grupo: el nombre del grupo en el que se coloca el bloque personalizado
  • color del bloque: color de apariencia del bloque
  • Etiqueta de bloque: solo se permiten letras, números, guiones bajos
  • Tipo de bloque: defina el tipo de bloque como Valor (valor) o Ejecutar (ejecutar)
  • Número de bloques: posibilidad de agregar múltiples bloques al mismo tiempo y guardarlos en un archivo .m5b al mismo tiempo

Block Maker: http://block-maker.m5stack.com/

Haga clic en la opción Agregar en Parámetro, agregue una propiedad del programa, ingrese el nombre que se muestra en el bloque y seleccione el tipo de propiedad. Ingrese el código contenido en el bloque personalizado en el cuadro de opción Código de bloque.

Program API: https://github.com/m5stack/UIFlow-Code/wiki

Una vez programado descargar el .m5b

Para usar los bloques creados hacer open .m5b en UIFlow

Más información:

Comunicaciones

ESP-NOW: https://docs.m5stack.com/#/en/uiflow/advanced?id=esp-now

MQTT: https://docs.m5stack.com/#/en/uiflow/advanced?id=mqtt-communication

Wifi: https://docs.m5stack.com/#/en/uiflow/advanced?id=wifi 

P2P: https://docs.m5stack.com/#/en/uiflow/advanced?id=p2p

HTTP Request: https://docs.m5stack.com/#/en/uiflow/advanced?id=http 

Control Avanzado de Pines

Easy IO: https://docs.m5stack.com/#/en/uiflow/advanced?id=easy-io

PIN: https://docs.m5stack.com/#/en/uiflow/advanced?id=pin

PWM: https://docs.m5stack.com/#/en/uiflow/advanced?id=pwm

ADC: https://docs.m5stack.com/#/en/uiflow/advanced?id=adc

DAC: https://docs.m5stack.com/#/en/uiflow/advanced?id=dac

UART: https://docs.m5stack.com/#/en/uiflow/advanced?id=uart

I2C: https://docs.m5stack.com/#/en/uiflow/advanced?id=i2c

SD Card: https://docs.m5stack.com/#/en/uiflow/advanced?id=sdcard

Execute: https://docs.m5stack.com/#/en/uiflow/advanced?id=execute

Taller de Programación de Arduino por Bloques con mBlock

En este vídeo hago una introducción a la programación visual de Arduino con mBlock, que está basado en scratch 3.

Material necesario:

  • un ordenador o portátil
  • instalar mBlock 5 desde https://mblock.cc/en-us/download 
  • un Arduino UNO con su cable USB para programarlo
  • una protoboard
  • un LED y una resistencia de 220ohms
  • un pulsador y una resistencia de 10k ohms
  • un sensor de luz o LDR y una resistencia de 10k ohms

Kit iniciación usado: https://www.seeedstudio.com/Grove-Beginner-Kit-for-Arduino-p-2895.html 

mBlock

mBlock es un entorno gráfico de programación basado en el editor Scratch 3.0 para introducir de forma sencilla la programación y robótica en el aula.

Web de mblock: http://www.mblock.cc/ 

mBlock se compone de 5 partes principalmente:

  • Grupo de instrucciones clasificadas por colores en las siguientes categorías:
    • Movimiento: Conjunto de instrucciones relacionadas con el control de los pines de la tarjeta de Arduino, así como el control del movimiento de cualquier personaje del escenario.
    • Apariencia: Instrucciones orientadas a modificar el aspecto de los personajes de nuestra aplicación. Para el caso de Arduino, es un conjunto de instrucciones que apenas se utiliza.
    • Sonido: Conjunto de instrucciones relacionadas con la elaboración de aplicaciones musicales, emitiendo sonidos y notas musicales.
    • Lápiz: Scratch nos ofrece la posibilidad de que los personajes dejen un rastro durante sus movimientos por el escenario como si arrastrase un lápiz durante su trayectoria.
    • Control: Las instrucciones incluídas en esta sección son impresindibles para crear la lógica de nuestros programas. Incluyen condicionales, bucles y llamadas de procedimientos.
    • Sensores: Instrucciones de iteración con el ratón, el teclado, sonidos y los personajes.
    • Operadores: operaciones matemáticas, lógicas y con cadenas de texto.
    • Variables: Instrucciones para el almacenamiento y gestión de datos.
  • Instrucciones de programación: Las instrucciones de cada grupo corresponden a instrucciones de programación.
  • Editor: Es la parte principal donde estructuramos y programamos nuestro programa.
    • Programas: Se compone de todas las instrucciones que hace funcionar el código que programemos.
    • Disfraces: Cada objeto puede tener diferentes apariencias o disfraces para utilizar a lo largo de nuestro programa.
    • Sonido: También es posible añadir o grabar sonidos y guardarlos para futuros usos.
  • Escenario o ventana principal: Es el resultado de nuestro programa.
  • Objetos y sprites: Distinguimos principalmente los objetos de tipo Arduino y Sprites.
    • Los objetos de tipo arduino son aquellos que interactúan con Arduino.
    • Los sprites son similares al entorno de scratch y no interactúan con Arduino.

Proyectos mBlock

mBlock Community https://planet.mblock.cc/ es la web donde se publican los proyectos de mBlock y donde podemos aprender mucho viendo otros proyectos o publicar los nuestros.

Mi usuario en mBlock donde publico los proyectos: https://planet.mblock.cc/u/1004089 

Proyectos del vídeo:

Más información de mBlock:

Programación en las Escuelas

Una de las grandes ventajas en llevar a cabo proyectos con Arduino, aparte de su sencillez y las enormes posibilidades de comunicar e interaccionar con los objetos, es que podemos utilizar un buen surtido de herramientas de programación gráfica con lo que nos ahorraremos bastante tiempo durante el aprendizaje y el diseño del software.

En este taller hemos optado por centrarnos: mBloq, Snap4Arduino y Visualino.

Dirigido a:

  • Profesores que tengan que abordar la programación de Arduino con sus alumnos en los niveles de ESO, Bachillerato, Formación Profesional y Universidad.
  • Alumnos que estudien la plataforma Arduino y sus aplicaciones.
  • Aficionados y entusiastas de Arduino.
  • Artistas y diseñadores que trabajen con Arduino.
  • Interesados en las aplicaciones educativas y de interacción con Scratch.

Cada vez hay más defensores de enseñar programación en la educación obligatoria por mil motivos, pero especialmente porque va a ser difícil entender el mundo digital que estamos viviendo y que viene sin conceptos de programación, y además porque este es uno de los puntos que más se atascan en algunos centros: ¿Programación, de acuerdo… pero qué?

Por debajo de los 14 -15 años, prima aprender a programar jugando y definitivamente con un sistema de bloques: Scratch, Scratch for Arduino S4A, App inventor y similares y hasta mBlock. Todos estos lenguajes están basados en una lógica de bloques de colores que encajan o no entre sí de modo que se va completando una secuencia de operaciones clara, que representa el programa que cargaremos en el sistema de ejemplo.

Sea cual sea de los diferentes lenguajes el que se elija depende mucho del gusto del profesor y de los objetivos del centro, pero la razón básica de estos lenguajes es enseñar al alumno a pensar en los conceptos de programas secuenciales. Y es eso se consigue con cualquiera de ellos.

Parece que hay un acuerdo de empezar por Scratch que puede correr en un PC cualquiera, a partir de unos 8 años (antes puede usarse sea Makey Makey) e ir poco a poco incorporando conceptos como la programación de móviles Android con App Inventor e ir después a Arduino con S4A (Scratch for Arduino) porque es una manera muy sencilla de iniciarse no solo ya con la programación, sino también con la relación de los programas y el mundo físico.

Cuando vayamos acercándonos al final de la educación básica, la robótica con mBlock se ajusta magníficamente a todos estos conceptos y nos permitirán fijar ideas básicas de múltiples conceptos de un modo natural al ver los robots moviéndose. mBlock es ideal para todos los temas de robótica y es el paso siguiente a Scratch.

Una cuestión clave en todo esto es que parece haber un consenso general por ahí de no iniciar en C++ con Arduino a los chavales antes de los 14-15 años. La programación simbólica mediante frases propia de los lenguajes de alto nivel, no parece encajar con el desarrollo promedio de las personas de esta edad.

Más información: https://www.prometec.net/formacion-en-tecnologia-y-robotica-i/

Documentar Proyectos Educativos

A la hora de realizar un proyecto de cualquier tipo y especialmente en educación, es importante documentar adecuadamente los proyectos. Disponemos de muchas herramientas on-line para poder hacerlo.

Además en el uso de hardware libre cobra especial importancia documentar el proyecto no solo para nosotros mismos o los alumnos sino para compartir con la comunidad y que nuestros proyectos sean replicado e incluso mejorados por otras personas, pueda reutilizarse el material y extendamos el conocimiento libre con nuestro trabajo.

Un magnífico ejemplo de todos esto es el proyecto El Cable Amarillo http://www.elcableamarillo.cc/. Proyecto educativo para fomentar el uso de la Programación y Robótica en los centros educativos de Murcia.

Fritzing

Fritzing es el programa por excelencia para la realización de esquemas eléctricos en proyectos con Arduino y es open source. Dispone bibliotecas con la mayoría de componentes (http://fritzing.org/parts/), incluido los propios Arduinos, placas de conexiones, led, motores, displays, etc. Además permite hacer esquemas eléctricos, diseñar nuestro PCB final y un sinfín de opciones que convierten a este programa en una herramienta muy útil.

También nos permitirá obtener el esquema eléctrico, listado de componente usados y el diagrama para poder fabricar la PCB. Luego podemos solicitar que nos hagan la pcb con el servicio Fritzing Fab: https://go.aisler.net/fritzing. Nos permitiría diseñar un shield propio y que nos los construyan.

Podemos explorar otros proyectos y usarlos: http://fritzing.org/projects/

Para aprender más sobre Fritzing: http://fritzing.org/learning/

Librería de partes: http://fritzing.org/parts/

Fritzing no es un simulador, pero las nuevas versiones de Fritzing permite guardar el código de un diseño e incluso cargarlo en Arduino.

Enlaces:

Arduino Project Hub

Arduino project hub: https://create.arduino.cc/projecthub

Arduino Project Hub es un lugar donde poder ver proyectos realizados con Arduino y también poder compartir los proyectos propios.

Cuando queremos publicar un proyecto en Arduino Project Hub es muy sencillo porque separa por apartados todo lo que tenemos que documentar el proyecto:

  • Nombre del Proyecto
  • Imagen de portada
  • Nivel de dificultad
  • Historia de Proyecto
  • Lista de Materiales (BOM)
  • Aplicaciones y Servicios On-line Usados
  • Descripción de proyecto
  • Herramientas
  • Esquemáticos y diagramas de circuito
  • CAD
  • Código

Cómo enviar un proyecto: https://create.arduino.cc/projecthub/Arduino_Genuino/how-to-submit-content-on-arduino-project-hub-cf2177

Guideline: https://create.arduino.cc/projecthub/guidelines

Arduino Project Hub está basado en Hackster: https://www.hackster.io/

Arduino Web Editor

Arduino.cc ha sacado un IDE on-line llamado Arduino Web Editor que puede usarse en lugar del IDE que acabamos de ver. Este IDE on-line está dentro del proyecto Arduino Create accesible desde https://create.arduino.cc/ y incluye varios apartados.

Para usar este IDE es necesario instalar un plugin y mediante este wizard online es posible instalarlo: https://create.arduino.cc/getting-started/plugin

También es importante señalar que es necesario crearse una cuenta de arduino.cc para poder usar este IDE on-line.

Getting started con Arduino Web Editor: https://create.arduino.cc/projecthub/Arduino_Genuino/getting-started-with-the-arduino-web-editor-4b3e4a

Arduino Web editor no solo permite publicar el código hecho sino también genera un fichero de documentación y pueden subirse imágenes y esquemas de montaje.

Sigfox Bike Tracking: https://www.hackster.io/aprendiendoarduino/bike-tracking-system-with-dead-man-alert-22da0b

Instructables

Instructables es la web más usada para publicar cualquier tutorial, paso a paso o proyecto que hagamos y no solo de Arduino, sino de cualquier otra cosa, desde una tarta o un disfraz hasta el montaje de una red inalámbrica para IoT.

Web: https://www.instructables.com/

Instructables Arduino: https://www.instructables.com/howto/Arduino/

Instructables Electrónica: https://www.instructables.com/classes/tagged/electronics/

Instructables mBlock: https://www.instructables.com/id/mBlock/

Tutorial de uso de Instructables: https://www.instructables.com/about/create.jsp

Halloween candy Counter: https://www.instructables.com/id/Halloween-Candy-Counter/

Tinkercad

Tinkercad es un software gratuito online creado por la empresa Autodesk, una de las empresas punteras en el software de diseño 3D.

Tinkercad: https://www.tinkercad.com/

Tinkercad ofrece:

  • Aplicación de diseño e impresión 3D
  • Simulador de circuitos, incluido Arduino
  • Diseños 3D interactivos con electrónica:
  • Publicar nuestro proyectos
  • Ver otros proyectos y clonarlos: https://www.tinkercad.com/things/v2#/things

Tinkercad ciircuitos https://www.tinkercad.com/circuits

Y más…

Github

GitHub es una forja (plataforma de desarrollo colaborativo) para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de computadora.

Web: https://github.com/

Características

  • Wiki para cada proyecto.
  • Página web para cada proyecto​
  • Gráfico para ver cómo los desarrolladores trabajan en sus repositorios y bifurcaciones del proyecto.
  • Funcionalidades como si se tratase de una red social, por ejemplo, seguidores.
  • Herramienta para trabajo colaborativo entre programadores.
  • Gestor de proyectos de estilo Kanban.

Github puede ser una excelente herramienta de documentación, pero es más compleja de usar y solo es adecuada para usuarios avanzados.

Los documentos con formato se escriben en Markdown https://es.wikipedia.org/wiki/Markdown

Proyectos Básicos con Arduino

Proyectos básicos de programación Arduino con mBlock. mBlock es un entorno gráfico de programación por bloque para Arduino, que permite introducir de forma sencilla la programación y robótica en el aula.

mBlock se compone de 5 partes principalmente:

  • Grupo de instrucciones clasificadas por colores en las siguientes categorías:
    • Movimiento: Conjunto de instrucciones relacionadas con el control de los pines de la tarjeta de Arduino, así como el control del movimiento de cualquier personaje del escenario.
    • Apariencia: Instrucciones orientadas a modificar el aspecto de los personajes de nuestra aplicación. Para el caso de Arduino, es un conjunto de instrucciones que apenas se utiliza.
    • Sonido: Conjunto de instrucciones relacionadas con la elaboración de aplicaciones musicales, emitiendo sonidos y notas musicales.
    • Lápiz: Scratch nos ofrece la posibilidad de que los personajes dejen un rastro durante sus movimientos por el escenario como si arrastrase un lápiz durante su trayectoria.
    • Control: Las instrucciones incluídas en esta sección son impresindibles para crear la lógica de nuestros programas. Incluyen condicionales, bucles y llamadas de procedimientos.
    • Sensores: Instrucciones de iteración con el ratón, el teclado, sonidos y los personajes.
    • Operadores: operaciones matemáticas, lógicas y con cadenas de texto.
    • Variables: Instrucciones para el almacenamiento y gestión de datos.
  • Instrucciones de programación: Las instrucciones de cada grupo corresponden a instrucciones de programación.
  • Editor: Es la parte principal donde estructuramos y programamos nuestro programa.
    • Programas: Se compone de todas las instrucciones que hace funcionar el código que programemos.
    • Disfraces: Cada objeto puede tener diferentes apariencias o disfraces para utilizar a lo largo de nuestro programa.
    • Sonido: También es posible añadir o grabar sonidos y guardarlos para futuros usos.
  • Escenario o ventana principal: Es el resultado de nuestro programa.
  • Objetos y sprites: Distinguimos principalmente los objetos de tipo Arduino y Sprites.
    • Los objetos de tipo arduino son aquellos que interactuán con Arduino.
    • Los sprites son similares al entorno de scratch y no interactúan con Arduino.

Instalar mBlock es muy sencillo, toda las instrucciones están disponibles desde la web: https://www.makeblock.es/soporte/mblock/

Web de descarga: http://www.mblock.cc/software/

mBlock ha sacado una beta de un entorno de programación on-line en http://editor.makeblock.com/ide.html

Más información sobre mBlock: https://aprendiendoarduino.wordpress.com/2017/09/08/programacion-visual-con-mblock/

Modo Ejecutar Programa desde PC

En este modo es necesario siempre tener el Arduino o el robot siempre conectado al PC.

Para usar este modo comenzaremos el programa con un bloque de la categoría “Eventos”, normalmente con el bloque de la bandera verde. Y debajo de este colocamos el resto de bloques del programa.

Para ejecutar el programa desde el PC, primero tenemos que seleccionar la placa y el puerto serie al que esté conectado el Arduino. Conectamos el cable USB al Arduino y seleccionamos la placa en “Placas->Arduino UNO” y el puerto en “Conectar->Puerto Serie”.

A continuación “Conectar > Actualizar Firmware” y esperamos a que termine de cargarlo.

Tutoriales de uso:

Modo Subir Programa a Arduino

En este modo no cargamos un firmware a la placa sino que sube el programa al Arduino. En este modo usamos como inicio del programa el bloque “Programa de Arduino” que se encuentra en la categoría “Robots”.

Para este modo pulsamos sobre el bloque “Programa de Arduino”  o vamos a “Editar->Modo Arduino”. En la parte derecha de la pantalla aparecerá una pantalla con algunas opciones nuevas y el equivalente en código del programa que hemos hecho con los bloques.

Luego para subir el sketch al ordenador pulsamos sobre el botón “Subir a Arduino” y esperamos a que termine de cargar.

Tutorial para usar Arduino con mBlock:

Más información:

Semáforo Simple

En esta práctica vamos a crear un semáforo simple con una frecuencia de cambio de 5 segundos en verde y rojo, y 1 segundo durante su estado en ámbar.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Salidas-digitales/Sem%C3%A1foro-simple

Movimiento de un Servomotor

En esta práctica el servomotor se mueve desde su posición origen a su posición final en ángulos de 10° repetidamente.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Salidas-anal%C3%B3gicas/Movimiento-de-un-servomotor

Pulsador Simple

En esta práctica vamos a programar un interruptor para encender un led en un momento dado.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Entradas-digitales/Pulsador-simple

Detectando Colores

En esta práctica tenemos que detectar los colores por los cuales se mueve nuestro personaje para activar los diferentes diodos Led de la placa de prototipado.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Pr%C3%A1cticas-de-iniciaci%C3%B3n/mBlock/Detectando-colores

Brújula con Servo

En esta práctica vamos a mover un servo mediante las flechas del teclado y activando sendos diodos Led al final de carrera.

Tutorial: https://github.com/ElCableAmarillo/Listado-de-practicas/tree/master/Pr%C3%A1cticas-de-iniciaci%C3%B3n/mBlock/Br%C3%BAjula-con-servo

Más sobre programación por bloques en el Taller de Programación Visual Arduino: https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2018-logrono/taller-programacion-visual-arduino/

Más información: