Forum: HF, Funk und Felder Gekoppelte Transreciever mit 50-100 Meter Reichweite


von Dom (Gast)


Lesenswert?

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

von Dom (Gast)


Lesenswert?

Nachtrag: Wäre ein ATmega128RFA1 für diesen Zweck der richtige Chip?

von Rig (Gast)


Lesenswert?

Andere Sichtweise:
Ein Empfänger empfängt 2 Sender.
Wodurch unterscheiden sich die beiden Sender?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Dom (Gast)


Lesenswert?

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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Dom (Gast)


Lesenswert?

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ß

von ... (Gast)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.