-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: (universeller) Infrarot-Empfang

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672

    (universeller) Infrarot-Empfang

    Anzeige

    Hallo,

    wie im anderen Thread bereits „erarbeitet“ würde ich gerne eine Kommunikation im Raum mit Infrarot versuchen. Dazu habe ich mir einen TSOP31236 Empfänger bestellt und mache gerade damit erste Versuche. Leider klappt das auslesen einer Fernbedienung schon mal nicht. Ich bin einfach mal davon Ausgegangen, dass die Fernbedienung RC-5 sendet, weiß es allerdings nicht. Es handelt sich um die Fernbedienung meines Media-Receivers von der Telekom.

    Der Empfänger empfängt auf jeden Fall was, wenn ich eine Taste auf der Fernbedienung drücke. Das habe ich am Atmel und am Oszi überprüft. Ich habe INT0 auf die fallende Flanke konfiguriert und ein einfaches Hauptprogramm gestrickt:

    Code:
    ISR (INT0_vect)
    {
                    IR_CaptureReady = TRUE;
    }
     
    int main (void)
    {
    if (IR_CaptureReady)
    {
    U32 tmp = 1;
    U8 i1;
    for (i1 = 0; i1 < 14; i1++)
    {
    _delay_us (1778);
    tmp = tmp<<1;
    if ((PIND & (1<<PD2)) == 0)
    tmp = tmp | 1;
     
    for (i1 = 0; i1 < 14; i1++)
    {
    if ((tmp & 1) == 0)
    sendMsg ("0", FALSE);
    else
    sendMsg ("1", FALSE);
    tmp = (tmp>>1);
    }
    sendMsg ("\r\n", FALSE);
     
    IR_CaptureReady = FALSE;
    }
    }
    Die Funktion sendMsg sendet mir den String über die UART-Schnittstelle an meinen PC wo ich ihn via Hyperterminal ansehe. Meisstens empfange 00000000000001. Manchmal 00000000000111. Aber nie etwas RC5-ähnliches oder mehr.

    Ich habe daraufhin mal versucht ein Video vom Empfang der Daten aufzuzeichnen:

    http://www.car-mp3.de/RNetz/IR_Messung.zip

    Dabei habe ich am Anfang die Taste 1 der Fernbedienung gedrückt gehalten und später immer mal kurz gedrückt. Hier sieht man die Einstellungen meines historisches Oszis:

    Klicke auf die Grafik für eine größere Ansicht

Name:	Oszi_Setup.JPG
Hits:	10
Größe:	71,7 KB
ID:	24610

    Wie man an der Zeitbasis von 500µS/cm sieht müssten die „Halbbits“ der Übertragung ca. 889µS lang sein Könnte also sogar RC-5 oder was ähnliches sein. Auf jeden Fall müsste ich etwas anderes Empfangen als 13 mal die 0.

    Wie würdet ihr weiter vorgehen? Bei diesem Versuch möchte ich eine Routine erstellen, die mir möglichst viele Fernbedienungen einlesen kann. Der Plan dazu ist es in bestimmten Zeitabständen das empfangene Signal via Timer-Interrupt abzutasten.

    Welches Intervall wäre dafür Empfehlenswert und wie lange sollte ich versuchen abzutasten?

    Hat jemand eine Idee, was ich bei meinem Empfangsversuch falsch mache?

    Viele Grüße
    Andreas

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo Bumbum,

    Ich bin einfach mal davon Ausgegangen, dass die Fernbedienung RC-5 sendet, weiß es allerdings nicht. Es handelt sich um die Fernbedienung meines Media-Receivers von der Telekom.
    ich bin nicht der C-Spezialist und weis nicht, ob folgende Vorgehensweise für Dich akzeptabel ist:

    Um eine RC5 Fernbedienung in Deinem Umfeld auszumachen, kurz auf Bascom umsteigen. Beispielprogramm in der Bascom Hilfe hat bei mir (nach Portanpassungen) sofort funktioniert. Vorteil: Vorgefertigte Kommandos für RC5, keine Unsicherheit ob der Code nicht geht oder die Fernbedienung keine RC5 ist.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo,
    die Monster-TSOP31236 (die sind echt groß) hab ich auch kürzlich bekommen und jetzt ausprobiert. Hab Dir mal von meiner RC5 Fernbedienung ein paar Oszillogramme in verschiedenen Auflösungen angehangen.
    Sie zeigen jedesmal die Ziffer 1. Bei jeder neu gesendeten Ziffer wird das Togglebit gegenüber des vorhergehenden invertiert. Das letzte Oszillogramm zeigt die gedrückt gehaltene Ziffer 1; auch hier wird das Togglebit bei jedem Ziffernburst invertiert.

    Hoffe hilft Dir irgendwie weiter.

    Gruß
    Searcher
    Angehängte Dateien Angehängte Dateien
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Hallo Searcher,

    vielen Dank für deine Mühe.
    Wie ein RC5-Signal aufgebaut ist findet man ja oft genug im Internet. Ein Bit setzt sich aus zwei Halbbits je 889µS zusammen. Wenn die Halbbits 0b01 sind ist es eine übertragene 1, wenn die Halbits 0b10 sind ist es eine übertragene 0. Das kann man auch schön in deinen Oszi-Diagrammen sehen.
    Ich habe leider nur dieses antike Oszi und das Signal damit darzustellen ist echt schwer.
    Ich bin aber der Meinung, dass das Timing meines Signals zumindest ähnlich ist und somit müsste ich mit meinem Code eigentlich was empfangen.

    Vielleicht kann sich das ja der eine oder andere das Video auch mal genauer anschauen und eine Schätzung hier posten?

    Aber wie der Thread-Titel schon sagt geht es mir gar nicht darum unbedingt RC5 zu empfangen, sondern wenn möglich so viele Fernbedienungen wie möglich. Dabei geht es mir jetzt erst mal um die optimale Abtatsfrequenz und wie lange maximal abgetastet werden sollte.

    Viele Grüße
    Andreas

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo, ich möchte Dir RC5 nicht aufdrücken, dachte nur, daß Du dann eine Referenz hättest, weist was Du schickst und was dann rauskommen muß
    Ich habe leider nur dieses antike Oszi und das Signal damit darzustellen ist echt schwer.
    Hatte mir das Video angeschaut und kann das nachvollziehen. Bevor ich eins hatte, habe ich mit einem Soundkartenoszi gearbeitet. Das müste hier auch gut geeignet sein. Der TSOP hat vom Ausgang einen internen Pullup von 30 kOhm. Ich würde da einen 5kOhm vom Ausgang nach GND schalten; das müßte als Spannungsteiler für einen Line In einer Soundkarte in Ordnung sein. Da läßt sich dann am PC das Signal ganz gut analysieren. Ohne Gewähr und auf eigene Gefahr. Im Netz findet man verschiedene Beschaltungsmöglichkeiten dafür.

    PS Signal müsste mit einem Transistor eventuell noch invertiert weden.
    PS2 und noch ein Gedanke: optimale Abtastfrequenz müßte doch 36kHz, 38kHz oder für alle Fälle 40kHz sein?

    Gruß
    Searcher
    Geändert von Searcher (23.02.2013 um 18:01 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Zitat Zitat von Bumbum Beitrag anzeigen
    Ich bin einfach mal davon Ausgegangen, dass die Fernbedienung RC-5 sendet, weiß es allerdings nicht. Es handelt sich um die Fernbedienung meines Media-Receivers von der Telekom.
    RC5 ist wohl das best-dokumentierte Format, und daher das bekannteste und beliebteste unter Bastlern. Im kommerziellen Umfeld findet man es eher selten, und in halbwegs aktuellen Produkten praktisch gar nicht. Die Wahrscheinlichkeit, dass "die Fernbedienung meines Media-Receivers von der Telekom" RC5 verwendet, geht gegen Null.
    MfG
    Stefan

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Hallo,

    die Problematik des Empfangs habe ich erst mal vor mich her geschoben. Ich habe über das Wochenende die Hardware zusammengebaut für die ich den IR-Empfang verwenden möchte. Bis jetzt habe ich den TSOP nur am STK500 getestet.
    Quasi mal nicht an das Problem denken, dann findet sich die Lösung meisst von alleine.
    Vorhin war ich fertig und die Zielhardware ist gelaufen. Ab morgen kann ich wieder mit dem Empfang experimentieren.

    36kHz scheint tatsächlich das beste zu sein, da kann ich nichts verpassen. Mal schauen, ob der Atmel das schafft. Mir ist auch vorhin tatsächlich beim Nicht-Dran-Denken eine mögliche Lösung eingefallen, warum ich nur Quatsch empfange, obwohl das Timing grob passen müsste: Mein Zeitfenster ist zu kurz. Ich werde morgen mal die Anzahl der Bits erweitern auf mindestens 48 oder noch mehr, wenn es erforderlich sein sollte. Damit sollte ich dann ein passendes Signal auswerten können.
    Falls ich das Timing auf 36kHz ändere brauche ich aber wohl noch viel mehr Bits.Das wären ja dann nur 1,3ms bei 48 Bits. RC5 hat ja eine Übertragungslänge von fast 25ms und ich glaube mein Signal von "der Fernedienung meines Media-Receivers" ist noch länger.

    Viele Grüße
    Andreas

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    ... Quasi mal nicht an das Problem denken, dann findet sich die Lösung meisst von alleine ...
    Whow! Cool. Krieg ich nicht hin.

    ... 36kHz scheint tatsächlich das beste zu sein ... Mal schauen, ob der Atmel das schafft ...
    Also mein RC5-Decoding (C, mega328 u.ä./20 MHz) geht in einer ISR, die mit 20 kHz tickert und - unter anderem - auf die Flanken des RC5-Codes lauert. Bei den 889µs für ein isoliertes High geht das prima.

    Zitat Zitat von Bumbum Beitrag anzeigen
    ... Mein Zeitfenster ist zu kurz ... die Anzahl der Bits ... mindestens 48 ...
    Du sprichst schon von RC5!? Bei mir hat das komplette Telegramm grad mal 14 Bit. 2 Start-, 1 Toggle-, 5 Adress- und 6 Datenbits. Wobei eine (übliche, Flohmarkt-) RC5-Steuerung oft nur für den Fernseher ist und der hat die Adresse 0.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    Nachtrag: Als Testausgabe bei Tastendruck auf die Fernsteuerung gibts bei mir aufs Terminal von br@y beispielsweise so etwas wie im Codefenster unten:
    Bitmuster der gesamten Codesequenz, dezimale Entsprechung des sechsbittigen Befehlsbytes, Zeitdauer der Dekodierung vom Beginn des Codes bis zum Ende. Man kann auch schön die Funktion des Toggelbits (Bit 3) erkennen.

    Zum Zeitbedarf, hier in 50µs-tupsi (tupsi ist so "meine" traditionelle Zeiteinheit): 482 tupsi zu 50 µs sind 24,2 ms; da das erste Halbbit fehlt - es kann ja erst auf die erste Flanke des Datentelegramms getriggert werden, die ist aber in der Mitte vom Startbit 1 - komme ich ziemlich genau auf die fast 25 ms der gesamten Telegrammlänge.

    Code:
     ...Anmerkung: div-ID-Informationen...
     I2C-Slave ist Adresse :  132 dez = 0x84 ,
     Gute Funktion mit extINT2 für RC-5
     Aktuell - Zur-Verfügung-Stellung des RC-5-Code
    ...
    
    Bitte um Aktion _
     11000000010100  => dez: 20 , RCges_zt = 483
     11100000011001  => dez: 25 , RCges_zt = 482
     11000000100011  => dez: 35 , RCges_zt = 482
     11100000011011  => dez: 27 , RCges_zt = 482
     11000000001010  => dez: 10 , RCges_zt = 484
     11100000000110  => dez: 6 , RCges_zt = 483
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Hallo und Hilfe!

    Dieses RC5, dass ich im ersten Posting kurz erwähnt habe wird mich wohl jetzt ewig verfolgen. Im itel und hier im Thread habe ich erwähnt, dass es mir um einen möglichst universellen Empfang von den verschiedensten Fernbedienungen geht.

    Aber ich habe heute die Lösung gefunden. Es war tatsächlich das Zeitfenster der Aufzeichnung. (Ich habe mich da zu sehr auf RC5 versteift )

    Ich habe zunächst die Abtastrate auf 36 kHz gestellt und dann das Zeitfenster so lange vergrößert bis am Ende mindestens eine handvoll Nullen empfangen wurden. Das waren bei meiner Beispiel-Fernbedienung (Media Receiver) dann insgesamt ca. 60 Bytes. Ich bin also mit der Abtatsrate immer wieder auf die halbe Frequenz bis das Ergebnis bei 4500 Hz dann perfekt war. Damit empfange ich insgesamt 7 Byte Daten. Und die empfangen Daten sind auch bei jeder gedrückten Taste anders, bzw. wenn ich eine Taster öfter drücke immer wieder gleich. Perfekt!
    Jetzt muss ich nur noch ein paar andere Fernbedienungen probieren, ob die 4500 Hz und mein Zeitfenster von 8 Byte für alle ausreichend ist.

    Viele Grüße
    Andreas

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. UHR¹ Universeller Humanoider Roboter © ® 2013 MICHAEL METZGER - >>update<<
    Von mikemet im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 07.01.2013, 21:18
  2. Anfänger - Universeller I²C-Greifarm + Steuerung
    Von Pr0gm4n im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 30
    Letzter Beitrag: 06.06.2008, 03:12
  3. asuro ir empfang
    Von quinte17 im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 22.03.2008, 19:22
  4. Universeller AVR-Programmer
    Von BlueNature im Forum AVR Hardwarethemen
    Antworten: 11
    Letzter Beitrag: 17.12.2007, 21:51
  5. Antworten: 33
    Letzter Beitrag: 14.08.2007, 17:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •