PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lernfähige IR Fernbedienung mit AT Mega 8 und Bascom



lokirobotics
07.03.2006, 21:27
Ich möchte eine IR-Fernbedienung mit einem AT Mega8 bauen und diese mit Bascom programmieren.
Die Fernbedienung soll lernfähig sein, d.h. ich drücke einen "Lernknopf", halte die Originalfernbedienung vor drücke dort eine Taste und der Atmel zeichnet die Signale auf, speichert sie und kann sie dann später wiedergeben.

Realisieren will ich das ganze über Interrupts und einen Timer.
Wenn der IR-Empfänger einen High-Pegel empfängt löst er einen Interrupt aus, dadurch wird die Zeit vom Timer in den EEPROM geschrieben und dann auf den nächsten HIGH-Pegel gewartet.
Zum Schluss habe ich dann ein Protokoll, welches dem Controller sagt, wann er die IR-LED beim senden des Signals an, bzw. ausschalten muss.

Wie findet ihr die Idee, ist sie einigermaßen gut, oder total falsch im Ansatz???
Ich programmiere Atmels erst seit 4 Tagen, ich kenne mich nur in Visual Basic aus.

Danke für alle Antworten.

linux_80
07.03.2006, 22:14
Hallo,
wenn Du schon Bascom verwendest, kannst du auch gleich die eingebauten Funktionen für IR-Fernbedienung verwenden.
Man muss ja nicht alles neu erfinden.

Suche in der Bascomhilfe nach RC5, das ist nämlich die Codierung der meisten Fernbedienungen.

lokirobotics
08.03.2006, 07:23
Hey, das sieht ja wirklich nicht so kompliziert aus.
Ich hab aber trotzdem noch eine Frage:
1. Was ist das Togglebit?
2. Woher weiß ich die Nummer für die Befehle?

Rofo88
08.03.2006, 07:25
Suche in der Bascomhilfe nach RC5, das ist nämlich die Codierung der meisten Fernbedienungen.


Auser Du hast Sony, Pioneer, Humax, Technisat , Nec , JVC und noch viele andere

(habe gerade einen Empfänger mit Bascom und RC5 gebaut und der ging mit keiner!!! meiner 6 Fernbedienungen die ich auftreiben konnte)

Phillips-Fernbedienungen sollten aber gehen

Habe mir dann ein Protokoll für SIRCS ( Sony ) geschrieben ist nicht schwer da die über eine Pulsweitenmodulation arbeitet.

Hier mal ein paar Links zu Protokollen von IR-Fernbedienungen
http://www.xs4all.nl/~sbp/knowledge/ir/ir.htm
http://bjorn.rhoads.nu/hp48/remote/

MfG

Rofo88
08.03.2006, 07:36
Hallo,

1.) das Toggelbit ändert seinen Wert bei jedem Tastendruck. Dudurch kann man das lange Drücken einer Taste (und damit der wiederholte Senden eines Befehles) vom wiederholten Drücken der selben Taste unterscheiden

2.) Lass Dir das Commandobyte und das Adressbyte ausgeben (LCD/PC) da weißt Du dann welche Taste Du gedrückt hast und welcher befehl es war
oder schau in eine Liste wie hier:
http://www.sprut.de/electronic/ir/rc5.htm


MfG

lokirobotics
08.03.2006, 11:52
Danke, das war alles echt interessant, hilft mir aber nicht wirklich weiter.
Ich will mit meiner Fernbedienung praktisch eine Infrarotsequenz "abhören" und das mitgeschnittene dann bei bedarf wiedergeben um so z.B. IR-Gesteuerte Spielzeuge zu kontrollieren, oder meine Anlage zu steuern.
Da helfen mir die einzelnen Protokolle nicht wirklich weiter, weil das nicht flexibel genug ist.
Trotzdem danke, das ist alles sehr interessant und wird mir später sicher noch nützlich sein.

MFG

Rofo88
08.03.2006, 17:35
Hallo,

ich weiß schon wie Du dir das vorstellest. Du willst „einfach“ die Sende- und Pausenzeichen aufzeichnen und dann 1:1 wiedergeben. Wo ist da genau dein Problem????? Programmierung, Machbarkeit oder ?????


Ich sehe da folgendes……

Du weißt nicht wie lange Du Aufzeichnen sollst. Das größte Protokoll was ich bis jetzt kenn hat 32 Bit. Also wenn Du das Aufzeichnest bist du schon bei 64 Byte ( 32 mal Zeit für High + 32 mal Zeit für Low).

Das in den EEprom und nach acht Aufgezeichneten Befehlen isser voll. Du kannst Natürlich auch weniger aufzeichnen, da geht aber deine Universalfernbedienung nicht Universal.
Die saubere Art währe die IR-Protokolle auf dem Mikrokontroller zu programmieren dann kannst nämlich die Befehle einfach als Byte abspeichern ( 32Bit = 4 Byte = 128 mögliche Befehle im EEprom) und richtig aussenden ( mit Toggelbit usw. ).
Bei deiner Aufzeichnungsmethode kann aber auch passieren das Du ein 12 Bit Signal gleich 2-mal sendest da 2-mal aufgezeichnet in den 32 Bit.

Also machbar ist deine Idee wenn auch nicht sehr effekttief…


MfG

lokirobotics
08.03.2006, 22:03
Danke für die Tipps, ich glaub ich werds erstmal mit nem fertigem Protokoll versuchen, scheint ja besser zu sein.

@Rofo88: Mein Problem ist sowohl die Programmierung als auch die Machbarkeit, bin in Bascom nämlich überhaupt nicht bewandert.
Könntest du mal den Quelltext von deinem Protokoll posten?
Wäre echt super! =D>

Danke, mfG Christoph