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!)

Kinect2Scratch

Kinect2Scratch
En el darrer ScratchDay celebrat al MIT el 19 de Maig de 2012, l’Stephen Howell d’Irlanda va presentar un altre forma de connectar Scratch amb el món real, hauré d’afegir-la al recull d’articles creats al Nov2010!!, aquesta vegada es fa servir el sensor Kinect de Microsoft que incorpora una càmera, sensor de moviment i control per veu.
Kinect
Continua llegint «Kinect2Scratch»

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»

Comunicacions en Scratch – 2 de 3

Un altre forma de connectar Scratch amb el món real és fent servir el Lego WeDo, unes peces de construcció del fabricant Lego que porten a més a més un petit motor que dona encara més possibilitats a aquest clàssic joc de construcció, dotant-lo de moviment.
A diferencia de la PicoBoard el Lego WeDo nomes informa a Scratch de 2 esdeveniments que puguin passar al món real, en canvi té el control dels motors Lego podent dominar-los des de’l nostre projecte.

Continua llegint «Comunicacions en Scratch – 2 de 3»

Comunicacions en Scratch – 1 de 3

Si ja has fet els teus primers projectes en Scratch, segurament hauràs tingut el pensament de connectar Scratch amb el món real, és a dir, fer que el gatet traspassi la pantalla del nostre ordinador per a poder-nos comunicar amb ell d’un altre forma que no sigui amb el teclat i el ratolí.

Continua llegint «Comunicacions en Scratch – 1 de 3»