Què és S4A

S4A és una modificació d'Scratch que permet programar la plataforma de hardware lliure Arduino d'una manera senzilla. Proporciona blocs nous per tractar amb sensors i actuadors connectats a una placa Arduino. També compta amb un panell de sensors similar al de la PicoBoard.

La finalitat principal del projecte és atreure gent al món de la programació. Un altre objectiu és proporcionar una interfície d'alt nivell per a programadors d'Arduino amb funcionalitats tals com la interacció amb un conjunt de plaques mitjançant esdeveniments d'usuari.

La interfície

Un programa de S4A per a controlar un Theremin de llum, amb capacitat de gravació i reproducció

Els objectes Arduino proporcionen blocs per a les funcionalitats bàsiques del micro-controlador, escriptures i lectures digitals i analògiques, i altres funcionalitats de més alt nivell. També hi trobareu blocs per a tractar amb motors estàndard i servomotors de rotació contínua.

En S4A, una placa Arduino es representa amb un tipus especial d'sprite. L'sprite Arduino trobarà automàticament el port USB on s'hagi connectat la placa.

Es poden connectar múltiples plaques alhora. Només cal afegir un nou sprite Arduino.

Especificacions tècniques

Plaques compatibles

S4A funciona correctament amb Arduino Diecimila, Duemilanove i Uno. No s'ha provat amb altres plaques, però és possible que també funcionin.

Connectivitat

Els components s'han de connectar d'una manera determinada. S4A habilita 6 entrades analògiques (pins analògics), 2 entrades digitals (pins digitals 2 i 3), 3 sortides analògiques (pins digitals 5, 6 i 9), 3 sortides digitals (pins 10, 11 i 13) i 4 sortides especials per a connectar servomotors de rotació contínua Parallax (pins digitals 4, 7, 8 i 12).

És possible comunicar-se inalàmbricament amb una placa mitjançant un mòdul de RF, com ara Xbee.

S4A permet controlar tantes plaques com ports USB tingui el vostre PC.

Compatibilitat

S4A és compatible amb Scratch, de manera que és possible obrir projectes d'Scratch des de S4A. En qualsevol cas, no és possible compartir projectes de S4A a la web de la comunitat Scratch, ja que això aniria en contra del termes i condicions d'ús d'Scratch.

Cal tenir en compte que aquesta compatibilitat no és bidireccional. No és possible obrir projectes de S4A des de l'Scratch original.

S4A permet utilitzar una PicoBoard conjuntament amb un Arduino.

Protocol

S4A interactua amb Arduino enviant l'estat dels actuadors i rebent l'estat dels sensors cada 75 ms, per tant l'amplada del pols ha de ser major que aquest període. L'intercanvi de dades segueix el protocol PicoBoard, i necessita que s'instal·li un programa específic (firmware) a la placa. Si us plau, consulteu la secció de Descàrregues per a més instruccions sobre l'instal·lació.

Documentació i exemples

Aquí trobareu tota la documentació, vídeos, exemples i exercicis que hem produït fins ara.

Taller

Des d'aquí podeu descarregar-vos un zip amb materials i exercicis complets per a realitzar un taller:

Materials Taller Elisava 2011

El nostre equip va crear i utilitzar aquests materials en un curs d'S4A a l'escola Elisava l'any 2011.

Exemples Bàsics

Aquí trobareu exemples bàsics d'S4A, amb els esquemes d'Arduino i un arxiu .sb amb el projecte Scratch per a descarregar.

Polsador i LED

Un exemple simple mostrant com activar un LED mitjançant un polsador.

Codi

LED RGB

Com utilitzar un LED RGB des d'Scratch.

Codi

Polsador, LED i conservació d'estat

Un LED que canvia d'estat quan polsem un botó.

Codi

Fotoresistor i LED

Com utilitzar l'entrada d'un fotoresistor per a activar un LED.

Codi

Vídeos

Aquí trobareu un recull de demos en català o castellà. Alguns d'aquests vídeos també han estat subtitulats a l'anglès.

Robot complet

Un robot amb una càmera rotativa, sensors de distància i control remot. Consta de dues plaques arduino (per al control remot i el robot), un mòdul wireless XBee, tres sensors d'infrarrojos, un mòdul de càmera i tres servomotors.

Introducció al taller d'S4A

Aquest vídeo serveix com a introducció pels tallers d'S4A que s'imparteixen al Citilab. Hi trobareu uns quants exemples de casos d'ús del nostre software.

Exercicis

Música: Un instrument similar a un theremin

Domòtica: Un controlador de persiana

Robòtica: Un cotxe controlat per teclat

Per a programadors

Especificació del protocol S4A

Android

Hi Scratch for Arduino!

Hem desenvolupat una aplicació simple d'Android que pot comunicar-se amb S4A via HTTP mitjançant el protocol de sensors remots d'Scratch. Podeu decarregar-vos-el des d'aquí, o escanejant aquest codi QR:

Per utilitzar-lo, seguiu aquestes instruccions:

  • A S4A, activeu els sensors remots (clic dret a qualsevol bloc de "Sensors")
  • A HiS4A (Android), introduïu la IP local del PC on tingueu S4A funcionant (podeu trobar-la des del menú Edita > Host de xarxa), més el prefix (només necessari si us esteu connectant des de més d'un client d'Android)
  • Els botons corresponen a missatges, i el touchpad i lliscador a sensors remots
IMPORTANT! Tant S4A com HiS4A han d'estar connectats a la mateixa xarxa local!

API HTTP

L'aplicació Android utilitza un protocol molt senzill que hem desenvolupat sobre el protocol de missatges HTTP d'Scratch, la qual cosa permet interactuar amb S4A des d'un navegador o qualsevol altra aplicació amb accés a la xarxa.

Abans de res, cal activar l'opció de sensors remots a S4A (clic dret a qualsevol bloc de "Sensors").

Especificació dels missatges

Enviar un missatge:
http://[IP]:42001/broadcast=[nom-del-missatge]

Enviar el valor d'un sensor remot (per exemple, l'acceleròmetre del client, la posició del punter del ratolí, etc):
http://[IP]:42001/sensor-update=[nom-del-sensor]=[valor]

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

Aplicació web de prova

Per a veure l'API HTTP en funcionament, podeu utilitzar l'aplicació web de prova:

Hi S4A! des del Web

Ús de l'aplicació web d'exemple:

  • Les variables d'S4A amb noms que comencin amb un signe més (ex. +nomJugador) són visibles i modificables des del client web
  • Les variables S4A amb noms que comencin amb un signe menys (ex. -puntuacioJugador) només són visibles (no modificables) des del client web
  • Les variables d'S4A amb noms que no comencin amb els signes més o menys no són visibles des del client web
  • Els missatges S4A amb noms que comencin amb un signe més (ex. +iniciarJoc) són visibles des del client web
  • Els missatges S4A amb noms que no comencin amb un signe més no són visibles des del client web

Canvis

Versió 1.5

  • Arreglat bug de col·lisió entre objectes (Arduino i no Arduino)
  • Arreglat bug relacionat amb un error persistent en aturar i reemprendre la connexió amb la placa
  • Primitives indexades canviades a primitives amb nom per a una millor compatibilitat amb les noves màquines virtuals d'Squeak (gràcies a Miriam Ruiz pel pedàs)
  • Canviat el pin 12 de servo estàndard a sortida digital normal
  • Canviat el pin per defecte dels blocs digital on/off de 13 a 10
  • Afegit bloc de reiniciar actuadors
  • Traduccions al català i castellà millorades

Versió 1.4

  • Afegida compatibilitat completa amb el protocol HTTP (POST i GET). Ara és possible enviar missatges a S4A i observar/modificar valors de variables des d'un navegador web (entre altres coses). Vegeu la secció d'Android.
  • Afegida opció per a comprovar si hi ha actualitzacions disponibles des del menú d'ajuda. Ja no cal visitar la web per a comprovar-ho
  • L'idioma es detecta automàticament en arrencar per primer cop (quan l'arxiu Scratch.ini no existeix). També es desa en aquest mateix arxiu en canviar-se des del menú d'idioma
  • El port sèrie on es connecta una placa s'obre correctament en arrencar S4A
  • Arreglat bug de la versió per a Windows, en què la barra de títol no mostrava el nom i la versió d'S4A

Versió 1.3

  • Arreglada la compatibilitat amb Arduino UNO a Linux (gràcies a Jorge Gómez). És imprescindible carregar el nou firmware, així com actualitzar el bootloader en determinades plaques
  • Canviats els noms del panell de sensors i els seus corresponents blocs d'Arduino per mostrar números de pin reals
  • Afegides comandes de servidor al menú "Edita" per a treballar amb comunicació en xarxa sobre sockets
  • Afegida compatibilitat per a aplicacions Android (HiS4A)
  • Traduccions al català i castellà millorades
  • Molts bug arreglats

Descàrrega i instal·lació

Per a instal·lar S4A, cal instal·lar software tan al PC com a la placa Arduino. Aquí trobareu els passos detallats per a posar S4A en marxa.

Instal·lar S4A a l'ordinador

S4A funciona sobre els tres sistemes operatius d'escriptori més populars. Descarregueu i instal·leu el que us convingui.

Instal·lar el firmware a Arduino

Aquest firmware és un programa que cal instal·lar a la vostra placa Arduino per tal de poder-vos-hi comunicar des d'S4A.

  • Descarregueu i instal·leu l'entorn Arduino seguint les instruccions de http://arduino.cc/en/Main/Software. Tingueu en compte que, per a treballar amb Arduino Uno, us caldrà la versió 0022 o superior.
  • Descarregueu el nostre firmware aquí
  • Connecteu la placa Arduino a un port USB del vostre ordinador
  • Obriu l'arxiu de firmware (S4AFirmware15.ino) des de l'entorn Arduino
  • Al menú Eines, seleccioneu la versió de la placa i el port sèrie en què heu connectat la placa
  • Carregueu el firmware a la placa mitjançant l'opció de menú Arxiu > Pujar

Per a programadors

S4A és programari lliure subjecte a una llicència MIT.

Com que Scratch és, en realitat, una imatge d'Squeak Smalltalk, tot el seu codi ve inclòs en la versió final. Per accedir-hi, pitjeu majúscules + clic esquerre sobre el menú "Arxiu" d'S4A, i seleccioneu "Sortir del mode d'usuari". Us trobareu davant de l'entorn clàssic d'una imatge d'Squeak 2.8, i tindreu accés a un Browser, Workspace i totes les eines a què esteu acostumats.

De tota manera, a la versió final d'S4A hi ha codi que ha estat compilat, i s'hauran perdut diversos noms de variables i arguments de missatges. Per aquest motiu, també distribuïm una imatge amb el codi font net per a desenvolupadors, descarregable des d'aquest enllaç:

S4A per a desenvolupadors

Preguntes més freqüents

Quines plaques són compatibles amb S4A?

S4A funciona correctament amb Arduino Diecimila, Duemilanove i Uno. No s'ha provat amb altres plaques, però és possible que també funcionin.

Funcionarà S4A al meu ordinador?

S4A funciona sobre els tres sistemes operatius d'escriptori més populars: Microsoft Windows, GNU/Linux and MacOS. Així que, molt probablement, funcionarà al vostre ordinador.

L'equip

S4A ha estat desenvolupat al Citilab per l'equip de recerca Edutech, amb l'ajuda del grup de programació Smalltalk.cat i de col·laboradors com Jorge Gómez, cap del projecte d'educació en software i hardware a Miscela.

Marina Conde

Marina Conde es va diplomar en Enginyeria Tècnica en Informàtica de Gestió per la Universitat Politècnica de Catalunya (UPC) l'any 2009, on va continuar els estudis fins obtenir, l'any 2012, el títol d'Enginyeria Superior en Informàtica.

Mentre treballava al Citilab va desenvolupar el seu primer projecte final, consistent en crear un entorn per a treballar amb plaques Arduino des de l'entorn d'Smalltalk Pharo. Més endavant, va utilitzar aquest projecte com a base sobre la qual es va programar S4A.

Víctor Casado

En Víctor va començar a estudiar Enginyeria en Informàtica a la Universitat Autònoma de Barcelona (UAB), però després de dos anys va passar a estudiar el grau de telecomunicacions a l'Escola Politècnica Superior de Castelldefels.

Durant aquest temps, va sorgir-li l'oportunitat d'entrar al Citilab a través d'una beca, on va desenvolupar S4A, el seu projecte final.

Joan Güell

En Joan és un biòleg que, en els seus primers anys, va treballar en el camp de l'ecologia. La necessitat d'analitzar l'informació generada i les dades recollides va instigar el seu apropament a l'informàtica. Es va inscriure al seu primer curs de programació l'any 1975, quan els ordinadors encara es programaven amb targetes perforades.

La seva tasca principal al Citilab ha estat relacionada amb el camp de la formació en dues àrees: l'ensenyament de la programació mitjançant Scratch, especialment per a nens, i la formació en coneixements d'informàtica a ciutadans adults.

Jose García

En Jose va estudiar Enginyeria Superior en Telecomunicacions, però va començar a treballar a una editorial abans d'acabar els estudis. Durant el temps que va treballar en aquesta empresa, va programar una àmplia varietat d'aplicacions.

Al Citilab, va descobrir Scratch i Smalltalk, reemprenent part de la seva feina com a programador. Més endavant, es va unir a diversos projectes amb l'objectiu d'establir una relació més propera entre els usuaris i la programació. Acualment, és el cap de l'equip de recerca en educació tecnològica Edutec.

Bernat Romagosa

L'any 2009, en Bernat es va graduar com a Enginyer Tècnic en Informàtica de Gestió per la Universitat Oberta de Catalunya (UOC). Va aprendre Smalltalk en un curs impartit per Jordi Delgado al Citilab durant l'any 2008, on més endavant va entrar a treballar amb l'objectiu de desenvolupar una escola virtual de programació.

Des d'aleshores, ha estat involucrat en diversos projectes de programació al Citilab. Entre d'altres, un sistema de gestió del coneixement i diverses aplicacions educatives.

Jordi Delgado

En Jordi és professor titular al departament de Llenguatges i Sistemes Informàtics de la Universitat Politècnica de Catalunya (UPC). Pertany al grup de recerca LARCA i imparteix classes a la Facultat d'Informàtica de Barcelona.

Inverteix la major part del seu temps en divulgar, difondre la idea i programar en Smalltalk, un llenguatge de programació apassionant que considera que tothom hauria d'utilitzar. És membre de la mesa de la European Smalltalk Users Group (ESUG) i president de l'associació Smalltalk.cat.

Contacte

Pots contactar amb nosaltres a scratch@citilab.eu per informar-nos de bugs o per a qualsevol suggerència.