Módulo 4: Practicando con S4A
Título original: Practicando con S4A Diseño de la portada: Sesé González García 1ª Edición: agosto, 2015 Susana Oubiña Falcón ISBN: 978-84-608-1890-8
"Practicando con S4A (Scratch for Arduino)", por Susana Oubiña Falcón, es publicado bajo la licencia Creative Commons Reconocimiento 4.0 Internacional License
Susana Oubiña Falcón
Página 1 de 20
Módulo 4: Practicando con S4A
Módulo 4: Practicando con S4A 4. Un paso más .................................................................................................. 3 4.1. Convertir un archivo sb2 en sb................................................................. 3 4.2. Modificación de la versión 1.6 de S4A para el control de proyectos de tecnología. ...................................................................................................... 4 4.3. Bye bye USB (Conexiones inalámbricas) ................................................ 5 4.4. ScratchX: generalidades y PicoBoard ...................................................... 6 4.4.1. Leap Motion & ScratchX .................................................................. 11
Susana Oubiña Falcón
Página 2 de 20
Módulo 4: Practicando con S4A 4. Un paso más 4.1. Convertir un archivo sb2 en sb El formato de los proyectos scratch compartidos en su web es .sb2 o .sb, respectivamente para archivos scratch2.0 y scratch1.4. El software S4A no permite compartir proyectos en la web de scratch pero genera archivos con extensión .sb. Esta característica es interesante y podemos aprovecharla. A veces nos interesa reutilizar o usar un archivo que ha sido generado con scratch 2.0 en el entorno S4A. Para abrirlo, hemos de convertir el formato .sb2 del archivo en cuestión, en el formato .sb y esto es posible usando la herramienta Retro Converter. Herramienta que ha sido creada por el usuario scratch “blob81081”. Los pasos a seguir para realizar este cambio de formato son los siguientes: 1. Necesitamos tener un archivo creado en Scratch 2.0, con su extensión correspondiente. Es el que convertiremos a Scratch1.4 2. Vamos a Retro Converter2 y cargamos el archivo (Examinar) para finalmente hacer clic en convertir (Convert!). Ver siguiente imagen:
Página de Retro Converter. Susana Oubiña Falcón. (CC BY)
3. Una vez convertido, se abre una ventana emergente que nos ofrece descargar el archivo con la extensión .sb deseada. Nota: Un archivo con extensión .sb puede convertirse en otros formatos de extensiones conocidas como .exe para Windows o .app para MAC, entre otros.
1 2
Usuario: https://scratch.mit.edu/users/blob8108/ Retro Converter: http://kurt.herokuapp.com/20to14
Susana Oubiña Falcón
Página 3 de 20
Módulo 4: Practicando con S4A La información necesaria para realizar este cambio puede verse en el siguiente link: Porting Scratch Projects3. Por lo tanto, se puede realizar la simulación de un proyecto en Scratch 2.0 y, cuando se comprueba que funciona correctamente, se puede convertir a formato .sb e importarlo con la aplicación S4A. Para importar el proyecto a S4A vamos a Fichero -> Importar proyecto
“Importar proyecto” en S4A. Susana Oubiña Falcón. (CC BY)
Tras la importación, nuestro nuevo programa necesitará o requerirá de algunos ajustes relativos a nuevos disfraces y comandos inexistentes en scratch2.0, como los relativos al control de motores, pines digitales y analógicos, etc.
4.2. Modificación de la versión 1.6 de S4A para el control de proyectos de tecnología. Existe la posibilidad de usar un firmware que modifica el firmware de S4A logrando aumentar el número de entradas y salidas digitales. Esta posibilidad, aplicada a ciertos proyectos de tecnología, puede interesarnos implementarla. Esa nueva versión modificada del firmware 1.6 de S4A, ideada por los creadores de S4A, no es más que un “parche” llamado S4AFirmwareDT que habilita un total de seis entradas digitales (pines 2, 3, 4, 5, 6 y 7) y cuatro salidas digitales (pines 10, 11, 12 y 13 ). Esta modificación ha sido realizada por Joaquín López, miembro de Edutictac, y está disponible en un fichero comprimido que se puede descargar del siguiente link: S4A16DT.zip4. El archivo zip incluye el firmware modificado S4AFirmwareDT.ino que es el que se debe cargar en la placa Arduino antes de abrir S4A y un archivo de imagen 3 4
Porting Scratch Projects: http://wiki.scratch.mit.edu/wiki/Porting_Scratch_Projects S4A16DT.zip: https://www.dropbox.com/s/eysbbe6a6b1be7z/S4A16DT.zip?dl=0
Susana Oubiña Falcón
Página 4 de 20
Módulo 4: Practicando con S4A llamado S4A.image que se debe instalar o sobrescribirlo al directorio donde está instalado el S4A, junto a la carpeta “locale”. En LliureX, el S4A se encuentra en / usr/lib/s4a. El escenario del programa S4A, al cargar la nueva imagen, sería el siguiente:
Escenario con la imagen de S4AFirmwareDT. Susana Oubiña Falcón. (CC BY)
4.3. Bye bye USB (Conexiones inalámbricas) El programa creado en el software S4A requiere de una comunicación directa entre la placa y el software. Es importante entender que S4A no carga el archivo .sb en Arduino sino que se comunica con él cada 75ms. La forma más común de comunicación es por el cable de conexión de la placa Arduino al PC, pero no es la única. A veces nos interesa formalizar otro tipo de comunicación que evite el cableado y que permita a nuestro proyecto una mayor independencia de movimiento. Tenemos dos formas, opciones o posibilidades de eludir el cableado: mediante radiofrecuencia (utilizando los módulos de RF Xbee) o a través de bluetooth. En los siguientes links se describe cómo hacerlo:
Bluetooth5 Radiofrecuencia6 (2 módulos de RF configurados bajo 38400 baudios). Información de los módulos en el siguiente link: Módulos de RF7.
5
Bluetooth: https://tecnobloc.wordpress.com/2014/07/17/arduino-s4a-hello-world-via-bluetooth/ Radiofrecuencia: http://www.tr3sdland.com/2013/05/robot-imprimible-miniskybot2-programado-con-s4a/ 7 Módulos de RF: http://ftp1.digi.com/support/documentation/manual_xb_oem-rf-modules_802.15.4_v1.xAx.pdf 6
Susana Oubiña Falcón
Página 5 de 20
Módulo 4: Practicando con S4A 4.4. ScratchX: generalidades y PicoBoard Personalmente, considero que ScratchX es el futuro de S4A. Yo lo comparo con el Scratch 2.0 frente a Scratch 1.4. Su interfaz presenta muchas similitudes con el editor de Scratch 2.0, tal y como puede verse en la siguiente imagen:
Interfaz inicial de ScratchX. Susana Oubiña Falcón (CC-BY)
ScratchX8 es una extensión experimental de Arduino sobre Scratch. Para usarlo necesitamos cargar en la placa arduino un firmware denominado StandardFirmata9 e instalar en el ordenador el plugin de la web de scratch (el mismo que se usa para las extensiones de WeDo y PicoBoard). Esto significa que ScratchX permite trabajar conjuntamente con el robot WeDo de Lego y con la PicoBoard actual, pero eso sí, sólo en los sistemas operativos de MAC o Windows. Para ello sólo debemos conectar el dispositivo y sumarle al programa la extensión correspondiente:
Librería de extensiones de ScratchX. Susana Oubiña Falcón (CC-BY)
8
ScratchX: http://scratchx.org/?url=http://khanning.github.io/scratch-arduinoextension/arduino_extension.js%23scratch#scratch 9 Descarga del archivo StandardFirmata: http://khanning.github.io/scratch-arduino-extension/
Susana Oubiña Falcón
Página 6 de 20
Módulo 4: Practicando con S4A Por lo tanto, podemos trabar conjuntamente con la PicoBoard y la placa Arduino. Cuando la PicoBoard está conectada, debemos hacer clic en “Añadir una Extensión” y escoger PicoBoard. Se mostrarán nuevos comandos relativos a los componentes eléctricos del dispositivo y se indicará su correcta conexión mediante un círculo o punto de color verde, tal y como se muestra en la siguiente figura:
PicoBoard Conectada. Susana Oubiña Falcón (CC-BY)
Los nuevos comandos que nos aporta la extensión del dispositivo PicoBoard son muy intuitivos y de fácil compresión. Estos son:
Susana Oubiña Falcón
Página 7 de 20
Módulo 4: Practicando con S4A
Comandos para la tarjeta PicoBoard. Susana Oubiña Falcón (CC-BY)
Después de instalar del plugin y conectar la placa arduino al computador (con su firmware correspondiente cargado), podemos cargar la extensión experimental de arduino. Si la conexión es correcta, la extensión Arduino vendrá acompañada de un punto de color verde (indicativo de conexión o activación) y se mostrarán los nuevos comandos. Además, y muy importante, podemos trabajar a la vez con varias extensiones. Por ejemplo, PicoBoard y Arduino, entre otras.
ScratchX con la extensión de Arduino conectada. Susana Oubiña Falcón (CC-BY)
Susana Oubiña Falcón
Página 8 de 20
Módulo 4: Practicando con S4A Los comandos que incluye este bloque Arduino permiten conectar y programar, de forma muy simple, 4 LEDs, 4 pulsadores, 4 motores, 1 potenciómetro (rotation knob), 1 sensor de luz y 1 sensor de temperatura.
Comandos de la extensión Arduino. Susana Oubiña Falcón (CC-BY)
La extensión de los archivos creados con ScratchX (.sbx) difiere de la del programa S4A (.sb). Por este motivo, los ficheros de ScratchX no pueden ser visionados ni abiertos por el software S4A. Entiendo y espero que este hándicap se subsane próximamente. Trabajar con ScratchX implica trabajar online y esto es un inconveniente en algunos centros educativos que dispongan de un pobre ancho de banda. Entre sus ventajas, podemos encontrar la posibilidad de utilizar extensiones experimentales que no se pueden combinar con el software S4A, como por ejemplo la extensión para el dispositivo Leap Motion, o también la mejora del potente editor de pinturas que nos proporciona la opción de manejar y trabajar Susana Oubiña Falcón
Página 9 de 20
Módulo 4: Practicando con S4A los gráficos en formato vectorial (de esta forma se puede aumentar el tamaño de los mismos sin que éstos pierdan resolución). Las imágenes, en ScratchX al igual que en Scratch2.0, se pueden trabajar en formato bitmap o en formato vectorial, según nos interese, sin más que hacer clic en un modo u otro (parte inferior derecha del Editor de Pinturas). Eso si, por ahora no procesa adecuadamente las imágenes en formato gif.
Editor de Pinturas en modo mapa de bits. Susana Oubiña Falcón (CC-BY)
Editor de Pinturas en modo vectorial. Susana Oubiña Falcón (CC-BY)
Programar y crear con ScratchX es similar a hacerlo con S4A. En consecuencia, si un usuario es se siente competente en S4A, puede tener la certeza de que también lo es en ScratchX. En el siguiente ejemplo se muestra un vídeo que desarrolla la práctica número uno de este libro en el entorno ScrachX.
Susana Oubiña Falcón
Página 10 de 20
Módulo 4: Practicando con S4A Ejemplo: Vídeo de la Práctica “Blink” en ScratchX https://vimeo.com/129806411
4.4.1. Leap Motion & ScratchX Leap Motion es un dispositivo que nos aporta una tecnología que puede ser interesante no sólo por ella misma, sino también porque se puede combinar con otros softwares como el programa scratch 2.0 y ahora con ScratchX, aportando motivación al alumnado. Este dispositivo sensor con tres infrarrojos (ver imagen) es capaz de detectar o captar el movimiento de nuestras manos y de cada uno de sus dedos en un espacio cúbico de 20cm de lado (20x20x20cm). Por lo tanto, nos permitirá controlar el ordenador (en nuestro caso, nuestro programa creado con ScratchX) por medio de gestos o movimientos que realizamos en el aire, ya sea por medio de los dedos o de las manos desde la muñeca, añadiendo una nueva dimensión: la profundidad (variable z de un sistema XYZ). En mi opinión, Leap Motion es un dispositivo que fomenta la motivación de nuestro alumnado. Un alumnado muy acostumbrado a interaccionar con juegos. Los usuarios incorporarán la sensación de agilidad y rapidez a sus proyectos, interaccionando con ellos como una escena de ciencia ficción donde los protagonistas, a partir de movimientos en el aire. La funcionalidad que adquiere con el ScratchX es la posibilidad de controlar los objetos que hemos creado para los programas, de tal forma que su movimiento lo realice el propio jugador interactuando con sus dedos y manos pero no desde un teclado tradicional o desde una consola externa creada, por ejemplo, con el kit Makey Makey. En un juego, esto aporta grandeza y enganche, consiguiendo que el jugador se sienta más partícipe del mismo. La siguiente imagen muestra este dispositivo rectangular y pequeño, que viene acompañado de dos cables de diferente longitud. Un extremo se conecta al Leap Motion y el otro extremo finaliza en un terminal USB que se unirá al ordenador:
Leap Motion. Susana Oubiña Falcón (CC-BY)
Susana Oubiña Falcón
Página 11 de 20
Módulo 4: Practicando con S4A A. Conectar Leap Motion con ScratchX Para conectar el dispositivo Leap Motion con ScratchX debemos realizar dos simples pasos: 1. Instalar el software del dispositivo Leap Motion (sólo se realiza una vez). 2. Navegar al siguiente link: http://scratchx.org/?url=http://khanning.github.io/scratch-leapmotionextension/leapmotion_extension.js Tras aceptar la extensión experimental, se nos muestra la siguiente pantalla en donde puede observarse que el dispositivo Leap Motion está conectado (círculo verde) al programa ScratchX:
Leap Motion conectado a ScratchX. Susana Oubiña Falcón (CC-BY)
Hechos estos pasos, ya podemos comenzar a crear. B. Crear con Leap Motion bajo ScratchX Toda extensión introduce nuevos comandos con el objetivo de poder controlarla y programarla. Leap Motion nos aporta la posibilidad de programar las manos, cada uno de sus dedos, rastrear o detectar herramientas (tools) y controlar gestos. Veamos brevemente cada uno de ellos: 1. Manos La extensión es capaz de rastrear hasta dos manos a la vez. Las manos se denotan como “Mano A” y “Mano B”
Susana Oubiña Falcón
Página 12 de 20
Módulo 4: Practicando con S4A
Comando para detectar si una mano es visible. Susana Oubiña Falcón (CC-BY)
La primera mano que detecte al controlador Leap Motion la reconocerá como la mano A, independientemente de si esta es la derecha o la izquierda. Si después detecta una segunda mano, esta la reconocerá como la mano B. 2. Dedos La extensión es capaz de rastrear hasta diez dedos a la vez. Los dedos siempre están asignados a su mano correspondiente, A o B, y cada dedo está numerado con los dígitos del 1 al 5, tal y como se detalla en la siguiente imagen.
Numeración de los dedos de la mano. Susana Oubiña Falcón (CC-BY)
3. Herramientas (Tools) La extensión es capaz de rastrear hasta dos herramientas a la vez. Una herramienta es un objeto largo y liso, como un lápiz o un palillo, y se denotan de la misma forma que las manos. Es decir, "herramienta A” o “herramienta B”.
Comando para detectar si una herramienta es visible. Susana Oubiña Falcón (CC-BY)
Susana Oubiña Falcón
Página 13 de 20
Módulo 4: Practicando con S4A La primera herramienta que se hace visible al controlador Leap Motion es reconocida por este como la “herramienta A”. Si una segunda herramienta se hace visible, se programará como "herramienta B”. En la siguiente imagen se observa el script de un proyecto de scratch2.0 en el cuál el usuario dibuja e interacciona con un lápiz. Herramienta que ha sido detectada por el dispositivo Leap Motion:
Herramienta “lápiz” detectada por Leap Motion. (Fuente: Leap Motion). Susana Oubiña Falcón (CC-BY)
4. Gestos La extensión también puede detectar cuatro gestos o acciones que el usuario realiza con la mano o los dedos. Los gestos que soporta el dispositivo son:
Comando que se ejecuta cuando se detecta un gesto. Susana Oubiña Falcón (CC-BY)
Tap: Realizar un movimiento con un dedo hacia abajo. Poke (empujar): Realizar un movimiento hacia delante con un dedo. Swipe: Mover la mano con los dedos extendidos en una línea recta a través de la pantalla.
Susana Oubiña Falcón
Página 14 de 20
Módulo 4: Practicando con S4A
Circle (círculo): Realizar un movimiento circular con un dedo.
5. Bloques de Scratch: A continuación se muestra una breve descripción de cada uno de los bloques de Scratch incluidos con la extensión Leap Motion:
Devuelve la posición X actual de una mano.
Devuelve la posición Y actual de una mano.
Devuelve la posición Z actual de una mano.
Devuelve la rotación actual de una mano.
Comprueba si una mano es visible.
Comprueba si una mano está cerrada.
Devuelve la posición X actual de un dedo.
Susana Oubiña Falcón
Página 15 de 20
Módulo 4: Practicando con S4A
Devuelve la posición Y actual de un dedo.
Devuelve la posición Z actual de un dedo.
Comprueba si un dedo está extendido.
Devuelve la posición X actual de una herramienta.
Devuelve la posición Y actual de una herramienta
Devuelve la posición Z actual de una herramienta
Comprueba si la herramienta es visible
Se ejecuta cuando se detecta un gesto (tap, poke, swipe, circle).
Susana Oubiña Falcón
Página 16 de 20
Módulo 4: Practicando con S4A
Espera hasta que el gesto (tap, poke, swipe, circle) sea detectado. C. Ejemplo1: Baile Leap Motion El siguiente programa representa y detecta el movimiento de los 5 dedos de una mano (mano A), así como, el movimiento del dedo índice de la segunda mano (mano B). Se incluyen dos escenarios que se intercambian cada segundo.
Un escenario del archivo. Susana Oubiña Falcón (CC-BY)
El script de escenario es muy simple, controla este cambio y la música:
Script del escenario. Susana Oubiña Falcón (CC-BY)
Susana Oubiña Falcón
Página 17 de 20
Módulo 4: Practicando con S4A El programa creado se compone de 8 objetos o sprites: 5 son cada uno de los dedos de la mano A (la primera detectada), 1 objeto palma de la mano A, 1 objeto control de la mano A y 1 objeto dedo 2 de la segunda mano detectada (mano B). Este último es un comecocos.
Objetos. Susana Oubiña Falcón (CC-BY)
Los pequeños programas para cada objeto diseñado son: Palma A:
Script para el objeto “PalmaA”. Susana Oubiña Falcón (CC-BY)
Dedo 1A: (Este script es similar para cada uno de los 5 dedos de la mano A. Sólo debemos cambiar el comando que indica la posición X e Y de cada dedo por del número de dedo (finger) correspondiente en su objeto).
Susana Oubiña Falcón
Página 18 de 20
Módulo 4: Practicando con S4A
Script para el objeto “Dedo1A”. Susana Oubiña Falcón (CC-BY)
Control 1A: Este objeto dibuja, con color azul y tamaño de lápiz 5, la posición de los dedos y palma detectada.
Script para el objeto “Control1A”. Susana Oubiña Falcón (CC-BY)
Susana Oubiña Falcón
Página 19 de 20
Módulo 4: Practicando con S4A Dedo 2B: representa a un comecocos que aparecerá si el dispositivo Leap Motion detecta una segunda mano visible. El comecocos se situará en la posición X e y detectada por el dedo 2 (índice) de la segunda mano.
Script para el objeto “Dedo2B”. Susana Oubiña Falcón (CC-BY)
E vídeo que muestra el funcionamiento del programa puede verse en el siguiente link: "Baile Leap Motion" https://vimeo.com/134533487
Susana Oubiña Falcón
Página 20 de 20