Social Icons

Featured Posts

Scratch

Els nostres inicis

Moway

Un petit robot per introduir-se al món de la robòtica

LEGO

Mindstorms EV3

diumenge, 12 de gener del 2014

Comptador de voltes

En les curses de cotxes o motos, es necessita un comptador que compti cada volta que fa el líder d'una cursa. Per això es necessita un comptador programat per això.
En el nostre robot de LEGO el que hem fet es que el robot compti cada cop que ell dona una volta sobre ell mateix, i així successivament fins el nombre de voltes que vulguem.
A més a més també hem creat una condició que si veu una paret molt a prop, s'aturi el robot. Això en la realitat faria referència a un xoc d'un cotxe, o moto, amb la paret i la fi de la cursa per a ell.
Programació amb el software de LEGO
En aquest cas la condició dura fins l'infinit, pero en cas de la realitat (una cursa), es pot programar durant el nombre de voltes que duri aquesta.
Aquesta programació és molt habitual en aquets casos.
En aquest vídeo hi la la pràctica esmentada anteriorment:


dissabte, 11 de gener del 2014

Cançó

Tot i semblar un programa complicat no ho és. Només es tracta d'utilitzar el sensor de colors i relacionar cada color amb una nota diferent. Llavors el robot va avançant a una velocitat constant.

Aquesta relació s'estableix amb una condició de manera que el programa sempre està comprovant quin color hi ha mentres avança. La durada de 0,8 del so regula aquesta comprovació, així doncs les repeticions són de 0,8segons.



D'aquesta manera els colors col·locats en ordre poden reproduir qualsevol cançó (sempre que siguin notes entre el Do3 i el La3 sense tenir en compte els semitons ja que no hi ha més col·lors per relacionar). La durada de les notes es controla separant els colors més o menys distància ja que el robot anirà sempre a la mateixa velocitat. Aquest programa té cada nota configurada a 0,8segons, per tant les corxeres tindran aquesta durada i les negres 1,6segons (el tempo és =76). Aquest temps no és pot reduir ja que sinó el sensor no és capaç d'identificar el color i no sona res.

Als següents vídeos el robot interpreta Jingle Bells i l'Himne de l'Alegria.



dimarts, 7 de gener del 2014

Constructor d'El meu bloc

El programa LEGO permet ajuntar una seqüència de blocs en un de sol, creant el meu bloc. Aquest bloc és pot personalitzar amb una imatge que l'identifiqui i també s'hi poden afegir entrades i sortides de dades.
Aquesta opció és molt útil de cara a utilitzar un miniprograma en diferents Projectes o Programes ja que un cop l'has creat el pots introduir als altres projectes, o fins i tot guardar-los i compartir-los amb altres usuaris.


Per crear-lo has de seleccionar un conjunt de blocs i a Herramientas-Constructor de mi bloque. En aquest cas el robot dibuixa un quadrat, i si es vol utilitzar més d'un cop és més útil fer servir El meu bloc.

Aquest bloc equival a tots els altres mostrats a la imatge superior

El bloc està disponible al apartat els meus blocs. A més a més es pot modificar aquest bloc com si fos un programa qualsevol, i els canvis es guardaran a tot arreu.





dilluns, 6 de gener del 2014

Robot-alarma i seguidor de línia

El dia de la festa de Nadal, cada grup havia de preparar dues pràctiques per representar-les en una mena d'exhibició al hall de l'institut: una feta pel tutor del grup i l'altra pels membres del grup.

Robot-alarma


Els alumnes del tercer grup van fer un robot-alarma que, dins d'un taulell de pràctiques, es movia buscant un instrús (la paret) que a una certa distància d'aquest activava l'alarma. Per ser aturada s'havia de prémer el sensor tàctil i el robot caçava l'intrús (baixava la palanca) i se l'emportava retrocedint. Aquest procés s'anava repetint dins d'un bucle.
Robot-alarma

Seguidor de línia


En el meu cas vaig pensar en el fet que el robot pogués seguir una línia. Per això calia la condició del sensor de color, ja que si veia la línia havia de fer una cosa o una altra.
Després de pensar com afrontar el repte, vaig pensar que si quan veia la línia girava cap a la dreta i que quan deixava de veure la línia parava el motor de la dreta i engegava el de l'esquerra, poc a poc el robot aniria avançant i girant cap ambdós costats. Primer vaig provar amb una línia recta i va funcionar i després ja vaig construir una mena de circuit en forma de zero que el robot seguia de la forma esmentada.
Seguidor de línia
La representació va ser un èxit i es va aplegar una gran quantitat de gent per veure totes les exhibicions que vam fer els tres grups de robòtica.

En aquest vídeo hi ha la exhibició del dia de Nadal del robot seguidor de línia:









dilluns, 30 de desembre del 2013

Dibuixant

A l'equip1 de cara a la exhibició de Nadal es va proposar fer que el robot pugues realitzar nombres. Després d'una pluja d'idees es va proposar que portes un llapis i que dibuixes el nombre de vegades que havíem pitjat el polsador. Aquest és l'interior d'aquest repte:

El primer aspecte que cal tenir en compte és que sigui capaç de comptar quantes vegades s'ha pitjat el polsador. S'ha establit una variable de manera que cada vegada que es pitjes li sumes +1 i que aquest valor fos el que s'ha de dibuixar. 
La variable té el nom de "rot". Primerament s'observa que se li assigna el valor 0 i dins del bucle es llegirà, se li sumarà 1 i es tornarà a escriure cada vegada que el polsador tingui una senyal

Un inconvenient és quanta estona ha de estar comprovant el nombre de pulsacions. Si només ho comproves un cop com a molt es podria polsar una vegada, i si s'establis un temps determinat o no tindries prou temps per fer per exemple 30pulsacions i si en fessis una s'estaria molta estona a realitzar l'acció. L'opció ha set que el temps a esperar fos 3 segons des de la última pulsació, de manera que és té aquest marge de temps per fer cada pulsació. La manera d'introduir-ho és que amb cada pulsació a part de sumar a la variable es renicii el cronòmetre i hi hagi un bloc que compari si el temps és major de 3.
Cada vegada es renicia el cronòmetre
Sempre es va comprovant si el temps és més gran de 3segons, si ho és es deixa de repetir el bucle amb l'opció interrumpir el bucle. També se li pot assignar una informació visual com és el cas de les llums, quan hagin passat els tres segons es mostraran vermells
El nombre de pulsacions també es pot veure a la pantalla mitjançant un bloc que mostra el nombre associat a la variable.

Si el temps és major s'atura el bucle que estava comprovant el nombre de pulsacions i salta al següent bloc. Ara només cal llegir el valor de la variable i associar-lo amb tots els possibles nombres. Primerament s'ha realitzat de manera més simple amb un so. A la condició existeix un mode numèric on per cada valor que rep realitza una acció diferent. La variable s'introdueix al lector d'aquesta condició.
valor de la variable introduit al interruptor
Ara només cal relacionar cada valor amb el so existent al programa per cada nombre. 

Si el valor és 0 el so que es repruirà sera Zero
Al programa només existeixen els sons del 0 al 9. Per realitzar els nombres més grans de zero primer s'identifiquen amb un >10 i si és verdader es reprodueix primer el nombre 1 i després es resta 10 al valor i al ser un nombre del 0 al 9 ja es pot reproduir exactament com s'ha explicat abans.

A continuació ve la part més artística. S'ha de muntar el robot d'una manera que pugui sostenir un llapis i pugui aixecar i abaixar. Aquest braç va controlat amb el servomotor mitjà i col·loca el llapis en posició perquè ratlli.

    


Per aconseguir que el robot dibuixi un número amb aquesta eina s'ha de baixar la palanca i llavors programar els motors de les rodes perquè al moure's el robot el traç del llapis sigui un nombre. 
A cada nombre que s'hagi pitjat al polsador li correspon la respectiva configuració.

Com a exemple els vídeos del robot dibuixant els números 1, 2, 4 i 9:














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.





dimecres, 25 de desembre del 2013

Missions 3r torneig


1- Avançar 1500 graus (lent), emetre un so , retrocedir amb rotacions fins la posició inicial (lent), emetre un so, avançar 90 centímetres (normal)  i girar sobre la roda dreta 3 segons (ràpid).




2- Avançar 1200º, girar  180º(165 al programa) sobre la roda dreta , que torni fins la posició inicial amb la funció voltes.
Finalment giri 360º(345 al programa) sobre la roda esquerra.





3- Des d’una posició inicial de 10cm de la paret, que el robot retrocedeixi i quan estigui a una distància de 50cm de la mateixa paret doni mitja volta (180º són 165 al programa) i després emeti un so.





4- S’ha de detectar les quatre parets del taulell: apropar-s’hi a una distància de aprox 30cm de cada paret i emetre un so. (Optatiu, que els sons siguin one, two, three i four.)




5- Avançar, quan estigui a 60 cm faci un so, quan arribi a 25 es pari el so i el robot.Quan es pari tot, que faci un so diferent i s’il·luminin les tecles del robot de color vermell.

Missions 2n torneig


1- Avançar 1584 graus (ràpid), retrocedir amb rotacions fins la posició inicial (lent), avançar 75 centímetres (normal)  i girar sobre una roda 5 segons (ràpid).



Total 10 punts



2- Avançar 1440º del motor, girar  180º(165 al programa) sobre la roda dreta , que torni fins la posició inicial amb la funció voltes.
Finalment giri 180º(165 al programa) sobre la roda esquerra.

Total 14 punts



3- Des d’una posició inicial de 10cm de la paret, que el robot retrocedeixi i quan estigui a una distància de 50cm de la mateixa paret (US OBIGATORI DEL SENSOR ULTRASONIC) doni mitja volta (180º són 165 al programa) i després emeti un so.

Total 18 punts