Archivo de la categoría: scratch

Programación Visual con mBlock

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

Hemos visto en otro capítulo otro entorno de programación basado también en Scratch, el Scratch 4 Arduino o S4A, que guarda muchas similitudes con mBlock.

mBlock tiene algunas características que lo hacen más adecuado para trabajar con robots. Con S4A, tenemos que tener conexión permanente entre el PC y el Arduino, bien por cable o por Bluetooth. Al usar mBlock no tenemos este problema, ya que nos permite elegir la forma en la que queremos trabajar: ejecutándose en tiempo real en el PC (como en S4A necesitando cargar un firmware en la placa) o cargando el programa en la placa de forma que podamos prescindir del PC.

Cuando cargamos el programa en la placa, como hacemos con el IDE de Arduino, nos permite hacer robots autónomos al no tener que estar siempre conectados al PC. Además al cargar los programas de esta forma se puede ver el equivalente en código del programa que hayamos diseñado con los bloques, de forma que nos puede ayudar durante la transición de entorno gráfico a código.

Otra ventaja es que mBlock nos permite definir qué pines vamos a querer usar como entradas y cuáles como salidas. Por el contrario en S4A vienen predefinidos y a la hora de construir robots puede ser un inconveniente.

También mBlock permite descargar unos paquetes a los que llama extensiones con nuevos bloques que no vienen en la versión estándar que nos descargamos, y gracias a ellos podemos trabajar con componentes que es imposible de utilizar con S4A.

Entorno Programación

El entorno de programación de mBlock es gratuito, funciona con varios tipos de sistemas operativos y se descarga desde http://www.mblock.cc/download/

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

Una vez instalado vemos lo siguiente:

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.

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:

GitHub oficial de Makeblock

Donde podrás encontrar todo el código fuente de las librerías, firmware,software, planos … https://github.com/Makeblock-official

Librerías de Makeblock para IDE Arduino https://github.com/Makeblock-official/Makeblock-Libraries que nos permite programar los robots de makeblock con el IDE de Arduino.

Programación con mBlock

Puesto que mBlock está basado en scratch 2.0 la programación es igual a Scratch y solo hay un grupo de bloques adicionales para manejar los puertos de Arduino o de los robots.

Buen tutorial de programación: http://www.atlantistelecom.com/es/downloads2/makeblock_bloques_de_programacion.pdf

Programación de El Cable Amarillo:

Aplicaciones Móviles

Makeblock Aplicación para controlar tus robos desde móviles y tablets con SO Android

Makeblock HD Aplicación para controlar los robots de Makeblock desde iOS e iPad   

mBlockly  Con esta aplicación podrás programar tus robots desde tu iPad mediante un entorno similar a Scratch

MakeBlock

MakeBlock es la marca del hardware para el que está desarrollado mBlock, pero que también podemos usar con Arduino.

Enlaces:

Learn de makeblock: http://learn.makeblock.com/en/

Imprimir en 3D las piezas de MakeBlock: https://grabcad.com/library/data-of-makeblock-parts-1

Placas MakeBlock

Placa basada en Arduino mCore: http://learn.makeblock.com/en/mcore/

Makeblock Orion: http://learn.makeblock.com/en/makeblock-orion/

Shield para convertir un Arduino en un makeblock Me UNO Shield:

Robots Educativos

Kits de Robots: http://store.makeblock.com/robot-kit-series-STEM

Maker Kits: http://store.makeblock.com/maker-kits-STEM

mBot: http://store.makeblock.com/product/mbot-robot-kit

mBot Ranger: http://store.makeblock.com/product/mbot-ranger-robot-kit

Robot Educativo mBot:

Ejercicios Propuestos

Listado de materiales y prácticas de El cable amarillo:

Dos ejemplos con mBlock muy buenos en http://www.prometec.net/mblock/:

  • Coche teledirigido con Bluetooth
  • Robot siguelineas

Propuestas didácticas:

Anuncios

Programación Visual con S4A

Además de la programación tradicional de Arduino, existen varios proyectos para programar Arduino de forma visual añadiendo bloques al estilo de scratch, blockly o similar.

Esta programación es limitada respecto a la programación tradicional, pero puede ser una opción para iniciarse tanto niños como adultos.

Otro problema de este tipo de programación es que no está estandarizada y cada solución aunque parecida en el concepto, son distintas.

Proyectos de programación visual:

S4A

S4A es Scratch for Arduino. Toda la información está en la Web: http://s4a.cat/index_es.html

S4A es una modificación de Scratch que permite programar la plataforma de hardware libre Arduino de una forma sencilla. Proporciona bloques nuevos para tratar con sensores y actuadores conectados a una placa Arduino. También cuenta con un panel de sensores similar al de la PicoBoard.

Fue desarrollado por el equipo de Smalltalk del Citilab en el año 2010, y desde entonces se ha usado en todo el mundo para una gran variedad de proyectos.

Otro de sus objetivos es proporcionar una interfaz de alto nivel para programadores de Arduino con funcionalidades tales como la interacción con un conjunto de placas mediante eventos de usuario.

Tutorial de S4A: http://recursostic.educacion.es/observatorio/web/fr/software/software-educativo/1018-monograficodesarrollos-de-scratch-para-robotica-enchanting-y-s4a?start=3

Manual S4A: http://vps34736.ovh.net/S4A/s4a-manual.pdf

Primeros pasos con S4A: https://programarfacil.com/blog/arduino-blog/s4a-primeros-pasos-con-scratch/

Una de las limitaciones que tiene S4A es la conectividad. Los componentes deben conectarse de una manera determinada para su buen funcionamiento. Esto no impide que podamos aprender a programar con esta plataforma, solo limitará el tipo de proyectos que podemos hacer con ella.

Los diferentes componentes que podemos tratar son:

  • 6 entradas analógicas (A0 a A5)
  • 2 entradas digitales (2 y 3)
  • 3 salidas analógicas PWM (5, 6 y 9)
  • 3 salidas digitales (10, 11 y 13)
  • 4 salidas digitales para conectar servomotores (4, 7, 8 y 12)

S4A es compatible con los Arduino Diecimilia, Duemilanove y Uno. Puede que con otras placas funcione, pero habría que comprobarlo.

Instalar S4A en el ordenador

S4A funciona sobre los tres sistemas operativos de escritorio más populares.

Ir a la sección de descarga de http://s4a.cat/index_es.html y descargar para el Sistema Operativo correspondiente.

Para trabajar con S4A en necesario instalar en el Arduino que usemos el firmware que nos proporciona S4A.

Proceso:

Buen tutorial de instalación: https://www.prometec.net/instalacion-scratch/

Instalar el firmware en el Arduino

Este firmware es un programa que debe instalarse en vuestra placa Arduino para poder comunicar con la placa desde S4A. Para ello es necesario instalar el IDE de Arduino.

  • Descargar e instalar el entorno Arduino siguiendo las instrucciones de http://arduino.cc/en/Main/Software.
  • Descargar firmware de la web de S4A http://s4a.cat/index_es.html sección descargas.
  • Conectar la placa Arduino a un puerto USB de vuestro ordenador
  • Abrir el archivo de firmware (S4AFirmwarexx.ino) desde el entorno Arduino
  • En el menú Herramientas, seleccionar la versión de la placa y el puerto serie donde está conectada la placa
  • Cargar el firmware a la placa mediante la opción de menú Archivo > Subir

Objetos Arduino

En S4A los objetos Arduino proporcionan bloques para las funcionalidades básicas del micro-controlador, escrituras y lecturas digitales y analógicas, y otras funcionalidades de más alto nivel. También encontraréis bloques para tratar con motores estándar y servomotores de rotación contínua.

En S4A, una placa Arduino se representa con un tipo especial de sprite. El sprite Arduino encontrará automáticamente el puerto USB en que se haya conectado la placa.

S4A habilita 6 entradas analógicas (pines analógicos), 2 entradas digitales (pines digitales 2 y 3), 3 salidas analógicas (pines digitales 5, 6 y 9), 3 salidas digitales (pines 10, 11 i 13) y 4 salidas especiales para conectar servomotores de rotación continua Parallax (pines digitales 4, 7, 8 y 12).

Es posible comunicarse inalámbricamente con una placa mediante un módulo de RF, como Xbee y con bluetooth.

S4A es compatible con Scratch, de forma que es posible abrir proyectos de Scratch desde S4A.

Entorno S4A

La interfaz de S4A es muy parecida a la de Scratch 1.4 al ser una versión del mismo. Podemos importar los proyectos que ya tengamos de dicha versión de Scratch y adaptarlos para trabajar con nuestro Arduino. S4A, al igual que Scratch 1.4 trabajan con proyectos con la extensión .sb. En el supuesto de querer basar nuestro trabajo en un proyecto de Scratch 2.0 (extensión .sb2) podríamos utilizar el Retro Convertidor de blob8108 o seguir las instrucciones dadas en esta wiki para convertir el archivo.

S4A 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 arrastrara un lápiz durante su trayectoria.
    • Control: Las instrucciones incluídas en esta sección son imprescindibles 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.

En la parte del escenario veremos una tabla con pines de entradas y salidas de la placa Arduino, y un dibujo de nuestra placa. Si esta no está conectada al equipo mediante el USB aparecerá una ventana emergente con el mensaje “Buscando placa…“, que desaparecerá cuando el S4A la reconozca.

Scratch for Arduino tiene varios bloques específicos para interactuar con la placa de Arduino. Se encuentran en la categoría “Movimiento” y permite enviar instrucciones al micro-controlador de la placa de Arduino, como escrituras y lecturas digitales. También hay bloques para tratar con motores estándar y servomotores de rotación continua.

Por otro lado, la parte de edición de objetos incorpora botones para crear, dibujar e importar objetos Arduino. Se podría conectar otra placa de Arduino y asociarla a otro objeto en un momento dado.

Programación con S4A

Normalmente los programas los empezaremos con el primero de los bloques (El de la bandera verde) y todos los demás están por debajo de éste. Pulsamos con el botón izquierdo del ratón encima de él y lo arrastramos hacia la parte central de S4A. Con este bloque lo que hacemos es que el programa se ejecute cuando pulsemos la bandera verde de la parte de arriba a la derecha y hasta que pulsemos en el hexágono rojo.

Como queremos que el programa se ejecute un número indefinido de veces, vamos a coger ahora el bloque de control “por siempre”. Si nos fijamos en la forma de este bloque veremos que la parte de arriba encaja con la parte de abajo del bloque con el que hemos empezado.

Además el bloque “por siempre” tiene un hueco en medio en el que podremos encajar otras instrucciones, de manera que todo lo que esté dentro de él se ejecute en secuencia hasta el final. Una vez que termina, vuelve a empezar desde el principio del bloque, haciendo un ciclo sin fin.

Por ejemplo el blink se haría así:

Para ejecutar el programa hay que pulsar la bandera verde, o también podemos hacer click con el botón izquierdo encima de cualquiera de los bloques de instrucciones. Veremos que todos los bloques de nuestro programa y la bandera verde del escenario se iluminan y el LED de nuestra placa Arduino comienza a parpadear cada dos segundos.

Por último, y si queremos guardar nuestro programa iremos a la pestaña “Archivo”, y le daremos a “Guardar Como…”. En ese menú tenemos también las opciones de “Abrir…” para abrir un proyecto que hayamos guardado anteriormente y “Guardar” para guardar el archivo encima del que tenemos abierto.

Escenario y Disfraces

En el escenario podemos ver en el monitor de nuestro PC cómo se desarrolla nuestro programa. Es la pantalla en blanco que hay arriba a la derecha, donde aparece por defecto un dibujo de la placa Arduino. Ese dibujo es un ejemplo de lo que llamamos “Disfraces” en S4A.

Lo primero que haremos será ir a la pestaña “Disfraces”. Ahí podemos ver que el único que hay es un dibujo de una placa Arduino que viene por defecto. Para dibujar un disfraz nuevo haremos click en el botón “Pintar”.

Para que en el escenario aparezca un led encendiendose y apagandose hay que pintar dos disfraces uno con un círculo rojo y otro blanco.

Los bloques relacionados con los disfraces están en el grupo “Apariencia”. En este caso usaremos el bloque “cambiar el disfraz a”.

Y el programa queda:

Más información:

Cómo Funciona S4A

S4A se comunica por puerto serie con Arduino que está corriendo un firmware que ejecuta las acciones que se indica desde S4A.

Firmware: https://github.com/jecrespo/S4A/tree/master/Firmware%20Oficial/S4AFirmware16

El firmware no es más que un intérprete de las instrucciones que le manda S4A por el puerto serie. S4A permite controlar tantas placas como puertos USB tenga vuestro PC.

Especificación del protocolo de comunicación entre S4A y Arduino: http://s4a.cat/downloads/s4a-protocol.pdf

S4A interactúa con Arduino enviando el estado de los actuadores y recibiendo el estado de los sensores cada 75 ms, por lo tanto el ancho del pulso tiene que ser mayor que éste período. El intercambio de datos sigue el protocolo PicoBoard.

Picoboard: https://www.picocricket.com/picoboard.html

Analizar el firmware que ejecuta Arduino y entender el código: https://github.com/jecrespo/S4A/blob/master/Firmware%20Oficial/S4AFirmware16/S4AFirmware16.ino

S4A en Android

Aplicación simple de Android que puede comunicarse con S4A via HTTP mediante el protocolo de sensores remotos de Scratch.

La aplicación Android utiliza un protocolo muy sencillo sobre el protocolo de mensajes HTTP de Scratch, la cual cosa permite interactuar con S4A desde un navegador o cualquier otra aplicación con acceso a la red.

Para ello debe activarse la opción de sensores remotos en S4A (clic derecho en cualquier bloque de “Sensores”).

Especificación de los mensajes

Enviar un mensaje: 

 
[IP]:42001/broadcast=[nombre-del-mensaje]

Enviar el valor de un sensor remoto (por ejemplo, el acelerómetro del cliente, la posición del puntero del ratón, etc):

 
[IP]:42001/sensor-update=[nombre-del-sensor]=[valor]

Actualizar una variable de S4A: 

 
[IP]:42001/vars-update=[nombre-de-la-variable]=[valor]

Se pueden probar los mensajes desde la web:http://s4a.cat/android/index.html que manda las instrucciones de la API.

La forma de trabajar es que desde la app de S4A se conecta al ordenador que ejecuta S4A y este manda las instrucciones a Arduino. Para ello es imprescindible que tanto S4A como HiS4A tienen que estar conectados a la misma red local.

Toda la información:

Más información

Ejercicios

Listado de materiales y prácticas de El Cable Amarillo:

Programación Visual con Scratch

Scratch es un lenguaje de programación visual desarrollado por el MIT Media Lab. Scratch es utilizado por estudiantes, académicos, profesores y padres para crear fácilmente animaciones, juegos (también educativos) e interacciones etc. Para las escuelas se convierte en una oportunidad para ayudar a los estudiantes en el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin necesidad de saber del programa. Sus características ligadas al pensamiento computacional han hecho que sea muy difundido actualmente en la educación de niños adolescentes y adultos.

Scratch es un entorno de aprendizaje de lenguaje de programación, que permite a los principiantes o personas sin conocimiento alguno de programación, obtener resultados sin tener que hacer nada de nada o aprender a escribir de manera sintácticamente correcta primero.

El código fuente de Scratch y sus derivados se basan en Squeak, que a su vez se basa en Smalltalk-80. La versión 2 de Scratch está implementada en ActionScript, con un intérprete experimental basado en JavaScript siendo desarrollado en paralelo.

Web: https://scratch.mit.edu/

Wiki Scratch: https://wiki.scratch.mit.edu/wiki/Scratch_Wiki_Home

Github Scratch: https://github.com/LLK

Versiones de Scratch: https://wiki.scratch.mit.edu/wiki/Scratch_Versions

Más información: https://es.wikipedia.org/wiki/Scratch_(lenguaje_de_programaci%C3%B3n)

Código fuente de Scatch: https://wiki.scratch.mit.edu/wiki/Scratch_1.4_Source_Code

Scratch se ejecuta on-line en https://scratch.mit.edu/ pero puede descargarse una version off-line.

Editor offline scratch: https://scratch.mit.edu/download

faq scratch: https://scratch.mit.edu/info/faq/

Programación con scratch

  • Escenarios
  • Movimientos
  • Variables
  • Bucles, condicionales y operadores

Descripción Bloques

Para lograr que incluso un niño aprenda a usar Scratch, el entorno de desarrollo utiliza un lenguaje de programación totalmente visual, compuesto por bloques coloreados que se encajan formando estructuras básicas como bucles o secuencias. Este pseudocódigo visual permite editar fácilmente los parámetros de cada función.

Los comandos de  Scratch se dividen en ocho categorías con las que se pueden insertar y controlar sonidos, imágenes, variables y otros elementos. Para crear un programa en Scratch sólo hay que arrastrar los elementos multimedia el escenario y añadir comandos en la pestaña Programas.

Movimiento

Apariencia

Control

Sensores

Sonido

Lápiz

Operadores

Variables

Cheatsheet Scratch

Web de scratch para dummies http://www.dummies.com/programming/scratch/scratch-for-kids-for-dummies-cheat-sheet/