Introducció a ED1 i robot Fantàstic

From Edutec Wiki
Jump to: navigation, search
Fantastic00.jpg

Aquesta pràctica és una primera introducció al robot Fantàstic en general, incloent en particular el seu "cervell", la placa electrònica ed1. Aquesta placa, com micro:bit i altres, es pot programar amb Microblocks. Tant la placa Citilab ED1 com el robot Fantàstic han estat cocreats al Citilab de Cornellà amb escoles públiques d'educació infantil i primària del municipi.

Comença amb un breu recordatori del programari Microblocks, segueix amb una introducció a la placa Citilab ED1 i finalitza realitzant un programa per a que el robot es desplaci seguint les indicacions dels botons.

 

 

 

 

 

Recordatori de Microblocks

Article principal: Introducció a MicroBlocks

L'entorn de programació per blocs anomenat Microblocks permet programar diferents tipus de plaques electròniques, sempre que el microcontrol·lador d’aquestes sigui de 32 bits.

Aquest entorn varia una mica respecte a altres que també es basen en programació per blocs, com ara Scratch4Arduino, Snap4Arduino, etc., en els que en realitat no es programa la placa, sino que realment el que es fa es “interactuar” amb ella, tractant-la com si fos un objecte més del programa que es desenvolupa. Amb Microblocks la cosa canvia: en el moment que s'afegeixen blocs al programa i es fa rutllar, aquest ja està “viu” dintre de la placa, de manera que desconnectant aquesta de l’ordinador, si d’alguna forma se li dóna energia (bateria, piles…), segueix funcionant!

La placa Citilab ED1

La placa Citilab ED1 és una placa electrònica educativa co-creada al Citilab amb escoles de Cornellà de Llobregat, dintre del seu projecte Edulab, que té per objectiu introduir les STEAM a les aules a l'educació infantil i primària. El testeig també s'ha fet amb l'alumnat i professorat d'aquestes escoles, mitjançant activitats i pràctiques relitzades a classe, dintre del seu horari escolar ordinari.

L'origen de la placa va ser la necessitat de tenir una pel robot Fantàstic, dissenyat per al projecte Edulab. Calia una placa educativa amb almenys quatre botons, per indicar que avanci, que reculi i que giri en un o altre sentit, i es va veure que també li caldrien dos més. També es va creure convenient que es pugui interaccionar per una pantalla, que hi hagi pins per a connectar-hi sensors, LEDs i altres components, que aquests estiguin clarament marcats i diferenciats: analògics a la dreta, identificats com a A1, A2, A3 i A4; i digitals a l'esquerra, identificats com a D1, D2, D3 i D4. Els pins tenen els mateixos colors que els cables que es fan servir. Òbviament, també necesitava almenys dos connectors compatibles amb motors pas a pas, que tenen la precisió requerida per a moure dues rodes d'un robot.

Incorpora un acceleròmetre per poder detectar els girs de la placa, un sensor de llum i comunicacions amb Bluetooth i Wifi. S'ha fet servir, tant al projecte Edulab com fora d'ell, per a realitzar diferents activitats educatives amb i sense el robot Fantàstic.

La placa té aquest aspecte:

Ed1 dues cares.png

 

Primers passos: començant a programar

El primer pas és aprendre una mica com funciona a l’entorn Microblocks i com fer servir motors pas a pas amb la placa Citilab ED1 per a que el robot es mogui segons se li indiqui mitjançant els botons que incorpora la placa. Després d’això es podrà fer un programa per a que el robot es mogui quan li apropem la mà utilitzant un sensor de llum també incorporat a la Citilab ED1.

Una vegada obert el programa, podem canviar l’idioma clicant a la bola del món que es troba a la cantonada superior dreta de la pantalla:

Ed1 1.png
Així, els blocs canvien a l’idioma seleccionat. Ara, un cop endollada la placa a l'ordinador pel cable USB, es connecta aquesta amb el programa clicant al botó Connecta i seleccionant el port corresponent:
Ed1 2.png
Quan l’indicador de connexió passi de color vermell a verd vol dir que la placa s’ha connectat correctament.

Programació de la pantalla

Per fer un petit exemple per començar, arrossega el bloc Pantalla de la categoria Output:
Ed1 3.png
Aquest bloc té dibuixada una matriu de 5x5 rectangles foscos. Cadascun es correspon a un “quadret” de la pantalla de la placa Citilab ED1 i que es pot pintar de verd o deixar negre. Clicant a sobre de qualsevol forat una vegada, es pinta de color vermell al bloc i es dibuixarà en verd a la placa. Clicant-hi un altre cop, torna a passar de vermell a blau fosc, i a la placa "s'apaga".

Per exemple, clicant aquests forats el bloc queda així:

Ed1 4.png
I en clicar a sobre del bloc (fora d'un forat), la pantalla de la placa Citilab ED1 es transforma en:
Ed1 5.png
Això permet a la placa Citilab ED1 (i per tant al robot Fantàstic) fer els mateixos programes que les plaques que no tenen pantalla, simulant els petits leds. Evidentment, a més pot fer altres coses, gràcies a la pantalla, que aquestes altres plaques no poden, com dibuixar amb més precisió, l'ús de diferents colors, escriure paraules amb diferents tamanys de lletra, etc.

Llibreries pròpies: botons

Sabent com funciona la pantalla, es pot fer que mostri diferents imatges depenent de quin botó de la placa es prem. Per defecte Microblocks no incorpora blocs amb els quals fer-los servir directament, però sí que inclou una llibreria (un conjunt de blocs predefinits) específica amb un bloc per a cada botó de la placa.

Per tal poder carregar-la, es clica al botó Llibreries i després al directori [ ] Citilab ED1:
Ed1 6.png
Una vegada dins, es selecciona el fitxer ED1 buttons.ulib i es clica a Okay:
Ed1 7.png
I ja es poden veure els seus blocs dels botons a la secció Functions:
Ed1 8.png

Programació dels botons de la placa

Cada bloc de la llibreria dels botons es correspon a un botó de la placa Citilab ED1. Per exemple, al botó OK li correspon el bloc botó OK:

Ed1 15.png
Per comprovar com funcionen els blocs dels botons, clica per exemple al blocbotó OK. Si no estàs prement al mateix moment el botó OK de la placa, hauria de retornarfalse:
Ed1 11.png
En canvi, si mentre prems el botó tornes a clicar el bloc, aquest hauria de retornar true:
Ed1 12.png
Ara es podria fer per exemple un programa que mostri per pantalla el botó que es prem. Observa que els blocs dels botons són de tipus reporter (arrodonits) i per tant no encaixen amb els de tipus command (rectangulars o quadrats, amb un piu sortint):
Ed1 13.png
Per tal d’executar l’acció d’encendre la pantalla cal un bloc que detecti quan es prem el botó. Busca el bloc quan a la categoria Control:
Ed1 14.png
Aquest bloc, quan està en marxa, constantment evalúa el bloc que se li posa al forat verd. Cal posar-li un bloc de tipus booleà (és a dir, ha de retornar true o false, veritat o mentida). Justament els blocs dels botons són precisament d’aquest tipus. Arrossegant el bloc del botó a dintre del blocquan:
Ed1 16.png
El bloc quan i el bloc pantalla sí que encaixen entre ells:
Ed1 17.png
Finalment, per fer-lo funcionar se li pot clicar a qualsevol bloc del programa, o també aInicia, a la cantonada superir dreta de la pantalla del programa:
Ed1 18.png
Observa com el programa surt com il·luminat al seu voltant:
Ed1 19.png
Això vol dir que està funcionant. Ara, si pulses el botó OK de la placa, hauríes de veure que la pantalla mostra la imatge programada:
Ed1 20.jpg
Fet un, els altres es poden fer de manera anàloga:
Ed1 21.png

El robot Fantàstic

El robot Fantàstic és un petit xassís imprès en tres dimensions, amb dos motors pas a pas que mouen dues rodes respectives, controlats per la placa Citilab ED1. Les peces són muntables i desmuntables. Els seus dissenys són oberts i lliures, de manera que els fitxers es poden descarregar, s'hi poden fer modificacions i es poden imprimir a casa o a l'escola.

Ed1 35.gif
Se li poden afegir vestits, que es poden dissenyar i confeccionar lliurement:

Ed1 33.gif

Ed1 34.gif

Pels vestits, es disposa d'un patró per a facilitar el seu disseny si cal. Tanmateix, s'hi poden fer d'altres més lliures també.

Ed1 30.png
D'igual manera, s'hi poden afegir altres accessoris i elements, com una cua que es mogui també, o una (o més) antenes, braços, una pala recollidora, un imant, etc.

Llibreries pròpies: motors

A Microblocks existeixen també blocs específics per a moure el robot Fantàstic. Per a carregar-los, cal de nou clicar a sobre de LLibreries, seleccionar [ ] Citilab Ed1 i seleccionar aquesta vegada la llibreria ED1 Stepper Motor.ulib:
Ed1 9.png
que carregarà els següents blocs:
Ed1 10.png

Com es pot observar, el primer serveix per moure un sol servomotor, el segon per moure els dos a la vegada i el tercer i últim per aturar-los. Tant en el primer bloc com en el segon, a més del sentit de gir del motor. Clockwise en anglès vol dir sentit horari i counter-clockwise vol dir antihorari, sentit contrari al de les agulles del rellotge. Cal especificar quina quantitat de passos volem que girin els motors.

Important: un pas no equival a un angle d'un grau. Per a aquests motors una volta sencera, és a dir 360º, equival a 512 passos.

Programació dels motors

Per a que el robot faci servir els dos motors alhora, que en principi serà sempre el cas per a que el robot es mogui (desplaçar-se o girar), cal fer servir el bloc:

Ed1 27.png
Si s'ha muntat el robot de manera que cada motor està connectat al connector de la placa que li és més proper, i per tant no estan "creuats", el motor esquerre estarà al connector M1 i el motor dret en el conector M2.
Ed1 22.png
Als blocs s'indica amb un 1 o un 2, respectivament. Per exemple, en aquest bloc:
Ed1 27.png
com el motor 1 (esquerre) es mou en sentit horari i el motor 2 (dret) en sentit anti-horari, el robot hauria de moure’s en la direcció que indiquen les fletxes:
Ed1 23.png
Aquest moviment correspondria per exemple per quan es premi el botó d’amunt. Per tant, podem afegir el bloc de moure els motors que acabem de provar:
Ed1 26.png
Fixa't que aquest bloc té dos menús i que permet quatre combinacions possibles:
Ed1 24.png
Ed1 25.png
Sabent això, com programaries el botó avall, per a que reculi?

Com programaries els de les fletxes dreta i esquerra per a que giri en un sentit o l'altre?

Series capaç de programar al robot per a que es mogui sense haver-lo de tocar?