S4A y Arduino. Descripción general

S4A es otra modificación de Scratch desarrollada por el Grupo de Programación Smalltalk del Citilab.

Esta modificación supone la creación de un nuevo tipo de objeto (la placa Arduino) sobre el que se han definido un conjunto de nuevas funciones. Estas funciones están añadidas a las del bloque de movimiento.

Como se puede ver en la imagen dispone de funciones para:

  • Asignar valores (encendido/apagado) a "salidas" digitales de la placa Arduino
  • Asignar valor (0-255 que corresponden a 0-5 voltios) a salidas analógicas de la placa
  • Leer sensor digital (presionado)
  • Leer sensor analógico (0-1023 que corresponden a 0-5 voltios)
  • Girar un motor (en realidad un servo) para colocarlo con un ángulo concreto

Además permite trabajar con un nuevo tipo de datos (tabla) que funciona como una lista de datos sobre la qeu se puede añadir y quitar datos.

S4A detecta la placa Arduino cuando la conectamos al ordenador a través del cable USB y a partir de ese momento podemos enviarle órdenes  para que la placa actue activando y desactivando salidas que si están conectadas a ciertos actuadores (motores, servos, iluminación), o recogiendo información de los sensores conectados a la placa (interruptores,

 

 

Arduino es una placa electrónica para desarrollar de forma sencilla prototipos interactivos. Puede recoger información a través de sensores y responder a través de diferentes dispositivos como les, motores, servos… Dispone de software de programación libre y también es libre el diseño de la placa.

Hay diferentes modelos de placas Arduino, con conexiones USB, Bluetooth, Ethernet… Para los ejemplos mostrados aquí usaremos una placa Arduino UNO con conexión USB.

Esta placa tiene una conexión USB con la que se conecta al ordenador, de esta conexión se obtiene la alimentación eléctrica necesaria para funcionar y también se utiliza para la comunicación entre el ordenador y la placa.

La placa consta de un conjunto de  entradas y salidas tanto analógicas como digitales:

  • Las salidas digitales ofrecen una tensión de 5V cuando están activas (On) y de 0V cuando están apagadas (Off).
  • Las entradas digitales se activan cuando se conecta a la entrada 5V y están apagadas cuando se conectan a tierra.
  • Las salidas analógicas ofrecen una tensión entre 0 y 5V.
  • Las entradas analógicas reconocen tensiones entre 0 y 5V.

     

Para usar la placa Arduino con S4A necesitamos instalar un "firmware" en la placa. Este firmware no es más que un programa hecho en el lenguaje propio de Arduino que define las entradas y salidas que será capaz de reconocer S4A. Existen dos firmware diferentes, la diferencia entre ellos es que el estándar define 4 salidas para servos y 3 salidas digitales y el "patch" que deja dos servos y 5 salidas digitales. Lógicamente es necesario utilizar el firmware  junto con la imagen de S4A correspondiente para que todo funcione correctamente.  

En los ejemplos siguientes usamos la versión "patch" con 5 salidas digitales.

En estas imágenes vemos como podemos acceder desde S4A a las entradas y salidas de la placa.




Para conectar algunos sensores (LDR, potenciómetros, interruptores …) y algunos actuadores (motores, servos, leds…)  es necesario completar un circuito electrónico simple sencillo y de bajo coste. Los elementos utilizados en los ejemplos incluyen:

  • La placa Arduino UNO (coste aproximado 25 Euros)
  • Una placa de prototipos (coste aproximado 7 euros)
  • Un servo motor usado en aeromodelismo (coste aproximado 12 euros)
  • Leds, resistencias,interruptores, potenciómetros (coste aproximado menos de 5 euros)
  • Fotoresistencias LDR (variables según la iluminación) (coste aproximado 1 euro cada una)
  • Interruptor infrarrojo + emisor infrarrojo (coste aproximado 7 euros)


Los programas desarrollados con S4A se ejecutan en el ordenador no en la placa (como ocurre con los desarrollados en el lenguaje propio de Arduino). Cuando el programa se ejecuta,m el ordenado envía comandos a la placa para que recoja valores de los sensores o para que active salidas digitales con valores encendido (5V) apagado (0V) o salidas analógicas (0-255 => 0-5V). Por lo que los programas no pueden funcionar de manera autoónoma en la placa y deben funcionar siempre con el ordenador conectado.