Introducció a ED1 i robot Fantàstic
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 ed1 com el robot Fantàstic han estat cocreats al Citilab de Cornellà amb escoles públiques d'infantil i primària del municipi.
Comença amb un breu recordatori del programari MicroBlocks, segeix amb una introducció a la placa ED1 i finalitza realitzant un programa per a que el robot es desplaci seguint les indicacions dels botons.
Contents
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 afegim blocs al nostre programa i el fem rutllar, aquest ja està “viu” dintre de la placa, de manera que si desconectem aquesta de l’ordinador i d’alguna forma li seguim donant energia (bateria, piles…) segueix funcionant!
La placa ED1
Per veure aquesta funcionalitat tant sorprenent, en aquest exercici es farà servir una placa creada al Citilab (la placa ED1) amb la que es muntarà un robot fent servir la guia disponible en enllaç. La placa té aquest aspecte:
El primer pas és aprendre una mica com funciona a l’entorn MicroBlocks i com fer servir motors pas a pas amb la placa ED1 per a que el robot es mogui segons li indiquem mitjançant els botons que incorpora la placa. Després d’això podem fer un programa per a que el robot es mogui quan li apropem la mà utilitzant un sensor de llum també incorporat a la ED1.Primers passos: comencem a programar
Una vegada obert el programa, podem canviar l’idioma clicant a la bola del món (a dalt a l’esquerra):
De manera que els blocs ens canviaran a l’idioma seleccionat. Ara, un cop endollada la placa mitjançant el cable USB, connectarem aquesta amb el programa clicant al botó 'Connect i seleccionant el port corresponent:
Quan l’indicador de connexió passi de color vermell a verd vol dir que la placa s’ha connectat correctament. Per fer un petit exemple per començar, agafarem el següent bloc que tenim a la categoria Output:
Fixem-nos que aquest bloc té una matriu de 5x5 interruptors. Cada interruptor pertany a un “quadret” de la pantalla que el podem encendre o apagar. Per exemple, si clicant els interruptors deixem el bloc de la següent manera:
I cliquem a sobre d’ell, veurem que a la pantalla hauria de sortir el següent:
Ús de llibreries: botons
Ara que ja sabem com funciona la pantalla, podem fer que aquesta mostri diferents imatges depenent de quin botó premem. Per defecte MicroBlocks no incorpora blocs amb els quals fer-los servir directament, però sí que inclou una llibreria (un conjunt de blocs predefinits) amb la qual podrem treballar amb ells còmodament. Per tal poder carregar-la, cliquem al botó Library i després al directori Citilab ED1:
I una vegada dins, seleccionem el fitxer amb nom buttons.ulib i cliquem a Okay:
I ja tindrem els seus blocs corresponents a la secció Functions:
De igual forma que necessitàvem una llibreria de blocs per poder utilitzar els botons, per tal de moure els motors pas a pas que fa servir el robot també necessitem una altra. Tornem a clicar a Library, entrem a Citilab ED1 i carreguem la llibreria steppers.ulib
que carregarà els següents blocs:
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.
En el nostre cas, si volem que el robot faci servir els dos motors alhora, cal fer servir el segon bloc. Ara, si hem muntat correctament el robot i hem connectat el motor esquerre al connector M1 i el motor dret en el conector M2:
Quan cliquem aquest, com el motor 1 (esquerre) es mou en sentit horari i el motor 2 (dret) en sentit horari, el robot hauria de moure’s en la direcció que indiquen les fletxes:
Quan cliquem aquest, com el motor 1 (esquerre) es mou en sentit horari i el motor 2 (dret) en sentit horari, el robot hauria de moure’s en la direcció que indiquen les fletxes:
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:
Ara només queda fer-ho a la resta de botons, de manera que cadascú tingui una combinació de moviment de motors diferents.