Menú Principal

Abrir el garage "like a boss" (¡¡Alerta de frikismo extremo!!)

Iniciado por Chancho, Mayo 08, 2012, 01:44:48 PM

Chancho

Hola a todos.

Este post seguramente acabe siendo un ladrillaco impresionante, asi que cargate de animo o de una cervecita porque la cosa va para largo  :icon_lol:.

Como ya pone en el titulo es un tema para frikis de categoria A+++ , asi que si te pierdes en algun momento tampoco importa mucho, seguramente tampoco sea importante  :icon_confused:.

Todo esto surgió por el coñazo supremo que supone llegar a casa o al curro y andar buscando los mandos del parking, frena la moto en cuesta, quitate el guante, botoncito, ponte el guante.. uy, se cayó al suelo, sal a la calle, deja la moto y corre a por el guante antes de que se cierre la puerta, etc... un asco vamos. Habia visto por foros y demas fauna internauta gente que muy ingeniosamente habia puenteado el boton de luces o del claxon (los mas escandalosos) de la moto al boton del mando del garaje y asunto solucionado, los mas osados incluso lo conectaban a la bateria y asi te olvidas de andar cambiando pilas, genial!. El problema (y en gran medida porque me hace falta este invento), es que para entrar en el garaje de mi casa necesito 3 botones, ya que tiene dos puertas y una alarma, ademas de 2 mandos distintos, ya que van en distintas frecuencias, asi que casi me habia resignado ya hacer de malabarista en la rampa del garaje.

Pero un dia me dio por buscar por google a fondo y encontré una empresa que hacia lo siguiente:

http://www.viacontrol.es/FolletoVia.pdf

Oh! Impresionante! Justo lo que andaba buscando! Pero.. 110 euros?? Y encima poniendo tu los mandos! Prefiero hacer malabarismos para los restos  :eusa_naughty:. Ademas la electronica asociada no puede ser muy compleja, me resisto a pagar ese pasta...

Asi que sigo buscando y buscando y bingo!!

http://www.robertml.com/Varios/Explicacion.pdf
http://www.robertml.com/Varios/Circuito.zip

Un chico ya se habia hecho un sistema similar al de viacontrol y lo mejor de todo es que habia publicado toda la informacion para que te pudieras hacer el tuyo propio adaptando lo que ya ha hecho él!, he visto la luz!  :bienn:.

Incluso ha colgado videos enseñando el funcionamiento:
Simulación con LED's del sistema de apertura de parking por ráfagas

El invento lo controla un microcontrolador pic, que aunque no tengo ni idea de como funcionan (bueno, ahora ya si), resulta que llevo años queriendo aprender a cacharrear con ellos. Ojeando un poco la documentacion veo unas cuantas cosas que no me acaban de convencer. Usa demasiados componentes que parecen superfluos y ademas parece que no aprovecha al micro al 100% dejando patillas sin conectar. Solo controla tres dispositivos cuando me vendria de perlas que fueran cuatro igual que el de viacontrol (para abrir la puerta de otro garaje al que suelo acceder). Asi que saque de un cajon mi programador casero de pic's con mas de 10 años, reliquia de mis años mozos pirateando playstations y resulta que funcionaba!! (¡y la web de donde lo copie tambien sigue online! http://www.jdm.homepage.dk/newpic.htm), pues nada, si juntamos eso a mi capacidad de meterme en berenjenales ya tenemos el lio montado  :descojono:.

Como si me pongo a explicar todas las peripecias tecnicas por las que pasé esto no se lo lee ni el que suscribe resumire mas o menos las diferencias de mi montaje con el de robertml. Aprovechando todas las patas del pic se pueden controlar 5 dispositivos, para poder hacer eso eliminé el circuito de reset que tenia montado (cosa que hace el propio software del micro). Tambien eliminé los relés, porque el consumo de los mandos de garaje es irrisorio y los optoacopladores aguantan hasta 20ma, mas que suficiente para los interruptores. Por otro lado usa una placa de doble cara y puntos pasantes, algo muy lejos de mis posibilidades con una placa de topos (que es lo que he usado para mi montaje), asi que me he rehecho el circuito para que sea de cara simple, y de paso he aprendido a usar el eagle (he dicho ya que me gusta meterme en berenjenales?? XD), quedando el circuito con esta pinta:



Diseño fisico con los componentes colocados:



Aqui solo las pistas por si eres de los muy manitas que se hacen sus propias placas:


En vez del optoacoplador multiple he puesto unos individuales, que son iguales de baratos y te permiten dimensionar como quieras y colocarlos mejor en la placa. Para alimentar los mandos se usa un regulador de 12v "low drop" (ya que la moto en marcha solo tiene 13.5v + o -) y para el pic y el resto un regulador de 5v. Unos condensadores para estabilizar voltajes y resistencias para regular el resto, no tiene mas misterio. Todo comprado en ebay a precio chino, aunque hay cosas como las resistencias y condensadores que no vale ni la pena, en cualquier tienda de elctronica los tienen por pocos centimos.

La lista detallada de componentes sería:

5 resistencias de 220
1       "      de 820
1       "      de 10K
3 condensadores de 0.1, 0.33 y 22 µF respectivamente
1 Regulador LM2940-12 Ebay
1 Regulador 7805 Ebay
6 optoacopladores PC817 (los mas baratos que encontré) Ebay
Y el pic claro, en este caso un 12f683 Ebay


Tambien compré una cajita de plastico para meterlo todo, que para mi perplejidad resulto ser la compra mas cara de todo el conjunto O_o

Cajita en eBay

Por otro lado, no me apetecia donar mis mandos "oficiales", porque me quedo sin ellos y los utilizo para el coche, asi que me hice con unos "autocopiantes" de deaextreme que estan tirados de precio: estos. Por desgracia uno de mis mando no es "copiable" por estos mandos y tuve que comprar uno "de los caros" (claro que comparado con 4$ todo es caro  :risa3:).

Por otro lado esta la parte del "software" de la cucaracha.

Como pulsar 4 o 5 veces seguidas para activar las puertas extra me parecia un coñazo, pues cambie el codigo para que fuera capaz de reconocer tanto pulsaciones largas como pulsaciones cortas del boton de rafagas, asi las posibilidades son infinitas! :D Incluso si eres algo paranoico, te puedes poner un "codigo secreto" para abrir la puerta de casa y que no sea tan sencillo abrirte el garaje a algun amigo de lo ajeno.

Ademas, otro problemilla que me encontré al intentar modificar el codigo de robert es que su codigo esta preparado para ccs, un compilador de pago que no tengo ni pienso tener, asi que lo reescribí todo en sdcc un compilador libre y gratuito (no, si estoy empezando a pensar que lo mio es masoquismo...)

El codigo queda tal que asi:


/**************************************

Codigo para controlar puertas de garaje
con el mando de rafagas

Basado en el circuitor de robertml
http://www.robertml.com/Varios/Circuito.zip

***************************************/

#include "pic/pic12f683.h"

// Configuramos el PIC sin reset, ni watchdog, ni proteccion de codigo

unsigned int at 0x2007 __CONFIG = _FCMEN_OFF&_IESO_OFF&_BOD_ON&_CPD_OFF&_CP_OFF&_INTRC_OSC_NOCLKOUT&_MCLRE_OFF&_WDT_OFF&_PWRTE_ON;

#define T_ABRIR        2000    // Tiempo que se activan las salidas
#define T_PULSA_CORTA  400     // Tiempo maximo de rafaga corta
#define T_PULSA_LARGA  3000    // Tiempo maximo de rafaga larga
#define T_ESPERA       700     // Tiempo maximo de espera entre rafaga y rafaga
#define T_REBOTE       40      // Tiempo minimo para que se considere una rafaga

#define P_1 0b000001   // La salida GP0 del PIC activa la puerta 1
#define P_2 0b000010   // La salida GP1 del PIC activa la puerta 2
#define P_3 0b000100   // La salida GP2 del PIC activa la puerta 3
#define P_4 0b010000   // La salida GP4 del PIC activa la puerta 4
#define P_5 0b100000   // La salida GP5 del PIC activa la puerta 5


volatile unsigned char pulsa_corta;
volatile unsigned char pulsa_larga;

// Funciones para el delay fusiladas de http://per.launay.free.fr/pik_digor/sdcc/lib/source/

void delay_us (char a)
{ a;
_asm                  // a ya está cargado en el registro w
    sublw 1           //(1-a)
bucle:
    ADDLW 1
    btfss 0x03,0      //test si w=0 carry=1
    goto bucle
_endasm;
}

void delay_ms(int ms)
{
    unsigned int j;
    for (j=0; j<ms; j++)
      delay_us (500);
}

// Manejo de la interrupcion por IOC
// Uso GP3 porque es la unica de solo input

void Intr(void) interrupt 0
{
  unsigned int contador = 0;

  GPIF=0;             // Limpio el flag
  delay_ms(T_REBOTE); // Evitando rebotes de señal

  if (GP3) {          // Sigue pulsada, flanco de subida

    while (GP3) {     // Se me pega el dedoooo...
      contador++;
      delay_ms(1);
    }

    if (contador<T_PULSA_CORTA) pulsa_corta=1;
    if ((contador>T_PULSA_CORTA)&&(contador<T_PULSA_LARGA)) pulsa_larga=1;

  }

}

// Activa la salida del PIC "salida" durante el tiempo dado en "tiempo"

void activa_salida(unsigned char salida, unsigned int tiempo)
{
  GPIO |= salida;
  delay_ms(tiempo);
  GPIO &= ~salida;
}

// Bucle principal

void main(void)
{

  unsigned int i;
  unsigned int combinacion;
  unsigned char n_pul;

  TRISIO = 0b1000; // La pata GP3 como entrada y lo demas salida
  GPIO  = 0;       // Todo Off
  ANSEL = 0;       // Todo Digital

  INTCON=0x00;     // Clear interrupt
  GPIE=1;          // Interrupciones en cambio
  IOC=0b1000;      // Atento a la patita GP3
  GIE=1;           // Interrupciones activas

  pulsa_corta = 0;
  pulsa_larga = 0;
  combinacion = 0;
  n_pul = 0;

  while(1)
  {

    // Habemus rafagas!
    if (pulsa_corta||pulsa_larga) {

      // Bucle contador de rafagas
      do {
        if (pulsa_corta) combinacion |= (0b10<<(n_pul*2));
        else combinacion |= (0b11<<(n_pul*2));
        n_pul++;
        i=T_ESPERA;
        pulsa_corta = 0;
        pulsa_larga = 0;
        while ((!pulsa_corta)&&(!pulsa_larga)&&(i>0))  {
          delay_ms(1);
          i--;
        }
      } while ((i>0)&&(n_pul<8));

      GIE=0;  // Do not disturb...

      // Ahora se decide que hacer con las rafagas
      // Se comienza con "0b" y luego se pone que combinacion se desea
      // 10 = Rafaga Corta / 11 = Rafaga Larga
      // Y SE LEE DE DERECHA A IZQUIERDA!!!!
      // Ej: Soy un tio muy raro y quiero abrir con Corta,Larta,Corta,Corta,Larga => 0b1110101110

      switch (combinacion) {
        case 0b10:      // Corta
          activa_salida(P_1, T_ABRIR);
          break;
        case 0b11:      // Larga
          activa_salida(P_2, T_ABRIR);
          break;
        case 0b1010:    // Corta Corta
          activa_salida(P_3, T_ABRIR);
          break;
        case 0b1011:    // Larga Corta
          activa_salida(P_4, T_ABRIR);
          break;
        case 0b1110:    // Corta Larga
          activa_salida(P_5, T_ABRIR);
          break;
        default:
          break;
      }

      // Limpiamos y reactivamos interrupciones
      n_pul = 0;
      combinacion = 0;
      GIE = 1;
    }
  }

}


Para los que no se enteren de estos temas resumiré: teniendo 5 puertas de garaje, una rafaga corta abre la primera, una rafaga larga la segunda, dos rafagas cortas la tercera, una rafaga larga seguida de una corta la cuarta, y una rafaga corta seguida de una larga la quinta, si se ponen las luces largas permanentes el sistema espera unos segundos y al final se desactiva. Todo con un solo boton, magia!. Vale que puede parecer un follón, pero lo bueno de esto es que es configurable, asi que si quieres abrir una puerta dando 5 rafagas cortas se puede hacer sin problemas.

Y creo que ya me he cansado de escribir, asi que os pongo unas fotillos de mi montaje.

La placa con todo montado. Puse un zocalo para poder reprogramar el pic si me apetece mas adelante. La parte de la izquierda son los optos que van a los botones de los mandos, lo de la derecha la parte de alimentacion y señales.


Vista inferior con las conexiones, un trabajo fino fino  :eusa_whistle:


Aqui con los mandos conectados ya. Quitando los interruptores y soldando directamente en la placa es mas sencillo, pero por si acaso algun dia me da por desmontarlo todo asi puedo recuperar los mandos integros.


Y aqui metido todo en la cajia que compre en ebay. Le he puesto un conector para poder ponerlo y quitarlo de la moto, pero la verdad es que visto como queda me parece que ha sido una mala eleccion, no me inspira nada de confianza. Lo suyo es usar un conector de automocion o soldar los cables directamente, que seguramente es lo que acabe haciendo.


Y aqui una comparativa para que veais el tamaño del invento.


Y ya solo queda meterlo en la moto en cualquier sitio que no estorbe. Se conectan los cables a masa, al positivo de cortas (para tener alimentacion) y al positivo de largas (que es el que da la señal que decide que puerta abrir) y abrete sesamo!! Te conviertes en un ali babá de andar por casa  :risa7:

Si has llegado hasta aqui te mereces otra buena birra y una medallita  :drink5:. Si eres ingeniero electronico seguro que ves burradas por doquier, pero es que yo solo soy un aficionado autodidacta, ten compasion!  :eusa_doh:. Para cualquier duda por aqui ando.

Seguramente todo este rollo no lo use ni el 1% de la gente que lo lea, pero si alguien lo puede aprovechar mejor para él  :ok:

Pongo aqui un enlace para bajarse los esquemas, el codigo y las fotos del tiron, para tenerlo todo junto.
http://www.mediafire.com/?3j5i7ix3b6k3kk4


V'ssss!!!  :victory: :victory: :victory:
No voy despacio, es que me gusta mirar el paisaje...

vectragt

 :icon_eek: :icon_eek: :icon_eek: :icon_eek: :icon_eek: :icon_eek: :icon_eek: pedazo trabajado si señor.
Victor mueveló tu que es un tu cuñaaaaaao
Hasta el dia que no me he subido en mi VFR no he sabido realmente lo que era montar y disfrutar en una moto

raulin

Muy buena idea y peazo curro te has pegado...enhorabuena compañero... eso si, no me he enterado de nada!!! :risa7: :risa7: :risa7:

Bellota

#3
Lo que hace el aburrimiento y quedarse el finde de rodriguez...

PD: Ya puedes ir haciendo otro pa tu cuñaaaaoooo....  :eusa_whistle:
Salu2 :adios1:

VFR 800i 99 Roja

Si algo he aprendido de los videojuegos, es que si encuentras enemigos es porque vas en la dirección correcta.

Chancho

Cita de: Bellota en Mayo 08, 2012, 05:23:09 PM
Lo que hace el aburrimiento y quedarse el finde de rodriguez...

PD: Ya puedes ir haciendo otro pa tu cuñaaaaoooo....  :eusa_whistle:

Es que solo en casa me aburro mucho.

Tu pa que quieres na si tu garaje solo tiene un boton, cacho vago!!!
No voy despacio, es que me gusta mirar el paisaje...

Nebari

Joeeeer, pedazo currele te has pegado!!!

Se podría programar una fregona para que se pusiera en funcionamiento con un silbidito???? Madré mía ... Los derechos de autor a medias, eh!!!!

champa

Joder menos mkal que eres autodidacta, menudo curro y menuda idea más cojonuda te lo has currado a base de bien :bienn:

Lo que no veo tan claro es lo de las rafagas cortas y largas para entrar en casa, un día  que vuelvas de las birras duermes en la calle.

Bellota

Cita de: Chancho en Mayo 08, 2012, 05:36:43 PM
Cita de: Bellota en Mayo 08, 2012, 05:23:09 PM
Lo que hace el aburrimiento y quedarse el finde de rodriguez...

PD: Ya puedes ir haciendo otro pa tu cuñaaaaoooo....  :eusa_whistle:

Es que solo en casa me aburro mucho.

Tu pa que quieres na si tu garaje solo tiene un boton, cacho vago!!!

Para ser "like a boss"...
Salu2 :adios1:

VFR 800i 99 Roja

Si algo he aprendido de los videojuegos, es que si encuentras enemigos es porque vas en la dirección correcta.

EL_JAU

Joer, me he perdido a la segunda linea...pero viendo el resultado mas que "like a boss"... yo díria que eres el "puto amo" de la apertura de garajes.

Enhorabuena por meterte en esos berenjenales y salir victorioso.

Saludos.


Sergi-k12s

Eres un crack.... lástima que yo sea tan torpe que si no me lo hacía fijo.....

V'sssssss
SI DEJAS QUE CAMINE TRAS DE TI, PROMETO ESTARTE AGRADECIDO...


vkarolo

Eres indudablemente "el puto amo" de los circuitos letrónicos. Me ha gustado tu desarrollo del proyecto (porque hay que llamarlo así) y siento que mi garaje solo funcione con una frecuencia y que se lo vaya a montar( tercera moto en la que lo instalo) con las ráfagas nada más. Pero está muy currado el equipo, aunque también veo peligroso el volver algo pejudicado a casa y no poder dormir en casa, por no dejarla en la calle, al serte imposible recordar la secuencia de toques que necesita acceder a tu castillo.
Lo podíais haber simplificado, aunque cueste tener a Stalone detrás de la puerta.  :risa7:
Cita de: Chancho en Mayo 08, 2012, 01:44:48 PM
Hola a todos.

Este post seguramente acabe siendo un ladrillaco impresionante, asi que cargate de animo o de una cervecita porque la cosa va para largo  :icon_lol:.

Como ya pone en el titulo es un tema para frikis de categoria A+++ , asi que si te pierdes en algun momento tampoco importa mucho, seguramente tampoco sea importante  :icon_confused:.

Todo esto surgió por el coñazo supremo que supone llegar a casa o al curro y andar buscando los mandos del parking, frena la moto en cuesta, quitate el guante, botoncito, ponte el guante.. uy, se cayó al suelo, sal a la calle, deja la moto y corre a por el guante antes de que se cierre la puerta, etc... un asco vamos. Habia visto por foros y demas fauna internauta gente que muy ingeniosamente habia puenteado el boton de luces o del claxon (los mas escandalosos) de la moto al boton del mando del garaje y asunto solucionado, los mas osados incluso lo conectaban a la bateria y asi te olvidas de andar cambiando pilas, genial!. El problema (y en gran medida porque me hace falta este invento), es que para entrar en el garaje de mi casa necesito 3 botones, ya que tiene dos puertas y una alarma, ademas de 2 mandos distintos, ya que van en distintas frecuencias, asi que casi me habia resignado ya hacer de malabarista en la rampa del garaje.

Pero un dia me dio por buscar por google a fondo y encontré una empresa que hacia lo siguiente:

http://www.viacontrol.es/FolletoVia.pdf

Oh! Impresionante! Justo lo que andaba buscando! Pero.. 110 euros?? Y encima poniendo tu los mandos! Prefiero hacer malabarismos para los restos  :eusa_naughty:. Ademas la electronica asociada no puede ser muy compleja, me resisto a pagar ese pasta...

Asi que sigo buscando y buscando y bingo!!

http://www.robertml.com/Varios/Explicacion.pdf
http://www.robertml.com/Varios/Circuito.zip

Un chico ya se habia hecho un sistema similar al de viacontrol y lo mejor de todo es que habia publicado toda la informacion para que te pudieras hacer el tuyo propio adaptando lo que ya ha hecho él!, he visto la luz!  :bienn:.

Incluso ha colgado videos enseñando el funcionamiento:
Simulación con LED's del sistema de apertura de parking por ráfagas

El invento lo controla un microcontrolador pic, que aunque no tengo ni idea de como funcionan (bueno, ahora ya si), resulta que llevo años queriendo aprender a cacharrear con ellos. Ojeando un poco la documentacion veo unas cuantas cosas que no me acaban de convencer. Usa demasiados componentes que parecen superfluos y ademas parece que no aprovecha al micro al 100% dejando patillas sin conectar. Solo controla tres dispositivos cuando me vendria de perlas que fueran cuatro igual que el de viacontrol (para abrir la puerta de otro garaje al que suelo acceder). Asi que saque de un cajon mi programador casero de pic's con mas de 10 años, reliquia de mis años mozos pirateando playstations y resulta que funcionaba!! (¡y la web de donde lo copie tambien sigue online! http://www.jdm.homepage.dk/newpic.htm), pues nada, si juntamos eso a mi capacidad de meterme en berenjenales ya tenemos el lio montado  :descojono:.

Como si me pongo a explicar todas las peripecias tecnicas por las que pasé esto no se lo lee ni el que suscribe resumire mas o menos las diferencias de mi montaje con el de robertml. Aprovechando todas las patas del pic se pueden controlar 5 dispositivos, para poder hacer eso eliminé el circuito de reset que tenia montado (cosa que hace el propio software del micro). Tambien eliminé los relés, porque el consumo de los mandos de garaje es irrisorio y los optoacopladores aguantan hasta 20ma, mas que suficiente para los interruptores. Por otro lado usa una placa de doble cara y puntos pasantes, algo muy lejos de mis posibilidades con una placa de topos (que es lo que he usado para mi montaje), asi que me he rehecho el circuito para que sea de cara simple, y de paso he aprendido a usar el eagle (he dicho ya que me gusta meterme en berenjenales?? XD), quedando el circuito con esta pinta:



Diseño fisico con los componentes colocados:



Aqui solo las pistas por si eres de los muy manitas que se hacen sus propias placas:


En vez del optoacoplador multiple he puesto unos individuales, que son iguales de baratos y te permiten dimensionar como quieras y colocarlos mejor en la placa. Para alimentar los mandos se usa un regulador de 12v "low drop" (ya que la moto en marcha solo tiene 13.5v + o -) y para el pic y el resto un regulador de 5v. Unos condensadores para estabilizar voltajes y resistencias para regular el resto, no tiene mas misterio. Todo comprado en ebay a precio chino, aunque hay cosas como las resistencias y condensadores que no vale ni la pena, en cualquier tienda de elctronica los tienen por pocos centimos.

La lista detallada de componentes sería:

5 resistencias de 220
1       "      de 820
1       "      de 10K
3 condensadores de 0.1, 0.33 y 22 µF respectivamente
1 Regulador LM2940-12 Ebay
1 Regulador 7805 Ebay
6 optoacopladores PC817 (los mas baratos que encontré) Ebay
Y el pic claro, en este caso un 12f683 Ebay


Tambien compré una cajita de plastico para meterlo todo, que para mi perplejidad resulto ser la compra mas cara de todo el conjunto O_o

Cajita en eBay

Por otro lado, no me apetecia donar mis mandos "oficiales", porque me quedo sin ellos y los utilizo para el coche, asi que me hice con unos "autocopiantes" de deaextreme que estan tirados de precio: estos. Por desgracia uno de mis mando no es "copiable" por estos mandos y tuve que comprar uno "de los caros" (claro que comparado con 4$ todo es caro  :risa3:).

Por otro lado esta la parte del "software" de la cucaracha.

Como pulsar 4 o 5 veces seguidas para activar las puertas extra me parecia un coñazo, pues cambie el codigo para que fuera capaz de reconocer tanto pulsaciones largas como pulsaciones cortas del boton de rafagas, asi las posibilidades son infinitas! :D Incluso si eres algo paranoico, te puedes poner un "codigo secreto" para abrir la puerta de casa y que no sea tan sencillo abrirte el garaje a algun amigo de lo ajeno.

Ademas, otro problemilla que me encontré al intentar modificar el codigo de robert es que su codigo esta preparado para ccs, un compilador de pago que no tengo ni pienso tener, asi que lo reescribí todo en sdcc un compilador libre y gratuito (no, si estoy empezando a pensar que lo mio es masoquismo...)

El codigo queda tal que asi:


/**************************************

Codigo para controlar puertas de garaje
con el mando de rafagas

Basado en el circuitor de robertml
http://www.robertml.com/Varios/Circuito.zip

***************************************/

#include "pic/pic12f683.h"

// Configuramos el PIC sin reset, ni watchdog, ni proteccion de codigo

unsigned int at 0x2007 __CONFIG = _FCMEN_OFF&_IESO_OFF&_BOD_ON&_CPD_OFF&_CP_OFF&_INTRC_OSC_NOCLKOUT&_MCLRE_OFF&_WDT_OFF&_PWRTE_ON;

#define T_ABRIR        2000    // Tiempo que se activan las salidas
#define T_PULSA_CORTA  400     // Tiempo maximo de rafaga corta
#define T_PULSA_LARGA  3000    // Tiempo maximo de rafaga larga
#define T_ESPERA       700     // Tiempo maximo de espera entre rafaga y rafaga
#define T_REBOTE       40      // Tiempo minimo para que se considere una rafaga

#define P_1 0b000001   // La salida GP0 del PIC activa la puerta 1
#define P_2 0b000010   // La salida GP1 del PIC activa la puerta 2
#define P_3 0b000100   // La salida GP2 del PIC activa la puerta 3
#define P_4 0b010000   // La salida GP4 del PIC activa la puerta 4
#define P_5 0b100000   // La salida GP5 del PIC activa la puerta 5


volatile unsigned char pulsa_corta;
volatile unsigned char pulsa_larga;

// Funciones para el delay fusiladas de http://per.launay.free.fr/pik_digor/sdcc/lib/source/

void delay_us (char a)
{ a;
_asm                  // a ya está cargado en el registro w
    sublw 1           //(1-a)
bucle:
    ADDLW 1
    btfss 0x03,0      //test si w=0 carry=1
    goto bucle
_endasm;
}

void delay_ms(int ms)
{
    unsigned int j;
    for (j=0; j<ms; j++)
      delay_us (500);
}

// Manejo de la interrupcion por IOC
// Uso GP3 porque es la unica de solo input

void Intr(void) interrupt 0
{
  unsigned int contador = 0;

  GPIF=0;             // Limpio el flag
  delay_ms(T_REBOTE); // Evitando rebotes de señal

  if (GP3) {          // Sigue pulsada, flanco de subida

    while (GP3) {     // Se me pega el dedoooo...
      contador++;
      delay_ms(1);
    }

    if (contador<T_PULSA_CORTA) pulsa_corta=1;
    if ((contador>T_PULSA_CORTA)&&(contador<T_PULSA_LARGA)) pulsa_larga=1;

  }

}

// Activa la salida del PIC "salida" durante el tiempo dado en "tiempo"

void activa_salida(unsigned char salida, unsigned int tiempo)
{
  GPIO |= salida;
  delay_ms(tiempo);
  GPIO &= ~salida;
}

// Bucle principal

void main(void)
{

  unsigned int i;
  unsigned int combinacion;
  unsigned char n_pul;

  TRISIO = 0b1000; // La pata GP3 como entrada y lo demas salida
  GPIO  = 0;       // Todo Off
  ANSEL = 0;       // Todo Digital

  INTCON=0x00;     // Clear interrupt
  GPIE=1;          // Interrupciones en cambio
  IOC=0b1000;      // Atento a la patita GP3
  GIE=1;           // Interrupciones activas

  pulsa_corta = 0;
  pulsa_larga = 0;
  combinacion = 0;
  n_pul = 0;

  while(1)
  {

    // Habemus rafagas!
    if (pulsa_corta||pulsa_larga) {

      // Bucle contador de rafagas
      do {
        if (pulsa_corta) combinacion |= (0b10<<(n_pul*2));
        else combinacion |= (0b11<<(n_pul*2));
        n_pul++;
        i=T_ESPERA;
        pulsa_corta = 0;
        pulsa_larga = 0;
        while ((!pulsa_corta)&&(!pulsa_larga)&&(i>0))  {
          delay_ms(1);
          i--;
        }
      } while ((i>0)&&(n_pul<8));

      GIE=0;  // Do not disturb...

      // Ahora se decide que hacer con las rafagas
      // Se comienza con "0b" y luego se pone que combinacion se desea
      // 10 = Rafaga Corta / 11 = Rafaga Larga
      // Y SE LEE DE DERECHA A IZQUIERDA!!!!
      // Ej: Soy un tio muy raro y quiero abrir con Corta,Larta,Corta,Corta,Larga => 0b1110101110

      switch (combinacion) {
        case 0b10:      // Corta
          activa_salida(P_1, T_ABRIR);
          break;
        case 0b11:      // Larga
          activa_salida(P_2, T_ABRIR);
          break;
        case 0b1010:    // Corta Corta
          activa_salida(P_3, T_ABRIR);
          break;
        case 0b1011:    // Larga Corta
          activa_salida(P_4, T_ABRIR);
          break;
        case 0b1110:    // Corta Larga
          activa_salida(P_5, T_ABRIR);
          break;
        default:
          break;
      }

      // Limpiamos y reactivamos interrupciones
      n_pul = 0;
      combinacion = 0;
      GIE = 1;
    }
  }

}


Para los que no se enteren de estos temas resumiré: teniendo 5 puertas de garaje, una rafaga corta abre la primera, una rafaga larga la segunda, dos rafagas cortas la tercera, una rafaga larga seguida de una corta la cuarta, y una rafaga corta seguida de una larga la quinta, si se ponen las luces largas permanentes el sistema espera unos segundos y al final se desactiva. Todo con un solo boton, magia!. Vale que puede parecer un follón, pero lo bueno de esto es que es configurable, asi que si quieres abrir una puerta dando 5 rafagas cortas se puede hacer sin problemas.

Y creo que ya me he cansado de escribir, asi que os pongo unas fotillos de mi montaje.

La placa con todo montado. Puse un zocalo para poder reprogramar el pic si me apetece mas adelante. La parte de la izquierda son los optos que van a los botones de los mandos, lo de la derecha la parte de alimentacion y señales.


Vista inferior con las conexiones, un trabajo fino fino  :eusa_whistle:


Aqui con los mandos conectados ya. Quitando los interruptores y soldando directamente en la placa es mas sencillo, pero por si acaso algun dia me da por desmontarlo todo asi puedo recuperar los mandos integros.


Y aqui metido todo en la cajia que compre en ebay. Le he puesto un conector para poder ponerlo y quitarlo de la moto, pero la verdad es que visto como queda me parece que ha sido una mala eleccion, no me inspira nada de confianza. Lo suyo es usar un conector de automocion o soldar los cables directamente, que seguramente es lo que acabe haciendo.


Y aqui una comparativa para que veais el tamaño del invento.


Y ya solo queda meterlo en la moto en cualquier sitio que no estorbe. Se conectan los cables a masa, al positivo de cortas (para tener alimentacion) y al positivo de largas (que es el que da la señal que decide que puerta abrir) y abrete sesamo!! Te conviertes en un ali babá de andar por casa  :risa7:

Si has llegado hasta aqui te mereces otra buena birra y una medallita  :drink5:. Si eres ingeniero electronico seguro que ves burradas por doquier, pero es que yo solo soy un aficionado autodidacta, ten compasion!  :eusa_doh:. Para cualquier duda por aqui ando.

Seguramente todo este rollo no lo use ni el 1% de la gente que lo lea, pero si alguien lo puede aprovechar mejor para él  :ok:

Pongo aqui un enlace para bajarse los esquemas, el codigo y las fotos del tiron, para tenerlo todo junto.
http://www.mediafire.com/?3j5i7ix3b6k3kk4


V'ssss!!!  :victory: :victory: :victory:
Salud y alegría, todo le día.
Porque nunca serás tan joven como hoy.

Cocreta

 :eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap:

Simplemente, brutal  :bienn:

Siendo de Madriz... ¿podríamos llegar a un acuerdo para que fabricaras otro?  :eusa_whistle:


xto

HAY DOS CLASES DE MOTOS: LAS VFR´S Y LAS OTRAS

Charly-VFR

Cita de: xto en Mayo 08, 2012, 07:55:30 PM
No esta nada mal el invento pero yo seguiré utilizando este:

BMW F800S Garage Door Opener [url=http://www.vet.co.uk]www.vet.co.uk[/url]

:descojono: :descojono: :descojono: :descojono: :descojono: :descojono:

La electrónica de este sistema la he entendido a la primera  :icon_lol:

LA VIDA ES UN VIAJE, VIAJAR EN MOTO ES VIVIR DOS VECES

Thundercats

Una buena currada.. Si señor.. ya me gustaria a mi.. ser un MacGiver.. como tu.. joderrr
Manuales y varios para descargar

[url="https://drive.google.com/drive/folders/1hcwOEjWJ1FdiLL0VH3lVb1EVvB2yQTF6?usp=sharing"]https://drive.google.com/drive/folders/1hcwOEjWJ1FdiLL0VH3lVb1EVvB2yQTF6?usp=sharing[/url]
Si teneis alguna documentación que pueda enriquecerlo... enviadmela a Thundercats.manual.moto@gmail.com

Chancho

#15
Cita de: vkarolo en Mayo 08, 2012, 07:32:10 PM
Eres indudablemente "el puto amo" de los circuitos letrónicos. Me ha gustado tu desarrollo del proyecto (porque hay que llamarlo así) y siento que mi garaje solo funcione con una frecuencia y que se lo vaya a montar( tercera moto en la que lo instalo) con las ráfagas nada más. Pero está muy currado el equipo, aunque también veo peligroso el volver algo pejudicado a casa y no poder dormir en casa, por no dejarla en la calle, al serte imposible recordar la secuencia de toques que necesita acceder a tu castillo.
Lo podíais haber simplificado, aunque cueste tener a Stalone detrás de la puerta.  :risa7:

Bueno, eso es cuestion de software, se puede simplificar todo lo que se quiera. Como si quieres que se activen todas las puertas en cuanto toques el boton  :icon_lol:

Cita de: Cocreta en Mayo 08, 2012, 07:50:34 PM
:eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap:

Simplemente, brutal  :bienn:

Siendo de Madriz... ¿podríamos llegar a un acuerdo para que fabricaras otro?  :eusa_whistle:

Hacer otro no es problema, lo unico que como bien sabe bellota mis plazos de entrega suelen ser "laxos"  :risa7:

Cita de: xto en Mayo 08, 2012, 07:55:30 PM
No esta nada mal el invento pero yo seguiré utilizando este:

BMW F800S Garage Door Opener [url=http://www.vet.co.uk]www.vet.co.uk[/url]

Ostras que bueno, y yo haciendo circuitos, esto se avisa hombre!!! :descojono: :descojono: :descojono:
No voy despacio, es que me gusta mirar el paisaje...

champa

Y digo por decir algo claro, no lo podrías haber programado de tal forma que con una combinación de toques solo te abriera todas las puertas activando los mandos secuencialmente a un intervalo de tiempo cada uno el solito.

Chancho

Cita de: champa en Mayo 09, 2012, 10:52:57 AM
Y digo por decir algo claro, no lo podrías haber programado de tal forma que con una combinación de toques solo te abriera todas las puertas activando los mandos secuencialmente a un intervalo de tiempo cada uno el solito.

Si, lo pensé, pero el problema es que si quiero salir hay que abrir puertas y luego poner la alarma, y si quiero entrar es al contrario, quitar alarma y luego abrir puertas, porque si abro la puerta con la alarma puesta se lia la marimorena y ya puestos me da igual 2 combinaciones que 3...
No voy despacio, es que me gusta mirar el paisaje...

Cocreta

Cita de: Chancho en Mayo 09, 2012, 07:47:53 AM

Cita de: Cocreta en Mayo 08, 2012, 07:50:34 PM
:eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap: :eusa_clap:

Simplemente, brutal  :bienn:

Siendo de Madriz... ¿podríamos llegar a un acuerdo para que fabricaras otro?  :eusa_whistle:
Hacer otro no es problema, lo unico que como bien sabe bellota mis plazos de entrega suelen ser "laxos"  :risa7:


Pues te lo agradecería enormemente... incluso me encantaría ayudarte si es posible, para aprender  :bienn:

Además, como no tengo prisa ni quien me la meta :icon_lol: no hay problema en esperar lo que haga falta  :ok:

¡Saludos!  :victory:

Murdock

¿2 puertas y una alarma? ¿2 mandos? Sólo falta un foso para los cocodrilos...  :risa7: