MONOGRÁFICO: Desarrollos de Scratch para robótica, Enchanting y S4A Imprimir
SOFTWARE - Software educativo
Escrito por Sergio González Moreau   
Lunes, 07 de Noviembre de 2011 22:45

capturadaScratch es un programa de iniciación a la programación desarrollado por el Lifelong Kindergarten Group en el Laboratorio de Medios del MIT y que ya ha sido comentado en este sitio. Permite crear animaciones, juegos,… de forma intuitiva siempre en un entorno en dos dimensiones. Además, gracias a la tarjeta Picoboard y sus sensores (de luz, sonido, pulsador, deslizador y cuatro entradas con pinzas de cocodrilo) es posible interactuar con nuestro entorno.



Introducción

P1040010.JPG

Tarjeta Picoboard

El programa es gratuito y su código fuente está disponible para la comunidad propiciando la creación de programas como Enchanting, un desarrollo pensado para programar en especial LEGO Mindstorm NXT; o Scratch para Arduino (S4A), que como su propio nombre indica, se ha centrado en Arduino, una plataforma con software y hardware abierto (open-source) ideal para la electrónica en general. En ambos casos estamos hablando de poder utilizar Scratch para programar robots, aunque permite muchas más posibilidades.

 

Este monográfico se centra sobre todo en la instalación, configuración y práctica de ejemplo inicial de estos desarrollos, dejando en manos del lector la investigación de sus posibilidades para el aula, talleres específicos o iniciativas diversas.


Enchanting: Scratch para Lego Mindstorms NXT

logo.jpg

Introducción

Enchanting está desarrollado por Clinton Blackmore, cabeza visible de la asociación Southern Alberta Robotics Enthusiasts (SABRE) de Canadá, junto con un grupo de colaboradores que se encargan por ejemplo de temas como el de instalación, audio o conexión por bluetooth con el ladrillo NXT.

La página web de esta asociación, http://robotclub.ab.ca, contiene un apartado específico para el programa, http://enchanting.robotclub.ab.ca/, y además nos permite conocer las iniciativas y trabajos que lleva a cabo y que nos pueden dar algunas ideas, como por ejemplo el control de componentes de LEGO Mindstorms (un par de motores y un sensor) utilizando una tarjeta Arduino dentro de la sección de artículos.

Software necesario

Para poder trabajar con Enchanting habrá que tener instalados un par programas, Java JDK y LeJOS NXJ, además del controlador de NXT. En cada uno de los siguientes apartados se explica la forma de descargar, instalar y configurar este software. Como resumen, en la última sección aparecen los enlaces para todo lo requerido además del programa Scratch por si estás interesado en empezar por el entorno clásico.

todos.jpg

Programas necesarios


Controlador de NXT (Fantom driver)

Si ya tienes instalado el software de LEGO Mindstorms puedes saltarte este paso, aunque puede servirte para actualizar el controlador (driver) del ladrillo NXT, el cerebro de nuestros robots o construcciones.

P1040009.JPG

El ladrillo NXT con el firmware de LeJOS

Accedemos a la dirección http://mindstorms.lego.com/en-us/support/files/Driver.aspx con nuestro navegador preferido y pulsamos en Downloads.

capture_07082011_213425.jpg

Aparecerá la opción de elegir entre la versión para PC o MAC. Escogeremos la que se ajuste a nuestro ordenador, en este caso PC.

capture_07082011_213431.jpg

Tras la descarga, habrá que descomprimir el archivo (por ejemplo con 7-Zip) con lo que tendremos la siguiente situación:

fantom01.jpg

Para iniciar la instalación del controlador bastará con pulsar en el archivo setup.exe. Hacemos clic en el botón Next tres de veces ya que no hay nada que configurar y dejaremos que se lleve a cabo el proceso.

capture_08082011_110454.jpg capture_08082011_110500.jpg

Dependiendo del ordenador en el que estemos trabajando, la instalación puede llevar más o menos tiempo. Cuando acabe, bastará con pulsar en el botón Finish.

capture_08082011_110512.jpg capture_08082011_110517.jpg


Java JDK

El siguiente paso es instalar el entorno de desarrollo de Java. Lo usual es tener en nuestro ordenador sólo la máquina virtual, por lo que se explicará la descarga e instalación.

Hemos escogido la última versión hasta este momento de Java JDK, la 1.7. Para poder trabajar con LeJOS NXJ será necesario que la versión sea superior a la 1.5+.

Con nuestro navegador web habitual accedemos a la dirección http://www.oracle.com/technetwork/java/javase/downloads/index.html y escogeremos la opción para Java SE 7 JDK, pulsando en el botón Download.

capture_07082011_212313.jpg

En la siguiente ventana, deberemos aceptar la licencia de uso y escoger la versión que se corresponda con las características de nuestro ordenador. En este caso, hemos escogido la de Windows x86.

capture_08082011_124854.jpg

El procedimiento de instalación es bien sencillo y es mejor no cambiar nada de lo que nos proponga ya que en el siguiente paso nos hará falta la localización del programa, que por defecto es C:\Program Files\Java\jdk1.7.0\ (está instalado dentro de la carpeta Archivos de Programa). La opción que podemos modificar sin ningún problema es la de instalar o no los ejemplos y demostraciones de Java.

capture_08082011_115205.jpgcapture_08082011_115209.jpg

Es conveniente no confundir la ruta que nos es necesaria, la del entorno de desarrollo C:\Program Files\Java\jdk1.7.0\, con la de la máquina de Java, C:\Program Files\Java\jre7\, que es la que normalmente instalamos para poder ver contenido creado en Java.

Al finalizar la instalación, el programa abrirá el navegador web para permitirnos registrarnos gratuitamente en la página de Oracle.

capture_08082011_115544.jpg

Falta por configurar unas variables en nuestro ordenador para que no tengamos problemas posteriores con la instalación de LeJOS NXJ.


Configurando variables

Para modificar variables de entorno en nuestro ordenador hay que acceder (en Windows 7) al Panel de Control > Sistema > Configuración avanzada del sistema.

capture_08082011_115936.jpg

Hay una nueva ventana en la que en la parte inferior hay un botón que pone Variables de entorno.

capture_08082011_115943.jpg

Pulsaremos en él y surgirá una ventana similar a la siguiente:

capture_08082011_115948.jpg

Vamos a crear una nueva variable de sistema para el directorio de desarrollo de Java (JAVA_HOME).

capture_08082011_115948.jpg

En la ventana que aparecerá escribimos en la casilla superior “JAVA_HOME” y en la inferior la ruta al entorno de desarrollo, C:\Program Files\Java\jdk1.7.0\.

capture_08082011_132301.jpg

Ahora haremos lo mismo para el directorio de LeJOS NXJ (NXJ_HOME), que por defecto se instala en C:\Program Files\lejos nxj\.

capture_08082011_132857.jpg

Por último, vamos a modificar la variable de sistema Path. Añadiremos un par de entradas correspondientes a la localización de los archivos binarios de Java y LeJOS NXJ. Localizamos la entrada Path y pulsamos en Editar.

capture_08082011_133323.jpg

Nos situamos al final de la segunda casilla y escribimos lo siguiente: “;%NXJ_HOME%\bin;%JAVA_HOME%\bin”.

capture_08082011_133840.jpg

Si todo lo hemos hecho bien, no tendremos ningún problema en la instalación de LeJOS.

LeJOS NXJ

LeJOS NXJ es un entorno basado en Java que nos permite comunicarnos con el cerebro de nuestro robot LEGO, al que se suele llamar ladrillo NXT. La página principal del proyecto es http://lejos.sourceforge.net/index.php y muestra dos versiones, una para NXT y otra para RCX.

capture_07082011_213329.jpg

En nuestro ejemplo descargaremos la versión para NXT, opción disponible dentro del apartado Downloads de LeJOS NXJ.

capture_07082011_213340.jpg capture_07082011_213346.jpg

Al pulsar sobre el último enlace, nos dirigirá a la página de SourceForge que contiene todos los archivos de este proyecto. Hacemos clic en la versión 0.9.0beta y en la siguiente página, escogemos el archivo leJOS_NXJ_0.9.0-Setup.exe para descargarlo.

capture_07082011_213357.jpg capture_07082011_213409.jpg

Una vez que lo tenemos ya en nuestro ordenador, la instalación no requiere muchos pasos y no hay que modificar nada.

Al hacer doble clic sobre el archivo, nos preguntará si deseamos continuar con la instalación. Habrá que escoger la opción Yes.

capture_08082011_112325.jpg

En los dos siguientes pasos bastará con pulsar en Next para seguir. Fíjate que si no tienes bien configurado el entorno de Java, te indicará que no lo tienes instalado y procederá a llevarte a la página de Java para que lo descargues. No hay que cambiar la ruta de instalación de LeJOS NXJ ya que entonces no coincidirá con la indicada en la variable del sistema.

capture_08082011_112330.jpg capture_08082011_134120.jpg

La ventana que viene a continuación, nos permitirá indicar si deseamos un directorio en concreto para guardar todos los proyectos de LeJOS NXT. No es necesario modificarlo, por lo que dentro de la carpeta del usuario se creará otra que tendrá por nombre LeJOSNXJProjects. Podríamos crearla dentro de Mis Documentos si deseamos tener más centralizada la gestión de nuestros archivos.

capture_08082011_134127.jpg capture_08082011_134135.jpg

Dejaremos que el proceso continúe hasta el último paso.

capture_08082011_134143.jpg

Actualizando el software base del ladrillo

La última ventana de la instalación de LeJOS NXJ no se cerrará hasta que actualicemos el software de nuestro ladrillo, el cerebro de nuestras creaciones en LEGO Mindstorm NXT.

capture_08082011_134319.jpg


Aparece una nueva ventana en Java para empezar con la actualización al pulsar en el botón Start program.

capture_08082011_134548.jpg

Está claro que nuestro ladrillo debe estar conectado y encendido para que todo esto pueda realizarse, por lo es conveniente comprobar antes que las pilas AA que utiliza están en buen estado. Por si acaso, el programa nos los recuerda en un mensaje que deberemos aceptar.

capture_08082011_134457.jpg

Nos preguntará si deseamos borrar todos los archivos NXT del ladrillo, a la que contestaremos afirmativamente.

capture_08082011_134513.jpg

Empieza la transferencia de archivos a nuestro ladrillo que llevará unos momentos.

capture_08082011_134553.jpg

Al terminar la descarga, nos preguntará si deseamos descargar otra vez el software al ladrillo, a lo que deberemos responder que no. Por fin, se cierra la última ventana de instalación de LeJOS NXJ.

capture_08082011_134604.jpg

Enchanting

Tras todo este camino ya estamos en disposición de instalar Enchanting, cuya página principal es http://enchanting.robotclub.ab.ca/tiki-index.php.

capture_08082011_170128.jpg

En el apartado dedicado a que la versión 0.0.7 ya está disponible (Enchanting 0.0.7 is out!), debajo del vídeo podemos ver un enlace a la descarga del programa (Downloading Enchanting). Por si acaso cambia algo, también puedes hacerlo desde esta otra dirección: https://launchpad.net/enchanting/+download

descarga_enchanting.jpg


De todos los archivos que están disponibles, nosotros descargaremos el ejecutable de la última versión, Enchanting-0.0.8.0-Setup.exe.

descarga_enchanting1.jpg

El desarrollo de la instalación es muy sencillo ya que está en español y consiste en aceptar todos los pasos. Puede surgir la duda de si sólo se quiere para un usuario o para todos, pero lo más cómodo es la segunda opción que es la que aparece marcada por defecto.

capture_08082011_165353.jpg

En nuestro escritorio aparecerá un acceso directo al programa cuyo dibujo es una barita mágica con estrellas.

logo.jpg


Configuración inicial: sensores y motores

La primera vez que ejecutamos el programa, el cortafuego de Windows nos preguntará por las reglas de conexión a redes públicas o privadas. La configuración que muestra por defecto, permitir acceso a redes privadas, es suficiente.

Cada vez que abrimos Enchanting lo primero que debemos hacer es indicarle al programa qué sensores y motores tenemos en el ladrillo, así como su ubicación. Empezamos por los motores ya que es la opción que aparece primero.

Pulsaremos en el botón gris Configure Motors que aparece a la izquierda de la ventana.

capture_08082011_173101.jpg

Aparecerá una ventana en la que seleccionamos los motores, las posiciones en la que están conectados y el nombre que deseamos darle. Sólo es necesario arrastrar el bloque azul que corresponda con el puerto que tengamos en uso. En nuestro caso, ambos son motores NXT, conectados a los puertos A y B. El que está en conexión A, le hemos dejado el nombre que por defecto le asigna el programa (NXT motor); y al otro, le hemos cambiado el nombre pulsando sobre la última casilla y escribiendo otras palabras (Otro motor 2). No hay que preocuparse por esto ya que Enchanting pone nombres distintos y sólo lo cambiamos para sentirnos más cómodos con la denominación.

capture_07082011_204709.jpg

Tras los motores, les llega el turno a los sensores que tengamos en nuestro ladrillo NXT. Para ello, hacemos clic en la opción Sensores y luego sobre el botón gris Configure Sensors.

capture_08082011_174636.jpg

Al igual que antes, aparece una nueva ventana en la que bastará con arrastrar el sensor correspondiente al puerto que esté conectado. Sigue siendo posible modificar los nombres que el programa asigna a cada sensor, si escribimos en la última casilla de cada pieza azul.

capture_07082011_204749.jpg


Descargar el programa a nuestro ladrillo

Cuando tengamos creado nuestro programa habrá que descargarlo a nuestro ladrillo NXT. Para ello, hay que pulsar en la flecha azul que hay entre los botones de inicio y parada usuales de Scratch, situados en la zona superior derecha de la pantalla.

botones2.jpg

Mientras no tengamos conectado y encendido nuestro ladrillo, las tres opciones estarán no estarán disponibles, apareciendo todas con el símbolo de prohibido. Además, si se nos ocurre pulsar en el botón de descarga, el programa nos indicará que no está conectado ningún dispositivo.

capture_07082011_205440.jpg

Cuando lo tengamos enchufado, podremos pulsar en el botón y el programa empezará a compilar nuestro programa, pasárselo a LeJOS y descargarlo. Si todo ha ido bien, el ladrillo reproducirá unas notas musicales. Sólo queda la práctica con el programa.

capture_07082011_205503.jpg


Scratch for Arduino (S4A)

Clipboard02.jpg

Introducción

Scratch for Arduino (S4A) ha sido creado por Marina Conde, Víctor Casado, Joan Güell, José García y Jordi Delgado con la ayuda del Grupo de Programación Smalltalk del Citilab[1], un centro dedicado a la investigación, formación y promoción de la tecnología digital (http://citilab.eu). Si quieres saber más sobre este proyecto puedes visitar el apartado dedicado a Arduino que tienen en su página web: http://seaside.citilab.eu/scratch/arduino.

capture_17082011_191419.jpg

Software necesario

Para poder utilizar S4A será necesario tener instalado previamente el software de Arduino y actualizar el firmware (software base) de la placa. Son dos actos que nos permiten equipar a nuestro ordenador con un entorno de programación muy intuitivo y sencillo.

Clipboard22.jpg

Programas necesarios


Software para Arduino

La parte simple de este proceso consiste en la descargar el archivo comprimido de la última versión y su descompresión. Para ello, accedemos a la página web del proyecto, http://www.arduino.cc/ y nos vamos a la sección de Descargas (Downloads).

capture_19082011_190124.jpg

Es conveniente acceder a su versión en inglés ya que tiene las últimas versiones de software, la 0022 en este momento. Como estamos trabajando en entorno MS Windows, pulsaremos en su opción (Windows).

capture_19082011_190656.jpg


La descarga requiere algo de tiempo ya que el archivo tiene casi 86 MB.

capture_19082011_190858.jpg

Cuando ya lo tengamos en nuestro disco duro, lo descomprimimos y obtendremos una carpeta con el siguiente contenido.

Clipboard01.jpg

Lo importante es el archivo arduino.exe que nos permite programar y acceder a la placa, y la carpeta de drivers que vamos a utilizar a continuación.

La cuestión algo complicada en este apartado es la instalación de los controladores (drivers) de la placa Arduino. En nuestro caso vamos a instalar el modelo Mega 2560 y para el resto de las versiones se puede proceder de la misma manera. Los pasos a seguir son:

Conectamos la placa a nuestro ordenador y el sistema operativo se pondrá a buscar los drivers del dispositivo. Puede ser que no los encuentre como en nuestro caso.

capture_19082011_191720.jpg

Nos vamos a Panel de Control > Sistema > Administrador de dispositivos y aparecerá la placa pero con un signo de advertencia delante de ella indicando que no está bien instalada. Nos situamos sobre ella y pulsamos el botón derecho del ratón. Del menú contextual que saldrá escogemos la primera opción Actualizar software del controlador.

capture_19082011_191734.jpg

Aparece el asistente que nos ofrece dos opciones, buscar automáticamente el controlador, que ya lo ha intentado antes y no ha dado resultado; y buscar el software en el ordenador, que será la que vamos a escoger.

capture_19082011_191740.jpg

En la siguiente ventana, pulsaremos en el botón Examinar y navegaremos hasta la carpeta drivers que hemos mencionado antes.

capture_19082011_191757.jpg


El sistema mostrará un mensaje de advertencia sobre el posible problema de inseguridad al instalar este controlador. Escogeremos la segunda opción, Instalar este software de controlador de todas formas.

capture_19082011_191803.jpg

Ya tenemos todo el proceso hecho y en el listado de hardware del sistema aparece reflejada nuestra placa Arduino correctamente configurada.

capture_19082011_191836.jpg


Firmware de S4A

Hay que cambiar el software base que tiene la placa Arduino para que pueda comunicarse con ella S4A y así trabajar.

Este software está disponible en la página web de S4A en la zona de descargas. Para acceder a ella, al final del apartado dedicado a Arduino se proporciona el siguiente enlace: http://seaside.citilab.eu/scratch/downloads.

capture_17082011_191426.jpg

El segundo párrafo contiene el enlace directo para bajar el archivo de firmware más reciente, actualmente el 12.

capture_17082011_191439.jpg


Puede ocurrir, como en Mozilla Firefox en este caso, que al pulsar sobre él aparezca el contenido del fichero. Si esto ocurre, hay que pulsar con el botón derecho del ratón sobre el enlace y escoger del menú contextual Guardar enlace como… y archivarlo donde deseemos.

capture_20082011_191311.jpg

Cuando lo tengamos en nuestro ordenador, habrá que descargarlo a la placa y para ello nos valdremos del software de Arduino.

Nos vamos a la carpeta arduino-0022 y pulsamos dos veces sobre el archivo ejecutable arduino.exe para abrirlo.

Clipboard03.jpg

Tras unos instantes de carga, aparece la ventana principal del programa, similar a la mostrada a continuación:

capture_20082011_192314.jpg

Para abrir el firmware descargado nos vamos a la opción del menú File y escogemos Open. En el cuadro de búsqueda que surgirá, nos desplazaremos hasta el lugar en el que lo tenemos guardado.

capture_20082011_192607.jpg

Puede que aparezca una advertencia en la que se nos pide permitir crear una carpeta con el mismo nombre del fichero y moverlo dentro de ella. Pulsaremos sobre el botón OK para continuar.

capture_20082011_192916.jpg

Aparece en una nueva ventana el archivo que vamos a pasar a la placa.

capture_20082011_192921.jpg


Volvemos al menú File y ahora pulsamos sobre la opción Upload to I/O Board, o pulsamos en la barra de herramientas el icono Upload.

Clipboard04.jpg

En la parte inferior aparece el estado del proceso y tras un momento, si no hay problemas, nos indicará que se ha realizado (Done uploading).

capture_20082011_193708.jpg

Scratch for Arduino (S4A)

Ya estamos en disposición de instalar S4A y para ello habrá que volver a visitar la sección de descargas de la página web del proyecto, http://seaside.citilab.eu/scratch/downloads; o utilizar el siguiente enlace, http://seaside.citilab.eu/S4A12.exe. Si hemos escogido la primera opción, el tercer párrafo contiene enlaces para distintos sistemas operativos y en este ejemplo, ya que estamos trabajando en el entorno MS Windows, escogemos el primero de ellos.

capture_20082011_200046.jpg

La última versión hasta el momento, S4A12, tiene un tamaño de 27 MB por lo que puede tardar un poco su descarga.

Clipboard05.jpg

El procedimiento de instalación como la mayoría de las veces en MS Windows, se inicia pulsando dos veces sobre el fichero.

Lo primero será escoger el idioma que se usará durante la instalación.

capture_20082011_201117.jpg


Pulsaremos en el botón Siguiente en la bienvenida y en la siguiente ventana aceptaremos el acuerdo.

Clipboard06.jpg

El resto de los pasos, salvo que deseemos ubicar el programa en otro lugar o no crear accesos directos en el menú de Inicio o en el escritorio, bastará con hacer clic en la opción Siguiente. La última ventana nos permite abrir el programa (Ejecutar S4A), en nuestro supuesto la hemos desmarcado ya que lo dejamos para el siguiente apartado.

Clipboard07.jpg


Probando S4A

Antes de ejecutar el programa es conveniente tener conectada al ordenador la placa Arduino, ya que su búsqueda será una de las primeras cosas que hará.

La primera vez que abrimos el programa, desplegará el menú de idiomas para que elijamos el nuestro. Pulsamos sobre la opción correcta y dejamos que el programa siga examinando el sistema para enlazar con la placa.

capture_20082011_201236.jpg

Cuando la haya encontrado, en el cuadro resumen de valores de entrada las cantidades mostradas irán variando muy rápidamente.

capture_20082011_201326.jpg

Estamos preparados para probar el programa y lo mejor será utilizar los ejemplos que ya tiene creados el equipo del proyecto y que están a disposición de todos.


Abrimos el navegador y volvemos a la sección de descargas del proyecto, http://seaside.citilab.eu/scratch/downloads. Dentro de ella hay un apartado dedicado a ejemplos que contiene un enlace a un archivo comprimido, s4a_basic_examples.zip.

capture_20082011_200518.jpg

Al descomprimirlo, tendremos cuatro ejemplos sencillos con sus esquemas de montaje.

Clipboard09.jpg

Hemos escogido la práctica de un led con un interruptor, que se llama button_led_with_state.sb, y cuyo diseño está recogido en el archivo switch_led.png.

Clipboard08.jpg


Nos harán falta los siguientes materiales: placa de conexiones, resistencia de 10 kW, led, interruptor y cables de conexión. Como ya hemos comentado, la forma de montarlo aparece en el fichero switch_led.png.

switch_led.png

Imagen del archivo switch_led.png

Nuestra construcción ha quedado tal y como se muestra en la fotografía que aparece a continuación. Podemos ver que la placa Arduino está conectada por USB a nuestro ordenador.

P1040012.JPG


Cuando lo tengamos todo hecho, hay que abrir el archivo button_led_with_state.sb con S4A. Cuidado porque si tenemos instalado Scracth, si pulsamos dos veces sobre el archivo éste será el programa que lo inicie. Por tanto lo mejor será, estando en S4A, pulsar en Archivo y escoger Abrir. Aparecerá una advertencia sobre si deseamos guardar el archivo existente, ya que no contiene nada diremos que no.

capture_20082011_210149.jpg

En el cuadro de diálogo, nos desplazamos hasta nuestra carpeta que contiene estos ejemplos y seleccionamos el fichero.

capture_20082011_210338.jpg


Cargará el archivo y volverá a buscar la placa por un momento.

capture_20082011_210354.jpg

Fijaros que la estructura del programa no tiene un final, si no que es un bucle sin fin que se iniciará cuando pulsamos en la bandera verde y se detendrá al hacerlo sobre el botón rojo de stop.

Clipboard10.jpg


Hacemos clic en la bandera verde que está en la parte superior izquierda para comprobar si nuestro montaje funciona correctamente. Si pulsamos el interruptor debería encenderse nuestro led rojo, que es lo que ocurre tal y como refleja la siguiente fotografía. Si volvemos a presionar se apaga la luz.

P1040013.JPG

Podemos probar el resto de los ejemplos si queremos hacernos una idea más precisa de cómo se programa en este entorno y se relaciona la placa con S4A. Lo que resta son los ensayos/proyectos que cada uno quiera hacer y que podemos enviar al equipo de S4A ya que estará encantado de publicarlos.


Enlaces

Enchanting

Scratch for Arduino (S4A)



[1] Obtenido de la página del proyecto http://seaside.citilab.eu/