Hallo, ich habe die üblichen billigen 433MHz-Module bei amazon gekauft:
http://www.amazon.de/Empf%C3%A4nger-Superregenerat...
Ich habe außerdem mehrere Handsender.
http://www.amazon.de/Universal-Fernbedienung-Garag...
Zusammen mit meinem Raspberry Pi konnte ich die Handsender problemlos
auf meinen Code programmieren. Mit dem Pi kann ich außerdem problemlos
den Code wieder auslesen.
Diese Anleitung habe ich dafür genutzt und etwas abgeändert:
http://www.tutorials-raspberrypi.de/gpio/raspberry...
Nun möchte ich aber das Empfängermodul mit einem Mikrocontroller (ich
habe noch ein paar PIC 18F2520 herumliegen) verbinden und die Daten für
meine Lichtsteuerung nutzen.
Ich habe schon versucht, den Quellcode der Raspberry Pi Software
nachzuvollziehen. Allerdings nutzt der zum Auslesen "wiringPi".
Mit Tante Google und verschiedenen Foren habe ich mich auch schon
beschäftigt. Leider ohne Erfolg.
Kennt jemand ein Projekt, wo so etwas schon versucht (und dokumentiert)
wurde? Ich drehe mich momentan bei diesem Problem nur im Kreis.
Vielen Dank
aeson
aeson schrieb:> Ich habe schon versucht, den Quellcode der Raspberry Pi Software> nachzuvollziehen. Allerdings nutzt der zum Auslesen "wiringPi".
Sobald irgendetwas nicht wie gewohnt funktioniert, steht man mit
Copy&Paste eben dumm da.
aeson schrieb:> Nun möchte ich aber das Empfängermodul mit einem Mikrocontroller (ich> habe noch ein paar PIC 18F2520 herumliegen) verbinden und die Daten für> meine Lichtsteuerung nutzen.
Falls einer der weit verbreiteten Encoder-Chips und keine rolling Codes
verwendet werden, sollte ein Empfänger wohl hinzukriegen sein. Erzähl
doch einfach mal, welchen hochgeheimen Code dein Handsender von sich
gibt. Mit dieser Info wäre es etwas einfacher, nach einer passenden
Software für die Auswertung zu gucken.
Dein angegebene Link zum Sender ist leider arg verstümmelt.
aeson schrieb:> Ich weiß aber leider nicht, was die Handsender> schicken.
Die o.a. Handsender schicken erst mal gar nichts, solange sie nicht
angelernt sind. Hast du das gemacht? Im ersten Posting steht, das du sie
mit dem RPi programmiert hast, also den Simpelsender von Amazon an den
RPi, Code aussenden, Handsender in den Lernmodus bringen und Code
lernen?
Hat der Handsender das bestätigt?
Die Handsender können den Code nur lernen, wenn er mit einer Pause
gesendet wird und sich ein paar mal wiederholt. Der Handsender bestätigt
das dann, wie in der Anleitung beschrieben. UART Code können sie nicht
lernen, es braucht eine Manchester-artige Codierung.
aeson schrieb:> in das eine Sende-Modul einen UART reinschicken
Ob die Fernbedienung die UART-Muster incl. Start/Stopp und ggf. Pausen
zwischen drin lernen kann, wird Dir vermutlich keiner sagen können.
Versuch macht Kluch.
Versuche verschiedene Längen und Baud-raten und achte auf Bit-Wechsel
(z.B. immer Folgen aus 001 / 011). Falls Du das Start-Bit als erste "0"
mitnimmst, kommst Du auf 9 Bit und bekommst somit drei solche Bit-Muster
in ein UART-Byte.
aeson schrieb:> wo das beschrieben ist und wo> eventuell auch Informationen zu finden sind, wie man dieses Signal mit> einem Mikrocontroller auswerten kann.
Wenn Du 'in das eine Sende-Modul einen UART reinschickst, welcher fast
1:1 beim Empfänger wieder heraus kommt'^^, müsste der Mikrocontroller ja
nur das Enpfangsregister des UARTs auslesen.
Ansonsten: Timer und Capture Compare oder noch einfacher: Timer laufen
lassen, in einer While-Schleife den Zähler abfragen und einen GPIO
entsprechend setzen oder auslesen.
Letzteres gibt hier bestimmt Mecker, weil man das so nicht machen
sollte. Das wäre halt eine simplere Anfänger-Lösung.
PS: Schau Dir die Codierungen und Timings der üblichen Verdächtigen an:
SC2262, SC2260, FP527, SMC918, PT2240, EV1527, AX9314, 5326, …
Einige davon kann man bestimmt per UART nachbilden.
aeson schrieb:> Ehrlich gesagt, wäre es mir am liebsten, zu verstehen, was diese> Handsender da tatsächlich aussenden. …> Ich weiß aber leider nicht, was die Handsender> schicken.
PPS: oh, da war mschoeldgen schneller: Die senden genau das aus, was Du
denen rein programmierst. Amazon schreibt:
> Drücken Sie gleichzeitig eine Taste auf der Originalfernbedienung und> eine der Tasten auf der Fernbedienung und halten Sie sie, bis die LED> auf dem Remote-Klon ständig blinkt. (Die blaue LED blinkt die ersten> 3 mal schnell, dann hält sie für eine Sekunde, dann blinkt ständig> für erfolgreiche Klonen).
Die Handsender habe ich wie in dem Raspberry Pi Beispiel programmiert.
Ich habe, wie gesagt, ein Sendemodul, ein Empfängermodul und einen
Handsender.
Über das Sendemodul habe ich eine 8stellige Zahlenfolge mehrfach
herausgeschickt. Dafür habe ich das Pi Beispiel mit dem wiringPi-Code
genutzt. Alle vier Tasten des Handsenders habe ich so mit
unterschiedlichen Zahlenfolgen programmiert.
Wenn ich die Tasten des Handsenders drücke und den Sniffer am Pi laufen
lasse, werden diese Zahlenfolgen auch wieder richtig ausgegeben.
Jetzt habe ich endlich selbst mal das Problem verstanden. Meine Frage
sollte also nicht sein, was die Handsender aussenden, sondern was der Pi
aussendet.
Das ist dann vermutlich diese Manchaster-Codierung, von der überall
geschrieben wird.
Ich kann mir nicht vorstellen, dass ich der erste bin, der so etwas
machen will.
aeson schrieb:> Das ist dann vermutlich diese Manchaster-Codierung, von der überall> geschrieben wird.
Die UART-Variante fand ich irgendwie eleganter. * grins *
Aber es ist wohl am einfachsten so, wenn der gekaufte Sender die
Raspberry-Pi-Manchaster-Codierung schon erkennt.