Si vols fer la prova, entra a la simulació i juga unes quantes vegades canviant de porta i no. Veuràs els resultats.
Monthly Archives: abril 2015
GIMP Pràctica 12: efecte petit planeta
- 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.
- 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.
- 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.
ARDUINO: Pràctica 7: Servomotor controlat per un potenciòmetre
Un servomotor és un motor que es caracteritza per la seva precisió, ja que pot situar-se en qualsevol posició dins d’un rang de gir, normalment de 0º a 180º. No són motors pensats per fer moure un vehicle que recorri certa distància, sinó per moviments de precisió com podria ser el d’un braç robot.
- Cable vermell: es connectarà a la tensió de 5 V.
- Cable negre: es connectarà a terra (0 V).
- Cable blanc o taronja: es connectarà al pin de control (del 0 al 13).
ARDUINO: Pràctica 6: LED d’intensitat aleatòria
- void setup() { randomSeed(0); }: genera un numero aleatori
- randomSeed(analogRead(A5)): l’entrada analògica A5 agafa un valor analògic
void setup()
{
pinMode(9,OUTPUT);
}
void loop()
{
int brillo=random(100,256);
analogWrite(9,brillo);
int tiempo=random(50,151);
delay(tiempo);
}
- int brillo; int tiempo: es defineixen dues variables,
- pinMode(9,OUTPUT): el pin 9 té un led com a sortida (OUTPUT)
- brillo=random(100,256): la intensitat agafa un valor aleatori entre 100 i 256
- analogWrite(9,brillo): el led del pin 9 usa el valor brillo aleatori
- tiempo=random(50,151): el temps de durada agafa valors aleatoris entre 50 i 151
ARDUINO: Pràctica 5: El potenciòmetre com entrada analògica
El potenciòmetre és un altre sensor d’entrada molt usat. Consta d’una resistència variable, que dependrà de la posició de gir en què es trobi la seva consola (o mànec). És molt important connectar el potenciòmetre de manera correcta per evitar que aquest es faci malbé (en cas de deixar passar tot el corrent per una secció del potenciòmetre de molt baixa resistència). Un potenciòmetre té tres potes:
void setup()
{
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop()
{
int val=analogRead(A0);
if ((val >= 0) && (val < 204)) {
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
if ((val >= 204) && (val < 408)) {
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
if ((val >= 408) && (val < 612)) {
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}
if ((val >= 612) && (val < 816)) {
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
}
if ((val >= 816) && (val < 816)) {
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
}
}
Mirem el programa.
- val=analogRead(A0): El potènciometre està conenctat al pin A0.
- if(val>=204 && val<408 b="">: el potenciòmetre pot agafar valors d'entre 0 i 1023. Com hi ha 5 LEDs, es divideix per 5 els valors de manera que segons el valor que tingui el potenciòmetre, se n'encendra 1, en aquest cas s'encendrà només el led1.
ARDUINO: Pràctica 4: LDR, funció analogRead
- LDR
- Potenciòmetres
- NTC, PTC
void setup()
{
pinMode(9,OUTPUT); // es defineix el led al pin 9 com a sortida
}
void loop()
{
int val=0; // es declara una variable que serà el valor de LDR
val=analogRead(A3); // el LDR està ubicat a l'entrada analògica A3
val=val / 4; // es reajusta el valor del LDR per la sortida digital del led
analogWrite(9,val); // el led agafa la intensitat del valor del LDR
}
- int val: es defineix una variable que es diu val
- pinMode(9,OUTPUT): el pin 9 es defineix com de sortida
- val=analogRead(A3): la variable val agafa el valor del LDR connectat al pin A3
- val=val/4: es divideix per 4 el valor de l’entrada. Es fa perquè analogRead pot arribar fins 1023, i la sortida analogWrite només fins 255. Al dividir per 4, s’ajusten el valors.
- analogWrite(9,val): el pin 9 agafa el valor recollit del LDR.
ARDUINO: Pràctica 3: Comptador binari
- Tres leds als pins 6,7 i 8
- Un polsador al pin 13
void setup()
{
pinMode(13,INPUT_PULLUP);// polsador a la sortida
pinMode(6,OUTPUT);// es defineixen els 3 leds
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop()
{
int val=0;// es defineix una variable que és la lectura del polsador
int x=0; // comptador de polsades del polsador
val=digitalRead(13); // es defineix l'entrada digital del poldador
if (val == HIGH) { // condició if, quan es pulsi el polsador, puja el comptador de pulsos
x=x + 1;
}
if (x == 8) { // quan el nombre de pulsos sigui 8, es reinicia
x=0;
}
if (((x == 1) || (x == 3)) || ((x == 5) || (x == 7))) { // si es compleixen aquestes 3 condicions, s'encen el led 6
digitalWrite(6,HIGH);
}else { // si no es compleixen el led s'apaga
digitalWrite(6,LOW);
}
if (((x == 2) || (x == 3)) || ((x == 6) || (x == 7))) {
digitalWrite(7,HIGH);
}else {
digitalWrite(7,LOW);
}
if (((x == 4) || (x == 5)) || ((x == 6) || (x == 7))) {
digitalWrite(8,HIGH);
}else {
digitalWrite(8,LOW);
}
delay(200);
}
- digitalRead(13): el polsador està a la variable 13. Per escursar el programa es renombra com a val.
- digitalWrite(6,LOW): hi ha les sortides digitals, en aquest cas la 6, que se li dona l'ordre LOW, apagat.
- if(x==4 || x==5 || x==6 || x==7) digitalWrite(8,HIGH): si el que hi ha dintre els parentesi, es cumpleix, es produeix la instrucció que ve després, en aquest cas encen la sortida 8 (HIGH)
- else {digitalWrite(8,LOW): si no es compleix la instrucció if, es cumpleix el que hi ha a l'ordre else, en aquest cas apaga la sortida 8 (LOW)
PRÀCTICA AVANÇADA
ARDUINO: Pràctica 2: El LED d’intensitat variable
analogWrite és una instrucció que indica a una sortida un valor entre 0V i 5V. Els valors van entre 0 (0V), i 265 (5V). Per exemple, analogWrite(11,214) indica que la sortida 11 té un valor a la sortida de 214, que equival a uns 4V. El següent exemple és un LED que varia la seva intensitat de llum.
- Feu el mateix muntatge que amb el programa blink amb la placa protoboard i l’arduino.
int increment=5;// es declara una variable que es diu increment
void setup() // es declaren les entrades i sortides
{
pinMode(9,OUTPUT); // al pin 90 hi ha una sortida
}
void loop()
{
brillo=brillo + increment; // el brillo s’incrementa de 5 en 5
analogWrite(9,brillo); // el LED s’encen amb la intensitat de brillo
if ((brillo == 0) || (brillo == 255)) {
increment=1 – increment;
}
delay(30);
}
- Les instruccions int defineixen 2 variables i canvia el nom d’una entrada.
- analogWrite(9, brillo): la sortida 9 pren el valor de brillo i li dóna el voltatge corresponent al LED.
- brillo = brillo + incremento: la variable brillo augmenta en 5 el seu valor.
- if(brillo==0 || brillo==255): if és una condició que, en aquest cas, si arriba a un d’aquests dos valors, s’executa l’ació de dintre els claudàtors, en aquest cas el decreixement.
ARDUINO: Pràctica 1:Blink
El primer programa que fareu serà un led parpellejant. Munteu el següent circuit a la placa Arduino i a la placa protoboard:
- El terminal llarg al pin 9, i el curt a una resistència de 220 ohms
- L’altre terminal del resistor al negatiu de la paca (GND)
Carregueu el següent codi a l’IDE d’arduino:
void setup()
{
pinMode(9,OUTPUT); // al pin 9 hi ha una sortida
}
void loop() // el que hia dintre el loop es repeteix indefinidament
{
digitalWrite(9,HIGH); // encen el LED que hi ha al pin 9
delay(1000); // espera 1 segon
digitalWrite(9,LOW); // apaga el LED del pin 9
delay(1000); // espera un segon
}
Mirem què significa els elements que surten:
-
digitalWrite s’usa per connectar sortides digitals: LEDs, motors, servomotors. A les sortides se’ls hi pot donar dos valors: alt (1) i baix (0): HIGH/LOW (encendre/apagar)
-
HIGH/LOW són dues instruccions que encenen (HIGH) o apagen (LOW) una entrada o sortida de l’Arduino
-
void setup() {pinMode(9, OUTPUT);}: dintre void setup() es defineixen com seran les connexions. pinMode(9, OUTPUT) indica que la sortida 9 serà de sortida (OUTPUT). Es posa OUTPUT quan es connecten LEDS, motors, servomotors. Si voleu que sigui d’entrada, heu de posar INPUT, que seran els interruptors i els sensors.
-
void loop() { }: dintre els claudàtors es posen les instruccions que el programa repetirà indefinidament:
-
digitalWrite(9, HIGH): aquesta instrucció encén el led (HIGH)
-
digitalWrite(9, LOW): aquesta instrucció apaga el led (LOW)
-
delay(1000): entre instrucció i instrucció, el programa espera 1 segon (1000 ms). Podeu canviar el número de segons i veureu com varia el parpelleig del LED.
-
//: comentaris de línia. Desprès de cada instrucció, es pot posar un comentari sobre el què fa cada línia. No és obligat, però va bé per saber què es vol fer. El que es posa darrera de // no influeix en el programa.
Mireu ara de fer el mateix, però posant un altre LED al pin 8, de manera que quan un s’apagui, l’altre s’encengui. Pistes:
- Aprofitant el codi que teniu, poseu un altre bloc de leds però connectats a l’entrada 8
- A la placa protoboard, poseu un altre led i resistor igual com teniu l’altre.
GIMP Pràctica 11: Foto fora marc
Un efecte molt espectacular és crear una foto amb un marc de manera que una part de la foto quedi fora d’aquest marc. Alguna cosa així:
- Obre la imatge que vols aplicar l’efecte. Després crea dues capes noves amb l’opció transparència. Per a això pots fer-ho des de la barra superior a Capa-Capa Nova. On diu nom de la capa, podeu posar la primera que es digui fons i la capa superior per exemple marc.
- Intercala la foto entre les dues capes que has creat i, com pots veure en la captura.
- Ara Estant a la capa Marc (la Capa Superior) traça una selecció i emplena-la amb l’eina emplenat de color blanc.
- a la barra superior posa Editar/encogeix. Posa un número per retallar el marc
- Ves a editar/retalla. Marxarà el blanc de dintre i es quedarà el marc
- Segueix a la capa marc, i amb l’icona perspectiva, inclina el marc per crear un efecte de profunditat