Utilizar Scratch 2.0 offline o SNAP! con arduino en MAX: s2a

Punto de encuentro para los aficcionados al hardware libre: arduino, raspberry-pi, no tan libre: lego, etc y la programación visual y de dispositivos electrónicos, todo ello con MAX, claro.

Moderadores: daniel.esteban, victor.armendariz, ruben.garcia45, irene.olalla, dgonzalezarroyo

Responder
des_ezequiel
Mensajes: 1365
Registrado: 03 Mar 2005, 14:02

Hola maxeros.

Ya hemos visto que MAX 7.5 dispone de scratch 2.0 offline, AppInventor, Arduino IDE, Processing,... y s4a.

Scratch for Arduino, s4a, nos permite usar la versión 1.4 de Scratch junto con Arduino.

Pero ¿qué pasa si queremos usar otras versiones de Scratch?

Es evidente que Scratch 2.0 tiene más potencial que Scratch 1.4. Problema se basa en flash y hay que instalar Adobe AIR para que funcione. Es algo que hace que seamos un poco menos "libres". ¿Podemos usar esta versión con una placa arduino?

La respuesta es... SI :D

A mi me gusta usar HTML 5 para poder seguir siendo "libre". La versión de Scratch que están desarrollando en la Universidad de Berkeley está escrita en HTML 5. :D
Se trata de SNAP! y no se descarga, solo es accesible vía web:

http://snap.berkeley.edu/

¿Podemos usar SNAP! con una placa arduino?

La respuesta es... SI :D

Las siguientes instrucciones tienen la siguiente bibliografía web:

Aldo von Wangenheim, http://scratched.gse.harvard.edu/resour ... -bluetooth
http://www.computacaonaescola.ufsc.br/? ... 03&lang=en
http://playground.arduino.cc/Interfacing/Firmata

Se trata de instalar s2a-fm, que contiene el protocolo de comunicaciones genérico firmata (un firmware) y un servidor denominado s2a-fm server (Scratch to Arduino - firmata).

Se debe respetar el orden. Pasos:

1.º Instalar componentes Python. Desde un terminal ejecutamos:

Código: Seleccionar todo

sudo apt-get update

Código: Seleccionar todo

sudo apt-get install python-pip 

Código: Seleccionar todo

sudo pip install PySerial

Código: Seleccionar todo

sudo pip install PyMata
2.º Conectamos nuestra placa arduino o compatible al ordenador via USB.

3.º Abrimos Arduino IDE. Inicio > Programación > Arduino IDE.
¡Ojo! Si no se abre es porque estáis trabajando con una versión de Java incorrecta. Hay que usar open JDK 7. Para ello nos vamos a
Inicio > Herramientas del sistema > MAX Configurador Java y seleccionamos open JDK 7.

4.º Desde el menu de Arduino IDE compilamos StandarFirmata.
File > Examples > Firmata > StandarFirmata y una vez cargado pulsamos en la flecha -> (Upload) para cargar y compilar este firmware en la placa Arduino. Veremos que se encienden y apagan LEDs de actividad en nuestra placa.

5.º Descargamos s2a-fm. Descargamos desde este enlace:

https://github.com/MrYsLab/s2a_fm

Debemos hacer clic en la descarga del zip que esta abajo a la derecha. Luego hay que descomprimir el fichero master.zip.

O directamente en este enlace https://github.com/MrYsLab/s2a_fm/archive/master.zip.

Se puede descargar en cualquier sitio pero cuanto más accesible a Scratch 2.0 offline más cómodo.

6.º Lanzamos el servidor. Nos vamos dentro de la carpeta s2a_fm-master y abrimos ahí un terminal ejecutamos:

Código: Seleccionar todo

python s2a_fm.py /dev/ttyACM0
¡Ojo! /dev/ttyACM0 suele ser el puerto serie que nos reconoce Arduino IDE pero podría ser otro como /dev/ttyUSB o similar. Si no es el indicado hay que poner el que corresponda.

Si todo ha ido bien podemos usar nuestra placa Arduino con Scratch 2.0 y con Snap!.

Con Scratch 2.0:

Inicio > Programación > Scratch 2.0 offline

File > Open y buscamos en el carpeta s2a-fm_master la subcarpeta ScratchFiles/ScratchProjects y cargamos el fichero sa2_fm_base.sb2.

Ahora en la categoría de programación More Blocks deben aparecer los bloques de programación con nuestra arduino. Debe aparecer un circulo rojo que indica que el servidor de comunicación está ejecutándose. :D

Con SNAP!:

Abrimos en el navegador SNAP!:

http://snap.berkeley.edu/snapsource/snap.html

Debe reconocer nuestro idioma y se pondrá en español.

Ahora vamos al icono de documento/archivo arriba a la izquierda y... Archivo > Importar y buscamos la subcarpeta s2a_fm-master/Snap!Files.

Elegimos s2a_fm_Snap_base_Es.xml y lo cargamos.

Y voila! Tendremos nuevos bloques de comunicación con arduino en las categorías de programación Movimiento, Sensores y Sonido. :D

Un post un poco largo pero...

¿a qué merece la pena, eh? 8)
¡¡¡Se libre!!!

¡¡¡Usa MAX!!!
Imagen
des_madrid_linux
Mensajes: 491
Registrado: 01 Dic 2004, 10:17
Ubicación: EducaMadrid
Contactar:

¡Impresionante Ezequiel!

Estupendo tutorial, me ha funcionado a la primera tanto para Scratch2 como parar Snap, este último todo un descubrimiento.
La descarga se puede hacer también con git clone https://github.com/MrYsLab/s2a_fm teniendo instalado git (sudo apt-get install git)
El archivo para scratch sa2_fm_base.sb2 también está en castellano: s2a_fm_base_Es.sb2
Me da la impresión que es como el S4A, que sólo funciona mientras está conectado, no manda un programa para que funcione de manera autónoma como hace el Ardublock.
Itentaré meter en nuestros repos en cuanto podamos tanto el s2a_fm como snap.

Mil gracias por tan excelente aportación. Saludos,
Grupo de Desarrollo MAX

¡¡Sé libre: usa MAX!!
Responder