Comandare Arduino con un telecomando

ciao.
come promesso ho cominciato a lavorare sul playground riportando un codice su cui abbiamo lavorato questo week end al workshop di milano.

il tutorial fa esattamente quello che dice il titolo del thread: permette cioé di legare un determinato codice IR ad una funzione di Arduino.

link al playground

vorrei dedicare questo piccolo sbatti di massimo, andrea e me a Nathanvi e alle nostre lunghe disquisizioni nerd sull'IR.

:wink:

non ho ben capito a cosa serva il bottone :-?
comunque ottimo mi metto subito a costruirlo!

edit scusa mi ero perso la frase "il bottone non serve a nulla" ;D

edit scusa mi ero perso la frase "il bottone non serve a nulla" Grin

l'ho messo in grassetto.

;D
;D
;D

eh oh scusa ma sono una favalessa ;D comunque è bellissimo sto tutorial... l'ho seguito e funziona...

era proprio quello che cercavo per costruire il mio sensore di distanze....

Received SONY: A70
Received SONY: A70
Received SONY: A70
Received SONY: 2D0
Received SONY: 2D0
Received SONY: A70
Received SONY: 490
Received SONY: 490
Received SONY: A70
Received SONY: A70
Received SONY: A70

questa è la prova che funziona ;D

CHE FIGATA :sunglasses:

la libreria di Shirriff é by far la libreria più interessante che ho visto negli ultimi tempi. L'IR è ultra-diffuso.

Se ci fosse qualche membro del team in ascolto, chiederei quasi che fosse inglobata nell'IIDE ;D ;D ;D

una cosa però non mi è chiara... io in questi if

  if (irrecv.decode(&results)) {
    digitalWrite(STATUS_PIN, HIGH);
    storeCode(&results);
    //Serial.println(results->value,HEX);
    if (codeValue == 0xA16EC03F) {
      analogWrite(led1,0);
      analogWrite(led2,0);
      analogWrite(led3,0);
      Serial.println("spento");
    }
    if (codeValue == 0xA16E34CB) {
      fading = 0;
      analogWrite(led1,255);
      analogWrite(led2,0);
      analogWrite(led3,0);
      Serial.println("r");
    }
    if (codeValue == 0xA16ED42B) {
      fading = 0;
      analogWrite(led1,0);
      analogWrite(led2,255);
      analogWrite(led3,0);
      Serial.println("g");
    }
    if (codeValue == 0xA16E54AB) {
      fading = 0;
      analogWrite(led1,0);
      analogWrite(led2,0);
      analogWrite(led3,255);
      Serial.println("b");
    }
     if (codeValue == 0xA16E0CF3) {
        fading = 1- fading;
    }

    irrecv.resume(); // resume receiver
    digitalWrite(STATUS_PIN, LOW);
  }

}

ci devo mettere quello che stampo sulla seriale? perchè quello che deve acquisire lo acquisisce e me lo stampa in seriale... però non mi cambia lo stato dei led :S

allora.
a te dava questo:

Received SONY: A70

copi il codice (A70) e vai nel codice dello stesso sketch

if (codeValue == 0xA16E34CB) {
      fading = 0;
      analogWrite(led1,255);
      analogWrite(led2,0);
      analogWrite(led3,0);
      Serial.println("r");
    }

al posto di

if (codeValue == 0xA16E34CB)

metterai

if (codeValue == 0xA70)

capito?

a quel punto ri-uploadi ed é fatta.

sisi infatti avevo provato... però non funzionava perchè mi sa che le mie uscite 9,10 mi han salutato... vabbè tanto dovevo ricomprarlo originale :smiley:

Se interessa sul sito www.lirc.org sono archiviati una marea di telecomandi e relativi codici....

Appena recupero un 'occhiolino' (va bene anche il tsop 1838 che e' solo piu' piccolo) faccio una prova e vedo se ci sta' una corrispondenza tra i codici generati da lirc e arduino :slight_smile:

ciao a tutti by spaidermen

ciao,
a questo punto mi aggiungo anche io nonostante le mie precarie conoscenze in merito alla programmazione.
il tutorial di Davide fa riferimento al workshop di milano nel quale dopo decine di tentativi miei e azzecati "zampini" di Davide e Massimo sono riuscito a gestire, in modo elementare, i led rgb con un telecomando ir.
Dal momento che in casa mi ritrovo con almeno una quindicina di telecomandi tra quelli di app.re rotte, tv, surround, dvd, decoder etc....e sono pigro... il mio obiettivo è quello di utilizzare questi telcomandi per gestire le luci di casa, eventuali carichi e un bel effetto RGB.
soprattutto sul telecomando del surround ho una marea di tasti che mai utilizzerò
Io ho pensato a questo:
una 2009 con
alcune uscite monostabili o bistabili (per relè passo passo o da mettere al posto di interruttori già esistenti.
eventuali pwm (uscita triac) per dimmerare carichi/lampade
un gruppo di 3 pwm per gestire led RGB
un pulsante che permetta di entrare in una funzione di apprendimento codice ir
un led che mi guidi in un' eventuale apprendimento codici ed associazione alle uscite.

provato a casa il codice del tutorial, ho verificato che non mi restituisce un dato se il telecomando da cui trasmetto non rientra tra quelli codificati come NEC SONY etc..
al chè mi sono affidato ad un altro codice

che pare un po più grezzo ma a mio avviso (per quel che capisco) più opportuno per leggere qualsiasi telecomando ir.
dal codice ho solo aumentato la tolleranza dal 20 al 30 % (da 0.8 a 0.7)
cosi mi da meno codici diversi in lettura ( è possibile che stia sbagliando modo ma per ora è l'unico che conosco)
ho diversi problemi tra if millis else e chi piu ne ha piu ne metta....

in conclusione, ci tengo a realizzare questo progetto, da solo ci metterei qualche anno luce, se qualcuno mi può aiutare sarebbe decisamente molto gradito.... poi.... quel che ne esce potrà servire a molti altri...
aspetto qualsiasi consiglio... e grazie
salutoni
andrea
:wink:

Beh che dire.
Davide grazie per la dedica :stuck_out_tongue:
A questo punto faccio delle prove anche io!