Ricevitore per telecomando Infrarossi "HiR"

Salve a tutti,
sono nuovo del forum, anche se lo seguo da parecchio essendo possessore di un Arduino 2009, con il quale però non ci ho ancora fatto granché a parte le classiche prove da principiante con i led e aver interfacciato un doppio stick analogico recuperato da una Playstation..

Ho visto parecchie discussioni riguardo all'utilizzo di Arduino come telecomando/ricevitore universale, al che mi sono ricordato che anni fa mi era stato regalato un telecomando ( modello RM-X6S ) per autoradio Sony che però non era compatibile con la mia autoradio, che però usa la tecnologia Hi R, ovvero ( cosi come descritto nel manuale ) degli High Beam Infrared.

Mi chiedevo quindi, visto che il telecomando è bello esteticamente e ha parecchi comandi, se fosse possibile utilizzarlo per comandare qualcosa tramite Arduino..
Piu che altro il mio dubbio è come poter "leggere" questo tipo di infrarossi.. basta un ricevitore normale o ne servono di particolari? Ho notato che premendo i tasti si illuminano 2 led infrarossi al suo interno.. serviranno anche 2 ricevitori?

Ho trovato in rete un forum dove qualcuno aveva creato un ricevitore che trasformava i comandi in seriale ma l'autore piu che altro parlava solo del funzionamento del suo "prodotto" e lo pubblicizzava per un eventuale vendita.. quindi niente schemi o spiegazioni su come costruirlo.. :frowning:

Grazie a chiunque riuscirà a darmi qualche info..

Ciao,
secondo mè il nome del telecomando è riferito solo al fatto che ha 2 led e quindi spara più lontano, dopodichè potrebbe essere come tutti gli altri e quindi leggibile da un normale rilevatore di infrarossi.
nel tuo caso, dove non devi simulare il funzionamento originale, puoi semplicemente leggere l'output raw dei tasti ed assegnargli una funzione.
Per la lettura del telecomando dai un'icchiata qui:

dovrebbe fare al caso tuo.

ahah quoto Brain e aggiungo "cosa non farebbero per vendere un oggetto :D"
BTW per capire che tipo di protocollo usi il tuo telecomando usa questo sketch
Colleghi il ricevitore al pin 11 di arduino e poi apri la porta seriale. Clicchi un tasto del telecomando e il gioco è fatto :smiley:

/*
 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

int RECV_PIN = 11;
int RELAY_PIN = 13;

IRrecv irrecv(RECV_PIN);
decode_results results;

// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
//  decode_results *results = (decode_results *)v
void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.println("Could not decode message");
  } 
  else {
    if (results->decode_type == NEC) {
      Serial.print("Decoded NEC: ");
    } 
    else if (results->decode_type == SONY) {
      Serial.print("Decoded SONY: ");
    } 
    else if (results->decode_type == RC5) {
      Serial.print("Decoded RC5: ");
    } 
    else if (results->decode_type == RC6) {
      Serial.print("Decoded RC6: ");
    }
    Serial.print(results->value, HEX);
    Serial.print(" (");
    Serial.print(results->bits, DEC);
    Serial.println(" bits)");
  }
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");

  for (int i = 0; i < count; i++) {
    if ((i % 2) == 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    } 
    else {
      Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println("");
}

void setup()
{
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(13, OUTPUT);
    Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

int on = 0;
unsigned long last = millis();

void loop() {
  if (irrecv.decode(&results)) {
    // If it's been at least 1/4 second since the last
    // IR received, toggle the relay
    if (millis() - last > 250) {
      on = !on;
      digitalWrite(RELAY_PIN, on ? HIGH : LOW);
      digitalWrite(13, on ? HIGH : LOW);
      dump(&results);
    }
    last = millis();      
    irrecv.resume(); // Receive the next value
  }
}

Quindi per provare mi basta semplicemente un ricevitore IR da collegare ad Arduino? Per il momento mi basta vedere se riesco a ricevere i comandi..

Mmm.. oggi ho comprato un "ricevitore IR" ma il tizio del negozio mi ha venduto un LED di colore blu con soli 2 pin... ( è un fotodiodo vero? )
Purtroppo solo stasera mi sono accorto che nelle varie guide mostrano un ricevitore IR con 3 pin.. presumo quindi che quello che ho non va bene a tale scopo? O basta collegarlo in modo diverso? :-/

Io fossi in te glielo riporterei, sta gente spesso se ne approfitta.
i ricevitori IR più famosi, secondo la mia esperienza, sono i TSOP1738 o 1736 comunque iniziano sempre con la sigla TSOP17xx o TSOP 16XX. Li trovi in qualsiasi televisore :smiley:

Infatti la prima cosa che ho fatto è stata cercare qualche cosa che avesse una porta IR da cannibalizzare ma mi è andata male ;D

Domani torno al negozio con tanto di sigla.. ( nel frattempo gioco con un LM35 e processing.. )

secondo me ti ha venduto un led, magari ir ma mi sembra strano... infrarosso vuol dire che sta sotto il rosso (luce non visibile) mentre l'azzurro sta nel mezzo, forse spostato verso il viola (dall'altra parte)

Beh in realtà esistono anche i fotodiodi.. e sono blu.. ovvero.. stasera ho smontato un portatile stravecchio che ha la porta IR pensando di trovare quella adatta ma ha TX/RX separati di cui appunto uno è blu.. l'ho visto anche usare in un "progetto" per costruirsi un ricevitore IR da collegare alla scheda madre del pc..

In ogni caso penso non sia adatto al mio scopo ::slight_smile:

il blu serve come filtro per la luce anbientale :wink:

il fotodiodo ricevitore ti può servire per farti un range finder. Dai un'occhiata qui

Si si me lo tengo comunque per altri utilizzi..
Sul catalogo del negozio ho trovato solo un TSOP34156 (Vishay 56khz cmos/ttl compatibile).. Può andare bene?
Oppure c'è un PNA4602 a 38khz.. (panasonic)

Quale mi consigliate? Sempre se uno di questi 2 può andar bene.. (e io che speravo che quantomeno un componente "semplice" come
un ricevitore IR fosse più facile da trovare e acquistare :smiley: )

quello a 38KHz funziona con tutti i telecomandi per televisioni, radio ecc ecc quindi penso che funzionerà anche col tuo. 38KHz è la portante.
Spero che il tuo telecomando non sia a 36KHz, ma mi sembrerebbe strano!

Rimane sempre il dubbio sul tipo di IR utilizzato da questo telecomando.. Magari il termine "High" intende una frequenza più alta? Mah..

Ho trovato qualche info in più sul telecomando.. Pare che usi IR a 40khz e uno "strano protocollo" difficilmente decifrabile..
Certo che come primo progetto potevo scegliere qualcosa di più semplice ;D

non ti resta altro che fare prove... dai un'occhiata anche qui

Grazie mille per le risposte tempestive! :wink:
Penso che a questo punto la prima cosa da risolvere sia trovare un ricevitore 40khz..
Magari nel frattempo ne prendo uno da 38khz e faccio un pò di pratica con dei telecomandi "normali"..