Social Icons

dissabte, 28 de desembre del 2013

Solucions 1er torneig

Missió 1: Avançar 792 graus, retrocedir amb rotacions fins la posició incial (2,2voltes), avançar 50 centímetres.

Aquesta missió es basa en utilitzar només blocs de avanç del motor, però configurant-los de diferents maneres.
El primer bloc, tal com diu l'enunciat, ha de ser amb l'opció graus, i s'introdueix el valor de 792.
Per retornar a la posició inicial només caldria tornar a introduir el valor de 792 graus i que la potència fos negativa. Però s'ha d'introduir en rotacions, de manera que s'han de passar els graus a rotacions. Recordar que 1 rotació equival a 360graus. Per tal de no usar cap calculadora i fer-ho directament, s'introdueix un bloc de operacions on divideixi el 792 per 360 i el valor del resultat serà el nombre de voltes que haurà de fer el motor, en aquest cas 2,2.
Per a l'última part no existeix cap bloc específic que et permeti introduir una distància, ja que aquesta variarà segons el radi de les rodes. A les classes s'havia explicat com fer-ho, dividint la distància a recòrrer per la que recorreia un gir de la roda (la distància de l'arc de la roda). S'explica també a aquesta entrada. De la mateixa manera que la part anterior, també es pot utilitzar un bloc d'operacions perquè et realitzi la divisió automàticament. El resultat són rotacions del motor per tant s'han d'introduir a un bloc d'avanç en l'opció de rotacions del motor.



Resultat final:

Missió 2: Girar sobre la roda dreta (360 graus son 340 al programa), que avançi 1500º del motor, torni a girar, ara sobre la roda esquerra, 360º, i finalment que retrocedeixi fins la posició inicial amb la funció voltes.

La base d'aquesta missió és la utilització del girosensor. Existeixen dos maneres de utilitzar-lo, en forma de condició o amb un bloc esperar. El girosensor és el que et permet controlar el gir que fa el robot sobre si, en aquest cas una volta completa sobre la roda dreta.
És més util utilitzar el bloc esperar perquè el programa manté el motor obert (en aquest cas només el de la roda esquerra, i la dreta quieta perquè giri sobre aquesta) i s'espera a continuar fins que el girosensor no incrementa un valor de 360º. Un cop ja ha girat la volta ha de parar de girar, per tant aturar el motor esquerre. El mode que s'ha d'utilitzar no és ni amb rotacions ni graus, simplement mode encés i després mode apagat.

Un cop ha girat i la roda esquerra ha parat de girar s'ha de introduir un bloc avaç dels dos motors amb el mode graus.

A continuació es repeteix el mateix que el primer apartat, lúnic que s'ha de programar pel motor dret en comptes del dret.

El robot haurà de retrocedir per arribar a la posició inicial. Per tant s'introdueix la potència amb un valor negatiu, i tal com diu l'enunciat es col·loca en mode rotacions. El procediment a realitzar per passar els 1500º a rotacions és l'explicat a la missió 1, dividint-ho per 360.


 Resultat final:


Utilitzant condicions quedaria de la següent manera:

Missió 3: Avançar, quan estigui a 50 cm faci un so, quan arribi a 30 es pari el so i el robot.

Aquesta missió tot i semblar molt complicada es basava simplement a entendre l'eunuciat i a saber-lo transcriure al llenguatge programació.

Perquè el robot vagi avançant cal col·locar al principi un bloc de avanç del motor en mode engegat.

Per tal que reprodueixi un so a una distància de 50cm es pot fer mitjançant el bloc esperar o una condició, és però més simple la primera opció. Un cop hagi esperat a que la distància sigui més petita que 50cm (<50) s'ha de col·locar un bloc de so, que reprodueixi indefinidament.
                                             
Llavors s'ha de utilitzar un altre bloc d'esperar, que en aquest cas s'esperarà a que la distància sigui més petita de 30cm (<30) i a continuació aturarà so i motors, o simplement tot el programa. Per aturar el programa s'utilitza aquest bloc:




El programa és pot introduir de manera que estigui esperant a que sigui més petit de 50cm al mateix temps que espera que sigui més petit de 30cm. (Es connecta l'interruptor d'inici a els dos apartats) 
 
O bé es col·loca una part radera l'altra, si més no, perquè sigui més petit de 30cm ha d'haver set anteriorment més petit de 50cm.

Utilitzant condicions s'han de col·locar una dins de l'altra, ja que perquè quan és més petit de 30 és verdader que és més petit de 50. En aquest cas en comptes de col·locar un bloc d'aturar el programa, que no encaixa dins del bucle, és col·loca una interrupció del bucle, que deixa de repetir-se. Despés del bucle no hi ha res més i per tant el programa ja s'hatura.





Cap comentari:

Publica un comentari a l'entrada