Hallo zusammen, wie kann man am Besten zwei möglichst kleine Sende und Empfangsmodule miteinander koppeln, damit diese, wenn sie 50-100 Meter voneinander entfernt sind, eine LED zum leuchten bringen. Es soll keine Datenübertragung an sich stattfinden, nur die Identifikation, dass sich das jeweilige gegenstück in der Reichweite des anderen befindet. Mit welchen Bauteilen und Aufwand wäre so etwas möglich? Gruß und Dank Dom
Nachtrag: Wäre ein ATmega128RFA1 für diesen Zweck der richtige Chip?
Andere Sichtweise: Ein Empfänger empfängt 2 Sender. Wodurch unterscheiden sich die beiden Sender?
Dom schrieb: > Nachtrag: Wäre ein ATmega128RFA1 für diesen Zweck der richtige Chip? Könnte man benutzen, dann hast du den Controller gleich mit dabei. Ansonsten die üblichen Verdächtigen als Funkmodule, wie RFM12, oder als separate Funk-ICs, da wäre der AT86RF230 oder der AT86RF231 das, was dem HF-Teil im ATmega128RFA1 entspricht.
Die Geräte sollen nachher beide Blinken, wenn sie das Signal des anderen empfangen. Es ist also jedes ein Sender und Empfänger. Ich würde es natürlich so stromsparent wie möglich gestalten. Wäre da der ATmega128RFA1 Chip oder die Variante mit mehreren Bauteilen stromsparender? Wie wäre dabei die beste Sendemethode? Wenn beide dauerhaft empfangen und z.B. alle 3 Sekunden das Signal senden oder gibt es bessere Methoden?
Dom schrieb: > Wäre da der ATmega128RFA1 Chip oder die Variante mit mehreren Bauteilen > stromsparender? Nimmt sich praktisch nichts. Der ATmega128RFA1 ist ganz nett dahingehend, dass man ihn bis zu 1,8 V herunter mit 16 MHz takten kann. > Wie wäre dabei die beste Sendemethode? Wenn beide dauerhaft empfangen > und z.B. alle 3 Sekunden das Signal senden oder gibt es bessere > Methoden? Das Empfangen verbraucht vor allem Strom bei diesen Frequenzen, den Senderhythmus kannst du praktisch vernachlässigen. Du musst dir also vor allem Gedanken machen, wie man die Empfangsbereitschaftszeiten reduzieren kann. Wesentliches Kriterium dürfte es dabei sein, wie groß die maximale Latenz der Information sein darf. Je länger, um so länger kannst du dich zwischenzeitlich schlafen legen. Sinnvoll ist es in diesem Zusammenhang, wenn du dem Teil den 32-kHz-Quarz für den langsamen Timer noch spendierst. Damit kann man im ATmega128RFA1 den sogenannten "MAC Symbol Counter" betreiben. Dieser Timer arbeitet mit einem "Tick" von 16 µs (das ist die "MAC Symbol Period" gemäß IEEE 802.15.4, daher der Name dieses Timers). Solange der 16-MHz-Quarz des Transceivers aktiv ist, wird dieser Takt völlig exakt aus diesem Quarz gewonnen. Legt man den Transceiver-Teil schlafen (und schaltet damit den 16-MHz-Oszillator aus), dann schaltet der MAC Symbol Counter automatisch auf den 32-kHz-Quarz als Taktquelle um (den man zuvor mit dem Bit AS2 in ASSR aktiviert haben muss) und synthetisiert sich die 16-µs-Periode aus diesem Quarz. Das geht zwar nicht ganzzahlig auf, aber der Jitter erreicht dabei vorübergehend maximal 16 µs, und es entsteht kein saldierender Fehler, d. h. über einen langen Zeitraum ist die Periode nach wie vor exakt (so exakt wie der Quarz halt ist) 16 µs. Diesen Timer benutzt man dann, um den Empfänger rechtzeitig vor der nächsten zu erwartenden Sendung wieder "scharf" zu schalten.
Die Latenz kann hoch sein. Die Schaltungen sollen aber nicht abgestimmt sein, also man soll jede beliebig ein- und ausschalten können. Das Projekt will ich machen, weil mich solche Schaltungung sehr interessieren und ich etwas Erfahrung mit Mikrocontrollern sammeln will. Vor einigen Wochen bin ich auf das Projekt Tinkerforge gestoßen und überwache jetzt damit die Temperatur und Luftfeuchtigkeit in einem Zimmer. Die Daten werden von einem Debian in ein Logfile geschrieben und ich kann die Werte dann auf einer Website mit dem iPhone auslesen. Da man die Firmware dieser "Bricks" auch flashen kann, hat es mich dann schon interessiert. Als Einstieg habe ich mir diese Schaltung gedacht, die man bei bestimmter Größe an ein Armband befestigt und dann z.B. mit der Freundin jeweils ein Armband trägt, das aufleuchtet, wenn man sich auf 50 Meter nähert. Wenns klappt, wäre es ein tolles geschenk :D (Ob das ganze von der Sendeleistung und Bestimmungen erlaubt ist, oder überhaupt funktioniert, weiß ich nicht :P ) Deswegen sind gesendete Daten und Latenzen erst einmal egal. Es soll quasi nur leuchten... Bis jetzt habe ich nur Ahnung von normalen Schaltungen und Programmierung mit Standardsprachen, also entschuldige ich mich für meine Ahnungslosigkeit und vielen Fragen :) Gruß
Dom schrieb: > Wie wäre dabei die beste Sendemethode? Wenn beide dauerhaft empfangen > und z.B. alle 3 Sekunden das Signal senden oder gibt es bessere > Methoden? Das ist eine schlechte Idee, die im gleichen festen Rhythmus senden zu lassen - einmal Kollision -> immer Kollision
Dom schrieb: > Die Schaltungen sollen aber nicht abgestimmt > sein, also man soll jede beliebig ein- und ausschalten können. Dann musst du eine adaptive Synchronisation aufbauen: der suchende Empfänger verkürzt seine Suchintervalle so lange, bis er den Sender gefunden hat. Danach weiß er, zu welcher Zeit die Gegenstation gesendet hat, und kann sein Zeitraster darauf einrichten. Wie schon geschrieben: pure Empfangsbereitschaft kostet richtig viel Strom, das Senden sind "peanuts" dageben, weil es nur für kurze Zeit ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.