Newsgroup: it.hobby.elettronica.digitale
Titolo: Cattura codici per telecomandi

Ciao ragazzi, Volevo chiedere un consiglio. Ho l'esigenza di costruire un
telecomando per la mia telecamera Panasonic in quanto il mio è andato
perduto. Avrei bisogno pertanto di studiare lo streaming inviato (usando il
telecomando preso in prestito da un amico che ha una telecamera uguale) . Ho
già fatto un circuitino con il classico TSOP ma il treno di impulsi è troppo
lungo per analizzarlo con l'oscilloscopio a memoria analogica (cosa che
invece riesce bene con un telecomando Philips che manda meno bit). Cosa mi
suggerite di usare per memorizzare il treno ??? Grazie mille a chi mi
rispondera.
--------------------------------
Inviato via 
http://usenet.libero.it

Ciao, mirco!
Il giorno 30/04/2003 alle ore 15:05 hai scritto:
 m> Cosa mi suggerite di usare per memorizzare il treno ???
Un PC con un ricevitore IR per telecomandi (quelli che demodulano la
portante a 36/38KHz e danno in uscita il segnale 1/0 pulito) collegato alla
parallela e un programmino che campiona lo stato del ricevitore ogni tot
millisecondi.
Bye

Il ricevitore lo ho già costruito ma il programmino non lo trovo in rete.
Hia un link buono ?
Thaks ....


Ciao, mirco!
Il giorno 30/04/2003 alle ore 17:16 hai scritto:
 m> Il ricevitore lo ho già costruito ma il programmino non lo trovo in
 m> rete. Hia un link buono ?
Fallo tu, che ci vuole ?
Bye


Qualche tempo fà mi serviva una cosa del genere per confrontare 2 treni di
impulsi e ho scritto questo programma velocissimamente, se non ricordo male
utilizza i pi 15 e 13 della parallela per il campionamento, posto quà il
sorgente che magari è utile anche ad altri... il tutto va compilato con
Borland C++ per dos e non è assolutamente portatile su altre piattaforme...
P.S Ora il vecchio compilatore Borland è gratuito ( almeno così era scritto
nel sito dove era disponibile ) per cui non dovresti avere problemi... quasi
dimenticavo il tutto va compilando settando il compilatore con modello di
memoria Huge ( Option->Compiler->Code Generation ), scusatemi se parzialmente
OT ma non posso postare in privato...  Salutoni a Tutti Dave.
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void SetText();
void SetVga();
void LineVert(int vpos, int hpos, int lng, int clr);
void LineOrr(int vpos, int hpos, int lng, int clr);
void Grid(int clr);
unsigned char far *Screen=(unsigned char far*)MK_FP(0xA000,0x0000);
int main(void)
{
  int cn,st,ost,sta,osta;
  long del;
  unsigned char in;
  char sdel[8], *pdel;
  sdel[0]=6;
  clrscr();
  printf("Ms impiegati per effetuare la scansione (316 - 29999) ");
  pdel = cgets(sdel);
  del=atol(pdel);
  if (del < 316) del=316;
  if (del > 29999) del=29999;
  del/=316;
  SetVga();
  do
   {
     st=ost=(inportb(0x379) & 8) >> 3;
     sta=osta=(inportb(0x379) & 16) >> 4;
     _fmemset(Screen,0,64000);
     Grid(1);
     for(cn=0;cn<316;cn++)
      {
 in=inportb(0x379);
 if((in & 8))
  {
    st=1;
    if(ost!=st)
     {
       LineVert(98,cn,71,10);
       ost=st;
     }
    Screen[(320*28)+cn]=10;
  }
 else
  {
    st=0;
    if(ost!=st)
     {
       LineVert(98,cn-1,71,10);
       ost=st;
     }
    Screen[(320*98)+cn]=10;
  }
 if((in & 16))
  {
    sta=1;
    if(osta!=sta)
     {
       LineVert(196,cn,71,10);
       osta=sta;
     }
    Screen[(320*126)+cn]=10;
  }
 else
  {
    sta=0;
    if(osta!=sta)
     {
       LineVert(196,cn-1,71,10);
       osta=sta;
     }
    Screen[(320*196)+cn]=10;
   }
 delay(del);
     }
  } while(getch()!=27);
  SetText();
  return 0;
}
void LineVert(int vpos, int hpos, int lng, int clr)
{
  unsigned int cn,h,v,pos;
  pos=(320*vpos)+hpos;
  for(v=0;v<lng;v++)
  Screen[pos-(320*v)]=clr;
}
void Grid(int clr)
{
   int cn;
   for(cn=0;cn<15;cn++)
   {
      LineOrr(0,14*cn,316,clr);
   }
  for(cn=0;cn<22;cn++)
  LineVert(196,15*cn,198,clr);
}
void LineOrr(int vpos, int hpos, int lng, int clr)
{
  int cn;
   for(cn=vpos;cn<lng+vpos;cn++)
   Screen[cn+(320*hpos)]=clr;
}
void SetText()
{
  asm {
 mov ax, 0x0003
 int 0x10
      }
}
void SetVga()
{
  asm {
 mov ax, 0x0013
 int 0x10
      }
}

Il programma per decodificare i codici dei telecomandi lo puoi trovare sul sito
www.lirc.org
  il lirc è specifico per linux, se hai windows trovi li il link per
scaricare Winlirc che io utilizzo e funziona benissimo. ci sono anche gli schemi
di tutte le interfaccie per utilizzarlo.
ciao

http://winlirc.soundforge.net/
--
Un amico è una persona davanti alla quale
puoi pensare a voce alta.
Ralph Waldo Emerson