13 de juny de 2015

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.

11 de juny de 2015

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.

8 de juny de 2015

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.