s2aio. Scratch 2.0 se hermana con Arduino.

Permitidme agradecer al gran, gran, gran Alan Yorinks sus magníficas contribuciones, de gran valor para el aprendizaje y desarrollo de actividades relacionadas con el mundo STEM.

Thank you so much, Alan, for your invaluable contribution to the STEM universe. You have developed a bunch of incredible pieces of software: s2a_fm, s2aio, Xi, PyMata, etc, a magical swiss knife for Computational Thinking and Physical Computing. Thanks to your work, software like Scratch can connect to Real World and interact with it. We really appreciate it. May this entry, and many more that will come after this, serve as a small tribute to your effort.

happy

Esta entrada pretende servir como referencia para instalar y configurar uno de los módulos de Alan Yorinks, s2aio. Gracias a este puente de comunicación, Scratch 2.0 puede interactuar con placas Arduino en el Mundo Real.

s2aiio

Seguiremos las instrucciones que aparecen el la wiki de s2aio y la guía que ha preparado otro grande de la divulgación de entornos gráficos para Arduino (entre otros aportes), el profesor Jose Manuel Ruiz Gutierrez, aunque iremos intercalando algunas recomendaciones personales y simplificaciones. Fruto de nuestras experiencias con distintas instalaciones, hemos creido necesario preparar una guía más sencilla, menos técnica, de andar por casa si se nos permite la expresión.

Así que nos ponemos a ello. Asumiremos que utilizamos Windows como sistema operativo (si no, en la wiki encontraréis instrucciones para Linux y MacOS) y que Scratch 2.0 ya está instalado en el equipo. En caso contrario, recomendamos seguir las instrucciones de esta entrada. Si estamos listos, comencemos:

En primer lugar, necesitamos descargar el IDE de Arduino. Es el entorno de desarrollo oficial para programar placas Arduino. Podemos descargar la última versión desde aquí. Una vez instalado, continuamos con el siguiente punto, posiblemente el más peliagudo.

Efectivamente, este paso no es intuitivo, aunque simplemente se trata de entender qué es un firmware y para qué se utiliza. Sin profundizar más de lo debido, diremos que trata de un programa que sirve de inicio a sistemas electrónicos complejos. Gracias al él pueden ser añadidas nuevas funcionalidades que no se contemplaron en el momento de su fabricación. Como ejemplos, la CMOS (confundida siempre con la BIOS) en un ordenador, la versión (ROM) de un teléfono móvil… o el Firmata de las placas Arduino. Este Firmata permite a Arduino a trabajar de varios modos distintos, otorgándole una flexibilidad incomparable. El que vamos a utilizar se denomina FirmataPlus y lo podemos encontrar formando parte del paquete libraries.zip descargable desde aquí. Este archivo ZIP debe ser descomprimido en un lugar concreto y es que el entorno de Arduino es un poco especial para almacenar sus archivos de programas y librerías. Para comprobar la ubicación, debemos abrir el IDE de Arduino y echar un vistazo en el menú Archivo, Preferencias. Os aparecerá una ventana de este estilo:

sketchbook_arduino

Deberéis descomprimir el archivo ZIP en el directorio denominado Ubicación del Sketchbook. En nuestro caso, por ejemplo: c:\usuarios\expeduca\Arduino\sketchbook. Para que Arduino se entere, debemos cerrar el programa y volverlo a abrir. Si lo habéis hecho correctamente, veréis que bajo el menú Archivo, Ejemplos, tenéis un apartado dedicado al FirmataPlus.

sketchbook_con_firmataplus

Elegíd ese sketch y se cargará en la ventana del programa. Una vez conectada la placa Arduino, seleccionamos tanto el modelo (menú Herramientas, Tarjeta) como el puerto de conexión (menú Herramientas, Puerto). Ya no queda más que pulsar el botón (->), que parece bajo el menú principal. El programa se cargará en la placa Arduino y aparecerá el mensaje Subido en la línea de notificaciones cuando el proceso haya finalizado. Ánimo que esto está casi listo.

Descargamos e instalamos el intérprete del lenguaje de programación Python. Es necesario puesto que nuestro amigo Alan ha programado sus módulos en él. Debemos tener cuidado al arrancar la instalación y marcar en las opciones, la casilla add Python 3.5 to Path. Nos facilitará la ejecución de programas desde cualquier ubicación.

Le toca el turno a s2aio. Abrimos una consola de comandos (botón de Inicio, abajo a la izquierda de nuestro escritorio), escribimos cmd en la línea de comandos y pulsamos la tecla Intro. En la ventana que se abra, escribimos pip install s2aio y pulsamos Intro. En unos segundos se descargarán las librerías necesarias y el programa quedará instalado, completando todos los requisitos. Ahora vayamos con la ejecución:

En la consola del sistema que tenemos abierta (¿no la hemos cerrado, verdad?) tecleamos s2aio y pulsamos la tecla Intro. El módulo s2aio ejecuta varias tareas automáticamente, tratando de localizar la placa Arduino conectada al sistema, identificando el modelo, el firmware cargado y el puerto de comunicación en el que se encuentra. Después abre un nuevo proyecto de Scratch 2.0 con los bloques específicos para Arduino localizados bajo la categoría Más Bloques (la última y en morado).

Si te ha funcionado esta última parte, enhorabuena. Ya puedes comenzar tu montaje Arduino y controlarlo desde Scratch 2.0. Si no es así, sigue leyendo…

Debemos confesar que a nosotros nunca nos ha funcionado este arranque automático. No sabemos si porque la instalación de Scratch está en otro lugar, idioma… etc, y/o porque como trasteamos con muchas placas distintas tenemos muchos puertos COM en el sistema. Pero no preocuparse. Recurriremos al arranque manual.

Si el problema es que no nos detecta la placa Arduino en el puerto correcto, podemos salvar este escollo tecleando en la consola del sistema que todavía tenemos abierta, (¿verdad?): s2aio -p COM[X], siendo [X] el puerto COM donde se encuentra Arduino. En nuestro caso, nuestra placa estaba conectada en el puerto COM 9, de modo que el comando quedaba: s2aio -p COM9. Pulsamos Intro y observamos el resultado. Si arranca Scratch ya tenemos solucionado el problema. Si no, probemos con otra posibilidad.

Podría ser que s2aio detectase correctamente la placa, pero no encontrase como ejecutar Scratch. Para solventarlo, utilizamos el comando: s2aio -c no_client. De este modo, s2aio se limita a detectar la placa Arduino y se queda a la espera de que seamos nosotros los que arranquemos Scratch. No hay que hacerlo del modo estandar, sino buscando el archivo que lleva incluidos de serie los bloques de Arduino. Ese archivo en cuestión se llama s2aio_base_ES.sb2, y en nuestro caso se encuentra en la ruta: C:\Users\expeduca\AppData\Local\Programs\Python\Python35-32\Lib\site-packages\s2aio\ScratchFiles\ScratchProjects\. Al ejecutarlo se abrirá Scratch y veremos que bajo la categoría Más Bloques, el epígrafe s2aio tiene una lucecita verde que indica que están operativos.

Aunque podría ser que simultaneasen ambos errores, en cuyo caso combinaremos lo visto en los casos anteriores en el comando: s2aio -c no_client -p COM[X]. Nosotros nos lo guisamos y nosotros nos lo comemos. Le decimos a s2aio el puerto donde buscar la placa Arduino y arrancamos manualmente Scratch con el archivito con los bloques Arduino precargados.

Esperamos que en este momento, la imágen de vuestra pantalla se parezca mucho a esta:

s2aio-scratch

Si es así, enhorabuena de nuevo y pasadlo muy bien con vuestro nuevo juguete.

Si no lo habéis conseguido, dadnos un toque o dejad un comentario y veremos qué se puede hacer.

Hasta la próxima.

8 thoughts on “s2aio. Scratch 2.0 se hermana con Arduino.

  1. Pingback: Migramos a Scratch 2.0 | expeduca

  2. Pingback: Arduino para quien no conoce Arduino. | expeduca

  3. Pingback: Multiplicando con Don Básico Servo. | expeduca

  4. Pingback: Expeduc A Sketch. Nuevo proyecto s2aio. | expeduca

  5. Pingback: Averigua la combinación. Caja fuerte con Arduino y s2aio. | expeduca

  6. Pingback: LEDs multicolor (RGB). Ánodo común o cátodo común. | expeduca

    • Gracias Marcelo. Acabo de leer tu gran tutorial. Enhorabuena y que le sirva a mucha gente para experimentar y aprender. Saludos de expeduca.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *