SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
UNITAT 4. Bifurcacions i bucles avançats: lògica de desplaçament i
presa de decisions en funció d’una combinació de sensors.
En aquesta quarta unitat didàctica s’abordaran programes una mica més
complexes amb combinació de sensors, bucles i bifurcacions, que permeten
que el robot prengui decisions més complexes i realitzi tasques diferents
segons es compleixen les diferents condicions. Per poder realitzar aquestes
tasques més complexes, s’estudiaran els conceptes de lògica i la seva
aplicació en el control del flux d’un programa, estudiarem els diferents
operadors lògics i les operacions que es poden realitzar amb ells, i veurem
com es poden combinar diferents portes lògiques en cascada, etc.
Finalment, farem ús de la capacitat dels blocs en passar-se informació o
valors els uns als altres i construirem el primer rastrejador.
Una mica de teoria
Tal com hem vist en la unitat didàctica 3 anterior, un bucle i una bifurcació
es poden associar als sensors per tal d’interrompre o bifurcar un programa,
respectivament. Però, un control que dóna una gran potència al sistema és
la possibilitat d’associar-los a un control lògic. És a dir, per exemple, el
bucle pot seguir repetint-se o pot finalitzar en funció de si rep el valor
“veritat” o “fals” per part d’un altre bloc. De la mateixa manera, una
bifurcació o una altra poden executar-se segons el valor lògic que reben. Al
llarg del curs veurem la gran utilitat d’aquesta possibilitat.
Per tal de poder tenir la interacció necessària, els blocs poden passar-se
valors els uns als altres, la qual cosa permet interaccions més complexes i
interessants al llarg d’un programa. Els blocs emmagatzemen les dades en
el “Data Hub” o concentrador de dades, i la forma en que es passen valors
és mitjançant els “Data Wires” o cables de dades. Els cables de dades tenen
colors diferents segons el tipus de dades que es transporten. Per exemple,
els que transporten dades numèriques són grocs, els lògics verds, i els de
text taronges. Si un cable de dades es trenca, aleshores apareix en color
gris, i cal corregir el problema. Finalment, el concentrador de dades d’un
bloc té connexions de cables d’entrada de dades per davant o a l’esquerra i
connexions de cables de sortida de dades per darrera o a la dreta. L’ajut
d’usuari explica en detall el funcionament del concentrador de dades i dels
seus cables, com afegir-los o esborrar-los, etc.
Ara podem repetir els exercicis anteriors, utilitzant el mateix bucle, però
amb control lògic en comptes d’associar-lo a un sensor. Per això hem
d’afegir un bloc amb el sensor de llum dins el bucle i connectar la sortida
lògica (“sí” o “no”) del sensor a l’entrada lògica del bucle, mitjançant un
cable de dades.
Suggeriment: De vegades el “Data Hub” o concentrador de dades no
s’obre del tot al afegir un bloc a la biga de seqüència. Tal com es mostra a
continuació, aquest és el cas de l’exemple anterior, on al afegir el sensor de
llum, el concentrador de dades mostra només l’atribut d’intensitat i per a
realitzar l’exercici volem connectar el valor lògic de sortida al d’entrada del
bucle. Per obrir totalment el concentrador de dades, cal fer clic a la part
inferior del bloc (aquest procés s’explica en detall en l’ajut del programari).
Un cop el concentrador de dades està totalment obert, podem triar l’atribut
amb el valor que volem connectar. Finalment, per optimitzar la visualització
del bloc amb només els connectors utilitzats, i fer que el bloc no ocupi tant
d’espai, un cop hem realitzat les connexions de cables de dades desitjades,
podem tornar a fer clic a la part inferior del bloc per tal de col·lapsar el
concentrador de dades a la seva mínima expressió.
Primer pas, inserció del bloc al lloc correcte:
Segon pas, expandir el concentrador de dades del bloc i connectar
adequadament
l’entrada i la sortida de dades de cada bloc amb el cable de dades:
Tercer i últim pas, col·lapsar el concentrador de dades
per ocupar menys espai i facilitar la lectura:
que és equivalent a
El gran avantatge del bucle amb control lògic és que, per exemple, podem
controlar la sortida del bucle en funció de varis sensors alhora. Per exemple,
podem fer que el robot pari si arriba a la línia negra o si abans el sensor de
contacte detecta un obstacle al xocar contra ell. Per això ens hem de basar
en la lògica.
Una mica de teoria
Suposem que tenim els dos sensors anteriors (llum i contacte) que ens
indiquen “veritat” o “fals” segons si s’activen o no respectivament. Si això
és així, el robot haurà de sortir del bucle i parar quan el un dels dos sensors
s’activi i passi el valor “veritat” al bucle. Per realitzar aquesta operació
comptem amb el bloc “Logic”. El concentrador de dades del bloc lògic té
dues entrades, A i B, que poden tenir els valors “veritat” (“True” o T) o
“fals” (“False” o F), i tres sortides, els mateixos valors de A i B, i el resultat
de l’operació lògica entre A i B. Els operadors lògics poden ser “And”, “Or”,
“XOr” o “Not”. En el nostre cas hem de tornar el valor “veritat” si un, l’altre
o tots dos sensors tornen “veritat”, sinó hem de tornar “fals”. Per tant,
l’operació lògica que hem d’efectuar amb els valors dels dos sensors és un
“Or”. La taula de valors lògics de l’operador “Or” és la següent:
T Or T = T
T Or F = T
F Or T = T
F Or F = F
Podem comprovar que l’operador lògic “Or” tornarà el valor “fals” només
quan els dos sensors tornin “fals”, altrament tornarà el valor “veritat”.
És també interessant confeccionar la taula de valors lògics de la resta
d’operadors, per altres exercicis posteriors:
T And T = T
T And F = F
F And T = F
F And F = F
T XOr T = F
T XOr F = T
F XOr T = T
F XOr F = F
Not T = F
Not F = T
(L’operador “Not” s’aplica només a un sol
valor)
Contràriament a l’operador “Or”, podem veure que l’operador “And” torna
“veritat” només quan els dos valors són “veritat”. Per tant, podem dir que:
A And B = Not (A Or B)
L’operador “XOr” torna “veritat” quan els dos valors són diferents i ”fals”
quan són iguals.
Exercici 9: El bloc “Loop” o bucle amb control lògic: desplaçaments
repetitius endavant i/o enrere per tornar al lloc d’origen utilitzant
varis sensors alhora i el bloc “Motor” o “Move” amb durada
il·limitada.
Crear un nou programa, per exemple “ex9.rbt”. Deixarem que els alumnes
intentin resoldre el següent repte sols. El robot ha d’anar endavant i parar
quan topi amb un obstacle o arribi a la línia negra. Caldrà utilitzar un bloc
lògic per combinar el resultat dels dos sensors mitjançant l’operador “Or”.
Què passa si utilitzem un “And” en comptes d’un “Or”?
Donat que el bloc lògic només té dues entrades, com podem fer que el
robot tingui en compte més de dos sensors alhora? Deixar que els alumnes
esbrinin com fer que el robot pari en funció de si un dels quatre sensors
s’activa. La solució és combinar el resultat de dos blocs lògics amb un tercer
bloc.
Exercici 10: Combinació dels blocs bifurcació i bucle amb control
lògic: desplaçaments repetitius endavant i/o enrere utilitzant varis
sensors alhora i el bloc “Motor” o “Move” amb durada il·limitada.
Crear un nou programa, per exemple “ex10.rbt”. Com podem fer que el
robot, “per sempre”, vagi endavant fins arribar a una línia negra i giri sobre
el seu eix i torni enrere, fins trobar la línia negra de sortida? A més, com
podem aturar tot el procés si el robot xoca amb un obstacle? La solució és
posar una bifurcació dins d’un bucle.
Finalment, ja tenim els coneixements necessaris per poder realitzar un
primer rastrejador. Aquesta és una altra ocasió per tal de fer pensar als
alumnes de forma discursiva, i fer-los trobar vàries solucions. Utilitzarem
només un sensor de llum, però podem també comparar les possibles
solucions amb dos sensors de llum.
Un rastrejador és un robot que segueix una línia. Si el rastrejador té un
sensor, aleshores aquest, pot seguir un costat o l’altre de la línia, donat que
la línia té un gruix. Per exemple, si la línia és negra sobre un fondo blanc i
decidim seguir la línia per la dreta, aleshores, si el sensor detecta blanc
haurà de girar cap a l’esquerra i si detecta negre cap a la dreta. Aquest
algoritme senzill demostra com la combinació de petits moviments locals,
aparentment sense sentit (girs a dreta i a esquerra), impliquen un
moviment global amb un sentit molt especial, que en aquest cas és seguir o
rastrejar una línia.
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y, a continuación, abra el archivo de nuevo. Si sigue apareciendo
la x roja, puede que tenga que borrar la imagen e insertarla de nuevo.
Si tenim varis robots rastrejant, aleshores, per evitar col·lisions, podem
controlar la sortida del bucle mitjançant el sensor de contacte, per exemple.
Una altra alternativa de rastreig és fer que una roda giri a una velocitat fixa
(per exemple el motor B) i reduir o accelerar la roda oposada del robot (per
exemple el motor C) segons hagi de girar cap a un costat o cap a l’altre. És
interessant construir aquests dos rastrejadors i comparar el seu
funcionament. El primer és més lent que el segon, però si les corbes són
tancades, aleshores és més precís i funciona millor (no perd la línia).
Exercici incremental 5: Arribar al final de la gàbia utilitzant només
el sensor de llum associat al bloc bucle, però rastrejant les línies
negres.
Per realitzar aquest exercici, en comptes de copiar i modificar l’exercici
incremental 4 anterior, demanar als alumnes que el construeixin per parts i
observin amb atenció com es comporta el rastrejador. De seguida se’n
adonaran que com el robot pot rastrejar les línies per la dreta o per
l’esquerra, en l’exemple que tenim, donat que el robot surt per la dreta del
tauler i el primer gir és cap a l’esquerra, la solució més eficient és rastrejar
per l’esquerra. Així, el robot farà el primer gir cap a l’esquerra tot seguint la
línia negra intermèdia que interseca les línies límits del tauler. Amb aquesta
estratègia, el programa podrà ser molt més compacte, com es podrà
comprovar.
En primer lloc, podem observar que el rastrejador es va repetint en els llocs
on el robot ha de seguir els límits del tauler o les línies intermèdies, i és
idèntic, excepte pel que fa el temps de rastreig (control del bucle), que
depèn de la longitud de cada línia fins arribar a una intersecció que ha de
sobrepassar.
Per una altra banda, podem veure que entre el primer bucle rastrejador i el
segon, s’insereix un petit gir sobre eix que té la missió d’adreçar el robot
per sobrepassar la primera línia intermèdia del tauler. Això mateix succeeix
al final del segon bucle, per sobrepassar el final de la línia intermèdia del
tauler. A partir d’aquest punt, el robot segueix rastrejant fins el final del
recorregut sense cap problema fent el gir a la dreta i arribant al final del
recorregut. El robot no tindrà cap problema per sobrepassar la línia negra
intermèdia vertical final, donat que rastreja per l’esquerra i no hi ha cap
interrupció de la mateixa, en aquest costat, donat que estem al límit del
tauler.
Pot ser interessant comparar les diferents alternatives de cada grup
d’alumnes, rastrejant per la dreta o per l’esquerra, i fins i tot intentant
canviar el costat o el sistema de rastreig.
Una altra alternativa molt interessant és rastrejar segons el sensor de
rotacions intern d’un motor. Al rastrejar, el robot va fent petits moviments a
dreta i esquerra, però quan aquest troba una intersecció, aleshores, per tal
de seguir el gir de la línia, una de les rodes fa més rotacions que al seguir la
línia recta, mentre l’altra roman parada. Per tal de controlar el moviment
global del robot, podem detectar quan es produeixen aquest increment de
rotacions de la roda adequada.
Per controlar els graus de gir o el número de rotacions d’un motor, el panell
de control del bloc del sensor de rotacions intern facilita l’opció de comparar
les rotacions amb un valor específic. Si les rotacions són superiors o
inferiors al valor d’activació, aleshores l’atribut o connexió sí/no del
concentrador de dades retornarà el valor “veritat”, que podrem connectar a
la presa lògica del bucle, mitjançant un cable de dades, per així aturar el
rastrejador. Per tal de connectar el bloc que està dins d’una bifurcació al
connector lògic del bucle, que conté la bifurcació, cal utilitzar la “vista
plana” o “Flat View” de la bifurcació. Després de fer algunes proves, podrem
comprovar que el valor de 60 graus permet trobar el moment on el robot
arriba als punts de gir.
Suggeriment: Les bifurcacions o “Switch” es poden visualitzar amb la biga
de seqüència desdoblada o amb una “vista plana” o “Flat View”. Si una
bifurcació està associada a un sensor, aleshores té dos valors, però més
endavant, veurem que una bifurcació pot tenir varis valors i aleshores,
aquests només es poden visualitzar mitjançant la vista plana. Es pot accedir
a cada opció fent clic al “Tab” o “fitxa” adequada. Finalment, per tal de
connectar un atribut lògic d’un bloc, que estigui dins d’una bifurcació, al
connector lògic d’un bucle que contingui la bifurcació, també cal utilitzar la
“vista plana” o “Flat View” de la bifurcació.
Panell de control del sensor de rotacions del port B
Cal observar, que el sensor de rotacions s’ha de reiniciar després de llegir
les rotacions de la roda supervisada, per a cada cicle de rastreig. Per
comptar les rotacions, el sensor de rotacions s’ha d’ubicar tot just després
de parar el motor supervisat i abans de començar les rotacions del motor
oposat.
Per aquesta alternativa, a nivell global, l’exercici incremental necessita un
rastrejador cada cop que hi ha un canvi de direcció o una intersecció de
línia. Per tal de sobrepassar els punts de canvi de direcció només cal, o bé
executar algunes rotacions de la roda adequada per girar el robot i
començar un nou rastreig, o bé seguir recte, per sobrepassar la intersecció.
També cal observar que, en funció del sentit de gir del robot, unes vegades
cal supervisar la roda dreta i unes altres l’esquerra.
Quines avantatges comporta la utilització del sensor de rotacions en
comptes del sensor de llum, per realitzar l’exercici? Si bé amb el sensor de
rotacions el codi és menys compacte, el gran avantatge d’aquesta solució és
que fins i tot funciona si modifiquem la mida del tauler. Per tant, aquesta
solució és més genèrica que l’anterior.
Coneixements adquirits: En la unitat didàctica 3 anterior hem vist com el
bloc bucle permet repetir accions i si s’associa a un sensor, podem controlar
l’execució del seu contingut fins que aquest s’activa o desactiva. Finalment,
en aquesta unitat didàctica hem vist que quan el bucle utilitza el control
lògic, tenim moltes altres possibilitats de controlar el flux del programa,
amb diferents combinacions de sensors, etc. A més, si combinem el bucle
amb bifurcacions, tenim un joc de possibilitats infinit, que permet començar
a pensar en el concepte d’algoritme, o conjunt de processos ben definits
que permeten realitzar tasques molt concretes i específiques, més o menys
complexes, com per exemple un rastrejador.
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.
Permissions beyond the scope of this license may be available at
www.bogatech.org.

Contenu connexe

Similaire à Exercici 3 lego

Iniciació a la Robòtica amb S4A
Iniciació a la Robòtica amb S4AIniciació a la Robòtica amb S4A
Iniciació a la Robòtica amb S4A
carlesfornas
 
Unitat 7 sistemes digitals
Unitat 7 sistemes digitalsUnitat 7 sistemes digitals
Unitat 7 sistemes digitals
davidsanz50
 

Similaire à Exercici 3 lego (17)

Electrònica Digital
Electrònica DigitalElectrònica Digital
Electrònica Digital
 
Electronica Digital
Electronica DigitalElectronica Digital
Electronica Digital
 
Exercici9pag56
Exercici9pag56Exercici9pag56
Exercici9pag56
 
Intro rob lego_mindstorm
Intro rob lego_mindstormIntro rob lego_mindstorm
Intro rob lego_mindstorm
 
PW_pac1
PW_pac1PW_pac1
PW_pac1
 
Electronica Digital Continuació
Electronica Digital ContinuacióElectronica Digital Continuació
Electronica Digital Continuació
 
Oo Aplicacions
Oo AplicacionsOo Aplicacions
Oo Aplicacions
 
Mcu mobil horitzontal
Mcu mobil horitzontalMcu mobil horitzontal
Mcu mobil horitzontal
 
Iniciació a la Robòtica amb S4A
Iniciació a la Robòtica amb S4AIniciació a la Robòtica amb S4A
Iniciació a la Robòtica amb S4A
 
Programem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaProgramem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robótica
 
Mcu mobil vertical
Mcu mobil verticalMcu mobil vertical
Mcu mobil vertical
 
Control I RobòTica
Control I RobòTicaControl I RobòTica
Control I RobòTica
 
Sistemes digitals
Sistemes digitalsSistemes digitals
Sistemes digitals
 
Electrònica digital
Electrònica digitalElectrònica digital
Electrònica digital
 
Apartado1 pdf
Apartado1 pdfApartado1 pdf
Apartado1 pdf
 
Unitat 7 sistemes digitals
Unitat 7 sistemes digitalsUnitat 7 sistemes digitals
Unitat 7 sistemes digitals
 
Apartado1 pdf
Apartado1 pdfApartado1 pdf
Apartado1 pdf
 

Plus de lluís nater

Eso2 ut3-programacio
Eso2 ut3-programacioEso2 ut3-programacio
Eso2 ut3-programacio
lluís nater
 
ut3-mquines-mecanismes
ut3-mquines-mecanismesut3-mquines-mecanismes
ut3-mquines-mecanismes
lluís nater
 
Ut2 proces tecno. nil abel ricard
Ut2 proces tecno. nil abel ricardUt2 proces tecno. nil abel ricard
Ut2 proces tecno. nil abel ricard
lluís nater
 
ÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
ÀLEX TAUREL i LUCAS MURCIA Pocés TecnològicÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
ÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
lluís nater
 
Ana Laia Mireia. UT2
Ana Laia Mireia. UT2Ana Laia Mireia. UT2
Ana Laia Mireia. UT2
lluís nater
 
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTSUT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
lluís nater
 
UT3 Procés Tecnològic. ESO1
UT3 Procés Tecnològic. ESO1UT3 Procés Tecnològic. ESO1
UT3 Procés Tecnològic. ESO1
lluís nater
 
Guia us-segur-xarxes-socials
Guia us-segur-xarxes-socialsGuia us-segur-xarxes-socials
Guia us-segur-xarxes-socials
lluís nater
 
Computacio quaantica
Computacio quaantica Computacio quaantica
Computacio quaantica
lluís nater
 
UT4 Transformacions tecnolgiques
UT4 Transformacions tecnolgiques UT4 Transformacions tecnolgiques
UT4 Transformacions tecnolgiques
lluís nater
 
UT1 Debat seguretat a les xarxes
UT1 Debat seguretat a les xarxesUT1 Debat seguretat a les xarxes
UT1 Debat seguretat a les xarxes
lluís nater
 
Missatges ·variables· si sino· blocs
Missatges ·variables· si sino· blocsMissatges ·variables· si sino· blocs
Missatges ·variables· si sino· blocs
lluís nater
 
Dièdric. Vistes d'un objectes (alçat. planta i perfil)
Dièdric. Vistes d'un objectes (alçat. planta i perfil)Dièdric. Vistes d'un objectes (alçat. planta i perfil)
Dièdric. Vistes d'un objectes (alçat. planta i perfil)
lluís nater
 
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
lluís nater
 
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
lluís nater
 

Plus de lluís nater (20)

Eso2 ut3-programacio
Eso2 ut3-programacioEso2 ut3-programacio
Eso2 ut3-programacio
 
ut3-mquines-mecanismes
ut3-mquines-mecanismesut3-mquines-mecanismes
ut3-mquines-mecanismes
 
Ut2 proces tecno. nil abel ricard
Ut2 proces tecno. nil abel ricardUt2 proces tecno. nil abel ricard
Ut2 proces tecno. nil abel ricard
 
Carlai Anna
Carlai AnnaCarlai Anna
Carlai Anna
 
UT2 Georgina Ainara
UT2 Georgina AinaraUT2 Georgina Ainara
UT2 Georgina Ainara
 
ÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
ÀLEX TAUREL i LUCAS MURCIA Pocés TecnològicÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
ÀLEX TAUREL i LUCAS MURCIA Pocés Tecnològic
 
Arnau sergi UT2
Arnau sergi UT2Arnau sergi UT2
Arnau sergi UT2
 
Ana Laia Mireia. UT2
Ana Laia Mireia. UT2Ana Laia Mireia. UT2
Ana Laia Mireia. UT2
 
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTSUT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
UT2. PROCÉS TECNOLÒGIC. CINTA TRANSPORTADORA DEL BANC D'ALIMENTS
 
UT3 Procés Tecnològic. ESO1
UT3 Procés Tecnològic. ESO1UT3 Procés Tecnològic. ESO1
UT3 Procés Tecnològic. ESO1
 
Guia us-segur-xarxes-socials
Guia us-segur-xarxes-socialsGuia us-segur-xarxes-socials
Guia us-segur-xarxes-socials
 
UT3 Proceso tecnológico
UT3 Proceso tecnológicoUT3 Proceso tecnológico
UT3 Proceso tecnológico
 
Computacio quaantica
Computacio quaantica Computacio quaantica
Computacio quaantica
 
UT4 Transformacions tecnolgiques
UT4 Transformacions tecnolgiques UT4 Transformacions tecnolgiques
UT4 Transformacions tecnolgiques
 
Manual planner 5 d
Manual planner 5 dManual planner 5 d
Manual planner 5 d
 
UT1 Debat seguretat a les xarxes
UT1 Debat seguretat a les xarxesUT1 Debat seguretat a les xarxes
UT1 Debat seguretat a les xarxes
 
Missatges ·variables· si sino· blocs
Missatges ·variables· si sino· blocsMissatges ·variables· si sino· blocs
Missatges ·variables· si sino· blocs
 
Dièdric. Vistes d'un objectes (alçat. planta i perfil)
Dièdric. Vistes d'un objectes (alçat. planta i perfil)Dièdric. Vistes d'un objectes (alçat. planta i perfil)
Dièdric. Vistes d'un objectes (alçat. planta i perfil)
 
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
UT6 Infografia del procés de fabricació d'una màscareta o pantalla COVID19
 
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
UT6 A3 pòster Manual de construcció d'una mascareta o pantalla protectoraCovid19
 

Exercici 3 lego

  • 1. UNITAT 4. Bifurcacions i bucles avançats: lògica de desplaçament i presa de decisions en funció d’una combinació de sensors. En aquesta quarta unitat didàctica s’abordaran programes una mica més complexes amb combinació de sensors, bucles i bifurcacions, que permeten que el robot prengui decisions més complexes i realitzi tasques diferents segons es compleixen les diferents condicions. Per poder realitzar aquestes tasques més complexes, s’estudiaran els conceptes de lògica i la seva aplicació en el control del flux d’un programa, estudiarem els diferents operadors lògics i les operacions que es poden realitzar amb ells, i veurem com es poden combinar diferents portes lògiques en cascada, etc. Finalment, farem ús de la capacitat dels blocs en passar-se informació o valors els uns als altres i construirem el primer rastrejador. Una mica de teoria Tal com hem vist en la unitat didàctica 3 anterior, un bucle i una bifurcació es poden associar als sensors per tal d’interrompre o bifurcar un programa, respectivament. Però, un control que dóna una gran potència al sistema és la possibilitat d’associar-los a un control lògic. És a dir, per exemple, el bucle pot seguir repetint-se o pot finalitzar en funció de si rep el valor “veritat” o “fals” per part d’un altre bloc. De la mateixa manera, una bifurcació o una altra poden executar-se segons el valor lògic que reben. Al llarg del curs veurem la gran utilitat d’aquesta possibilitat. Per tal de poder tenir la interacció necessària, els blocs poden passar-se valors els uns als altres, la qual cosa permet interaccions més complexes i interessants al llarg d’un programa. Els blocs emmagatzemen les dades en el “Data Hub” o concentrador de dades, i la forma en que es passen valors és mitjançant els “Data Wires” o cables de dades. Els cables de dades tenen colors diferents segons el tipus de dades que es transporten. Per exemple, els que transporten dades numèriques són grocs, els lògics verds, i els de text taronges. Si un cable de dades es trenca, aleshores apareix en color gris, i cal corregir el problema. Finalment, el concentrador de dades d’un bloc té connexions de cables d’entrada de dades per davant o a l’esquerra i connexions de cables de sortida de dades per darrera o a la dreta. L’ajut d’usuari explica en detall el funcionament del concentrador de dades i dels seus cables, com afegir-los o esborrar-los, etc. Ara podem repetir els exercicis anteriors, utilitzant el mateix bucle, però amb control lògic en comptes d’associar-lo a un sensor. Per això hem d’afegir un bloc amb el sensor de llum dins el bucle i connectar la sortida lògica (“sí” o “no”) del sensor a l’entrada lògica del bucle, mitjançant un cable de dades. Suggeriment: De vegades el “Data Hub” o concentrador de dades no s’obre del tot al afegir un bloc a la biga de seqüència. Tal com es mostra a continuació, aquest és el cas de l’exemple anterior, on al afegir el sensor de llum, el concentrador de dades mostra només l’atribut d’intensitat i per a realitzar l’exercici volem connectar el valor lògic de sortida al d’entrada del bucle. Per obrir totalment el concentrador de dades, cal fer clic a la part
  • 2. inferior del bloc (aquest procés s’explica en detall en l’ajut del programari). Un cop el concentrador de dades està totalment obert, podem triar l’atribut amb el valor que volem connectar. Finalment, per optimitzar la visualització del bloc amb només els connectors utilitzats, i fer que el bloc no ocupi tant d’espai, un cop hem realitzat les connexions de cables de dades desitjades, podem tornar a fer clic a la part inferior del bloc per tal de col·lapsar el concentrador de dades a la seva mínima expressió. Primer pas, inserció del bloc al lloc correcte: Segon pas, expandir el concentrador de dades del bloc i connectar adequadament l’entrada i la sortida de dades de cada bloc amb el cable de dades: Tercer i últim pas, col·lapsar el concentrador de dades per ocupar menys espai i facilitar la lectura: que és equivalent a
  • 3. El gran avantatge del bucle amb control lògic és que, per exemple, podem controlar la sortida del bucle en funció de varis sensors alhora. Per exemple, podem fer que el robot pari si arriba a la línia negra o si abans el sensor de contacte detecta un obstacle al xocar contra ell. Per això ens hem de basar en la lògica. Una mica de teoria Suposem que tenim els dos sensors anteriors (llum i contacte) que ens indiquen “veritat” o “fals” segons si s’activen o no respectivament. Si això és així, el robot haurà de sortir del bucle i parar quan el un dels dos sensors s’activi i passi el valor “veritat” al bucle. Per realitzar aquesta operació comptem amb el bloc “Logic”. El concentrador de dades del bloc lògic té dues entrades, A i B, que poden tenir els valors “veritat” (“True” o T) o “fals” (“False” o F), i tres sortides, els mateixos valors de A i B, i el resultat de l’operació lògica entre A i B. Els operadors lògics poden ser “And”, “Or”, “XOr” o “Not”. En el nostre cas hem de tornar el valor “veritat” si un, l’altre o tots dos sensors tornen “veritat”, sinó hem de tornar “fals”. Per tant, l’operació lògica que hem d’efectuar amb els valors dels dos sensors és un “Or”. La taula de valors lògics de l’operador “Or” és la següent: T Or T = T T Or F = T F Or T = T F Or F = F Podem comprovar que l’operador lògic “Or” tornarà el valor “fals” només quan els dos sensors tornin “fals”, altrament tornarà el valor “veritat”. És també interessant confeccionar la taula de valors lògics de la resta d’operadors, per altres exercicis posteriors: T And T = T T And F = F F And T = F F And F = F T XOr T = F T XOr F = T F XOr T = T F XOr F = F Not T = F Not F = T (L’operador “Not” s’aplica només a un sol valor) Contràriament a l’operador “Or”, podem veure que l’operador “And” torna “veritat” només quan els dos valors són “veritat”. Per tant, podem dir que: A And B = Not (A Or B) L’operador “XOr” torna “veritat” quan els dos valors són diferents i ”fals” quan són iguals.
  • 4. Exercici 9: El bloc “Loop” o bucle amb control lògic: desplaçaments repetitius endavant i/o enrere per tornar al lloc d’origen utilitzant varis sensors alhora i el bloc “Motor” o “Move” amb durada il·limitada. Crear un nou programa, per exemple “ex9.rbt”. Deixarem que els alumnes intentin resoldre el següent repte sols. El robot ha d’anar endavant i parar quan topi amb un obstacle o arribi a la línia negra. Caldrà utilitzar un bloc lògic per combinar el resultat dels dos sensors mitjançant l’operador “Or”. Què passa si utilitzem un “And” en comptes d’un “Or”? Donat que el bloc lògic només té dues entrades, com podem fer que el robot tingui en compte més de dos sensors alhora? Deixar que els alumnes esbrinin com fer que el robot pari en funció de si un dels quatre sensors s’activa. La solució és combinar el resultat de dos blocs lògics amb un tercer bloc. Exercici 10: Combinació dels blocs bifurcació i bucle amb control lògic: desplaçaments repetitius endavant i/o enrere utilitzant varis sensors alhora i el bloc “Motor” o “Move” amb durada il·limitada. Crear un nou programa, per exemple “ex10.rbt”. Com podem fer que el robot, “per sempre”, vagi endavant fins arribar a una línia negra i giri sobre el seu eix i torni enrere, fins trobar la línia negra de sortida? A més, com podem aturar tot el procés si el robot xoca amb un obstacle? La solució és posar una bifurcació dins d’un bucle.
  • 5. Finalment, ja tenim els coneixements necessaris per poder realitzar un primer rastrejador. Aquesta és una altra ocasió per tal de fer pensar als alumnes de forma discursiva, i fer-los trobar vàries solucions. Utilitzarem només un sensor de llum, però podem també comparar les possibles solucions amb dos sensors de llum. Un rastrejador és un robot que segueix una línia. Si el rastrejador té un sensor, aleshores aquest, pot seguir un costat o l’altre de la línia, donat que la línia té un gruix. Per exemple, si la línia és negra sobre un fondo blanc i decidim seguir la línia per la dreta, aleshores, si el sensor detecta blanc haurà de girar cap a l’esquerra i si detecta negre cap a la dreta. Aquest algoritme senzill demostra com la combinació de petits moviments locals, aparentment sense sentit (girs a dreta i a esquerra), impliquen un moviment global amb un sentit molt especial, que en aquest cas és seguir o rastrejar una línia. No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que ésta esté dañada. Reinicie el equipo y, a continuación, abra el archivo de nuevo. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuevo.
  • 6. Si tenim varis robots rastrejant, aleshores, per evitar col·lisions, podem controlar la sortida del bucle mitjançant el sensor de contacte, per exemple. Una altra alternativa de rastreig és fer que una roda giri a una velocitat fixa (per exemple el motor B) i reduir o accelerar la roda oposada del robot (per exemple el motor C) segons hagi de girar cap a un costat o cap a l’altre. És interessant construir aquests dos rastrejadors i comparar el seu funcionament. El primer és més lent que el segon, però si les corbes són tancades, aleshores és més precís i funciona millor (no perd la línia).
  • 7. Exercici incremental 5: Arribar al final de la gàbia utilitzant només el sensor de llum associat al bloc bucle, però rastrejant les línies negres. Per realitzar aquest exercici, en comptes de copiar i modificar l’exercici incremental 4 anterior, demanar als alumnes que el construeixin per parts i observin amb atenció com es comporta el rastrejador. De seguida se’n adonaran que com el robot pot rastrejar les línies per la dreta o per l’esquerra, en l’exemple que tenim, donat que el robot surt per la dreta del tauler i el primer gir és cap a l’esquerra, la solució més eficient és rastrejar per l’esquerra. Així, el robot farà el primer gir cap a l’esquerra tot seguint la línia negra intermèdia que interseca les línies límits del tauler. Amb aquesta estratègia, el programa podrà ser molt més compacte, com es podrà comprovar. En primer lloc, podem observar que el rastrejador es va repetint en els llocs on el robot ha de seguir els límits del tauler o les línies intermèdies, i és idèntic, excepte pel que fa el temps de rastreig (control del bucle), que depèn de la longitud de cada línia fins arribar a una intersecció que ha de sobrepassar. Per una altra banda, podem veure que entre el primer bucle rastrejador i el segon, s’insereix un petit gir sobre eix que té la missió d’adreçar el robot per sobrepassar la primera línia intermèdia del tauler. Això mateix succeeix
  • 8. al final del segon bucle, per sobrepassar el final de la línia intermèdia del tauler. A partir d’aquest punt, el robot segueix rastrejant fins el final del recorregut sense cap problema fent el gir a la dreta i arribant al final del recorregut. El robot no tindrà cap problema per sobrepassar la línia negra intermèdia vertical final, donat que rastreja per l’esquerra i no hi ha cap interrupció de la mateixa, en aquest costat, donat que estem al límit del tauler. Pot ser interessant comparar les diferents alternatives de cada grup d’alumnes, rastrejant per la dreta o per l’esquerra, i fins i tot intentant canviar el costat o el sistema de rastreig. Una altra alternativa molt interessant és rastrejar segons el sensor de rotacions intern d’un motor. Al rastrejar, el robot va fent petits moviments a dreta i esquerra, però quan aquest troba una intersecció, aleshores, per tal de seguir el gir de la línia, una de les rodes fa més rotacions que al seguir la línia recta, mentre l’altra roman parada. Per tal de controlar el moviment global del robot, podem detectar quan es produeixen aquest increment de rotacions de la roda adequada. Per controlar els graus de gir o el número de rotacions d’un motor, el panell de control del bloc del sensor de rotacions intern facilita l’opció de comparar les rotacions amb un valor específic. Si les rotacions són superiors o inferiors al valor d’activació, aleshores l’atribut o connexió sí/no del concentrador de dades retornarà el valor “veritat”, que podrem connectar a la presa lògica del bucle, mitjançant un cable de dades, per així aturar el rastrejador. Per tal de connectar el bloc que està dins d’una bifurcació al connector lògic del bucle, que conté la bifurcació, cal utilitzar la “vista plana” o “Flat View” de la bifurcació. Després de fer algunes proves, podrem comprovar que el valor de 60 graus permet trobar el moment on el robot arriba als punts de gir. Suggeriment: Les bifurcacions o “Switch” es poden visualitzar amb la biga de seqüència desdoblada o amb una “vista plana” o “Flat View”. Si una bifurcació està associada a un sensor, aleshores té dos valors, però més endavant, veurem que una bifurcació pot tenir varis valors i aleshores, aquests només es poden visualitzar mitjançant la vista plana. Es pot accedir a cada opció fent clic al “Tab” o “fitxa” adequada. Finalment, per tal de connectar un atribut lògic d’un bloc, que estigui dins d’una bifurcació, al connector lògic d’un bucle que contingui la bifurcació, també cal utilitzar la “vista plana” o “Flat View” de la bifurcació. Panell de control del sensor de rotacions del port B
  • 9. Cal observar, que el sensor de rotacions s’ha de reiniciar després de llegir les rotacions de la roda supervisada, per a cada cicle de rastreig. Per comptar les rotacions, el sensor de rotacions s’ha d’ubicar tot just després de parar el motor supervisat i abans de començar les rotacions del motor oposat. Per aquesta alternativa, a nivell global, l’exercici incremental necessita un rastrejador cada cop que hi ha un canvi de direcció o una intersecció de línia. Per tal de sobrepassar els punts de canvi de direcció només cal, o bé executar algunes rotacions de la roda adequada per girar el robot i començar un nou rastreig, o bé seguir recte, per sobrepassar la intersecció. També cal observar que, en funció del sentit de gir del robot, unes vegades cal supervisar la roda dreta i unes altres l’esquerra. Quines avantatges comporta la utilització del sensor de rotacions en comptes del sensor de llum, per realitzar l’exercici? Si bé amb el sensor de rotacions el codi és menys compacte, el gran avantatge d’aquesta solució és que fins i tot funciona si modifiquem la mida del tauler. Per tant, aquesta solució és més genèrica que l’anterior. Coneixements adquirits: En la unitat didàctica 3 anterior hem vist com el bloc bucle permet repetir accions i si s’associa a un sensor, podem controlar l’execució del seu contingut fins que aquest s’activa o desactiva. Finalment, en aquesta unitat didàctica hem vist que quan el bucle utilitza el control lògic, tenim moltes altres possibilitats de controlar el flux del programa,
  • 10. amb diferents combinacions de sensors, etc. A més, si combinem el bucle amb bifurcacions, tenim un joc de possibilitats infinit, que permet començar a pensar en el concepte d’algoritme, o conjunt de processos ben definits que permeten realitzar tasques molt concretes i específiques, més o menys complexes, com per exemple un rastrejador. 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. Permissions beyond the scope of this license may be available at www.bogatech.org.