Comunidad Underground de México

Hardware => Electrónica => Mensaje iniciado por: dOlPhIn en febrero 08, 2007, 04:48:06 pm

Título: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en febrero 08, 2007, 04:48:06 pm
que tal solo aprovecho este tema para avisarles que en la revista "saber electronica" No. 199
saldra publicado un proyecto que por un tiempo lo publique aqui pero que por falta de interes de los demas lo tuve que retirar y lo mande a la editorial.

el proyecto se llama "cerradura por tarjetas telefonicas"

para los que compren la revista, en la pagina de webelectronica al bajar el archivo que sirve de para programa el pic, no quisieron poner el .asm para hacer modificaciones, a pesar que se los mande.
pero si alguno de ustedes lo necesita solo pidanlo y se los mando a sus correos.

Gracias.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: bardocs en febrero 08, 2007, 06:20:58 pm
Pues que bien que seas compartido, pero me podrias platicar un poco mas de que trata el proyecto. ;)
Saludos y los mejores deseos...

Bardocs27@gmail.com
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 08, 2007, 08:53:44 pm
claro que si, se trata de un circuito que tiene un soket para este tipo de tarjetas.
 
lo que hice primero fue realizar un program en c++ con el cual se obtiene el numero de serie  de las 5 tarjetas que se quiere utilizar como "llaves".

luego en el programa en ensamblador (el cual no lo subieron a la red) se escriben estos numeros obtenidos de el programa anterior, para que el pic lo reconosca.

entonces tu tienes ya registradas las 5 tarjetas y solo con ellas se puede accesar, si el pic detecta que es una tarjeta valida enciende un led, esta salida tu la pudes conectar a una cerradura electrica, o permites encender un aparto etc.

supongamos que tu utilizas este circuito para ponerla en la cerradura de una puerta.
entonces ya tienes tus 5 "llaves". pero tienes una visita o se te pierde una.
en tonces el circuito cuenta con un dip switch el cual sirve como clave para permitir que des de alta una sexta tarjeta. 

ahora solo pones la clave en el dipswitch metes la tarjeta, el dispositivo la registra y ya la puedes utilizar como otra llave.

solo la persona que sepa la clave del dipswitch podra dar de alta la sexta tarjeta, al dar de alta otra tarjeta se borra el dato de la tarjeta anterior y dejara de servir como otra llave.
todas estas modificaciones no afectan a las primeras 5 llaves. ya que estas solo se pueden modificar desde el codigo .asm

el archivo .asm esta con comentarios para facilitar el entendimiento y poder modificarlo sera facil. pero no lo pusieron en la red.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: KDS en febrero 10, 2007, 10:19:49 pm
que tal, yo vi algo paresido no recuerdo donde creo que pablin, era para abrir un coche.

seria bueno que publicaras aqui todo no? o no se puede? si la consigo escaneo la paginas pero si alguien puede mejor.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: vamp_78 en febrero 12, 2007, 11:49:37 am
hola, esta interesante tu proyecto y me podrias pasar el msn y un instructivo para relizar tu proyecto, y yo encontre algo similar a lo tuyo
en esta paguina http://foro.el-hacker.com en el subforo electronica y pues es por una cable y se abre la puerta electrica de tu cuarto y tmb lo hicieron en asm en un pic
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 12, 2007, 04:37:24 pm
claro que si peo esperenme un ratito por que en estos momentos estoy, algo ocupado en la escuela.

y en pablin solo esta la propuesta de este proyecto que al parecer nunca se llevo a cabo. este es el link, ¿no se si a esta direccion te referias KDS?

http://www.pablin.com.ar/electron/proyecto/tchip1/index.htm (http://www.pablin.com.ar/electron/proyecto/tchip1/index.htm)


Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 16, 2007, 06:53:00 pm
aqui les dejo los diagramas. los programas se los paso despues
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 16, 2007, 06:56:01 pm
si nesecitan los programas mandenme un mensaje.

despues hare una modificacion para que nosea nesesario usar el mplab al dar de alta todas sus tarjettas que quieran que sean las llaves.
hay dos programas en el .zip el que dice cum lee toda la tarjeta, y el que dice lector2 lee solo 128bits pero resalta en un cuadro el numero de serie en hexadecimal.
ambos funcionan con el mismo hardware
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: PICPOWER en febrero 16, 2007, 07:25:24 pm
Interesante, me gustó tu proyecto, felicidades. Comparte algo de fama :p

Bytes... Por cierto, Dolphin, tú podrías diseñar un logger?? De alta velocidad, unos 15 us por muestra...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 17, 2007, 09:58:39 pm
gracias
y por lo del logger seria cuestion de probar la velocidad con el c++, no confio en los visuales en cuestion de seguridad.
y disculpen mi ignorancia pero que significa ":p"
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: eidtech en febrero 17, 2007, 11:12:56 pm
Alta Velocidad.. 15us?   ???
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: KDS en febrero 18, 2007, 07:47:17 pm
si era ese, pense que se estaba completo el proyecto,

oye que bien, yo apenas estoy iniciandome con el matlab, apenas matrices pero ay voy.

supongo que son cada 15 u(micro)segs el muestreo, osea alta velocidad jeje.

salu2 CUMpañeros(perdon picpower pero me gusto tu saludo)
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 19, 2007, 12:06:34 pm
que tal KDS
no comprendi lo de matlab

ahh y para todos . resulta que el montaje que envie a los de la revista tiene unos errores.

en el mencionaba que las tarjetas eran de 128 bits (comprendan que era novato en esto), por eso en el programa que puse solo lee hasta el 128vo bit pero luego unevox me oriento (demasiado tarde pues ya habia enviado el archivo a la editorial ), por esto en el archivo .zip agregue un programa en c que lee el mapa completo de la tarjeta. de todos modos los dos sirven y el que lee los 128 bits resalta en un recuadro el codigo de serie.


para lo chavos que requieran del codigo del lector lo puedo dar, asi ustedes pueden hacer las modificaciones que quieran ó solo tomarlo de base por si quieren  crear uno propio para comenzar como lo hice yo.

GRACIAS

Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: rocaanvil en febrero 20, 2007, 04:16:02 pm
Gracias. a mi me gustaria que subieras el codigo del lector de las tarjetas.

muchas gracias..

roca.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 20, 2007, 06:02:17 pm
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<dos.h>
#include<math.h>


void main (void)
{
int a,b,c,d,e,f,g,h,i,j,v,x,m,n,o,p,q,r,y,comp,saldo1;
float saldo;
double serie;
char opcion;
char cf2[10];
a=b=c=d=e=f=g=h=i=j=v=x=m=n=o=p=q=r=y=c=o=m=p=saldo=saldo1=0;
 do
 {
  clrscr();
  textcolor(12);
  cprintf("\r\n       LECTOR DEL NUMERO DE SERIE DE LAS TARJETAS TELEFONICAS DE 512 BITS");
  textcolor(9);
  cprintf("\r\n\n                                 -\"dOLpHIn\"-");
  textcolor(7);
  printf("\n\n\n l): Leer tarjeta");
  printf("\n t): Terminar el programa");
  printf("\n c): Comentarios");
  printf("\n\n>\n>");
  opcion=getch();
  opcion=tolower(opcion);
  switch(opcion)
  {
   case'l':
   {
    clrscr();
    printf("              El mapa completo de la tarjeta en binario es:");
    printf("\n\n         ");
    a=b=c=d=o=p=q=r=0;
    outportb(0x378,0);
    outportb(0x378,4);
    delay(1);
    outportb(0x378,20);
    delay(1);
    outportb(0x378,4);
    delay(1);
    outportb(0x378,0);
    delay(1);
    x=inportb(0x379);
    x=x>>5;
    m=(x&1);

    if(m==1)
    {
     v=1;
     printf("1");
     for(n=0;n<7;n++)
     {
      outportb(0x378,16);
      delay(1);
      outportb(0x378,0);
      delay(1);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       v=v<<1;
       v=v++;
       printf("1");
      }
      if(m==0)
      {
       v=v<<1;
       printf("0");
      }
     }
     printf("  ");

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       p=p<<1;
       p=p++;
       printf("1");
      }
      if(m==0)
      {
       p=p<<1;
       printf("0");
      }
     }printf("  ");

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       q=q<<1;
       q=q++;
       printf("1");
      }
      if(m==0)
      {
       q=q<<1;
       printf("0");
      }
     }printf("  ");

     for(n=0;n<8;n++)
     {
      textcolor(10);
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       a=a<<1;
       a=a++;
       cprintf("1");
      }
      if(m==0)
      {
       a=a<<1;
       cprintf("0");
      }
     }printf("       %02X  %02X  %02X  ",v,p,q);
      cprintf("%02X\n",a);
      printf("\r         ");


     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       b=b<<1;
       b=b++;
       cprintf("1");
      }
      if(m==0)
      {
       b=b<<1;
       cprintf("0");
      }
     }printf("  ");

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       c=c<<1;
       c=c++;
       cprintf("1");
      }
      if(m==0)
      {
       c=c<<1;
       cprintf("0");
      }
     }cprintf("  ");

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       d=d<<1;
       d=d++;
       cprintf("1");
      }
      if(m==0)
      {
       d=d<<1;
       cprintf("0");
      }
     }printf("  ");
      e=0;

     for(n=0;n<8;n++)
     {
      textcolor(12);
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       e=e<<1;
       e=e++;
       cprintf("1");
      }
      if(m==0)
      {
       e=e<<1;
       cprintf("0");
      }
     }textcolor(10);
      cprintf("       %02X  %02X  %02X  ",b,c,d);
      textcolor(12);
      cprintf("%02X\n",e);
      printf("\r         ");
      textcolor(7);
      f=o=0;

     for(n=0;n<8;n++)
     {
      textcolor(3);
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       cprintf("1");
       o=o<<1;
       o=o++;
       f=f++;
      }
      if(m==0)
      {
       o=o<<1;
       cprintf("0");
      }
     }printf("  ");
      g=p=0;

      for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       cprintf("1");
       p=p<<1;
       p=p++;
       g=g++;
      }
      if(m==0)
      {
       p=p<<1;
       cprintf("0");
      }
     }printf("  ");
      h=q=0;

      for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       q=q<<1;
       q=q++;
       cprintf("1");
       h=h++;
      }
      if(m==0)
      {
       q=q<<1;
       cprintf("0");
      }
     }printf("  ");
      i=r=0;

      for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       r=r<<1;
       r=r++;
       cprintf("1");
       i=i++;
      }
      if(m==0)
      {
       cprintf("0");
      }
     }textcolor(3);
      cprintf("       %02X  %02X  %02X  %02X\n",o,p,q,r);
      printf("\r         ");
      j=o=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       o=o<<1;
       o=o++;
       textcolor(3);
       cprintf("1");
       j=j++;
      }
      if(m==0)
      {
       o=o<<1;
       textcolor(3);
       cprintf("0");
      }
     }printf("  ");
      textcolor(7);
      saldo=(((4096*f)+(512*g)+(64*h)+(8*i)+(1*j))/100);
      saldo1=(((4096*f)+(512*g)+(64*h)+(8*i)+(1*j))%100);
      p=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       p=p<<1;
       p=p++;
       printf("1");
      }
      if(m==0)
      {
      p=p<<1;
       printf("0");
      }
     }printf("  ");
      q=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       q=q<<1;
       q=q++;
       printf("1");
      }
      if(m==0)
      {
       q=q<<1;
       printf("0");
      }
     }printf("  ");
      r=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       r=r<<1;
       r=r++;
       printf("1");
      }
      if(m==0)
      {
       r=r<<1;
       printf("0");
      }
     }textcolor(3);
      cprintf("       %02X  ",o);

      textcolor(7);
      printf("%02X  %02X  %02X\n         ",p,q,r);
      textcolor(7);
      o=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       o=o<<1;
       o=o++;
       cprintf("1");
       j=j++;
      }
      if(m==0)
      {
       o=o<<1;
       cprintf("0");
      }
     }printf("  ");
      textcolor(7);
       p=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       p=p<<1;
       p=p++;
       printf("1");
      }
      if(m==0)
      {
       p=p<<1;
       printf("0");
      }
     }printf("  ");
      q=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       q=q<<1;
       q=q++;
       printf("1");
      }
      if(m==0)
      {
       q=q<<1;
       printf("0");
      }
     }printf("  ");
      r=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       r=r<<1;
       r=r++;
       printf("1");
      }
      if(m==0)
      {
       r=r<<1;
       printf("0");
      }
     }printf("       %02X  %02X  %02X  %02X\n         ",o,p,q,r);


    for(y=0;y<11;y++)
    {
     o=0;
     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       o=o<<1;
       o=o++;
       cprintf("1");
      }
      if(m==0)
      {
       o=o<<1;
       cprintf("0");
      }
     }printf("  ");
     p=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       p=p<<1;
       p=p++;
       printf("1");
      }
      if(m==0)
      {
       p=p<<1;
       printf("0");
      }
     }printf("  ");
      q=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       q=q<<1;
       q=q++;
       printf("1");
      }
      if(m==0)
      {
       q=q<<1;
       printf("0");
      }
     }printf("  ");
      r=0;

     for(n=0;n<8;n++)
     {
      outportb(0x378,16);
      outportb(0x378,0);
      x=inportb(0x379);
      x=x>>5;
      m=(x&1);
      if(m==1)
      {
       r=r<<1;
       r=r++;
       printf("1");
      }
      if(m==0)
      {
       r=r<<1;
       printf("0");
      }
     }printf("       %02X  %02X  %02X  %02X\n         ",o,p,q,r);
    }

     if(v!=255)
     {
      serie=(16777216*a)+(65536*b)+(unsigned)(256*c)+d;
      textcolor(10);

      if(r!=0)
      {
      cprintf("\r\nNumero de serie: 2%09.f",serie);
      textcolor(7);
      }
      else
      {
      cprintf("\r\nNumero de serie: 4%09.f",serie);
      textcolor(7);
      }


      if(e==35)
      {
       textcolor(12);
       cprintf("\r\n\nValor: $30.00");
       textcolor(7);
      }
      if(e==37)
      {
       textcolor(12);
       cprintf("\r\n\nValor: $50.00");
       textcolor(7);
      }
      if(e==50)
      {
       textcolor(12);
       cprintf("\r\n\nValor: $100.00");
       textcolor(7);
      }

      textcolor(3);
      cprintf("\r\n\nSaldo: $%.f.%02d",saldo,saldo1);
      textcolor(7);
      cprintf("\r\n                      Presiona una tecla para regresar...");
      getch();
     }
    }
    if(v==255)
    {
     printf("\n\nEsta tarjeta es invalida, ¢ no esta conectada...");
     printf("\nPresione una tecla para continuar...");
     textcolor(7);
     getch();
    }
   }break;

   case'c':
   {
    clrscr();
    printf("\n\n      favor de mandar comentarios a ezkybe@hotmail.com ");
    printf("\n\n\n\n\nr) regresar");
    printf("\n\n>\n>");
    textcolor(7);
    getch();
   }break;

   case't':
   {
    outportb(0x378,0);
    clrscr();
    printf("El programa ha terminado, puedes cerrarlo");
    exit();
   }break;
  }
 }while(opcion!='t');
}
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 20, 2007, 06:04:18 pm
ahi esta el codigo
se que no es muy elegante, todavia se puede optimisar y reducir bastante, pero funciona.
tampoco tenia mucha experiencia en c++
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: sOy DIos en febrero 22, 2007, 05:12:15 pm
me parece chido tu proyect, yo ya compre la revista,
a proposito que mejorasle haras?
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: Yomero en febrero 26, 2007, 08:09:53 pm
Oye Dolphin tu programa es para correrlo en DOS verdad? has tenido problemas con la sincronización  al momento de leer la tarjeta ? porque yo hice un progrma  pero en Win usando el inpout32.dll y si puedo leer bien los pins de Señalizacion del puerto 379h y escribir al 378h pero por algun motivo la tarjeta nunca me responde y veo en tu codigo siempre un delay de 1 milisegundo con eso fue suficiente para que te funcionara la sincronizacion? o existe alguna otra cosa que se me esta escapando y debo considerar?

!Bien por esa iniciativa hay que seguir así y demostrar lo que tenemos en MEXICO!!!!!!
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 27, 2007, 09:57:54 am
En mi caso siempre me ha funcionado con este retardo, una vez lohice sin retardo y la tarjeta no es tan rapida para responder, lo he probado con un retardo de 1 miliseg. en una lap con un PIII a 350 mhz (algo asi) y en mi computadora en P4 a 1.6Ghz y en los dos corre sin poblemas.

¿ya checaste que la tarjeta tenga alimentacion externa?
o prueba con mi codigo  y hardware a ver si funciona bien. si lo hace lo mas segura es que te falte agrgar el retardo.

ojala que los demas que la hagan puedan postear infornmacion de esto.

¿de donde eres "yomero"?


Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: Yomero en febrero 27, 2007, 06:28:50 pm
Dolphin soy de por acá del Norte, Saltillo sabes, creo que el problema puede ser la alimentacion externa que dices pensé que el paralelo te da +/- 5volts pero entonces me imagino que debo hacerlo como lo muestras en el grafico, que usaste para alimentar los 5 volts? un eliminador de corriente? o baterías? muy interesante tu proyecto y por eso me interesó probar el interfaceo por paralelo porque yo estoy armando un proyecto para controlar motores Stepper y con eso puedes hacer lo que se te ocurra, en cuanto lo tengo domado el proyecto lo posteo para que lo vean a ver que opinan...

saludos a todos
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: unevox en febrero 27, 2007, 07:47:11 pm
5v ??? sacalos del puerto usb ::)
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: PICPOWER en febrero 27, 2007, 08:34:44 pm
Oye cumpañero DOLPHIN, te quería agtradecer el que hayas posteado el código de tu lector. Francamente no me atrevía a hacer uno por no meterme en problemas con el uso de Puerto Paralelo, pero ya que has posteado tu lector, haré algunas pruebas yo mismo y a ver si puedo sacar algún nuevo proyecto con puerto paralelo. Una vez más gracias por el aporte y seguimos dándole a esto de las tarjetas...


Bytes... Por cierto, recomendaré tu proyecto a la lista de mejores posts de la CUM, saludos...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en febrero 28, 2007, 09:39:34 am
que tal YOMERO
para alimentar el lector estoy utilizando un cargador de celulares con un 7805 para obtener un voltaje mas regulado, lo que sucede es que yo lo utilizo para la pc y una lap, y me es mas facil asi. pero como lo dijo unevox puedes utilizar un puerto usb que es demasiado estable.
anteriormente lo habia pensado pero la verdad me dio miedo conectarlo en el usb (por si habia un corto a algo no le sucediera nada al puerto)
asi que que lo que hice fue buscar un cable directamente de la fuente de poder de la pc,casi siempre sobra alguno. solo busca un conector y lleva el cable de vcc del lector a uno rojo de la fuente, como latierra esta en el puerto paralelo no sera nesesario que conectes otro a la tierra de la fuente.

y gracias PICPOWER

tengo pensado hacer un programa que pueda hacer write , write carry, y posicionarse en un determinado bit.
pero nesesito mejorar este codigo
para algunos que tengan mas experiencia en programacion seguro lo podran sintetizar.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: eidtech en febrero 28, 2007, 11:51:49 am
anteriormente lo habia pensado pero la verdad me dio miedo conectarlo en el usb (por si habia un corto a algo no le sucediera nada al puerto)

Tranquilamente puedes hacer un corto en el USB... su proteccion contra sobrecargas desactivara el puerto cuando detecte que la corriente que esta suministrado es mayor a lo que puede dar... en algunas PCs sera necesario reiniciar para que el controlador USB se active nuevamente...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: PICPOWER en febrero 28, 2007, 12:50:55 pm
Pues ni tan tranquilamente, yo uso casi siempre el USB para regular a 5 V, así no cargo eliminadores y es cierto, detecta cuando pides demasiada corriente, pero dos veces me ha pasado que la lap, supongo que por seguridad; se autoapaga... Aunque Windows te avisa que le has pedido demasiada corriente al puerto y se ha desactivado, pues no siempre lo hace bien...

Bytes...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: eidtech en febrero 28, 2007, 09:36:59 pm
Aunque Windows te avisa que le has pedido demasiada corriente al puerto y se ha desactivado, pues no siempre lo hace bien...

Bytes...

Windows es tu problema  :D

Asi es Windows se supone que detecta y se protege automaticamente aunque no siempre lo haga bien... sin embargo sin querer he hecho varios cortos y nunca ha pasado nada mas que la advertencia, como decia a veces es necesario reiniciar... es muchisisisimo mas facil descomponer algun dispositivo USB que el propio puerto...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en marzo 02, 2007, 08:30:20 am
segun lo que veo en estos ultimos post, diria en resumen que:

El puerto usb tiene buena resistencia en cuestion de cortos, sin embargo hay una pequeña posibilidad de que se llegue a dañar, en mi caso en la laptop solo tengo un puerto usb (por eso lo cuido bien).

La ventaja de ponerle este tipo de alimentacion es que nos evitamos el uso de eliminadores.

si llegara a haber un corto utilizando un eliminador, en caso de que se llegara a dañar este, solo se sustituye.

Depende de cada uno lo que decida poner, pero lo mas seguro es que el circuito nesecite alimentacion indeoendiente al puerto paralelo.

 

Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en marzo 02, 2007, 09:03:38 am
voy a explicar algo para los que no tengan idea del programa,
lo mas importante de el es la parte que se refiere al control. donde se maneja  la terminal de clk y rst, la otra parte es la de de la lectura.


RESET:


 case'l':
   {
    clrscr();
    printf("              El mapa completo de la tarjeta en binario es:");
    printf("\n\n         ");
    a=b=c=d=o=p=q=r=0;
    outportb(0x378,0);
    outportb(0x378,4);
    delay(1);
    outportb(0x378,20);
    delay(1);
    outportb(0x378,4);
    delay(1);
    outportb(0x378,0);
    delay(1);
    x=inportb(0x379);
    x=x>>5;
    m=(x&1);

cuando oprimimos la tecla"l"

se comineza la rutina de reset, la instruccion outportb(0x378,X)
donde la X se refiere a el numero posicional de cada terminal del puerto de salida bit, en este caso el contacto rst de la tarjeta esta en el 4 pin del puerto paralelo (las terminales de salida comienzan desde el pin 2 del puerto paralelo) por lo que su valor posicional binario es 4

No de pin                  1         2        3       4         5       6        7        8         9
                               o        o        o        o        o        o        o        o         o
valor posicional                   1        2        4         8       16      32      64       128

por eso se comienza con la instruccion outportb(0x378,0)

para que el puerto comienza con todas las salidas en cero, luego la sig instruccion es: outportb(0x378,4) ; aqui se levanta reset.

luego la siguiente instruccion es  outportb(0x378,20); aqui hay que revisarlo con cuidado, observen en el diagrama del lector, el contacto clk esta conectado en el pin 6 que corresponde al volor posicional 16 ( recuerden que la rutina de reset: debe de subir primero la terminal rst dejandola en alto despues,debe de subir la terminal de clk, luego debe de bajar esta ultima, y por ultimo baja rst.) como debemos de mantener rst en alto entonces se le suman 16 a los 4 que ya habia en el puerto
por eso la instrucuccion es outportb(0x378,20) y asi tenemos la terminal rst y clk en alto,

despues se baja clk, se le restan 16 y por eso la sig instruccion es ouportb(0x378,4) asi queda de nuevo solamente la terminal rst en alto.

despues para bajar rst la sig instruccion es : outportb(0x378,0)
y el puerto queda de nuevo en ceros.
y en la terminal de I/O de la tarjeta se encuentra el primer bit de su mapa.

el cual se lee con la instruccion: inportb(0x379)


LECTURA:

la instruccion inportb(0x379) se utiliza para leer el puerto, pero se lee todo lo que haya en el puerto de entrada que hay 5 pines de lectura. sin embargo el puerto se utiliza como si tuviera 8 bits (3 de ellos son pines virtuales internos)
e pin que utilizamos es el 7mo bit de lectura.

por eso para leerlo con mayor facilidad se asina la instruccion inportb(0x379) a una variable llamda x,    x=outportb(0x379) luego a esta se le hace un corrimiento con ala derecha con >> x=x>>5; luego se le hace un enmascaramiento con la operacion AND 1
y se le asigna una variable llamada m, para poder manipularla sin afectar a x,  m=(x&1);


despues las demas instruciones se utilizan los IF para que se imprima un 1 o un 0 segun sea lo que se esta leyendo, solamente se sacan pusos en clk sacando 0 y 16 por el puerto.



eso es todo por hoy: aqui les dejo una imagen de los pines del pto paralelo.

Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: sOy DIos en marzo 07, 2007, 05:59:38 pm
como estan
dolphin ya hice el circuito con el pic y me funciona solo la sexta tarjeta, como le hago para editar las otras 5?
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en marzo 07, 2007, 06:03:48 pm
"soy dios"
estoy en linea ahora, por si no me ves:

tienes que abrir el .asm en mplab y en el archivo viene comentada la parte que se debe modificar con el numero de serie que quieras que sean las llaves. 
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: PICPOWER en abril 11, 2007, 03:16:19 am
Hola CUMpañeros. Sólo aprovecho para comentar que he sacado este post de la basura ( no sé qué hacía algo tan valioso en el área de basura). Y que ahora ha quedado como parte de los posts "Pegados", o sea que no se irá nunca a la basura por ser parte de los proyectos de la CUM, ni tampoco dejará de estar en lugar "preferente".

Saludos y gracias por sus valiosos aportes, especialmente cuando publican de manera tan clara los proyectos. Bytes...
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en abril 13, 2007, 01:18:52 pm
que tal picpower, solo te aviso que yo fui quien puso este post en la basura, gracias por lo que comentas. pero lo deseche por que vi que ya no habia mucho interes en el, pues llevaba cerca de una semana que nadie habia posteado. si lo quieren dejar aqui no hay problema. y como lo dije antes si quieren los archivos que habia aqui antes de "tirarlo" solo pidanlos y se los doy, la razon de que no los pongo es por que estoy trabajando en una modificacion del proyecto, solo que ahora estoy trabajando con el pic16f628, que por lo que veo ahora es mejor y mas barato que el 16f84, ahora lo estoy dejando mas seguro, lo estoy hacien para evitar que lo habran con emus, aunque esto seria muy dificil de hacer, claro no sera bulnerable a un emu PERFECTO, pero sera mucho pero mucho muy dificil que logren habrirlo, para comenzar deben de robarles su tarjeta (llave), leerla , regresarsela para que no se den cuenta y lo vallan a dar de baja en la cerradura, luego de todo esto deben de emularla casi perfectamente, si lo llegaran a hacer mejor que vendan el emulador asi ganarian mas dinero jejjee.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en abril 16, 2007, 06:03:21 pm
ya subi de nuevo los programas .
estan en la primera pagina de este tema
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: dOlPhIn en octubre 03, 2007, 07:34:23 am
Que tal!!

solo posteo para avisarles que pronto posteare aqui mismo una modificacion de este proyecto, el cual esta vez contara con display lcd, y con un teclado matricial de 3x4, este consistira en que la clave sera ingresada por el teclado y visualizada en el display, y las opciones de dar de baja una de las tarjetas podra ser tambien visualizada para asi decidir que tarjeta sera dada de baja, ademas de todo esto tambien contara con mayor espacio de almacenamiento, es decir se podran almacenar mas numeros de serie de tarjetas en el.
El micro sera mas barato y en caracteristicas es mejor.

bueno poco a poco lo ire posteando.

Saludos.
 
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: Azteck11 en diciembre 27, 2007, 03:27:43 pm
Saludos

Dolphin tomandote la palabra del post de regalos ;D me gustaria intentar armar tú proyecto, leyendo los ultimos post quedo esperando ansioso tú proyecto.

Suerte y felices fiestas.
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: Copycat en febrero 12, 2008, 02:22:17 am
Ohhh Bendita Basura, 10x PIC por rescatar esta info de aki me desenpolvare un poco para hechar andar otro proyecto parecido a las llaves, esperando ke todo salga bien hare comentarios al respecto despues, primero tengo ke armarme de chucherias nuevamente..






I´m BaCk  =^.^=
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: mastercel en enero 24, 2009, 06:47:12 pm
ya no se bloqueen con estos pos de revistas , si necesitan una cerradura electronica muy bien la pueden hacer con transponder un micro 18f4520 y crear el programa con un usb virtual  bueno si aqui nos acompaña añgun ing de solaris seria mejor que el,les platicara
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: doncorleone.jrvs en mayo 18, 2009, 04:02:09 pm
que tal solo aprovecho este tema para avisarles que en la revista "saber electronica" No. 199
saldra publicado un proyecto que por un tiempo lo publique aqui pero que por falta de interes de los demas lo tuve que retirar y lo mande a la editorial.

el proyecto se llama "cerradura por tarjetas telefonicas"

para los que compren la revista, en la pagina de webelectronica al bajar el archivo que sirve de para programa el pic, no quisieron poner el .asm para hacer modificaciones, a pesar que se los mande.
pero si alguno de ustedes lo necesita solo pidanlo y se los mando a sus correos.

Gracias.

hola que tal soy nuevo manejando pic's y me gustaria que me pasaras este programa y el circuitopara ir probando con pic's ademas que es un buen proyecto te lo agredeceria y si tienes algun otro me lo cometaras...  muchas gracias por tu aportacion
Título: Re: REVISTA SABER ELECTRONICA No. 199
Publicado por: asalastmx en junio 03, 2009, 08:44:39 pm
Que tal!!

solo posteo para avisarles que pronto posteare aqui mismo una modificacion de este proyecto, el cual esta vez contara con display lcd, y con un teclado matricial de 3x4, este consistira en que la clave sera ingresada por el teclado y visualizada en el display, y las opciones de dar de baja una de las tarjetas podra ser tambien visualizada para asi decidir que tarjeta sera dada de baja, ademas de todo esto tambien contara con mayor espacio de almacenamiento, es decir se podran almacenar mas numeros de serie de tarjetas en el.
El micro sera mas barato y en caracteristicas es mejor.

bueno poco a poco lo ire posteando.

Saludos.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
quetal Dolphin, oye muy bueno tu proyecto. felicitaciones, ya arme tu proyecto y funciona de maravilla, pero me gustaria mas
armarlo con la modificacion que le vas a hacer, oye tardaras en publicar las modificaciones, me gustaria armar ese, ademas de que seria mas atractivo y lo mejor de todo que soportaria mas tarjetas.

saludos desde puebla ah y esta buenisimo el foro.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en junio 05, 2009, 09:03:53 am
Gracias por las felicitaciones, voy a buscar los archivos de estas modificaciones, se que ya habia prometido publicarlas, pero lo que sucede es que este proyecto lo hice para un concurso de creatividad cuando estaba en el Tecnologico, (que por cierto la etapa nacional fue en el Tecnologico de Chihuahua ahi conoci a "Unevox" pues el estudia ahi (es muy inteligente este chavo)), por este motivo todo lo hice a la carrera, que no tuve tiempo de hacer diagramas, incluso tiene algunas fallas, que solo se dan de vez en cuando, son fallas menores de display, debido a los examenes finales, no tenia tiempo para hacerlo, y pues ahora estoy casi igual pues en mi trabajo, como es de diseño electronico me deja poco tiempo para hacer esto, voy a pasar el codigo fuente para que ustedes traten de armar el circuito, yo los ire guiando espero me puedan ayudar. Esta etapa esta muy bien pue para el concurso , hice un programa en la computadora en turbo C++, en el cual se conectan en seria hasta 255 cerraduras (por ejemplo en un hotel), y desde la computadora se dan de alta y baja las tarjetas que seran la llave de cada uno de los cuartos, todo desde la "recepcion", para el concurso estuvo muy bien, pues logramos el 2do lugar nacional, pero ahora yo le haria unas modificaciones, pues el programa seria en visual, el puerto usado seria el USB, comunicacion rs232 por los niveles de voltaje y las distancias y lo economico , pues en el concurso aun no sabia manejar la comunicacion serial, he invente mi propio protocolo lo cual fue muy complicado, pero funciona. el proyecto quedaria aun asi muy barato, aprox de 100 a 150 pesos, por cerradura (solo la parte de control electronica sin incluir el solenoide,).
Espero me puedan ayudar.

Saludos
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: doncorleone.jrvs en junio 06, 2009, 01:23:30 pm
esperare con ansias tus mejores y el codigo fuente, tengo muchas ganas de hacer esta cerradura para mi cuarto y ademas experimentar con pics

muchas gracias dOlPhIn¡¡¡¡¡¡¡
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en junio 17, 2009, 03:47:56 pm
Pues disculpen la demora.
Aqui estan los archivos del proyecto, el diagrama esta funcionando bien solo que no esta muy especificado, por lo que tendran que darle una leida a las configuraciones del codigo para los puertos, creo que al parecer lo unico que le falta al diagra son los nombres de las conexiones del chip de la tarjeta pero quedaria asi: clk -> PORTB,3    rst ->PORTB,1    y   I/O ->PORTA,4,   para dar de alta o baja la tarjeta ustedes pueden meter una clave, para me ter su propia clave deben ingresar  "00000000" (creo) en caso de que esta no sea la clave , pueden ingresar la clave maestra "28092006" (esa si no se olvida fue la fecha de mi boda), pues les paso toda la informacion (hace 1 año no lo hubiera echo por nada del mundo), pero espero que lo aprobechen y hagan comentarios el pic utilizado es el pic16f628a. El .hex que hay que grabar en el pic es: "corregido.hex" en el archivo .rar que adjunto viene todo lo que use en la presentacion en el concurso.

Saludos
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en junio 17, 2009, 03:53:07 pm
olvide poner el codigo asm, aqui esta:
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: doncorleone.jrvs en junio 17, 2009, 06:58:50 pm
el socket donde lo conseguiste o como l tengo que buscar por que fui a buscarlo y no lo encontre¡¡¡¡ gracias
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: doncorleone.jrvs en junio 17, 2009, 07:03:34 pm
intente usar la clave en el msdos y no me funciono seguro que es 00000000 o 28092006?
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: Nixz en junio 17, 2009, 10:11:00 pm
Que desprendido, picpower -muchos sacaran buen uso de este aporte- Je je, saludos.
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en junio 18, 2009, 01:23:25 pm
Cita
intente usar la clave en el msdos y no me funciono seguro que es 00000000 o 28092006?

El programa que ejecutaste es para la cerradura que hice para que administraras las tarjetas "llaves" de la cerraduras de un hotel , es decir cuando tienes mucha habitaciones con esta cerradura debes de conectarlas en paralelo con el puerto paralelo de la PC, en este caso la contraseña es : "itslp", pero la contraseña que envie fue para la cerradura que utiliza el teclado matricial, lean el archivo en PowerPoint que adjunte, ahi explica todo lo del proyecto, por lo pronto solo les di mas informacion de la cerradura con teclado matricial y display que es el que esta mas completo, graben en el pic el archivo "corregido.hex" para este caso, para ambas versiones de la cerradura se utiliza el mismo hardware, (que tambien viene en la presentacion ) tambien adjunte el pcb pero deben abrirlo con PCB WIZARD, Snake wather Hizo la maqueta de madera, detras de ella esta el socket de las tarjetas, este socket no se donde conseguirlo pues este me lo dio UNEVOX.

Saludos a Snakewather y Unevox
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en febrero 09, 2010, 10:39:07 am
Hola, se que parecia olvidado este tema, pero la verdad es que me ha dado mucha satisfaccion y no lo dejare, sobre todo por ser el primer proyecto que hice con pics, ahora tengo la intencion de migrarlo a atmel (estoy estudiandolos y me doy cuenta de la superioridad sobre los pics), tengo la intencion de poner mas proyectos que algunos les ayudaran (detector de colores con el tcs230, programacion en CCS, y calibracion por software de termistores en PICs), poco a poco lo ire haciendo y espero el apoyo de los CUMpañeros que siempre me han ayudado, (Unevox, Picpower, SnakeWhater).
Aprovecho tambien para presumirles que estoy muy ocupado junto con mi esposa y muy contento con nuestro "proyectito" llamado Michelle (mi hija), con ella estamos aprendiendo cosas que no se aprenden en el ITSLP ni en la UASLP.
bueno me dejo de sentimentalismos y a darle con los proyectos.
Saludos.
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: snakewather en febrero 10, 2010, 08:11:40 pm
Hola dolPhin saludos desde el mas alla!

Que onda, en lo que puede cooperar ya sabes, en especial me llamo la atencion el de calibracion por software de termistores en PICs de seguro lo hiciste con visual basic y PBP, fijate que tambien estaria bueno un tutorial de CCs como el que hice solo que no me he animado por que creo todavia me falta un poco mas, no me puedo separar del enzamblador lo aprendi muy bien, aunque tuve un profe medio loco pero bueno,..................... no te creas...........!

Saludos a su proyectito y a tu esposa!
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en febrero 11, 2010, 08:21:37 am
Que onda snakewather, gracias por tu participacion, y pues yo digo que tu profe no sabe nada  ;D, en cuanto a lo de la calibracion de sensores, solo lo hice con ccs no no fue nesesario la pc, solo se aplica una formula con matrices y lse inealisa la respuesta del sensor. si quieres abrimos un nuevo tema para no desviarnos de este.

Referente a este proyecto, te aconsejo que pruebes la programacion en atmel pero con c, lo de ensamblador ya se te va a hacer mas facil, de echo estoy comenzando en ensamblador para entender a el micro, luego pienso usar winavr(como el que usamos en el curso que nos dieron en el tec los de atmel), o codevision, ambos para programar en C checa los precios en esta tienda ( es de san luis potosi). http://wozix.com/tienda/vmchk (http://wozix.com/tienda/vmchk) por ahora no tienen atmel pero dice el chavo que va a traer algunos, luego podemos juntarnos en mi casa para ver los de la programacion, le hablamos a el Sr. crepas y a tu hijo el pocho, y de paso nos echamos un "xboxaso 360", ha tambien tengo un manual impreso y completo de todas las instrucciones en ensamblador todas explicadas de los avr's  (155 paginas) para que le saques copias.
saludos a tu familia y a tu brillante profe. ;D
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: unevox en febrero 11, 2010, 11:01:34 am
micros de atmel, les sugiero comprarlos en.

Código: [Seleccionar]
http://www.agelectronica.com/inicio.htm

Y ami particular punto de vista para aprender compraria

1 attiny2313
1 Atmega 8
1 Atmega128
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: snakewather en febrero 12, 2010, 12:17:41 am
si sabes a que profe me referia, un Delfinsillo que anda por ahi sireneando!

jejeje....estan bien los que dice Unevox los voy a checar mas a fondo.

Y que paso con ese PSP tu sabes que no me gusta migrar a otras consolas
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: tanausu en junio 03, 2010, 03:33:34 am
buenos dias,
somos un grupo de estudiantes de electronica de canarias (IES SANTA LUCIA), nuestro profesor ha visto tu proyecto y le gusto mucho,asi que nos ha mandado una cerradura electronica,para ello necesitamos el programa para leer codigo de la tarjeta y el archivo asm del microcontrolador.Por otro lado  estamos haciendo el diseño de la placa con el proteus,si quieres te la enviamos cuando este acabada(en una semana maximo)

saludos.
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: KDS en junio 03, 2010, 09:05:43 am
Que bien que el proyecto de dOlPhIn es por allá, tengo un buen amigo también por allá, y yo creo que hablando por dOlPhIn a todos nos gustaría que publicaras por lo menos fotos :D

Les recomiendo probar EAGLE u OrCAD (Allegro) para sus próximas PCBs


Saludos
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: erojo15 en mayo 11, 2011, 06:39:50 pm
me gusto mucho tu proyecto y me gustaria realizarlo no se si  me pudieras mandar tus archivos.

ha y muchas gracias por compartir tus grandes ideas con todos. ;D ;D
Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: erojo15 en mayo 11, 2011, 06:49:13 pm
 
donde puedo conseguir el socket de smart card?

como cuanto cuesta ? ;)

mi correo es aptcas18@hotmail.com
o el de   pachurios123@hotmail.com

Título: Re: Cerradura con Tarjetas Telefonicas
Publicado por: dOlPhIn en mayo 13, 2011, 04:26:04 pm
hola chca mi pagina, ahi esta el pryecto, es la version mas basica de este proyecto pero funciona muy bien, los archivos de este proyecto ya no los tengo (ya los perdi), pero si sabes algo de programacion en c, podras hcer lo que tu quieras con el proyecto,

en la pagina puedes descarga los archivos completos para realizarlo, los socket me los regalo unevox.

saludos

http://www.xbot.es/ezkybel/ (http://www.xbot.es/ezkybel/)