sábado, 21 de abril de 2012

S4A: Scratch para Arduino



S4A (Scratch for Arduino) es una modificación de Scratch desarrollada por el Grupo de Programación Smalltalk del Citilab, para programar de forma sencilla e intuitiva  la plataforma de hardware libre Arduino. S4A Incluye nuevos bloques para controlar sensores y actuadores conectados a sistema Arduino. 

Scratch es un entorno de programación gratuita, desarrollado por el MIT (Massachussets Institute of Tecnology), que permite explorar y experimentar con los conceptos de programación mediante el uso de una sencilla y dinámica interfaz gráfica. Para ello utiliza bloques, al estilo del "Lego", que simbolizan diferentes elementos de programación , por ejemplo: instrucciones, condiciones, variables, bucles, entre otros. Estos bloques de programación se van ensamblando hasta formar programas.

Por otro lado, Arduino es una plataforma de hardware abierto para el aprendizaje de electrónica y la creación de prototipos. Fue creado para artistas, diseñadores, aficionados y cualquier persona interesada en crear entornos y objetos interactivos mediante el uso de componentes electrónicos.


La integración de estos dos entornos permitió el desarrollo de S4A, cuya plataforma nos permite entrar al mundo de la electrónica, la robótica y programación y desarrollar diferentes prototipos, sin necesidad de tener conocimientos avanzados en estas áreas.

Pasos para empezar a trabajar con S4A

  1. Descargar e instalar el software de  Scratch for Arduino S4A de la web de Citilab. Aquí te facilitamos los links de descarga según tu sistema operativo: Windows, Mac, Linux(Debian).
  2. Descargar e instalar el software de Arduino dependiendo del sistema operativo que uses. El link de descarga es el siguiente:  http://arduino.cc/es/Main/Software.
  3. Instale el último Firmware para Arduino para facilitar la comunicación de este con S4A. Esto se realiza cargando el fichero firmware en el IDE de Arduino y después descargándolo sobre la tarjeta.
  4. Ahora ya puedes comenzar a programar tu Arduino con S4A. En el siguiente link encontrarás un tutorial muy completo para programar con S4A el Arduino UNO: S4A(Scratch) + Arduino.
El siguiente vídeo  nos explica paso a paso como controlar una tarjeta de Arduino desde le entorno de Scratch:

Fuentes:
Scratch for arduino
Manual: S4A (Scratch) + Arduino
Biblioteca Arduino


21 comentarios:

  1. La interfaz gráfica de S4A es muy intuitiva, es muy similar a la que se usa en Lego NXT que también es por bloques. Este tipo de entornos permite a cualquier persona que no sepa mucho de programación realizar fácilmente sus proyectos de robótica.

    ResponderEliminar
  2. Hola

    Como complemento perfecto para Arduino S4a y Scratch, en el grupo de róbotica del Colegio Gredos hemos desarollado una shield para Arduino que facilita las practicas con estos sistemas.
    Crear pequeños robot y proyectos es fácil y de gran utilidad con chavales en colegios y talleres.
    informacion y videos en este wiki:

    http://scratch-io.wikispaces.com/

    http://www.youtube.com/watch?v=X3-iDStDgkw&feature=channel&list=UL

    ResponderEliminar
  3. http://www.youtube.com/watch?v=wl1je0dc468&feature=autoplay&list=UL4taK2HQNgUc&playnext=2

    ResponderEliminar
  4. Irei utilizar para ensinar os fundamentos da Linguagem C para meus alunos, vou analisar o código fonte de Scratch, se for possível gerar código em Java será muito útil para ensinar Lógica de Programação utilizando este sistema de blocos gráficos.

    ResponderEliminar
  5. Olle amigo mi pregunta es cuando tu le cargas el codigo de la pagina de citilab podremos despues volver a programar en el software de arduino normalmente como lo he hecho antes de conocer el S4A?

    ResponderEliminar
    Respuestas
    1. No hay ningún problema, puedes instalar el Firmware de S4A en el Arduino y después programar con el IDE de Arduino pero si uno quiere volver a programar en el S4A debe volver a descargar en el Arduino el Firmware de S4A.

      Eliminar
  6. Buenas noches:
    Soy profesor de secundaria, trabajo en México, conozco Lego y su ambiente de programación desde hace unos diez años. Más o menos al mismo tiempo conocí Scratch y posteriormente la Gogoboard y el GogoMonitor, finalmente el Lego NXT. Son plataformas increíbles, son juguetes y en las manos apropiadas (los niños, los jóvenes de secundaria 12 a 15 años), harán proyectos increíbles. Conocí Arduino hace tres años aproximadamente pero la programación no resulta tan sencilla para todos. Había escuchado de Scratch para Arduino y ahora que lo encontré no lo puedo descargar de Citilab, ¡Saben de algún sitio?
    Gracias Atentamente Miguel Ángel (elprofrmiguelangel@gmail.com http://facebook.com/elprofrmiguelangel elprofrmiguelangel@facebook.com)

    ResponderEliminar
    Respuestas
    1. Hola Miguel Ángel, gracias por compartir tu experiencia. Encontré la siguiente página donde puedes descargar el S4A espero que te sirva :)
      http://sourceforge.net/projects/s4a/

      Eliminar
  7. Gracias Ángela:

    Ya lo descargué y voy a ver como lo instalo para probarlo y poder comentarlo en este espacio.

    Seguimos en contacto

    ResponderEliminar
  8. can anyone tell me how to communicate with xbee via scratch. when i try to glow led in wireless it's doesn't work.i dono how to do it in xbee , data from scratch to arduino xbee1 and arduino xbee1 to arduino xbee2 then arduino xbee2 to glow led.

    ResponderEliminar
  9. Soy del Instuto Técnico Industrial del area de Computación y m agrado mucho su blog y lo recomendare, y este año estamos realizando lo que es un Impresor 3D con Arduino y a la ves Robots Humanoides, una pregunta en El Salvador ya han habido robots humanoides hechos aqui??? les ruego que me contesten si alguien sabe xq la propaganda nose si hacerla asi d q x primera vez en El Salvador hay robots humanoides, proximamente en la Expotecnia de este año 2013 en la ultima semana de octubre. Estan invitados todos....

    ResponderEliminar
  10. Como estudiante de la carrera de mecatronica me parece muy interesante este programa, ya que facilita bastante la programación, aunque tengo una duda, ¿cuando instale el firmware reduce se la memoria de la tarjeta o sige funcionando de manera normal?

    ResponderEliminar
  11. Hola Buenas noches !!!!

    Soy estudiante de Ing. Electrónica y estoy aprendiendo a usar S4A, me parece una forma de programar muy fácil, interactivo y amigable con cualquier tipo de usuario. Tengo una duda, alguien sabe si hay alguna forma de crear una base de datos de la lectura de un sensor, (digamos que el sensor se podría encontrar en A0 del Ardu) ????

    Gracias !!!

    ResponderEliminar
  12. HOla quisiera saber si la tarjeta arduino leonardo es compatible con el S4A al parecer intento colocar su puerto y no lo reconoce........


    gracias por las respuestas!!!!

    ResponderEliminar
    Respuestas
    1. En la pagina oficial dicen que S4A trabaja con Arduino Diecimila, Duemilanove y Uno. Otras tarjetas no han sido probadas pero pueden funcionar. ver http://s4a.cat/

      Eliminar
  13. muy bueno el blog los felicito
    funciona el S4A en ubuntu? todos mis alumnos tienen ubuntu en sus maquinas

    muchas gracias

    ResponderEliminar
    Respuestas
    1. Te comento que S4A funciona en:
      Windows
      Mac
      Linux (Debian)
      Raspbian (Debian for RaspberryPi)

      Se que en Ubuntu puedes correr Windows con una maquina virtual y hay puedes abrir el programa.

      Eliminar
    2. Sí que funciona. Ubuntu no deja de ser una distro basada en Debian.

      Eliminar
  14. S4A, funciona en debian 7 pero en Ubuntu no reconoce "Arduino uno".
    Al igual que Scratch 1.4 en windows no hay problema con los sensores de LEGO pero en Debian 7 y Ubuntu no los reconoce, almenos con la instalación del SW Scratch

    ResponderEliminar
  15. necesito link de firmware para que me vaya la placa con el s4a por que esa pagina no existe y no encuentro el mismo

    ResponderEliminar
  16. No funciona el firmware en arduino micro ... :-( me da estos fallos y no me deja enviarlo.. ayuda!!

    S4AFirmware15.ino: In function 'void configureServomotors()':
    S4AFirmware15:80: error: 'TCCR2A' was not declared in this scope
    S4AFirmware15:81: error: 'TCCR2B' was not declared in this scope
    S4AFirmware15:81: error: 'CS22' was not declared in this scope
    S4AFirmware15:81: error: 'CS21' was not declared in this scope
    S4AFirmware15:81: error: 'CS20' was not declared in this scope
    S4AFirmware15:83: error: 'TCNT2' was not declared in this scope
    S4AFirmware15.ino: In function 'void reset()':
    S4AFirmware15:164: error: 'TCNT2' was not declared in this scope
    S4AFirmware15.ino: In function 'void TIMER2_OVF_vect()':
    S4AFirmware15:223: error: 'TCNT2' was not declared in this scope

    ResponderEliminar