# data[].attributes.headline
Diseño 3D Proyecto Puente con luces de guarda

# data[].attributes.subject
Diseño 3D Proyecto Puente con luces de guarda

# data[].attributes.body
Barco https://www.tinkercad.com/things/c6LcSSeqKiu
Auto https://www.thingiverse.com/thing:861439

# data[].attributes.body
Prof. Andrea Sponton
Profesora de Informática y Tecnología
Nivel Secundario - 2do Año

# data[].attributes.attachment_link.readable_text
0:00 / 2:32•Watch full video

# data[].attributes.attachment_link.readable_text
La finalidad principal del proyecto es atraer a gente al mundo de la programación. Otro de sus objetivos es proporcionar una interfaz de alto nivel para programadores de Arduino con funcionalidades tales como la interacción con un conjunto de placas mediante eventos de usuario.

La interfaz

Un programa de S4A para controlar un Theremin de luz, con capacidad de grabación y reproducción

Los objetos Arduino proporcionan bloques para las funcionalidades básicas del micro-controlador, escrituras y lecturas digitales y analógicas, y otras funcionalidades de más alto nivel. También encontraréis bloques para tratar con motores estándar y servomotores de rotación contínua.

En S4A, una placa Arduino se representa con un tipo especial de sprite. El sprite Arduino encontrará automáticamente el puerto USB en qué se haya conectado la placa.

Pueden conectarse múltiples placas a la vez. Sólo es necesario añadir un nuevo sprite Arduino.

Especificaciones técnicas

Placas compatibles

S4A funciona correctamente con Arduino Diecimila, Duemilanove y Uno. No se ha probado con otras placas, pero es posible que también funcionen.

Conectividad

Los componentes deven conectarse de una forma determinada. S4A habilita 6 entradas analógicas (pines analógicos), 2 entradas digitales (pines digitales 2 y 3), 3 salidas analógicas (pines digitales 5, 6 y 9), 3 salidas digitales (pines 10, 11 i 13) y 4 salidas especiales para conectar servomotores de rotación contínua Parallax (pines digitales 4, 7, 8 y 12).

Es posible comunicarse inalámbricamente con una placa mediante un módulo de RF, como Xbee.

S4A permite controlar tantas placas como puertos USB tenga vuestro PC.

Compatibilidad

S4A es compatible con Scratch, de forma que es posible abrir proyectos de Scratch desde S4A. En cualquier caso, no es posible compartir proyectos de S4A en la web de la comunidad Scratch, ya que ésto violaría los términos y condiciones de uso de Scratch.

Téngase en cuenta que esta compatibilidad no es bidireccional. No es posible abrir proyectos de S4A desde el Scratch original.

S4A permite utilizar una PicoBoard conjuntamente con un Arduino.

Protocolo

S4A interactúa con Arduino enviando el estado de los actuadores y recibiendo el estado de los sensores cada 75 ms, por lo tanto el ancho del pulso tiene que ser mayor que éste período. El intercambio de datos sigui el protocolo PicoBoard, y necesita que se instale un programa específico (firmware) en la placa. Por favor, consultad la sección de Descargas para más instrucciones sobre la instalación.

Aquí encontraréis toda la documentación, vídeos, ejemplos y ejercicios que hemos producido hasta la fecha.

Taller

Desde aquí podéis descargaros un zip con materiales y ejercicios completos para realizar un taller:
Materiales Taller Elisava 2011
Nuestro equipo creó y utilizó estos materiales en un curso de S4A en la escuela Elisava durante el año 2011.

Ejemplos Básicos

Aquí encontraréis ejemplos básicos de S4A, con los esquemas de Arduino y un archivo .sb con el proyecto Scratch para descargar.

Pulsador y LED

Un ejemplo simple mostrando como activar un LED mediante un pulsador.
Código
LED RGB

Como usar un LED RGB desde Scratch.
Código
Pulsador, LED y conservación de estado

Un LED que cambia de estado al pulsar un botón.
Código
Fotoresistor y LED

Como usar la entrada de un fotoresistor para activar un LED.
Código

Vídeos

Aquí encontraréis una coleción de demos en catalán o castellano. Algunos de estos vídeos también han sido subtitulados al inglés.

Robot completo

Un robot con una cámara rotativa, sensores de distáncia y control remoto. Consta de dos placas arduino (para el control remoto y el robot), un módulo wireless XBee, tres sensores de infrarojos, un módulo de cámara y tres servomotores.

Introducción al taller de S4A

Este vídeo sirve como introducción para los talleres de S4A que se imparten en el Citilab. Encontraréis unos cuantos ejemplos de casos de uso de nuestro software.

Ejercicios
Música: Un instrumento similar a un theremin Domótica: Un controlador de persiana Robótica: Un coche controlado por teclado

Para programadores
Especificación del protocolo S4A

Hi Scratch for Arduino!

Hemos desarrollado una aplicación simple de Android que puede comunicarse con S4A via HTTP mediante el protocolo de sensores remotos de Scratch. Os lo podéis descargar desde aquí, o escaneando este código QR:

Para utilizarlo, seguid estas instrucciones:

En S4A, activad los sensores remotos (clic derecho en cualquier bloque de "Sensores")

En HiS4A (Android), introducid la IP local del PC en qué S4A esté funcionando (la podéis encontrar desde el menú Editar > Host de red), y continuación el prefjo (sólo necesario si os estáis conectando desde más de un cliente de Android)

Los botones se corresponden con mensajes, y el touchpad y deslizador a sensores remotos

¡IMPORTANTE! ¡Tanto S4A como HiS4A tienen que estar conectados a la misma red local!

API HTTP

La aplicación Android utiliza un protocolo muy sencillo que hemos desarrollado sobre el protocolo de mensajes HTTP de Scratch, la cual cosa permite interactuar con S4A desde un navegador o cualquier otra aplicación con acceso a la red.

En primer lugar, debe activarse la opción de sensores remotos en S4A (clic derecho en cualquier bloque de "Sensores").

Especificación de los mensajes

Enviar un mensaje:
http://[IP]:42001/broadcast=[nombre-del-mensaje]

Enviar el valor de un sensor remoto (por ejemplo, el accelerómetro del cliente, la posición del puntero del ratón, etc):
http://[IP]:42001/sensor-update=[nombre-del-sensor]=[valor]

Actualizar una variable de S4A:
http://[IP]:42001/vars-update=[nombre-de-la-variable]=[valor]

Aplicación web de prueba

Para ver la API HTTP en funcionamento, podéis utilizar la aplicación web de prueba:
Hi S4A! desde el Web
Uso de la aplicación web de ejemplo:

Las variables de S4A con nombres que empiecen con un signo más (ej. +nombreJugador) son visibles y modificables desde el cliente web

Las variables de S4A con nombres que empiecen con un signo menos (ej. -puntuacionJugador) sólo son visibles y modificables desde el cliente web

Las variables de S4A con nombres que no empiecen con los signos más o menos no son visibles desde el cliente web

Los mensajes de S4A con nombres que empiecen con un signo más (ej. +iniciarJuego) son visibles desde cliente web

Los mensajes de S4A con nombres que no empiecen con un signo más no son visibles desde el cliente web

Versión 1.5

Arreglado bug de colisión entre objetos (Arduino y no Arduino)

Arreglado bug relacionado con un error persistente al parar y reanudar la conexión con la placa

Primitivas indexadas cambiadas a primitivas con nombre para una mejor compatibilidad con las nuevas máquinas virtuales de Squeak (gracias a Miriam Ruiz por el parche)

Cambiado el pin 12 de servo estándar a salida digital normal

Cambiado el pin por defecto de los bloques digital on/off de 13 a 10

Añadido bloque de reiniciar actuadores

Traducciones al catalán y castellano mejoradas

Versión 1.4

Añadida compatibilidad completa con el protocolo HTTP (POST y GET). Ahora es posible mandar mensajes a S4A y observar/modificar valores de variables desde un navegador web (entre otras cosas). Ver sección de Android.

Añadida opción para comprobar si hay actualizaciones disponibles desde el menú de ayuda. Ya no hace falta visitar la web para comprobarlo

El idioma se detecta automáticamente al arrancar por primera vez (cuando el archivo Scratch.ini no existe). También se guarda en este mismo archivo al cambiarse desde el menú de idioma

El puerto serie en qué se conecta una placa se abre correctamente al arrancar S4A

Arreglado bug de la versión para Windows, en qué la barra de título no mostraba el nombre y la versión de S4A

Versión 1.3

Arreglada la compatibilidad con Arduino UNO en Linux (gracias a Jorge Gómez). Es imprescindible cargar el nuevo firmware, así como actualizar el bootloader en determinadas placas

Cambiados los nombres del panel de sensores y sus correspondientes bloques de Arduino para mostrar números de pin reales

Añadidos comandos de servidor en el menú "Editar" para trabajar con comunicación en red sobre sockets

Añadida compatibilidad para aplicaciones Android (HiS4A)

Traducciones al catalán y castellano mejoradas

Muchos bug arreglados

Para instalar S4A, hay que instalar software tanto en el PC como en la placa Arduino. Aquí encontraréis los pasos detallados para poner S4A en marcha.

Instalar S4A en el ordenador

S4A funciona sobre los tres sistemas operativos de escritorio más populares. Descargad e instalad el que os convenga.

Instalar el firmware en el Arduino

Este firmware es un programa que debe instalarse en vuestra placa Arduino para poderos comunicar con ella desde S4A.

Descargad e instalad el entorno Arduino siguiendo las instrucciones de http://arduino.cc/en/Main/Software. Hay que tener en cuenta que, para trabajar con Arduino Uno, se necesita la versión 0022 o superior.

Descargad nuestro firmware aquí

Conectad la placa Arduino a un puerto USB de vuestro ordenador

Abrid el archivo de firmware (S4AFirmware15.ino) desde el entorno Arduino

En el menú Herramientas, seleccionad la versión de la placa y el puero serie en qué esté conectada la placa

Cargad el firmware a la placa mediante la opción de menú Archivo > Subir

Para programadores

S4A es software libre sujeto a una licencia MIT.

De todas formas, a la versión final de S4A hay código que ha sido compilado, y se habrán perdido varios nombres de variables y argumentos de mensajes. Por este motivo, también distribuimos una imagen con el código fuente limpio para desarrolladores, descargable desde este enlace:
S4A para desarrolladores

¿Qué placas son compatibles con S4A?

S4A funciona correctamente con Arduino Diecimila, Duemilanove y Uno. No se ha probado con otras placas, pero es posible que también funcionen.

¿Funcionará S4A en mi ordenador?

S4A funciona sobre los tres sistemas operativos de escritorio más populares: Microsoft Windows, GNU/Linux and MacOS. Así que, muy probablemente, funcionará en vuestro ordenador.

Marina Conde

Marina Conde se diplomó en Ingeniería Técnica en Informática de Gestión por la Universitat Politècnica de Catalunya (UPC) en el año 2009, donde continuó los estudios hasta obtener, en 2012, el título de Ingeniería Superior en Informática.

Víctor Casado

Víctor empezó a estudiar Ingeniería en Informática en la Universitat Autònoma de Barcelona (UAB), pero al cabo de dos años pasó a estudiar el grado de telecomunicaciones en la Escola Politècnica Superior de Castelldefels.

Durante este tiempo, le surgió la oportunidad de entrar al Citilab a través de una beca, donde desarrolló S4A, su proyecto final.

Joan Güell

Joan es un biólogo que, en sus primeros años, trabajó en el campo de la ecología. La necesidad de analizar la información generada y los datos recogidos instigó su aproximación a la informática. Se inscribió a su primer curse de programación en el año 1975, cuando los ordenadores todavía se programaban usando tarjetas perforadas.

Su principal tarea en el Citilab ha estado relacionada con el campo de la formación en dos áreas: la enseñanza de la programación mediante Scratch, especialmente para niños, y la formación en conocimientos de informática a ciudadanos adultos.

Jose García

Jose estudió Inginiería Superior en Telecomunicaciones, pero empezó a trabajar en una editorial andes de terminar los estudios. Durante el tiempo en qué trabajó en esta empresa, programó una amplia variedad de aplicaciones.

Bernat Romagosa

En el año 2009, Bernat se graduó como Ingeniero Técnico en Informática de Gestión por la Universitat Oberta de Catalunya (UOC). Aprendió Smalltalk en un curso impartido pir Jordi Delgado en el Citilab durante el año 2008, donde más adelante entró a trabajar con el objetivo de desarrollar una escuela virtual de programación.

Desde entonces, ha estado involucrado en varios proyectos de programación en el Citilab. Entre otros, un sistema de gestión del conocimiento y varias aplicaciones educativas.

Jordi Delgado

Jordi es profesor titular en el departamento de Lenguajes y Sistemas Informáticos de la Universitat Politècnica de Catalunya (UPC). Pertenece al grupo de investigación LARCA e imparte clases en la Facultat d'Informàtica de Barcelona.

Para formular preguntas y respuestas, por favor utilitzad la lista de correo de la comunidad. Para suscribiros, enviad un correo a:
s4a-community+subscribe@googlegroups.com
Una vez suscritos, podéis mandar vuestros mensajes a:
s4a-community@googlegroups.com
También podéis utilizar la interfaz web de la lista de correo para suscribiros, contribuir y consultar el archivo:
Página web de la lista de correo

Puedes contactar con nosotros en scratch@citilab.eu para informarnos sobre bugs o para cualquier sugerencia.

# data[].attributes.attachment_link.description
La finalidad principal del proyecto es atraer a gente al mundo de la programación. Otro de sus objetivos es proporcionar una interfaz de alto nivel para programadores de Arduino con funcionalidades tales como la interacción con un conjunto de placas mediante eventos de usuario.

# data[].attributes.attachment_link.readable_text
0:00 / 14:32•Watch full video

# data[].attributes.attachment_link.title
Como usar un Sensor Infrarrojo con Arduino

# data[].attributes.body
Este primer proyecto tiene como objetivo crear un puente levadizo con unas luces de guarda. Éstas advertirán sobre la presencia del puente sobre todo cuando haga el proceso de elevarse y descender.
Una luz roja para el extremo superior del puente con una intermitencia, luego pasa a encender una luz naranja de doble intermitencia. Por último, luz verde encendida al elevarse el puente.