Author Archives: Departament Tecnologia

SCRATCH: ping pong

Creareu el joc de ping pong per dos jugadors. Per començar, creareu tres personantges, les dues pales i la pilota.
Afegiu un escenari que simuli una pista de tenis, posant una franja vermella a l’esquerra i una de blava a la dreta, com es veu al dibuix de dalt. Aquestes franjes són les porteries, de forma que quan la pilota les toca, s’afegeix un punt a qui a fet el gol.

Les pales les nombrareu com Pala1 i Pala2. Copieu els següent codis a les pales:

Pala 1:

Pala 2:

Creeu tres variables: PuntsEsquerra, PuntsDreta i IniciDE. Per veure els marcadors, aneu a l’escenari i cliqueu dintre variables. Un cop dindre, marqueu el quadre de PuntsEsquerra i PuntsDreta.

Poseu-vos sobre el codi de la pilota i copieu el següent codi:

 (continua…)

Comproveu que funciona el joc, i el penges com activitat.

SCRATCH: Asteroids

Crearem un joc d’asteroids.El joc consisteix en una nau espacial que dispara als asteroids, i ha d’evitar ser tocada per ells. Per començar creareu els personantges i el fons:

  • L’escenari que sigui d’un entorn espacial, amb un l’hi ha prou
  • El personantge Nau. creu dos vestits, un d’una nau espacial, i l’altre que simuli una nau trencada, algo semblant amb això:
  • El personatge Asteroid: creeu dos vestits, el d’un asteroid i un altre que simuli un asteroid trencat, com en el cas de la nau.
  • El personantge Balaque clonarem per a obtenir tants com necessitem. Farem que vagi sempre enganxat a la nau, i que es dispari amb una pulsació de tecla. Utilitzarem sensors per detectar quan arriba a dalt de tot.
Cliqueu sobre el personantge Nau i copieu el següent codi:


Busqueu un so d’explosió per afegir al codi.

Ara cliqueu sobre el personantge Bala i copieu el següent codi:
Busqueu un so làser per afegit als sons de la bala
Poseu-vos ara sobre Asteroid i copieu els següents codis. Heu de crear una variable anomenada PUNTS 

(continuació…)
Guardeu el projecte i penjeu-lo com activitat.

SCRATCH: Flappy Bird

Farem un joc anomenat Flappy Bird.
Hem de fer passar l’ocell pels forats sense tocar les barres. Cada vegada que toquem una de les barres perdrem una vida. L’ocell es mourà amb la tecla espai. Si la polsem puja i sinó baixa.

  • Pas 1 Afegeix com a personatge l’ocell.Podeu crear dos o tres vestits per crear sensació de moviment
  • Afegeig les barres verticals, i afegeix el fons a l’escenari. Feu uns quants vestits  per variar l’altura del forat per on ha de passar.
  • Pas 2 Crearem una variable anomenada “incrementY” i una altra anomenada “Vides”

Variant els valors de incrementY podreu veure els diferents moviments que fa el vostre ocell.Quan l’ocell toca una barra, perd una vida, i quan se li acaben les vides, el joc s’acaba.

El bloc següent vestit canvia les barres amb ordre a mesura que van passant. Series capaç de fer que surtin de forma aleatòria?
Guardeu el projecte i penjeu-lo com a activitat.

SCRATCH: Arkanoid

El clàssic joc pica-maons es pot replicar sense gran esforç en Scratch.
Començarem per dibuixar els objectes que necessitem. Dibuixeu quatre objectes:

  • D’una banda la paleta, l’anomenes paleta. 
  • d’altra banda la pilota, l’anomenes pelota
  • i finalment un maó que pintarem d’un determinat color, l’anomenes ladrillo
  • Una línia llarga que la posareu al fons del joc. L’anomenareu linea
Desplaceu els objectes als llocs on voleu que estiguin. De maó feu-ne només un, la resta els duplicareu un cop el codi funcioni

Ara que ja tenim els objectes, comencem a programar. El primer que farem és moure la paleta. Clica sobre la icona de la paleta i copia els següent codi a la pantalla.

La pala es controla amb el moviment del ratolí.

Ara cliqueu sobre el dibuix de la pilota i copia els següents codis:


El primer mou la pilota, si canvieu el nombre de passos, canviareu la velocitat.

El segon canvia la direcció cada cop que toca la paleta. Podeu variar els números a l’atzar per veure els resultats.
Ara clica sobre el maó i copia el seu codi. Heu de crear la variable puntos.
Utilitzant una variable punts podrem anar sumant de a 10 cada vegada que es trenca un maó. Utilitzem Enviar ladrilloroto per enviar un senyal a la pilota als efectes que canviï de direcció. De no fer això la mateixa seguiria de llarg i amb el mateix tir trencaria diversos blocs.
Torna a clicar la pilota i copia el següent codi:
Cada cop que toca un maó, canvia la direcció.
Provem el joc fins ara i si realment la pilota trenca el totxo el que fem és copiar els maons moltes vegades i canviar-los de color (Recorda copiar el maó únicament quan aquest funcionat sinó hauràs de corregir els errors maó per maó). Amb el ratolí desplaça els maons al lloc que vulguis.
Bé, per acabar hem de fer que perdi quan la pilota cau. Per a això realitzarem un petit truc que consisteix que quan la pilota toqui la línia del fons enviarem a l’escenari un senyal de perdre perquè canviï el fons i aturi el programa.
La rematada de l’exercici seria llavors el següent. Ves al codi de la pilota i copia el següent codi:
Ara construireu dos escenaris, el del joc i el de quan s’acaba la partida. Els escenaris els podeu crear vosaltres:
  • L’escanari del joc l’anomenarei stars
  • L’escenari final de joc l’anomenareu perdio
Guarda el codi i envia’l.

ARDUINO: Pràctica 11: Motors de corrent continu controlat per L293

Un motor de corrent continu és un actuador que consumeix una intensitat relativament elevada. La intensitat de corrent màxima que Arduino pot subministrar per un pin de sortida és de 40 mA. Així doncs, per poder governar a un DC motor, així com a qualsevol altre actuador de considerable potència, podem utilitzar:
  • un transistor.
  • un relé.
  • 1 integrat L293D (consisteix en un pont H de díodes, específic per al control de motors de corrent continu, inclusivament el canvi de gir).
Per al control dels nostres motors usarem el L293D

El circuit integrat  L293D








Aquest circuit integrat és un element que serveix per controlar el sentit de gir de 2 motors de corrent continu. Està basat amb els ponts en H que permeten canviar la polaritat dels motors. Aquest circuit per dintre és com es mostra a l’esquema de sota i tal com haurien d’anar connectats els motors:

Per veure com funciona, feu el muntatge de sota connectant un motor al circuit L293D i a la placa Arduino tal com es veu a sota. La placa Arduino està a 5V. Per al control de velocitat i sentit del motor ho farem amb un potenciòmetre, tal com està connectat a sota. Quan giris el potenciòmetre veuràs que podràs canviar la velocitat i el sentit de gir.
Entreu a bitbloq i copieu els següents blocs:
El codi és el següent:
void setup()
{
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}

void loop()
{
int pot=analogRead(A0);
int motord=map(pot,0,1023,0,255);
int motore=map(pot,0,1023,255,0);
analogWrite(9,motord);
analogWrite(10,motore);
}

ARDUINO: Pràctica 10: El sensor d’ultrasons

Aquest sensor usa senyals d’ultrasonors per detectar objectes a una certa distància. Depenen de la resposta en el rebot del so, activa o desactiva l’entrada on està connectat a l’Arduino. Farem una pràctica per veure com es connecta.
Muntarem una alarma amb el sensor d’ultrasons. Necessitareu el sensor i un LED que s’encengui quan el sensor detecti presència, i un resistor per no cremar el LED.

El sensor llença un pols i rep una resposta a través de l’Eco que aquest fa en rebotar contra una superfície sòlida. En aquest cas, per exemple una paret. Aquest principi és el que utilitzarem per a poder mesurar la distància; mesurant el temps entre l’anada i la tornada i sabent la velocitat de propagació del so en l’aire. Munteu amb la placa el següent circuit.
Obre bitbloq i copia el següent esquema:

EL codi és el següent:
long TP_init(int trigger_pin, int echo_pin);
long Distance(int trigger_pin, int echo_pin);

void setup()
{
pinMode( 10 , INPUT );
pinMode( 9 , OUTPUT );
pinMode(7,OUTPUT);
}

void loop()
{
int Distancia=Distance(9,10);
if (Distancia < 40) {
digitalWrite(7,HIGH);
delay(1000);
}else {
digitalWrite(7,LOW);
delay(1000);
}
}

/*** Function definition ***/
long TP_init(int trigger_pin, int echo_pin)
{
digitalWrite(trigger_pin, LOW);
delayMicroseconds(2);
digitalWrite(trigger_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trigger_pin, LOW);
long microseconds = pulseIn(echo_pin ,HIGH);
return microseconds;
}
long Distance(int trigger_pin, int echo_pin)
{
long microseconds = TP_init(trigger_pin, echo_pin);
long distance;
distance = microseconds/29/2;
if (distance == 0){
distance = 999;
}
return distance;
}

El pin 9 envia el senyal d’ultrasons, mentre que el 10 és el que el rep. Si la distància és menor de 40cm, s’encendrà el LED del pin 7. Si la distància augmenta, el LED s’apaga.

PRÀCTICA AVANÇADA: usa dos LEDS, un de verd i un de vermell. Quan la distància del sensor sigui més petit que 30 cm, s’encengui el vermell i s’apagui el verd. Si la distància és major, que s’encengui el verd i s’apagui el vermell.

ARDUINO: Pràctica 9: Cicle For(). Llums intermitents

Algunes vegades es requereix nomenar molts pins amb una sola instrucció i fer alguna cosa amb cada un. Per exemple, en aquest exemple parpellegen 6 LEDs connectats a Arduino, usant un cicle for () per al cicle d’anada i tornada a través dels pins digitals 2 a 7. Els LEDs s’encenen i apaguen en seqüència, usant les funcions digitalWrite () i delay ().
PRÀCTICA:
Què es necessita?
  • arduino
  • 6 Resistències de 220 ohms
  • 6 LEDs
  • Cables d’interconnexió
  • protoboard
Connectar dels sis LEDs cadascun amb una resistència de 220 en sèrie, als pins 2 a 7 de l’Arduino. Aquí es troba l’esquema.
Enteu a bit bloq i copieu el següent esquema:
En el cicle principal del codi, s’utilitzen dos cicles per recórrer de forma incremental, pas a pas a través dels LEDs, un per un, del pin 2 al pin 7. Quan el pin 7 està encès, el procés s’inverteix, fent que els LEDs es prenguin al contrari de com ja s’havia fet.
El codi és el següent:
void setup()
{
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}

void loop()
{
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);

int pins=0;
for (pins = 2; pins <= 7; pins++) {
pinMode(pins,OUTPUT);
digitalWrite(pins,HIGH);
delay(100);
}
for (pins = 7; pins <= 2; pins--) {
pinMode(pins,OUTPUT);
digitalWrite(pins,LOW);
delay(100);
}

}

Proveu de canviar el temps d’espera per veure diferents efectes.

PRÀCTICA AVANÇADA: incorporeu més leds i mireu de fer el mateix efecte.

PRÀCTICA AVANÇADA 2: serieu capaços de fer la seqüència de manera que només estigui un llum encès?

ARDUINO. Pràctica 8: EL sensor CNY70

El dispositiu CNY70 és un sensor òptic infraroig de curt abast (menys de 5 cm) que s’utilitza per detectar colors d’objectes i superfícies. El seu ús més comú és per construir petits robots seguiu la línia. Conté un emissor de radiació infraroja (fotodiode) i un receptor (fototransistor). El fotodíode emet un feix de radiació infraroja, el fototransistor rep aquest feix de llum quan es reflecteix sobre alguna superfície o objecte.
Depenent de la quantitat de llum rebuda pel fototransistor el dispositiu envia un senyal de retorn a Arduino.
El sensor CNY70 pot utilitzar com a entrada digital o analògica. En aquest exemple s’ha utilitzat com a entrada digital per a distingir dos colors: blanc o negre. Quant el sensor està orientat cap a una superfície o objecte de color negre aquest absorbeix gran part de la llum emesa pel díode. Llavors el sensor enviarà un valor alt (HIGH – 1) a Arduino. Al seu torn quan el sensor se situa sobre una superfície o objecte de color blanc gran part de la llum emesa pel díode serà reflectida al fototransistor. Llavors, el sensor enviarà un valor alt (LOW- 0) a Arduino.
El CNY70 té quatre terminals. Per distingir els terminals per tal de poder fer la connexió correctament, has de col·locar el sensor amb la part del fotodíode i del fototransistor cap amunt i els terminals cap avall. A més, la cara del sensor que està serigrafiada amb el nom del dispositiu ha d’estar situada en la teva dreta, tal com es mostra en la següent imatge.
Aquest sensor disposa de 4 terminals, dos d’ells es connecten entre ells per connectar al positiu (cable vermell), un altre al negatiu (cable negre), i un tercer que és que va als pins d’entrada d’arduino (cable blanc de la foto).
Aquests sensors els podeu trobar ja encapsulats amb les connexions preparades.
La pràctica que fareu serà  encendre un LED quan aquest detecti una superfície negra. Entreu a bitbloiq i copieu el següent esquema. Al pin digital 8 hi ha el sensor, i al 5 poseu el LED. Recordeu de posar una resistència en sèrie per a que no es faci malbé.
L’Esquema que heu de fer amb la placa és el següent:
Carregueu el programa, i poseu un paper negre sota el sensor a veure què passa. El LED s’hauria d’encendre
El codi del programa és el següent:
void setup()
{
pinMode( 8 , INPUT);
pinMode(5,OUTPUT);}

void loop()
{ 
int color=digitalRead(8); 
if (color == 0) 
{ 
digitalWrite(5,HIGH); delay(300);
}
}

PRÀCTICA AVANÇADA: usant dos leds i el sensor d’infraroigs, feu que s’engegui un d’ells qua passi la superfície negra, i que s’encengui l’altre quan l’apartis, apagant el primer.

El problema de Monty Hall

En un concurs, el concursant tria una porta entre tres, i el seu premi consisteix en el que es troba darrere. Una d’elles amaga un cotxe, mentre que a les altres dues hi ha una cabra. Llavors el presentador, que sap on és el cotxe, obre una de les portes que no has triat i mostra que darrere d’ella hi ha una cabra. El concursant ara té l’opció de canviar la porta  escollida. Ho ha de fer per tenir més probabilitats d’aconsseguir el cotxe, o no?
Aquest és el problema de Monty Hall, on molts matemàtics han estat discutint les probabilitats d’obtenir el cotxe canviant de porta o no. La majoria de matemàtics diuen que és el mateix, que les probabilitats són del 50% en cada porta.
Però una persona, Marilyn vos Savant, catalogada com la persona amb el quocient intelectual més alt del món, va dir que no, que tens més opcions d’obtenir el cotxe si canvies la porta que has triat inicialment. Marilyn va rebre molts correus de matemàtics acusant-la de donar una resposta errònia.
I tú, què en penses?

Si vols fer la prova, entra a la simulació i juga unes quantes vegades canviant de porta i no. Veuràs els resultats.

simulació

GIMP Pràctica 12: efecte petit planeta

Aquest efecte s’anomena “efecte planeta”, i anem a veure com es fa:
  • Tria una fotografia que tingui un horitzó el més horitzontal possible.
  • A la part superior de la fotografia seria idea tenir un cel blau, negre o qualsevol color el més sòlid i regular que es pugui com per evitar deformacions posteriors.
  • A la part inferior, com menys objectes hagi; millor.
  • Utilitza fotografies amb un ampli ample i poca alçada.
El que fem a continuació és escalar la imatge per fer que aquesta sigui un quadrat perfecte. Per això transformarem l’alt de la fotografia prenent l’ample com a base.
  • Vés a Imatge; Escalar Imatge
  • “Trenquem” la baula de proporcionalitat que es veu en la imatge entre els dos valors d’ample i alçada.
  • Amb això podrem modificar lliurement l’altura.
  • Modifiquem l’altura posant-li el valor de l’ample de la nostra fotografia.
La imatge et quedarà així:
  • Gireu la imatge.
  • Anem a Imatge> Transformar> Girar 180º

  • Ara és quan intentarem emular la projecció estereogràfica amb el filtre Coordenades Polars.
  • Anem a Filtre; Distorsions; Coord. Polars.
  • Al menú de Coordenades Polars posarem els següents valors:
  • Titllem Mapejar des dalt i A Polars
  • En Angle de desfasament utilitzin el que els sembli segons la seva fotografia. Jo vaig fer servir 230.
  • Amb això quedarà format el nostre planeta.

  • Afegim ambient i esborrem algunes imperfeccions. Ja tenim l’efecte aplicat, però hem de fer que aquestes línies d’unió en el cel dissimulin. Per a les cantonades blanques, pots prendre el color del cel i utilitzar el teu eina de farciment.
  • Per unir el farciment amb el cel, pots utilitzar l’eina de clonat així com també l’eina de gargotejat. Amb unes quantes línies, ja tindràs un cel homogeni.
  • I amb la mateixa tècnica podràs crear alguns núvols com les que es veuen en la imatge final.
  • Pots afegir també un lleu ajust de contrast i fins i tot utilitzar l’eina de marcatge a Foc / Cremar per enfosquir les vores de la teva planeta.
Quan acabis, exporta-la amb format jpg i penja-la al teu blog.
Fes un parell de composicions més per practicar