ScratchX

Avui parlarem del lloc web scratchx.org i de les possibilitats que ofereix el fet de connectar i programar amb Scratch maquinari extern, com ara robots i dispositius electrònics, i altres recursos en línia, com dades i serveis web.

Abans, però, partirem del que inclou la versió oficial de Scratch. Tant l’editor en línia com el fora de línia de Scratch 2 mostren els blocs classificats en 10 colors; el darrer, de color indi, és una categoria especial: “Més blocs” permet crear blocs propis i afegir una extensió.

En aquests moments hi ha tres maquinaris que podem connectar a Scratch (oficial): la placa PicoBoard i les dues versions del kit d’introducció a la robòtica de LEGO® Education: WeDo 1 i WeDo 2.0. No entrarem en detalls sobre cada un d’ells però sí convé que sapigueu que en aquesta pàgina trobareu indicacions sobre com connectar-ho: estan disponibles en català, només cal que aneu al peu de la pàgina i trieu Català.

M’agradaria connectar i programar amb Scratch un altre robot: és possible?

Doncs sí i no alhora! 😉 Cada vegada trobem més varietat de robots educatius i altres propostes de tecnologia creativa (m’agrada especialment aquest concepte!). Si bé és cert que cada fabricant acostuma a crear el seu propi programa per connectar-ho, cada cop trobem més ginys que funcionen amb Scratch — però no amb la versió oficial (que, com hem vist, només accepta tres), sinó amb ScratchX!

Què és ScratchX?

ScratchX és una plataforma que ens permet provar funcionalitats experimentals que han estat desenvolupades per al llenguatge de programació visual Scratch. En altres paraules: és el laboratori de proves de Scratch pel que fa a connexions amb altres dispositius i aplicacions.

No estem parlant d’una alternativa com a tal al lloc web de Scratch, ja que ScratchX deixa de banda la part de la comunitat en línia i, per tant, no hi podem crear un usuari ni iniciar sessió. Tampoc parlem d’una versió més avançada de Scratch: això més aviat seria Snap!

Així doncs, ScratchX afegeix un seguit de blocs nous en la categoria Més blocs, igual que passava amb les extensions “oficials”.

Aleshores, per què una nova pàgina?

Les extensions “oficials” estan provades i reconegudes per l’equip de Scratch, de manera que poden assegurar que són fiables. En canvi, ScratchX està obert a qualsevol desenvolupador que vulgui generar una nova extensió, per aquest motiu sempre trobarem el missatge emergent alertant dels riscos: l’únic que haurem de vigilar és no facilitar cap contrasenya ni cap informació que ens identifiqui, ja que com dèiem en cap cas haurem d’iniciar la sessió.

Què fa que sigui un recurs molt poderós?

A ScratchX podem connectar en un mateix projecte tantes extensions com vulguem. Només cal que obrim un projecte en blanc, fem clic a Load Experimental Extension i enganxem l’adreça url de l’extensió corresponent. Al final de cada extensió que presento he posat l’adreça url corresponent: és aquesta la que haureu d’introduir en el camp corresponent.

Per què és poderós? Després de presentar les diferents extensions plantejaré un recull d’idees: veureu que les possibilitats són infinites!

Connector d’extensions (Scratch Device Plugin)

Abans de poder utilitzar les extensions que utilitzen maquinari (les que classificaré més endavant) haurem de descarregar i instal·lar el Connector d’extensions o Scratch Device Plugin. En aquesta pàgina trobarem les indicacions de com instal·lar-ho, disponible en català (es pot canviar l’idioma al peu de la pàgina).

També haurem de tenir en compte que ara per ara només funciona en Mac OS X i Windows. Pel que fa al navegador, va en funció de l’extensió: la majoria funcionen amb Chrome però no totes, per això serà important llegir les especificacions que dona cada desenvolupador.

Ara sí, anem a veure quines extensions hi podem trobar:

Recursos en línia

Spotify

Aquesta extensió creada per Eric Rosenbaum permet animar i reinventar milions de cançons. Aprofitant el repositori públic de Spotify, pel qual no cal tenir compte ni iniciar sessió enlloc, podem introduir fins a 30 segons de qualsevol cançó (acostuma a ser la tornada o la part més coneguda). Així, amb el seguit de blocs propis d’aquesta extensió podrem fer ballar els personatges al ritme de la música i molt més!

No us perdeu aquest vídeo del Frank Sabaté:

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: https://ericrosenbaum.github.io/spotify-extension/extension.js

Firebase Mesh

La idea d’aquesta extensió creada per Connor Hudson és senzilla: permet comunicar tants ordinadors com vulguem a través de la xarxa. Utilitza el mateix concepte que els blocs “envia a tots el missatge” i “quan rebi el missatge” de la categoria d’Esdeveniments, però a diferència d’aquests que són interns del projecte, quan executi el bloc “mesh broadcast”, rebrà el missatge qualsevol ordinador del món que tingui el projecte actiu en aquell moment. Una idea interessant per fer un efecte dòmino entre els diferents ordinadors de l’aula!

En aquesta pàgina trobem el projecte de mostra i més informació sobre l’extensió en aquesta altra. Url per a connexió múltiple: http://technoboy10.tk/mesh/mesh.js

Text to Speech

Aquesta extensió desenvolupada per Sayamindu Dasgupta permet l’ordinador reprodueixi allò que escrivim. D’aquesta manera, podem sentir pels altaveus allò que diu un personatge o crear un joc tipus “El Gran Dictat” com el del vídeo del Frank.

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: http://sayamindu.github.io/scratch-extensions/text-to-speech/text_to_speech_extension.js

Sound Synthesizer

Aquesta extensió creada per Eric Rosenbaum posa a disposició un seguit de blocs que ens permeten generar sons de sintetitzador. Fins ara, amb la versió oficial de Scratch podíem reproduir sons de la galeria, enregistrar-ne de propis amb l’altaveu, incorporar fitxers d’àudio o bé fer una composició musical fruit d’un seguit de notes amb diferents timbres d’instruments.

Aquesta extensió ens permet experimentar amb un sintetitzador de sons amb blocs que controlen la freqüència i la forma d’ona, i efectes com eco, pan (que soni per la dreta o l’esquerra), lliscament i wah. En definitiva, un recurs interessant per fer un laboratori de sons.

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: http://ericrosenbaum.github.io/tone-synth-extension/tone-synth.js

Weather

Aquesta extensió desenvolupada per Sayamindu Dasgupta i Kreg Hanning permet accedir a la informació meteorològica en temps real gràcies a les dades proporcionades per OpenWeatherMap.

Els blocs que proporciona són: temperatura, condicions meteorològiques (com ara cel ennuvolat), % d’humitat, força del vent i % de nuvolositat. A més, ens permet veure els valors en graus fahrenheit (imperial) o celsius (metric).

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: https://khanning.github.io/scratch-weather-extension/weather_extension.js

Altres amb recursos en línia

A ScratchX.org trobarem altres extensions que no utilitzen maquinari, com ara:

  • Twitter: permet introduir en un projecte el darrer tuit d’un usuari o amb una etiqueta o paraula concreta. Creat per Connor Hudson i Kreg Hanning. Url per a connexió: https://technoboy10.github.io/twitter/extension.js
  • Scratch3D: genera un entorn 3D amb Scratch. Creat per Stephen Lewis i John Goodwin. En el moment en què ho escric no es pot accedir a la documentació. Url per a connexió: http://scratch3d.github.io/Scratch3D_Beta/extension/ScratchThreeJS.js
  • ISS Tracker: permet fer un seguiment de l’estació Espacial Internacional. Creat per Kreg Hanning. Url per a connexió: https://khanning.github.io/scratch-isstracker-extension/iss_extension.js

Tecnologia creativa (maquinari)

Arduino

Actualment trobem diferents opcions per programar una placa Arduino amb un entorn visual com Scratch: Snap4ArduinomBlock, Bitbloq, Ardublock… Així doncs, per què triar Scratch Arduino Extension? Precisament pel que aporta ScratchX al permetre utilitzar tantes extensions alhora com vulguem!

Més informació i exemples amb aquesta extensió creada per Kreg Hanning i David Mellis en aquesta pàgina. Url per a connexió múltiple: http://khanning.github.io/scratch-arduino-extension/arduino_extension.js

LittleBits

Cada vegada és més popular a casa nostra LittleBits, sistema modular per crear circuits electrònics. Aquells que tingueu algun dels kits que inclouen el mòdul d’Arduino podreu programar-lo gràcies a aquesta extensió desenvolupada per Kreg Hanning.

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: http://khanning.github.io/scratch-littlebits-extension/littlebits_extension.js

Leap Motion

Kreg Hanning també ha desenvolupat aquesta extensió que permet incorporar el reconeixement de mans en els projectes de Scratch. Mireu el joc que crea el Frank Sabaté en aquest vídeo i com l’utilitzen els Instròniks!

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple: http://khanning.github.io/scratch-leapmotion-extension/leapmotion_extension.js

EV3 + Scratch

Aquesta extensió permet programar el robot LEGO Education MINDSTORMS EV3 amb l’entorn Scratch. Quan Ken Aspeslagh va desenvolupar-la fa un any i mig funcionava amb Mac (navegador Safari) i Windows (navegadors Explorer i Firefox) però lamentablement a dia d’avui només es connecta amb Mac degut a que Explorer no carrega bé l’extensió i Firefox ja no suporta Flash. Tant de bo tinguem novetats aviat!

Més informació i exemples amb aquesta extensió en aquesta pàgina. Url per a connexió múltiple (Mac): http://kaspesla.github.io/ev3_scratch/ev3_scratch.js

Altres de tecnologia creativa

  • FTScratch: extensió per programar el kit d’introducció a la robòtica de Fischertechnik Education. Podreu veure un exemple en aquest vídeo del Frank Sabaté.
  • Makeblock: extensió per programar el robot mBot, cal instal·lar una extensió per al navegador Chrome.
  • Kinect2Scratch: si disposem d’un sensor Kinect també podem introduir-lo gràcies a l’extensió creada per Stephen Howell.
  • iRobot Create: permet programar el robot tipus Roomba. La pega és que no em consta que es comercialitzi al nostre país.
  • Intel RealSense: afegeix al projecte les funcionalitats de la càmera. Pel que sé, a dia d’avui només la poden adquirir desenvolupadors d’aplicacions.
  • Rb4s: per al robot RedBot de SparkFun.
  • Roamer: per al robot Roamer
  • Sensors i actuadors de Vernier
  • Xi: una connexió múltiple entre Arduino, BeagleBone Black i Raspberry Pi

Abans d’acabar aquest apartat cal dir que a ScratchX també podem connectar les extensions “oficials”: LEGO Education WeDo 1, WeDo 2.0 i la placa Picoboard.

Resum d’idees

Aquells qui heu arribat fins aquí és probable que us pregunteu què en traiem de tot plegat. Com he dit, ScratchX ofereix moltes possibilitats connectant entre sí diferents extensions i usant maquinari com el que hem presentat o com el fantàstic Makey Makey -simulador del teclat de l’ordinador- o fins i tot un lector de codis de barres, com ens mostra el Frank en aquest vídeo. Algunes propostes:

  • Construir  i programar una casa domòtica amb Arduino que pugui ser controlada a distància des de qualsevol lloc del món gràcies a l’extensió Firebase Mesh.
  • Simular la força del vent que s’està produint en diferents indrets del món en aquest mateix moment. Utilitzarem les extensions de Weather i la corresponent a un kit de robòtica amb motor.
  • Crear un theremin gràcies a l’extensió de Sound Synthesizer i el sensor de distància de WeDo, el d’ultrasons de EV3, d’Arduino o LittleBits o amb Leap Motion.
  • Dissenyar un seguit de targetes amb una imatge o una paraula escrita en braille que inclogui un codi de barres per a que quan s’escanegi el codi amb el lector es senti el so corresponent. Es pot fer amb la funcionalitat Text to Speech o bé enregistrant els sons nosaltres mateixos (en aquest cas es pot fer amb Scratch).
  • Posar-nos a prova per veure si seguim el ritme de la cançó. Ho podem fer amb dos personatges: un programat per a que balli de manera independent i l’altre controlat per nosaltres amb Makey Makey o algun altre sensor.
  • Fer que un robot balli a diferents ritmes en funció de la cançó que soni. Per a això, utilitzarem les extensions de Spotify i la pròpia del robot: Arduino, EV3 o WeDo. Si no disposem del robot, ben divertit serà introduir una fotografia de nosaltres mateixos dins del projecte com a nou personatge que es mogui al ritme de la música!

 

I a vosaltres, se us acut alguna altra idea? 😉

#ForçaScratch (o, avui, #ForçaScratchX!)

Scratch2013Bcn – Scratch Connecting Worlds

Com ja sabeu, durant els dies 25 al 27 de Juliol al Citilab, és va celebrar la 1a. Conferència Europea sobre Scratch, i tot gràcies al Joek van Montfort i a la delegació catalana que l’any passat va anar al ScratchMIT2012 a Boston, on a rel d’un pensament escrit a la pissarra de suggeriments d’aquesta conferència, el Joek va escriure això

Continua llegint «Scratch2013Bcn – Scratch Connecting Worlds»

Camp Tecnològic d’Estiu

Per segon any consecutiu, la gent de CampTecnologico.com organitza uns campaments diferents on els nostres fills poden gaudir d’unes activitats d’oci alternatiu.
Durant una o dos setmanes, els nens i nenes poden dur a terme petits projectes científic-tècnics en robòtica, disseny de videojocs, animacions digitals i en desenvolupament d’aplicacions mòbils.
Aquest any es realitzarà a l’Escola Universitària Salesiana de Sarrià (EUSS Enginyeria), si esteu interessats podeu trobar tota la informació al lloc web de CampTecnologico.com

Si t’agrada el camp tecnològic i treballar amb nens, els amics de CampTecnologico.com tenen una oferta de treball per a monitors d’aquests campaments. Més informació aquí.

Projectes amb Scratch i Arduino

Des de que el Citilab va desenvolupar S4A Scratch for Arduino, hi ha molts companys que l’han introduït a les aules com a un segon pas dins l’ensenyament de la programació amb Scratch, la veritat és que els resultats són fantàstics i tant la Carolina de l’IES Bellvitge com el Frank de l’Escola Projecte estan fent una molt bona feina amb els seus alumnes, quina sort tenen aquestes nenes i nens!! dubto que oblidin mai aquests mestres 😉

Els alumnes de la Carolina han desenvolupat un termòstat digital amb una placa Arduino, ho podeu consultar en el seu bloc, i en aquests 2 vídeos teniu els resultats.





El alumnes del Frank han creat dues histories interactives amb un sensor RFID realitzat amb Arduino per jugar amb unes claus per obrir unes portes i jugar a anar de tendes comprant roba i pagant amb targeta de crèdit. Seguidament els seus 2 vídeos.



Gràcies Carolina i Frank per compartir-ho amb tothom.

Comunicacions en Scratch – 3 de 3

Un altre forma de connectar Scratch amb el món real és fent servir Arduino, una placa de hardware lliure que fins ara s’havia de fer servir juntament amb la seva interfície de programació i que el grup SmallTalk.cat ha aconseguit connectar amb Scratch amb el que han anomenat Scratch4Arduino S4A (Scratch per Arduino).

Aquesta és segurament la forma més complerta de connectar amb el món real, doncs tenim una placa com Arduino molt reconeguda i amb moltes possibilitats, que podem connectar a Scratch via USB per tal de poder controlar els 6 sensors analògics i els 2 digitals a més a més dels motors.

Continua llegint «Comunicacions en Scratch – 3 de 3»