1. Exercici 1: Entendre el bloc ¡°Motor¡± en cada roda, utilitzant rotacions.<br />?<br />Obrir el programari, salvar un primer programa amb el nom ¡°ex1.rbt¡± i afegir un primer bloc ¡°Motor¡± a aquest primer programa.<br />?<br />El bloc ¡°Motor¡± s¡¯ha de seleccionar de la barra d¡¯eines i ubicar a sobre de l¡¯anomenada ¡°Sequence Beam¡± (biga de seq¨¹¨¨ncia). Observar com una barra vertical de color blanc indica el lloc on s¡¯inserir¨¤ el bloc en la biga de seq¨¹¨¨ncia. ?s important esperar sempre a veure aquesta barra vertical per assegurar que el bloc s¡¯ubica al lloc correcte.<br />?<br />??? <br />?<br />?<br />?<br />Per defecte, el bloc ¡°Motor¡± es crea amb una durada il¡¤limitada i pel port A, que cal canviar pel B, la roda de la dreta del robot. Per tant, si no realitzem cap altre canvi, el robot girar¨¤ cap a la dreta sobre la roda del motor C, que estar¨¤ parada.<br />?<br />Una segona versi¨® del programa, posant 2 rotacions en comptes de durada il¡¤limitada en el mateix bloc, permet controlar la durada del gir del motor, en aquest cas el motor B. Cal observar que per defecte s¡¯activa el control ¡°Wait for Completion¡± (esperar finalitzaci¨®) i el control ¡°Next Action¡± (acci¨® seg¨¹ent). M¨¦s endavant veurem l¡¯import¨¤ncia del primer control. Respecte a l¡¯acci¨® seg¨¹ent del bloc, ¨¦s important veure que el bloc pot frenar el motor (opci¨® ¡°Break¡±) o no frenar-lo (opci¨® ¡°Coast¡±) en acabar el gir sol¡¤licitat. Per exemple, cal utilitzar l¡¯opci¨® de frenar el motor si volem controlar amb precisi¨® la dist¨¤ncia recorreguda. Finalment, a m¨¦s de rotacions, podem controlar el gir del motor mitjan?ant graus o temps expressat en segons.<br />?<br />?<br />Per acabar l¡¯exercici podem anar variant els atributs del panell de configuraci¨® del bloc i observar l¡¯efecte de cadascun d¡¯ells, en especial la direcci¨® i la pot¨¨ncia.<br />?<br />Exercici 2: Despla?ament endavant utilitzant nom¨¦s el bloc ¡°Motor¡± i rotacions.<br />?<br />En primer lloc podem veure l¡¯efecte d¡¯afegir un segon bloc ¡°Motor¡± pel motor C de l¡¯esquerra. Observar qu¨¨ passa si els atributs d¡¯aquest segon bloc s¨®n diferents del primer. Cal anar amb cura i posar la mateixa durada i pot¨¨ncia del bloc que l¡¯anterior per a que els comportaments dels motors B i C siguin similars. Perqu¨¨ el robot no va recte?<br />?<br />Per dur a terme un despla?ament correcte del robot en l¨ªnia recta, a m¨¦s de que els motors de cadascuna de les rodes B i C tinguin la mateixa pot¨¨ncia (75) i girin el mateix n¨²mero de rotacions (2,4), cal observar que han de funcionar alhora. Donat que aix¨° encara no ¨¦s aix¨ª, observar que el robot gira cap a l¡¯esquerra (sobre la roda esquerra del motor C que estar¨¤ parada) i despr¨¦s cap a la dreta, sobre la roda dreta.<br />?<br />Per dur a terme aquest despla?ament correcte, cal que l¡¯opci¨® ¡°Wait for Completion¡± (esperar finalitzaci¨®) del bloc ¡°Motor¡± associat amb el motor B estigui desactivada. ?s a dir, amb aquesta opci¨® desactivada, el programa no espera a que acabi de girar el motor B per arrencar el motor C, la qual cosa fa que els dos motors funcionin alhora i que el robot es desplaci en l¨ªnia recta i endavant, si els par¨¤metres dels dos blocs s¨®n iguals, excepte per l¡¯atribut esmentat. <br />?<br />Motor B<br />?<br />Per qu¨¨ el robot no es para correctament? Finalment, cal observar que un bloc ¡°Motor¡± que tingui aquesta opci¨® desactivada no frenar¨¤ mai (veure com l¡¯opci¨® ¡°Brake¡± de l¡¯atribut ¡°Next Action¡± o acci¨® seg¨¹ent del bloc est¨¤ inhabilitada). Per tant, caldr¨¤ frenar expl¨ªcitament el motor que tingui l¡¯opci¨® ¡°Wait for Completion¡± desactivada, si es vol que el motor freni al final del recorregut. En aquest exemple, cal utilitzar un bloc ¡°Motor¡± per frenar el motor B expl¨ªcitament, ja que el motor C frena un cop realitzades les seves rotacions. Aix¨° permetr¨¤ parar el robot en el lloc exacte, altrament, un cop finalitzades les rotacions d¡¯ambd¨®s motors, el robot far¨¤ un petit gir a la dreta, equivalent al ¡°Coast¡± del motor B.<br />?<br />?<br />Motor C<br />?<br />Cal observar que no frenar els motors al final del seu recorregut equival a l¡¯opci¨® ¡°Coast¡±, que pot ser interessant en segons quines condicions, donat que al no frenar els motors no consumeix energia.<br />?<br />Coneixements adquirits: Aquest exemple b¨¤sic de funcionament permet aprendre el funcionament b¨¤sic dels motors. ?s molt ¨²til descobrir aquest funcionament a base d¡¯assajos, per tal d¡¯entendre correctament el significat de cadascun dels atributs del bloc ¡°Motor¡±, que seran b¨¤sics per controlar amb precisi¨® els despla?aments i els girs del robot.<br />?<br />Exercici 3: Despla?ament endavant i/o enrere per tornar al lloc d¡¯origen utilitzant nom¨¦s el bloc ¡°Motor¡±.<br />?<br />Deixar als alumnes fer algunes proves. La soluci¨® m¨¦s senzilla ¨¦s copiar els 3 blocs anteriors i nom¨¦s modificar la direcci¨® de gir dels motors B i C per a que el robot vagi endavant, freni i torni enrere, al lloc d¡¯origen.<br />?<br />?<br />Suggeriment: Per tal de replicar un bloc, o conjunt de blocs, podem seleccionar-lo i copiar-lo (Ctrl-C), per despr¨¦s enganxar-lo (Ctrl-V) al lloc adient del programa. Alternativament, podem pr¨¦mer la tecla Ctrl, seleccionar el bloc, o conjunt de blocs, que volem copiar i arrastrar-lo al lloc del programa on volem enganxar-lo. Per evitar problemes de compilaci¨® del programa, en el moment d¡¯enganxar els blocs, ¨¦s aconsellable esperar a veure que la barra o espai vertical blanc, que indica el lloc del programa on s¡¯enganxar¨¤ el bloc en la biga de seq¨¹¨¨ncia, est¨¤ ubicat al lloc desitjat.<br />?<br />En una segona versi¨® de l¡¯exercici fer que el robot giri i torni al lloc d¡¯origen, sempre en la mateixa direcci¨®, endavant.<br />?<br />?<br />Observar que el gir del robot es realitza mitjan?ant un bloc ¡°Motor¡± en el port C, per tant, girant cap a la dreta, sobre la roda del motor B i mitjan?ant un n¨²mero de graus de gir (720) del motor C. Aqu¨ª ¨¦s important veure qu¨¨ passa si abans d¡¯aquest gir els motors no estan frenats.<br />?<br />Motor C<br />?<br />En aquesta segona versi¨® del programa, cal observar que el robot no torna exactament al lloc de partida, perqu¨¨? El despla?ament del robot correspon a l¡¯amplada del robot, ja que aquest gira sobre una roda. Com es pot corregir aquest despla?ament?<br />?<br />El gir que fa el robot s¡¯anomena gir sobre un punt (la roda del motor B, que est¨¤ parada en el nostre cas). Per tal de fer que el robot no es desplaci i arribi al mateix punt de sortida, cal fer que el robot giri el mateix sobre cadascuna de les seves rodes, un gir sobre la roda C i l¡¯altre en sentit contrari sobre la roda B.<br />?<br />?<br />Observar que aquests dos girs impliquen reduir el n¨²mero de rotacions de cada motor respecte al gir anterior.<br />?<br />Finalment, com podem fer girar el robot de forma m¨¦s elegant? Com podem realitzar un gir sobre l¡¯eix del propi robot, i no sobre cadascuna de les seves rodes? Per poder-lo realitzar cal fer els dos girs anteriors alhora.<br />?<br />?<br />Deixar que els alumnes facin proves i descobreixin que, de forma similar al programa inicial anterior, cal que el motor C tingui l¡¯opci¨® ¡°Wait for Completion¡± desactivada i cal frenar el motor C un cop acabat el gir del robot sobre el seu eix, mitjan?ant els dos motors.<br />?<br />Exercici 4: Despla?ament endavant i/o enrere per tornar al lloc d¡¯origen utilitzant el bloc ¡°Move¡±.<br />?<br />Fer un segon programa nou, per exemple ¡°ex4.rbt¡±, i afegir un bloc ¡°Move¡±.<br />?<br />?<br />?<br />A difer¨¨ncia del bloc ¡°Motor¡±, el bloc ¡°Move¡± permet controlar els 3 motors alhora. Per defecte es configura pels ports B i C, amb 1 rotaci¨® de motor i amb l¡¯opci¨® de frenar per a l¡¯acci¨® seg¨¹ent (en l¡¯exemple, aquest atribut s¡¯ha modificat a 2 rotacions). Podem observar un nou atribut anomenat ¡°Steering¡± o volant. Aquest atribut permet distribuir la pot¨¨ncia entre els 2 motors (est¨¤ inhabilitat si seleccionem 3 motors). Per defecte el volant es posa centrat, per distribuir la pot¨¨ncia de forma id¨¨ntica entre els 2 motors. M¨¦s endavant veurem com funciona.<br />?<br />Per tant, amb el bloc configurat com en la imatge anterior, el robot es despla?ar¨¤ linealment 2 rotacions endavant. Si comparem aquest programa amb el del primer exercici, veurem que s¨®n equivalents. Per tant, el bloc ¡°Move¡± ¨¦s una molt bona opci¨® per controlar el moviment en l¨ªnia recta del robot, ja que sincronitza els 2 motors autom¨¤ticament.<br />?<br />?¨¦s equivalent a <br />?<br />Deixar que els alumnes repliquin l¡¯exercici anterior per¨° nom¨¦s amb el bloc ¡°Move¡±. Aix¨° els hi permetr¨¤ veure l¡¯efecte de l¡¯atribut de volant.<br />?<br />Veurem que per anar endavant i tornar enrere a la posici¨® de partida, nom¨¦s haurem d¡¯afegir un segon bloc ¡°Move¡± id¨¨ntic a l¡¯anterior, i modificar-li nom¨¦s la direcci¨® dels motors.<br />?<br />?<br />Seguidament, podem inserir un tercer bloc ¡°Move¡± entre mig dels dos blocs existents i jugar amb l¡¯efecte de volant per fer girar el robot i fer-li fer una corba.<br />?<br />Quins canvis haurem de fer per tal d¡¯aconseguir l¡¯efecte dels blocs ¡°Motor¡± de l¡¯exercici anterior? Finalment, veurem que si desplacem la barra de volant cap a l¡¯extrem del port d¡¯un motor, el robot girar¨¤ sobre un punt, el motor del port contrari.<br />?<br />?<br />Tamb¨¦ podem combinar blocs ¡°Move¡± amb blocs ¡°Motor¡± per tal d¡¯aconseguir un control m¨¦s prec¨ªs del moviment del robot.<br />?<br />?<br />Coneixements adquirits: L¡¯alumne controla amb molta precisi¨® el funcionament del motors mitjan?ant els dos blocs b¨¤sics ¡°Motor¡± i ¡°Move¡±, amb la capacitat de realitzar les combinacions de blocs m¨¦s adients per dirigir el robot de forma adequada. Ara nom¨¦s manca aprendre a calcular el n¨²mero de rotacions de motor per arribar al lloc desitjat, i aix¨ª anticipar el comportament del robot.<br />?<br />Exercici incremental 1: Arribar al final de la g¨¤bia utilitzant nom¨¦s rotacions de motor.<br />?<br />El seg¨¹ent esquema mostra un recorregut que haur¨¤ de rec¨®rrer el robot per tal de sortir d¡¯un punt i arribar a un altre. Es pot utilitzar cinta adhesiva de color negre per marcar els l¨ªmits del recorregut i de la g¨¤bia, i es pot utilitzar un cart¨®-pluma blanc de 1x1,5 metres. Aquest exercici s¡¯anir¨¤ fent m¨¦s complex al llarg de cada unitat did¨¤ctica.<br />?<br />Una mica de teoria<br />?<br />Abans de comen?ar l¡¯exercici pot ser interessant demanar als alumnes que intentin relacionar la dist¨¤ncia que ha de rec¨®rrer el robot abans de fer el primer gir a l¡¯esquerra (utilitzar un regle) amb el n¨²mero de rotacions del motor. Aprofundir els conceptes de radi, di¨¤metre, per¨ªmetre, rotacions de roda (expressades en n¨²mero de rotacions o graus), i descobrir el n¨²mero PI.<br />?<br />?<br />Mostrar la relaci¨® entre per¨ªmetre i superf¨ªcie d¡¯una circumfer¨¨ncia, i comparar-la a la d¡¯un quadrat:<br />?Per¨ªmetre cercle???????? = 3,14 x di¨¤metrePer¨ªmetre quadrat????? = 4 x di¨¤metre?rea cercle???????????????? = 3,14 x radi x radi = 3,14 x radi2?rea quadrat?????????????? = 4 x radi x radi????? = 4 x radi2<br />?<br />Finalment, cal realitzar les operacions per tal de calcular les rotacions de motor per rec¨®rrer una dist¨¤ncia determinada en l¨ªnia recta:<br />?rotacions = dist¨¤ncia / per¨ªmetregraus = rotacions x 360<br />?<br />Podem fer el mateix per calcular-ho amb un gir sobre una roda:<br />Di¨¤metre (2 x dist¨¤ncia rodes)Per¨ªmetreGraus de gir del robot?Graus / 360 = dist¨¤ncia / Per¨ªmetre? (robot)dist¨¤ncia = per¨ªmetre x graus / 360? (roda)?C¨¤lcul del gir de la roda:graus = Graus x Di¨¤metre / di¨¤metrerotacions = Graus x Di¨¤metre / 360 x di¨¤metre<br />?<br />Per realitzar l¡¯exercici incremental, podem deixar que els alumnes facin proves i tractin de calcular el n¨²mero de rotacions de motor en funci¨® del di¨¤metre de la roda.<br />?<br />Una soluci¨® per realitzar aquest exercici incremental, ¨¦s combinar blocs ¡°Move¡±, per despla?ar el robot en l¨ªnia recta, amb blocs ¡°Motor¡±, per fer-lo girar sobre el seu propi eix amb precisi¨®, per seguir el recorregut marcat i arribar fins el final.<br />?<br />?<br />El despla?ament dels blocs ¡°Move¡± es controla mitjan?ant rotacions i el dels blocs ¡°Motor¡± mitjan?ant graus, per obtenir la precisi¨® suficient.<br />?<br />Suggeriment: Per tal d¡¯entendre b¨¦ el comportament del robot respecte del codi que executa, ¨¦s molt recomanable realitzar i executar el programa pas a pas. Per exemple, podem comen?ar per un recorregut recte, assegurar que el robot para al lloc adequat, i despr¨¦s realitzar el gir i combinar-lo al programa anterior, etc. Si cal, podem crear programes parcials i un cop funcionen podem copiar el codi i enganxar-lo al programa definitiu.<br />?<br />Coneixements adquirits: L¡¯alumne, en funci¨® de l¡¯edat, ha de ser capa? de calcular els despla?aments del robot de forma anticipada, per tal de controlar amb precisi¨® els moviments en l¨ªnia recta i en els girs.<br />?<br />Curs d'introducci¨® a LEGO? Mindstorms NXT by Jos¨¦ Mar¨ªa Fargas Texid¨® is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 Espa?a License.<br />Permissions beyond the scope of this license may be available at www.bogatech.org.<br />?<br />???<br />?<br />