Difference between revisions of "Seguidor de línies virtual"

From Edutec Wiki
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
  
[[File:Seguidor1.png|border|left|400px]]Un '''seguidor de línies''' és un rastrejador que té com a objectiu, com el mateix nom indica, seguir una línia dibuixada, per exemple, d’un color més fosc situada sobre un fons d’un color més clar. El rastrejador funciona mitjançant '''sensors'''. En funció de la complexitat del recorregut, són necessaris més o menys sensors.
+
[[File:Seguidor1.png|border|left|400px|Seguidor1.png]]Un '''seguidor de línies''' és un rastrejador que té com a objectiu, com el mateix nom indica, seguir una línia dibuixada, per exemple, d’un color més fosc situada sobre un fons d’un color més clar. El rastrejador funciona mitjançant '''sensors'''. En funció de la complexitat del recorregut, són necessaris més o menys sensors.
  
 
Existeixen seguidors de línies virtuals i reals. Aquesta pràctica construeix un seguidor de línies '''virtual '''per a introduir alguns '''conceptes bàsics de robòtica''', com són els sensors, la presa de decisions amb un mecanisme de control o la resposta per modificar el comportament del sistema.
 
Existeixen seguidors de línies virtuals i reals. Aquesta pràctica construeix un seguidor de línies '''virtual '''per a introduir alguns '''conceptes bàsics de robòtica''', com són els sensors, la presa de decisions amb un mecanisme de control o la resposta per modificar el comportament del sistema.
Line 16: Line 16:
 
 
 
 
  
==   ==
+
 
 +
 
 +
 
  
 
== Seguidor de línies virtual amb '''Snap!''' ==
 
== Seguidor de línies virtual amb '''Snap!''' ==
  
Un robot pot tenir incorporats uns sensors que van a sobre d'ell i que són els que saben detectar els paràmetres físics, en aquest cas un canvi de color o un canvi de contrast.
+
Un robot pot tenir incorporats uns sensors que van a sobre d'ell i que són els que saben detectar els paràmetres físics, en aquest cas un canvi de color o un canvi de contrast. 
<p style="text-align: justify">L'aproximació a la realització del seguidor de línies amb '''<span class="hiddenSpellError">Snap</span>!'''&nbsp;té semblances amb un de real.&nbsp;Per fer-ho s'aprofiten dues característiques úniques <span class="hiddenGrammarError">de&nbsp;</span>[[Introducció_a_Snap!|<span class="hiddenSpellError">Snap</span>!]], com són la possibilitat de vincular objectes i la comunicació entre ells.</p> <p style="text-align: justify"><br/> El projecte es compon del robot "Robot" i dos sensors "Sensor Dret" i "Sensor Esquerra" vinculats al robot.</p> <p style="text-align: justify">Ara que tenim els dos sensors, hem de veure com aquest enviem la seva informació al nostre robot. Per això fem servir altra característica de l'<span class="hiddenSpellError">Snap</span><span class="hiddenGrammarError">! què</span> és la possibilitat de preguntar a un altre objecte. És fàcil saber si un objecte toca un altre fent servir el bloc "tocant ...", si ho fem amb el sensor dret per exemple, obtenim el següent resultat:</p> <p style="text-align: justify">[[File:Seguidor4.png|RTENOTITLE]][[File:Seguidor5.png|RTENOTITLE]]</p> <p style="text-align: justify">&nbsp;</p> <p style="text-align: justify">La clau està es que el robot pugui preguntar als sensor si estan tocatn el camí. Per fer-ho es fa servir el bloc "pregunta ... per ..." que es pot trobar a control i que demana&nbsp;un sprite (objecte) i una expressió lambda (una funció a la qual poden cridar).'''&nbsp; '''La icona de ''Snap! ''ve d'aquesta característica i fent una mica de recerca sobre expressió lambda a Internet es pot esbrinar perquè el personatge de l'''Scratch'' es diu Alonzo.</p> <p style="text-align: justify">[[File:Seguidor3.png|RTENOTITLE]]</p> <p style="text-align: justify">El bloc&nbsp; "tocant ..." dels sensor retorna si aquests toquem o no un&nbsp; altre objete.&nbsp; En el nostre cas es necessari sber si el sensor tocan el camí per tal de fer un moviment per ajustar la trajectoria. Si ho fem amb el sesor dret tindioem el següent codi:</p> <p style="text-align: justify">[[File:Seguidor6.png|RTENOTITLE]][[File:Seguidor5.png|RTENOTITLE]]</p> <p style="text-align: justify">&nbsp;</p> <p style="text-align: justify">Ara només resta fer servir un parell de blocs d'esdeveniment del tipus "Quan..." i respondre a la detecció del camí amb un lleuger gir del robot (com si s'activessin els motors) en el sentit adequat:</p> <p style="text-align: justify">'''&nbsp;[[File:Seguidor2.png|RTENOTITLE]]'''</p> <p style="text-align: justify">El robot es mou, que és el que sap fer, i va preguntant als sensors si està&nbsp;tocant la linea, que és el que saben fer. Quan el sensor esquerra la toca, el robot &nbsp;gira una mica en aquesta direcció, quan toca el dret fa el contrari.</p>  
+
<p style="text-align: justify">L'aproximació a la realització del seguidor de línies amb '''<span class="hiddenSpellError">Snap</span>!'''&nbsp;té semblances amb un de real.&nbsp;Per fer-ho s'aprofiten dues característiques úniques <span class="hiddenGrammarError">de&nbsp;</span>[[Introducció_a_Snap!|<span class="hiddenSpellError">Snap</span>!]]:&nbsp;la possibilitat de vincular objectes i la comunicació entre ells.&nbsp;El projecte es compon del robot "Robot" i dos sensors, "Sensor Dret" i "Sensor Esquerra", vinculats al robot.</p> <p style="text-align: justify">S'usa una altra característica de '''<span class="hiddenSpellError">Snap</span>'''<span class="hiddenGrammarError">'''!''':&nbsp;</span>la possibilitat de preguntar a un altre objecte. És fàcil saber si un objecte toca un altre fent servir el bloc "'''tocant ...'''". Si es fa amb el sensor dret, per exemple,&nbsp;s'obté:</p> <p style="text-align: justify">[[File:Seguidor4.png|RTENOTITLE]][[File:Seguidor5.png|RTENOTITLE]]</p> <p style="text-align: justify">La clau està en&nbsp;que el robot pugui preguntar als sensors si estan tocant&nbsp;el camí. Per fer-ho es fa servir el bloc "'''pregunta ... per ...'''" que es pot trobar a la categoria '''<span style="background-color:#FFD700;">Control</span>''' i que demana&nbsp;un objecte&nbsp;i una funció a la que&nbsp;cridar.'''&nbsp;'''La icona de '''Snap!''', amb una [https://ca.wikipedia.org/wiki/Càlcul_lambda lambda],&nbsp;ve d'aquesta característica, relacionada amb [https://ca.wikipedia.org/wiki/Alonzo_Church Alonzo].</p> <p style="text-align: justify">[[File:Seguidor3.png|RTENOTITLE]]</p> <p style="text-align: justify">El bloc&nbsp; "'''tocant ...'''" dels sensors retorna ''cert'' o ''fals'' segons si aquests toquen&nbsp;o no un&nbsp;altre objete.&nbsp;Es necessari saber si el sensor toca&nbsp;el camí per fer un moviment a esquerra o dreta que ajusti&nbsp;la trajectoria. Fixa't que cal també un camí prou gruixut, no n'hi ha prou amb una línia fina. El codi pel sensor dret és:</p> <p style="text-align: justify">[[File:Seguidor6.png|RTENOTITLE]][[File:Seguidor5.png|RTENOTITLE]]</p> <p style="text-align: justify">Ara cal afegir&nbsp;blocs d'esdeveniment del tipus "Quan..." i respondre a la detecció del camí amb un lleuger gir del robot (com si s'activessin els motors) en el sentit adient:</p> <p style="text-align: justify">'''&nbsp;[[File:Seguidor2.png|RTENOTITLE]]'''</p> <p style="text-align: justify">El robot es mou&nbsp;i va preguntant als sensors, que estan per fora del cami,&nbsp;si està&nbsp;tocant el camí. Quan el sensor esquerra toca el camí, el robot gira una mica cap a fora. El dret ho fa girant en sentit contrari.</p>  
== Variant amb ''Scratch'' ==
+
== Variant amb '''Scratch''' ==
  
El present exercici es presenta mitjançant la programació amb ''Snap!''. El mateix exercici es pot seguir amb [[Ejercicio:_Introducción_a_Scratch|Scratch]] a [[Seguidor_de_línies_virtual_amb_Scratch|Seguidor de línies virtual amb Scratch. ]]També tenim l'opció d’importar el projecte creat amb ''Scratch'' a l’''Snap! ''i aconseguir així exactament el mateix programa traduït amb el software d’''Snap!'' a través del següent [http://djdolphin.github.io/Snapin8r2/ enllaç].
+
El mateix exercici es pot fer amb [[Ejercicio:_Introducción_a_Scratch|Scratch]] a [[Seguidor_de_línies_virtual_amb_Scratch|Seguidor de línies virtual amb Scratch. ]]Es pot importar el projecte creat amb '''Scratch '''a '''Snap!''',''i tenir&nbsp;exactament el mateix programa traduït, usant aquest&nbsp;[http://djdolphin.github.io/Snapin8r2/ enllaç].''
  
 
&nbsp;
 
&nbsp;
  
 
&nbsp;
 
&nbsp;

Latest revision as of 00:45, 18 June 2019

Seguidor1.png
Un seguidor de línies és un rastrejador que té com a objectiu, com el mateix nom indica, seguir una línia dibuixada, per exemple, d’un color més fosc situada sobre un fons d’un color més clar. El rastrejador funciona mitjançant sensors. En funció de la complexitat del recorregut, són necessaris més o menys sensors.

Existeixen seguidors de línies virtuals i reals. Aquesta pràctica construeix un seguidor de línies virtual per a introduir alguns conceptes bàsics de robòtica, com són els sensors, la presa de decisions amb un mecanisme de control o la resposta per modificar el comportament del sistema.

L’exemple es pot  trobar en aquest enllaç.

 

 

 

 

 

 

 

Seguidor de línies virtual amb Snap!

Un robot pot tenir incorporats uns sensors que van a sobre d'ell i que són els que saben detectar els paràmetres físics, en aquest cas un canvi de color o un canvi de contrast. 

L'aproximació a la realització del seguidor de línies amb Snap! té semblances amb un de real. Per fer-ho s'aprofiten dues característiques úniques de Snap!: la possibilitat de vincular objectes i la comunicació entre ells. El projecte es compon del robot "Robot" i dos sensors, "Sensor Dret" i "Sensor Esquerra", vinculats al robot.

S'usa una altra característica de Snap!la possibilitat de preguntar a un altre objecte. És fàcil saber si un objecte toca un altre fent servir el bloc "tocant ...". Si es fa amb el sensor dret, per exemple, s'obté:

RTENOTITLERTENOTITLE

La clau està en que el robot pugui preguntar als sensors si estan tocant el camí. Per fer-ho es fa servir el bloc "pregunta ... per ..." que es pot trobar a la categoria Control i que demana un objecte i una funció a la que cridar. La icona de Snap!, amb una lambda, ve d'aquesta característica, relacionada amb Alonzo.

RTENOTITLE

El bloc  "tocant ..." dels sensors retorna cert o fals segons si aquests toquen o no un altre objete. Es necessari saber si el sensor toca el camí per fer un moviment a esquerra o dreta que ajusti la trajectoria. Fixa't que cal també un camí prou gruixut, no n'hi ha prou amb una línia fina. El codi pel sensor dret és:

RTENOTITLERTENOTITLE

Ara cal afegir blocs d'esdeveniment del tipus "Quan..." i respondre a la detecció del camí amb un lleuger gir del robot (com si s'activessin els motors) en el sentit adient:

 RTENOTITLE

El robot es mou i va preguntant als sensors, que estan per fora del cami, si està tocant el camí. Quan el sensor esquerra toca el camí, el robot gira una mica cap a fora. El dret ho fa girant en sentit contrari.

Variant amb Scratch

El mateix exercici es pot fer amb Scratch a Seguidor de línies virtual amb Scratch. Es pot importar el projecte creat amb Scratch a Snap!,i tenir exactament el mateix programa traduït, usant aquest enllaç.