Autor Tema: Cerradura con Tarjetas Telefonicas  (Leído 74617 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Cerradura con Tarjetas Telefonicas
« : 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.
« Última Modificación: febrero 18, 2008, 02:58:51 pm por dOlPhIn »
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

bardocs

  • Mensajes: 11
  • Liked: 0
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #1 : 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

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #2 : 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.
« Última Modificación: febrero 08, 2007, 08:57:41 pm por dOlPhIn »
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

KDS

  • **
  • Mensajes: 151
  • Liked: 0
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #3 : 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.
--
KDS
“Somos más felices”, dice un titular en la radio,

“La Tierra se muere”, reza un graffiti en el barrio.

vamp_78

  • *
  • Mensajes: 35
  • Liked: 0
  • ¡Amo YaBB SE!
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #4 : 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

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #5 : 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


"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #6 : febrero 16, 2007, 06:53:00 pm »
aqui les dejo los diagramas. los programas se los paso despues
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #7 : 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
« Última Modificación: abril 16, 2007, 05:56:09 pm por dOlPhIn »
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

PICPOWER

  • "Arriba la Facultad de Ingeniería de la UNAM" Diseñando para el Instituto de Física...
  • ***
  • Mensajes: 350
  • Liked: 0
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #8 : 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...
My name is POWER... PICPOWER

"Dame un microcontrolador y moveré al mundo"

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #9 : 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"
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

eidtech

  • **
  • Mensajes: 176
  • Liked: 10
  • Firmware Engineer
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #10 : febrero 17, 2007, 11:12:56 pm »
Alta Velocidad.. 15us?   ???

KDS

  • **
  • Mensajes: 151
  • Liked: 0
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #11 : 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)
--
KDS
“Somos más felices”, dice un titular en la radio,

“La Tierra se muere”, reza un graffiti en el barrio.

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #12 : 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

« Última Modificación: febrero 19, 2007, 12:09:15 pm por dOlPhIn »
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"

rocaanvil

  • ***
  • Mensajes: 274
  • Liked: 0
    • http://rocaanvil.wordpress.com
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #13 : febrero 20, 2007, 04:16:02 pm »
Gracias. a mi me gustaria que subieras el codigo del lector de las tarjetas.

muchas gracias..

roca.
Si te gustan mis alas.. porque te empeñas en cortarlas??

dOlPhIn

  • ***
  • Mensajes: 264
  • Liked: 13
  • Visiten: http://www.xbot.es/ezkybel/
    • Ezkybel Electronics
Re: REVISTA SABER ELECTRONICA No. 199
« Respuesta #14 : 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');
}
"¡¡¡ Mis Hijas y mi Esposa son mi mayor motivacion.. Las amo !!!"