Captures de pantalla

Si voleu gravar un vídeo gravant la pantalla de l’ordinador, podeu usar molts programes disponibles a internet. Us en proposo dos, un per windows i l’altre per Ubuntu:

  • CamStudio per Windows. Diuen que és el millor per fer aquesta tasca.
  • Vokoscreen per Ubuntu. Aquest l’he utilitzat i és molt senzill i intuïtiu d’utilitzar. Es pot gravar tota la pantalla o l’àrea que vosaltres vulgueu. També podeu tenir la webcam activada per que també es quedi gravada la vostra imatge metre feu l’explicació. Aquest programa el podreu trobar als repositoris d’Ubuntu.

 Si us animeu a gravar lliçons aprofitant aquesta tecnologia els podeu provar.

ARDUINO: Pràctica 14: Cub de LED’s

Un cub de LED’s és una estructura formada per LED’s units entre ells formant un cub. Aquestes estructures poden ser més o menys grans depenen del nombre de LED’s que disposeu. La pràctica que fareu serà d’un cub 3x3x3, total 27 LED’s.

Per començar prepareu una plantilla per soldar els LED’s. Amb una fusta feu forats amb una broca de 5 mm de diàmetre i separats uns 2 cm entre ells formant un cub, tal com es veu a la figura:

Poseu 9 LED’s als forats doblegant el terminal més curt i dirigint-lo cap un dels LED’s del costat. Els terminals més llargs s’han de deixar verticals. Un cop fet, soldeu els terminals curts entre ells tal com es veu a la foto de sota. El LED del mig el soldeu a qualsevol dels del costat.
Quan els tingueu tots soldats, retireu l’estructura i torneu a fer el mateix dues vegades més per completar els tres pisos de l’estructura
Poseu de nou una de les estructura a la plantilla i aneu soldant els terminals llargs amb els d’una altra estructura tal com es veu a la foto:
Repetiu l’operació fins que tingueu els tres pisos muntats. Us ha de quedar més o menys així:

Per connectar a la placa Arduino l’estructura, heu de contar 9 columnes per 3 files. Soldeu un cable a cada fila i columna tal com es veu a la foto:

Quan els tingueu soldats munteu la següent l’estructura amb l’Arduino:
Els cables vermells són els de les 9 columnes, que van amb un resistor connectats als pins del 1 al 9. Els cables verds corresponen a les files, que van a través d’un transistor cadascuna d’elles conenctats als pins 10, 11 i 12.
Obriu el programa Arduino i copieu el següent codi per fer els efectes de llum:
int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int Filas[] = {12, 11, 10};
int RandFila;     //Variable para fila aleatoria
int RandColumna;  //Variable para columna aleatoria
void setup()
{
  int contador;
  for (int contador = 1; contador < 10; contador++){
    pinMode(Columnas[contador], OUTPUT); }
  for (int contador = 1; contador < 4; contador++){
    pinMode(Filas[contador], OUTPUT); }
}
void loop()
{
  RandLed();
}
void RandLed()
{
  RandFila = random(0,3);
  RandColumna = random(0,9);
  digitalWrite(Filas[RandFila], HIGH);
  digitalWrite(Columnas[RandColumna], HIGH);
  delay(75);
  digitalWrite(Filas[RandFila], LOW);
  digitalWrite(Columnas[RandColumna], LOW);
  delay(50);
}
Aquest és el vídeo de com us pot quedar:

PRÀCTICA AVANÇADA: busqueu per internet altres exemples de cubs 3x3x3 i busqueu els codis que els fan funcionar i proveu-lo amb els vostres. També podeu afegir un 4t pis amb 9 LED’s i reconfigurar el codi per incloure els nous.

ARDUINO: Pràctica 13: control de dos servos amb un joystick

En una pràctica anterior vàrem controlar un servomotor amb un potenciòmetre. En aquesta controlarem dos servos usant un joystick.
Un joystick no és més que dos potenciòmetres controlats per un comandament. A més a més, incorpora la funció de polsador.
Per començar, copieu el següent codi de bitbloq al vostre compte:
EL bloc del joystick té tres entrades, dues d’analògiques corresponents als dos potenciòmetres, i un de digital del polsador. Abans es defineixen les tres variables de cadascuna de les sortida.
  • El servo del pin 5 està controlat per la primera variable [0] del joystick. El concepte mapejar serveix per passar els 1023 valors que pot prendre el potenciòmetre com valor analògic als 180º que té el rang del servo de la sortida digital
  • El servo del pin 9 està controlat per la segona variable [1]. També es mapeja
El codi és el següent:
#include 
Servo servos[13];
/*** Global variables ***/
int _internal_readJoystick_array_A0_A1[3];
/*** Function declaration ***/
int * readJoystick_A0_A1();
void setup()
{
pinMode(7,INPUT_PULLUP);
servos[5].attach(5);
servos[9].attach(9);
}

void loop()
{
int *joy=(int*)malloc(3*sizeof(int));
joy[0]=0;
joy[1]=0;
joy[2]=0;
joy=readJoystick_A0_A1();
servos[5].write(map(joy[0],0,1023,0,180));
delay(1);
servos[9].write(map(joy[1],0,1023,0,180));
delay(1);

}

/*** Function definition ***/
int * readJoystick_A0_A1(){
_internal_readJoystick_array_A0_A1[0]=analogRead(A0);
_internal_readJoystick_array_A0_A1[1]=analogRead(A1);
_internal_readJoystick_array_A0_A1[2]=digitalRead(7);
return _internal_readJoystick_array_A0_A1;
}

Munteu el circuit usant amb la vostra placa. Aquest mateix circuit el podeu muntar amb Fritzing.

PRÀCTICA AVANÇADA: Amb la tercera variable del joystick, enceneu un LED quan es polsi el polsador.

SCRATCH: Seguidor de linies

El programa consisteix en dibuixar un gat, o un altre element, que segueixi una línia vermella. Necessitareu el següent:
  • Un gat, o el que vulgueu, això sí: al cap ha de tenir una cosa verda a l’esquerra i una blava a la dreta, tal com es veu al dibuix.
  • Un escenari on dibuixareu un circuit amb una línia vermella i que acabi amb una linia groga.
Un cop ho tingeu, copieu el següent codi:
Al començar heu de posar el gat al començament de la línia vermella, comproveu que les coordenades del gat siguin les corresponents a aquest lloc.
PRÀCTICA AVANÇADA: podeu posar un altre camí paral·lel al que heu fet d’un altre color i posar un altre gat, de manera que facin una cursa tots dos.

SCRATCH: penalty

Creareu un joc de llençament de penalty.

  • Busqueu un fons relacionat amb el futbòl (un camp, una porteria, etc.
  • Busqueu una diana i l’anomenareu Bullseye i copieu el següent codi:
  • Creeu una pilota i l’anomeneu Ball. Copieu el següent codi:
  • Creeu un porter i l’anomeneu Keeper. Copieu el següent codi:
  • Crreu una xarxa anomenada Net i poseu-la dintre la porteria que teniu de fons  i copieu e següent codi:
  • Creeu un Banner amb tres disfresses, una anomenada Won i una altra anomenada Lost, i un altra amnomenada goal.. A Won poseu un text que posi “Has guanyat” i a Lost un que posi “Has perdut”, mentre que a goal posa “GOOOOL”. Copia el següent codi:
Comprova que funciona.
PRÀCTICA AVANÇADA: Mira de moure el porter de manera aleatoria dintre els limits de la porteria.

APP INVENTOR: dues pantalles

Continuem amb el nostre projecte de Pitàgores, és a dir el mateix pitagoras.aia que estem realitzant.
Anem a crear un altre formulari en una altra pantalla, en aquest cas realitzarem el càlcul de l’àrea del triangle.

– Afegim una nova pantalla: Afegir finestra
– Aquesta s’anomena Screen2
– Mitjançant el Disseny situem

  • 1 etiqueta1,
  • 1 CampoDeTexto1
  • una altra etiqueta2
  • un altre CampoDeTexto2
  • un Botó
  • una altra Etiqueta3

NOTA: en les Propietats dels CampoDeTexto marquem “SoloNúmeros”. Esborrem informació de Pista.

Entra al disseny de blocs i copia els següents blocs

En aquest cas la variable àrea pren el valor de la fórmula del triangle definida abans.
Ves a connectar/Al companion i comprova amb l’aplicació del mòbil si funciona. Recorda d’escanejar el codi que et surt a la pantalla.

APPINVENTOR: introducció. Teorema Pitàgores

Appinventor és una pàgina web que serveix per programar aplicacions per mòbils Android. Per accedir-hi, heu d’entrar a la web:

http://ai2.appinventor.mit.edu

La pàgina us demanarà un compte per accedir, que ha de ser de gmail. Un cop entreu, veureu això:

El primer que heu de fer és canviar l’idioma (dalt a la dreta) i el poseu en espanyol. Aquesta pàgina és la del disseny, on es posen els elements que volem que estiguin a l’aplicació: botons, quadres de text, fotos, etc.
Aquests elements no funcionen si no es programen, i això es fa amb la pàgina de blocs, que s’accedeix amb una icona que trobareu dalt a la dreta. L’aspecte és el següent:

A l’esquerra hi ha els blocs que s’usen per programar els elements que heu posat al disseny. La pantalla central està buida, i és on anireu posant els blocs per programar els botons. Per veure com funciona tot plegat, fareu la primera pràctica:

TEOREMA DE PITÀGORES

l’aplicació consisteix en calcular la hipotenusa d’un triangle posant al mòbil el valor dels els dos catets.

Entreu a appinventor i creu un nou projecte. L’anomenaràs pitagoras.

Screen1 és el que veureu a la pantalla del nostre mòbil.

En Paleta, a l’esquerra, estan els elements o components que podem posar en la pantalla del nostre mòbil. Botons, casellers, imatges, etiquetes, …
A la dreta hi ha les propietats dels elements que anem introduint.
Per fer l’aplicació arossegarem des de la Paleta a la pantalla Screen1 els següents elements

  • Una Etiqueta (etiqueta1). A les propietats poseu el nom Catet 1
  • Un Camp de text (CampoDeTexto1) A les seves Propietats marquem “SoloNúmeros”. Esborrem informació de Pista
  • Una altra Etiqueta (etiqueta2). A les propietats poseu el nom Catet 2
  • Un altre Camp de text (CampoDeTexto2) A les seves Propietats marquem “SoloNúmeros”. Esborrem informació de Pista
  • Un Botó (Botón1).A les propietats poseu el nom calcular
  • Una altra Etiqueta (Etiqueta3). A les propietats poseu el nom la hipotenusa val…

Si premem sobre Screen1, mitjançant les Propietats podem canviar el títol de la pantalla, li posarem Pitàgores. Posem també a Screen1, orientaciónDeLaPantalla a Vertical, per mantenir aquesta posició.

BLOCS

Premem en Blocs per posar els blocs de codis. A la part esquerra tenim els Blocs per posar codis i els controls que hem posat a la pantalla Screen1.

Utilitzarem 3 variables numèriques:

  • un catet (x), 
  • un altre catet (y)
  • la hipotenusa (z).

Les variables que anem a utilitzar les declarem prèviament. Mitjançant el bloc Matemàtiques disposem que siguin variables numèriques iniciades a 0.

Cliqueu sobre Button1 al menú de l’esquerra, i copieu els següents blocs:
  • El bloc marró engloba tot el que voleu fer quan es clica el botó.
  • Els dos primers blocs serveixen per a que x i y prenguin els valors que hem posat a les caixes dels catets.
  • z agafa el valor de la fórmula de la hipotenusa.
  • per últim, a la darrera etiqueta es posa un text i el valor de z calculat abans.
MIT AI2
L’aplicació ja està acabada, ara per veure-la al mòbil us podeu descarregar l’aplicació MIT AI2:
Arrenca el programa MIT AI2 Companion que has instal·lat en el teu mòbil. A l’ordinador, prem en Connectar i després en AI Companion.
Et sortirà un QR i un codi.
Al teu mòbil sortirà aquesta pantalla. Escriu el codi anterior o bé escaneja el QR.
El programa passarà al teu mòbil.

El programa quedarà connectat fins que els desconnectem (Connectar / reiniciar Connexió). Si canviem alguna cosa al Designer o en els Blocs immediatament passarà al programa del mòbil. D’aquesta manera podem depurar (debug) els programes que realitzem fins que funcionin correctament.
INSTAL·LAR AL TELÈFON
Quan ja tenim l’aplicació totalment acabada per al seu ús i distribució, el que fem a compilar, això és generar un arxiu de tipus pitagoras.apk que conté l’aplicació preparada per a la seva instal·lació.
Obtindrem el codi QR del nostre programa, per després escanejant el QR amb el mòbil passar-ho a aquest.

Guardar el programa

Com acabem de veure, podem crear el nostre programa i obtindrem un arxiu de la forma pitagoras.apk que podem guardar al nostre ordinador i instal·lar al mòbil per al seu funcionament. L’arxiu pitagoras.apk s’anomena programa compilat, és a dir preparat per instal·lar-se i funcionar..

Però si volem guardar el programa font per a més tard millorar-lo o per compartir-lo, hem de prémer a … 
Els meus Projectes / Exporta al meu ordinador el projecte (.aia) seleccionat.
Obtindrem el fitxer pitagoras.aia que podem compartir.
L’arxiu pitagoras.aia seria el codi font, és a dir podem veure de la manera que està realitzat.

ARDUINO: Pràctica 12: Control amb relés

Un relé és un dispositiu electromecànic que funciona com a interruptor controlat per un circuit elèctric en el qual per mitjà d’una bobina o electroimant, s’acciona un joc de contactes que permeten obrir o tancar altres circuits elèctrics.

La següent imatge mostra un esquema del funcionament d’un relé de forma interna:

 
El relé consta de dos circuits totalment independent, un de control amb una bobina, i un de potència amb dos contactes. La part de control funciona a voltatges baixos, 5v, mentre que la de potència es connecta a alters tensions, 230V. Els contactes del relé estan format de la següent manera:
Muntarem una pràctica on encendrem un LED a través d’un relé quan es pulsa un interruptor. Feu el següent muntatge a la placa:
Obriu bitbloq i copieu el següent codi:
El codi és el següent:
void setup()
{
pinMode(3,INPUT_PULLUP);
pinMode(7,OUTPUT);
}
void loop()
{
int boto=digitalRead(3);
if (boto == 0) {
digitalWrite(7,LOW);
}else if (boto == 1) {
digitalWrite(7,HIGH);
}
}
PRÀCTICA AVANÇADA: connecteu dos LEDs de manera que quan es pulsi el polsador, un LED s’encengui i l’altre s’apagui.

SCRATCH: Tir al plat

EL joc consisteix en fer punteria amb el ratolí per disparar els plats que van sortint quan es prem la linia.

Heu de crear dos escenaris, un d’ells ha de contenir el llençaplats, més o menys com el del dibuix. L’altre escenari ha de ser totalment blanc amb la frase “GAME OVER”. Sobre el codi de l’escenari copieu els següents blocs:

Heu de crear dues variables, Bales i Plats. Heu de nomenar l’escenari d’acabament de joc com a gameover.

Creeu ara la diana, podeu buscar-ne una per internet, i copieu el següent codi:
Busqueu un so d’un tret per afegir-lo als sons de la diana.
Creeu ara el plat. Haurieu de fer viverses disfresses, una d’un plat sencer i una de plats trencats. Us passo una imatge de com podria ser:
Copieu el següent codi al plat:
Busqueu un so de plat trencat i l’incorporeu als sons. 
Comprobeu que funciona i pengeu-lo.

SCRATCH: Fòrmula 1

El joc consisteix en fer circular un cotxe a travès d’un circuit i donar una volta amb el menor temps possible. El primer que fareu serà crear l’escenari. El fons ha de ser verd, mentre que el circuit el feu de color gris.Posa una línia vermella que faci de sortida dintre la pista.
Un cop creat, heu de crear el cotxe. Entreu al seu codi i copieu els següents blocs. Abans heu de crear una variable que es diu Temps.

Aneu a l’escenari i copieu el codi següent:
Per veure el temps quan vagi el joc, clica sobre variables i activa el requadre de la variable Temps.
Comprova que el joc funciona, i penja l’exarcici.

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