SlideShare a Scribd company logo
1 of 10
UNITAT 4. Bifurcacions i bucles avançats: lògica de desplaçament i presa de decisions en funció d’una combinació de sensors.<br /> <br />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.<br /> <br />Una mica de teoria<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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ó.<br /> <br />Primer pas, inserció del bloc al lloc correcte:<br /> <br />Segon pas, expandir el concentrador de dades del bloc i connectar adequadament<br />l’entrada i la sortida de dades de cada bloc amb el cable de dades:<br /> <br />Tercer i últim pas, col·lapsar el concentrador de dades<br />per ocupar menys espai i facilitar la lectura:<br />que és equivalent a<br /> <br />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.<br /> <br />Una mica de teoria<br /> <br />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:<br /> <br />T Or T = T<br />T Or F = T<br />F Or T = T<br />F Or F = F<br /> <br />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”.<br /> <br />És també interessant confeccionar la taula de valors lògics de la resta d’operadors, per altres exercicis posteriors:<br /> <br />T And T = TT And F = FF And T = FF And F = FT XOr T = FT XOr F = TF XOr T = TF XOr F = FNot T = FNot F = T(L’operador “Not” s’aplica només a un sol valor)<br /> <br />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:<br />A And B = Not (A Or B)<br />L’operador “XOr” torna “veritat” quan els dos valors són diferents i ”fals” quan són iguals.<br /> <br />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.<br /> <br />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”?<br /> <br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br /> <br />Si tenim varis robots rastrejant, aleshores, per evitar col·lisions, podem controlar la sortida del bucle mitjançant el sensor de contacte, per exemple.<br /> <br /> <br />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).<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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ó.<br /> <br />Panell de control del sensor de rotacions del port B<br /> <br />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.<br /> <br /> <br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<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 />
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego
Exercici 3 lego

More Related Content

Similar to Exercici 3 lego

Electronica Digital Continuació
Electronica Digital ContinuacióElectronica Digital Continuació
Electronica Digital ContinuacióPedro Pablo
 
Mcu mobil horitzontal
Mcu mobil horitzontalMcu mobil horitzontal
Mcu mobil horitzontalfisicaalparc
 
Control I RobòTica
Control I RobòTicaControl I RobòTica
Control I RobòTicaPedro Pablo
 
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 S4Acarlesfornas
 
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óticaemunoz341
 
Mcu mobil vertical
Mcu mobil verticalMcu mobil vertical
Mcu mobil verticalfisicaalparc
 
Unitat 7 sistemes digitals
Unitat 7 sistemes digitalsUnitat 7 sistemes digitals
Unitat 7 sistemes digitalsdavidsanz50
 

Similar to Exercici 3 lego (12)

Exercici9pag56
Exercici9pag56Exercici9pag56
Exercici9pag56
 
PW_pac1
PW_pac1PW_pac1
PW_pac1
 
Electronica Digital Continuació
Electronica Digital ContinuacióElectronica Digital Continuació
Electronica Digital Continuació
 
Mcu mobil horitzontal
Mcu mobil horitzontalMcu mobil horitzontal
Mcu mobil horitzontal
 
Control I RobòTica
Control I RobòTicaControl I RobòTica
Control I RobòTica
 
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
 
Oo Aplicacions
Oo AplicacionsOo Aplicacions
Oo Aplicacions
 
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
 
Unitat 7 sistemes digitals
Unitat 7 sistemes digitalsUnitat 7 sistemes digitals
Unitat 7 sistemes digitals
 
Apartado1 pdf
Apartado1 pdfApartado1 pdf
Apartado1 pdf
 
Apartado1 pdf
Apartado1 pdfApartado1 pdf
Apartado1 pdf
 

More from Avel·lí

Som Energia: El cooperativisme energètic: la resposta ciutadana
Som Energia: El cooperativisme energètic: la resposta ciutadanaSom Energia: El cooperativisme energètic: la resposta ciutadana
Som Energia: El cooperativisme energètic: la resposta ciutadanaAvel·lí
 
Som Energia: Autoconsum fotovoltaic
Som Energia: Autoconsum fotovoltaicSom Energia: Autoconsum fotovoltaic
Som Energia: Autoconsum fotovoltaicAvel·lí
 
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...Avel·lí
 
Esquela escola publica
Esquela escola publicaEsquela escola publica
Esquela escola publicaAvel·lí
 
Hay alternativas
Hay alternativasHay alternativas
Hay alternativasAvel·lí
 
Gnu ubuntu-facil-v4
Gnu ubuntu-facil-v4Gnu ubuntu-facil-v4
Gnu ubuntu-facil-v4Avel·lí
 
Ubunturef(esp) Comandos
Ubunturef(esp) ComandosUbunturef(esp) Comandos
Ubunturef(esp) ComandosAvel·lí
 
Softlibre enriquecido
Softlibre enriquecidoSoftlibre enriquecido
Softlibre enriquecidoAvel·lí
 
Manual desobediencia
Manual desobedienciaManual desobediencia
Manual desobedienciaAvel·lí
 
Programari lliure, societat lliure:
Programari lliure,  societat lliure:Programari lliure,  societat lliure:
Programari lliure, societat lliure:Avel·lí
 
Ebook openoffice 3-writer-calc-impress
Ebook openoffice 3-writer-calc-impressEbook openoffice 3-writer-calc-impress
Ebook openoffice 3-writer-calc-impressAvel·lí
 
Escola, salud i feina, 3a edició
Escola, salud i feina, 3a edicióEscola, salud i feina, 3a edició
Escola, salud i feina, 3a edicióAvel·lí
 
Cap09. Introducción a Linux Otras tareas elementales
Cap09. Introducción a Linux Otras tareas elementalesCap09. Introducción a Linux Otras tareas elementales
Cap09. Introducción a Linux Otras tareas elementalesAvel·lí
 
Cap04.Introducción a Linux El entorno de trabajo en Ubuntu
Cap04.Introducción a Linux El entorno de trabajo en UbuntuCap04.Introducción a Linux El entorno de trabajo en Ubuntu
Cap04.Introducción a Linux El entorno de trabajo en UbuntuAvel·lí
 
Cap07.Introducción a Linux Aplicaciones de red
Cap07.Introducción a Linux Aplicaciones de redCap07.Introducción a Linux Aplicaciones de red
Cap07.Introducción a Linux Aplicaciones de redAvel·lí
 

More from Avel·lí (20)

Som Energia: El cooperativisme energètic: la resposta ciutadana
Som Energia: El cooperativisme energètic: la resposta ciutadanaSom Energia: El cooperativisme energètic: la resposta ciutadana
Som Energia: El cooperativisme energètic: la resposta ciutadana
 
Som Energia: Autoconsum fotovoltaic
Som Energia: Autoconsum fotovoltaicSom Energia: Autoconsum fotovoltaic
Som Energia: Autoconsum fotovoltaic
 
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...
Som Energia: 1r Congrés d'Energies Renovables i Sostenibilitat en Territoris ...
 
Prova
ProvaProva
Prova
 
Pneumàtica
PneumàticaPneumàtica
Pneumàtica
 
Esquela escola publica
Esquela escola publicaEsquela escola publica
Esquela escola publica
 
Hay alternativas
Hay alternativasHay alternativas
Hay alternativas
 
Retallades
RetalladesRetallades
Retallades
 
Formulari
FormulariFormulari
Formulari
 
Vaga
VagaVaga
Vaga
 
Gnu ubuntu-facil-v4
Gnu ubuntu-facil-v4Gnu ubuntu-facil-v4
Gnu ubuntu-facil-v4
 
Ubunturef(esp) Comandos
Ubunturef(esp) ComandosUbunturef(esp) Comandos
Ubunturef(esp) Comandos
 
Softlibre enriquecido
Softlibre enriquecidoSoftlibre enriquecido
Softlibre enriquecido
 
Manual desobediencia
Manual desobedienciaManual desobediencia
Manual desobediencia
 
Programari lliure, societat lliure:
Programari lliure,  societat lliure:Programari lliure,  societat lliure:
Programari lliure, societat lliure:
 
Ebook openoffice 3-writer-calc-impress
Ebook openoffice 3-writer-calc-impressEbook openoffice 3-writer-calc-impress
Ebook openoffice 3-writer-calc-impress
 
Escola, salud i feina, 3a edició
Escola, salud i feina, 3a edicióEscola, salud i feina, 3a edició
Escola, salud i feina, 3a edició
 
Cap09. Introducción a Linux Otras tareas elementales
Cap09. Introducción a Linux Otras tareas elementalesCap09. Introducción a Linux Otras tareas elementales
Cap09. Introducción a Linux Otras tareas elementales
 
Cap04.Introducción a Linux El entorno de trabajo en Ubuntu
Cap04.Introducción a Linux El entorno de trabajo en UbuntuCap04.Introducción a Linux El entorno de trabajo en Ubuntu
Cap04.Introducción a Linux El entorno de trabajo en Ubuntu
 
Cap07.Introducción a Linux Aplicaciones de red
Cap07.Introducción a Linux Aplicaciones de redCap07.Introducción a Linux Aplicaciones de red
Cap07.Introducción a Linux Aplicaciones de red
 

Recently uploaded

XARXES UBANES I LA SEVA PROBLEMÀTICA.pptx
XARXES UBANES I LA SEVA PROBLEMÀTICA.pptxXARXES UBANES I LA SEVA PROBLEMÀTICA.pptx
XARXES UBANES I LA SEVA PROBLEMÀTICA.pptxCRIS650557
 
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,Lasilviatecno
 
Sílvia_López_Competic3_bloc000002_C8.pdf
Sílvia_López_Competic3_bloc000002_C8.pdfSílvia_López_Competic3_bloc000002_C8.pdf
Sílvia_López_Competic3_bloc000002_C8.pdfsilvialopezle
 
MECANISMES I CINEMÀTICA 1r DE BATXILLERAT
MECANISMES I CINEMÀTICA 1r DE BATXILLERATMECANISMES I CINEMÀTICA 1r DE BATXILLERAT
MECANISMES I CINEMÀTICA 1r DE BATXILLERATLasilviatecno
 
Plans Estudi per Especialitats - El Musical
Plans Estudi per Especialitats - El MusicalPlans Estudi per Especialitats - El Musical
Plans Estudi per Especialitats - El Musicalalba444773
 
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdf
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdfESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdf
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdfErnest Lluch
 

Recently uploaded (8)

XARXES UBANES I LA SEVA PROBLEMÀTICA.pptx
XARXES UBANES I LA SEVA PROBLEMÀTICA.pptxXARXES UBANES I LA SEVA PROBLEMÀTICA.pptx
XARXES UBANES I LA SEVA PROBLEMÀTICA.pptx
 
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,
SISTEMA DIÈDRIC. PLANS, PAREL·LELISME,PERPENDICULARITAT,
 
itcs - institut tècnic català de la soldadura
itcs - institut tècnic català de la soldaduraitcs - institut tècnic català de la soldadura
itcs - institut tècnic català de la soldadura
 
Sílvia_López_Competic3_bloc000002_C8.pdf
Sílvia_López_Competic3_bloc000002_C8.pdfSílvia_López_Competic3_bloc000002_C8.pdf
Sílvia_López_Competic3_bloc000002_C8.pdf
 
MECANISMES I CINEMÀTICA 1r DE BATXILLERAT
MECANISMES I CINEMÀTICA 1r DE BATXILLERATMECANISMES I CINEMÀTICA 1r DE BATXILLERAT
MECANISMES I CINEMÀTICA 1r DE BATXILLERAT
 
Plans Estudi per Especialitats - El Musical
Plans Estudi per Especialitats - El MusicalPlans Estudi per Especialitats - El Musical
Plans Estudi per Especialitats - El Musical
 
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdf
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdfESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdf
ESCOLAERNESTLLUCHINFORME_BAREM_RESOLTES_BAREM.pdf
 
HISTÒRIES PER A MENUTS II. CRA Serra del Benicadell.pdf
HISTÒRIES PER A MENUTS II. CRA  Serra del Benicadell.pdfHISTÒRIES PER A MENUTS II. CRA  Serra del Benicadell.pdf
HISTÒRIES PER A MENUTS II. CRA Serra del Benicadell.pdf
 

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.<br /> <br />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.<br /> <br />Una mica de teoria<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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ó.<br /> <br />Primer pas, inserció del bloc al lloc correcte:<br /> <br />Segon pas, expandir el concentrador de dades del bloc i connectar adequadament<br />l’entrada i la sortida de dades de cada bloc amb el cable de dades:<br /> <br />Tercer i últim pas, col·lapsar el concentrador de dades<br />per ocupar menys espai i facilitar la lectura:<br />que és equivalent a<br /> <br />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.<br /> <br />Una mica de teoria<br /> <br />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:<br /> <br />T Or T = T<br />T Or F = T<br />F Or T = T<br />F Or F = F<br /> <br />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”.<br /> <br />És també interessant confeccionar la taula de valors lògics de la resta d’operadors, per altres exercicis posteriors:<br /> <br />T And T = TT And F = FF And T = FF And F = FT XOr T = FT XOr F = TF XOr T = TF XOr F = FNot T = FNot F = T(L’operador “Not” s’aplica només a un sol valor)<br /> <br />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:<br />A And B = Not (A Or B)<br />L’operador “XOr” torna “veritat” quan els dos valors són diferents i ”fals” quan són iguals.<br /> <br />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.<br /> <br />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”?<br /> <br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br /> <br />Si tenim varis robots rastrejant, aleshores, per evitar col·lisions, podem controlar la sortida del bucle mitjançant el sensor de contacte, per exemple.<br /> <br /> <br />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).<br /> <br /> <br />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.<br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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.<br /> <br />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ó.<br /> <br />Panell de control del sensor de rotacions del port B<br /> <br />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.<br /> <br /> <br /> <br />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.<br /> <br /> <br />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.<br /> <br />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.<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 />