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:
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.
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:
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.
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.
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 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.
Comunitat
Per formular preguntes i respostes, si us plau utilitzeu la llista de correu de la comunitat. Per a subscriure-us-hi, envieu un correu a: