PRIMEROS PASOS S4A (SCRATCH FOR ARDUINO)

04 ENERO 2019 01

Autor:  Agustin Gonzalez Redondo. M Rocío García de la Fuente.

S4A es una modificación de Scratch, que permite programar la plataforma de hardware libre Arduino de una forma sencilla. Aporta nuevos bloques para tratar con sensores y actuadores conectados a una placa Arduino. Proporciona una interfaz de alto nivel para programadores con las funcionalidades básicas del micro-controlador: escrituras y lecturas digitales y analógicas, aprovechando la facilidad de uso de Scratch (figura 1).

Los bloques funcionales son los típicos bloques que aparecen en Scratch, distribuidos, además, de la misma forma, con lo que el programa brinda la oportunidad de realizar una programación con S4A similar a la que se lleva a cabo con la aplicación en las que está basada.

La gran diferencia radica en la carpeta de bloques “Movimiento” que además de contener todas las órdenes propias de Scratch contiene los bloques de órdenes necesarios para la programación de una tarjeta controladora Arduino (figura 2).

04 ENERO 2019 02

Una vez descargada la aplicación de su página web, gratuita y disponible sistemas operativos más populares, cuando se abre y se conecta la tarjeta de Arduino a través del puerto USB, el programa muestra el mensaje “Buscando placa …” (figura 3), esto es debido a que S4A está diseñado para comunicarse con la micro-controladora a través de una programa cargado previamente en su memoria flash, este firmware está disponible en la página oficial de S4A (http://s4a.cat/index_es.html) y su descarga también es gratuita.

04 ENERO 2019 03

El firmware se descarga y se instala en la placa a través de la IDE de Arduino, y permite establecer la comunicación con S4A mediante el puerto USB, (figura 4), lo que obliga a la tarjeta a permanecer unida al ordenador a través de un cable, ya que no permite descargar los programas en el micro-controlador y la ejecución de los programas se ejecuta desde S4A.

04 ENERO 2019 04

Esto que a priori puede parecer una desventaja, ya que no permite ejecutar programas en los que la placa funciona de forma autónoma, por ejemplo robots móviles, sin embargo proporciona la posibilidad al usuario de tener una comunicación directa con la placa de Arduino, siendo este capaz de obtener una representación gráfica en pantalla de lo que está ocurriendo en cada instante de tiempo, estado de las entradas y salidas, lo que enriquece sobremanera la experiencia al programar robots estáticos.

A modo de ejemplo, se propone construir una barrera para vehículos, empleando para ello un servomotor, programa sencillo que se completará con su representación gráfica gracias a las herramientas de Scratch presente en S4A.

El primer paso es establecer las conexiones en la placa de Arduino tal y como se muestra en el esquema electrónico elaborado con Fritzing (figura 5).

04 ENERO 2019 05

Volviendo de nuevo a la aplicación S4A, una vez establecida la conexión con la placa, se procede a programar el objeto Arduino1 de la misma forma que se programa cualquier objeto de Scracth, con la salvedad de que ahora emplearemos para ello los bloques funcionales específicos para tal efecto.

Se establece un programa sencillo donde el servo motor, varía de forma alterna entre los 90 grados, posición cerrada, y los 0 grados, posición abierta de acuerdo con el sistema de referencia que usa S4A, extremos en los que permanecerá detenido un corto periodo de tiempo. Para ello se define una variable “angulo”, para todos los objetos, que se modificará durante la apertura y el cierre hasta alcanzar los valores extremos (figura 6). Como se puede observar, el programa consta de dos bucles Do…While (repetir hasta que), donde se produce la variación del ángulo hasta alcanzar los valores máximo y mínimo, y donde también se envía la señal a la placa para configurar el ángulo deseado. Al finalizar ambos bucles, se produce un reinicio del valor de “angulo”, para evitar problemas y un tiempo de espera al final del recorrido.

04 ENERO 2019 06

De igual forma, y empleando nuevamente la variable ángulo se procede a representar en pantalla un barrera dibujada con el editor de que dispone la aplicación, y que también está presente en el programa Scracth en el que se basa.

Primero se dibujará un fondo, modificando uno ya existente, sobre el que se desplazará la barrera (figura 7), el dibujo de la placa de Arduino se ha escondido previamente por programación (figura 6).

04 ENERO 2019 07

Se crea ahora la barrera en si como un nuevo objeto, tras dibujar con las herramientas disponibles en el editor que posee el programa y teniendo en cuenta que se debe modificar el centro del objeto, para que este gire desde una extremo, tal y como se muestra en la siguiente figura (figura 8).

04 ENERO 2019 08

Por último se procede a la programación del objeto, dentro de un bucle por siempre, y utilizando la variable creada para modificar el ángulo, el objeto girara de forma similar a como la hace la barrera real programada (figura 9).

04 ENERO 2019 09

El resultado es una barrera que se mueve real (figura 10) cuyo movimiento, controlado por la tarjeta controladora de Arduino, queda registrado en la pantalla del ordenador.

04 ENERO 2019 10

Como colofón a este programa, se propone programar de forma similar una pareja de diodos LED rojo y verde, que se encienden cuando la barrera este abierta (verde), y cerrada o en proceso de apertura y cierre (rojo), y representarlo gráficamente con S4A.

 

M. ROCÍO GARCÍA DE LA FUENTE

Robótica-Programación

Introducción a la física de partículas y observación (Muon detector)

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Para comenzar este artículo es preciso realizar una breve introducción al modelo estándar de partículas, para intentar comprender el conocimiento científico que yace detrás del proyecto que trataremos de explicar. El modelo standard (fuente CERN) figura 1. Desde la década de 1930 los descubrimientos […]

Leer más
Robótica-Programación

Control de motores Arduino (IV). Motores Paso a Paso

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO El segundo tipo de motores capaces de controlar su posición de forma interna, los servomotores fueron los primeros que hemos tratado en anteriores artículos, son los motores paso a paso (figura 4. Varios modelos de motores paso a paso), dispositivos ampliamente empleados en impresoras […]

Leer más
Robótica-Programación

Python ·3D con Processing

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Hoy volvemos de nuevo a trabajar con Python, en este caso, añadimos nuevas posibilidades a una IDE que ya conocemos, Processing, además de trabajar con este lenguaje de programación realizaremos una primera animación en 3D. Para comenzar debemos añadir un nuevo modo de trabajo […]

Leer más
MENÚ
Revista