Hallo,
Ich bin auf der Suche nach einer Lösung und hoffe ihr habt eine Idee
Ich möchte zwei Atmega Chips miteinander über Funk Verbinden.
Absolute Priorität hat die Zuverlässigkeit übertragungsfehler dürfen
nicht enstehen.
Die beiden Chips bewegen sich auf ein Gelände der Fläche von 100*100
Meter je nach Position sind Maximal zwei Wände aus Stein mit einer
Wandstärke von ca 25cm dazwischen.
Die übetragungsgeschwindigkeit ist vollkommen egal es werden Maximal 4
Byte pro Minute übetragen.
Was könntet ihr empfehlen?
Ich habe es im 433 Mhz bereich probiert dies funktionierte nicht, es
waren soviele fehler im empfangssignal das mit fehlerkorrektur nur alle
10 Minuten ein einwandfreier empfangen möglich war.
Meine überlegung geht in richtung 2,4 Ghz wäre das besser?
Stefan schrieb:> Was könntet ihr empfehlen?>> Ich habe es im 433 Mhz bereich probiert dies funktionierte nicht, es> waren soviele fehler im empfangssignal das mit fehlerkorrektur nur alle> 10 Minuten ein einwandfreier empfangen möglich war.
Dann hast du irgendetwas grundlegendes falsch gemacht.
Hattest du eine Antenne dran?
Welche Sendeleistung hast du verwendet?
Welche Empfindlichkeit hatte dein Empfänger?
Betreibst du das ganze in 433Mhz-verseuchter Umgebung?
Tacho
Die Fragen die du dir stellen solltest sind:
#Kann ich die Sendeleistung erhöhen (zb statt rfm12 ein rfm22b)
#Wie siehts mit der Antenne aus da kann man meistens auch noch ein paar
dB rausholen. (besseres Layout oder spezielle Antenne usw )
#Anderes Codierungsverfahren
Rufus Τ. Firefly schrieb:> Wenn die Fehlerrate zu hoch ist: Sende mit Redundanz, so daß die> Nutzdaten auch bei hoher Fehlerrate rekonstruiert werden können.
Wahrscheinlich hat der Empfänger sich gar nicht richtig synchronisiert.
Vier Byte über 100 m heil zu übertragen, ist kein Hexenwerk.
Ganz ohne einen Sender geht es natürlich nicht, aber mit genügend großem
Hammingabstand der Symbole muß das fast immer gehen.
Stefan schrieb:> Die übetragungsgeschwindigkeit ist vollkommen egal es werden Maximal 4> Byte pro Minute übetragen.>> Was könntet ihr empfehlen?
Vier Repeater in der 100x100m Halle verteilen, die das empfangene Signal
weitersenden. Statt 100m Reichweite genügen dann mit vier Repeatern
bereits weniger als 50 m Reichweite.
> Ich habe es im 433 Mhz bereich probiert dies funktionierte nicht, es> waren soviele fehler im empfangssignal das mit fehlerkorrektur nur alle> 10 Minuten ein einwandfreier empfangen möglich war.
Die Frage ist, WIE Du es probiert hast.
Ich habe im Sommer mal etwas mit billigen ASK/SAW 433MHz-Modulen und
Regenerativempfänger experimentiert. Einen kleinen Wettersensor für den
Garten gebaut, der mir Temperatur, Luftfeuchte und die Batteriespannung
ins Haus zufunken.
Je nachdem wie ich es mache und programmiere, sind mit denselben
Modulen, demselben Antennendraht, derselben Batteriespannung (3x 1,5
Volt Mignon) und quasi derselben Schaltung einmal Reichweiten von nicht
mal 10 Metern möglich. Oder Reichweiten von mindestens 25 Metern,
wieviel genau habe ich nicht getestet, mein Garten ist nicht länger.
Stichwort: Bitfolgen-Codierung und exaktes Timing der Bits.
Regenerativempfänger laufen in die Sättigung bei zu vielen
hintereinander gesendeten gleichen Bits.
So programmiert man die geringe Reichweite mit einem 433MHz
ASK/SAW-Modul:
- Funkmodul über die serielle Schnittstelle ansteuern und die Bits
rausjagen
So programmiert man die hohe Reichweite mit einem 433MHz ASK/SAW-Modul:
- Funkmodul gezielt ansteuern
+ "Trainingsbits" für 0-Bits und 1-Bits zum Sendungsstart senden
+ CRC-Prüfsumme der Nutzdaten ermitteln und an die Nutzdaten dranhängen
+ Nutzdaten plus CRC einer speziellen Bitfolgen-Codierung unterziehen
(so dass maximal drei gleiche Bits in Folge im Datenstrom auftreten)
Und den Empfänger natürlich genauso programmiert, dass er
+ anhand der Trainingsbits die genaue 0-Bit und 1-Bit Länge lernt
+ den Datenstrom wieder rückwärts in Nutzdaten und CRC decodiert
+ die Nutzdaten und CRC-Summe gegeneinander prüfen
Hintergrund: Die ganz billigen 433MHz Regenerativempfänger laufen in die
Sättigung, wenn sie zu viele identische Bits nacheinander empfangen.
Dreimal 1-Bits ist noch OK, beim vierten 1-Bit regelt der Empfänger
seine Empfindlichkeit herunter, beim fünften 1-Bit in Folge wird es
kritisch, beim sechsten bricht der Empfang zusammen.
Also: Entweder relativ teure Sender/Empfänger "mit eingebautem
Sendeprotokoll" verwenden. Oder die ganz billigen ASK/SAW Module
verwenden, aber dann mit einem eigenen Sendeprotokoll senden.
Was hast Du denn zum Testen als Sender und Empfänger verwendet?
Billigste ASK/SAW Sendemodule mit einfachem Regenerativempfänger?
Oder irgendwas teureres mit eingebautem Sendeprotokoll?
> Meine überlegung geht in richtung 2,4 Ghz wäre das besser?
Grobe Faustformel:
Je größer die Sendefrequenz, desto geringer die Reichweite (bei gleicher
Sendeleistung).
Jürgen Schlottke schrieb:> Also: Entweder relativ teure Sender/Empfänger "mit eingebautem> Sendeprotokoll" verwenden. Oder die ganz billigen ASK/SAW Module> verwenden, aber dann mit einem eigenen Sendeprotokoll senden.>
Hallo Jürgen, gibts da was "fertiges" fürn AVR das man, ohne gross
selber sich da reinknieen zu müssen, anwenden/einsetzen kann kann?
Am besten einen "Seriell- Wandler in Biphase" und zurück.
Kurt
Kurt schrieb:> Hallo Jürgen, gibts da was "fertiges" fürn AVR das man, ohne gross> selber sich da reinknieen zu müssen, anwenden/einsetzen kann kann?
So allgemein für AVR, keine Ahnung.
Für die Arduino-Plattform und die allerbilligsten ASK/OOK-Sendemodule
mit SAW-Stabilisierung beim Senden und die dazu passenden
Regenerativempfänger gibt es jedenfalls die VirtualWire Library von Mike
McCauley, siehe www.open.com.au/mikem/arduino/VirtualWire.pdf
Das von Michael empfohlene 3DR Radio ist dagegen eine intelligente
Sendeplattform mit eigenem Mikroprozessor im vergleichsweise teuren
Sender statt nur einfacher Ein-/Aus-Tastung für die Bits beim Senden.
Die "Intelligenz im Sender" (und dem dazu passenden Empfänger) muss man
allerdings auch erstmal bezahlen wollen.
Solche intelligenten Sende/Empfänger wie das 3DR Radio sind eine
Alternative, wenn man zum Beispiel verschiedene Frequenzkanäle nutzen
möchte und viel Funk mit hoher Datenrate auf wenig Fläche verteilt
realisieren möchte: Die Sender sind meist hochwertiger und
schmalbandiger, können mit höheren Datenraten umgehen, und noch
intelligenter als "VirtualWire": Sie haben sogar Error-Correction-Code
eingebaut und können selbst fehlerhaft empfangene Bits im Datenstrom am
Ende wieder zu einer fehlerfreien Message zusammensetzen. Die Reichweite
ist daher höher, auch wegen der besseren Empfänger.
Irgendwo hat das Virtual-Wire Konzept mit den ganz billigen Sendemodulen
auch seine hardwaremäßigen Grenzen, was Datenrate und Reichweite angeht,
da helfen dann auch die Trainingsbits beim Start der Sendung und die
6in4-Codierung zur Erzeugung optimierter Bitstrom-Folgen für das
ASK/OOK-Sendeverfahren dann nicht mehr weiter. Aber senden mit
ASK/OOK-Modulen ist eben spottbillig, und erzielt wenn es richtig
angewendet wird, durchaus brauchbare Ergebnisse.
Jürgen S. schrieb:>>> selber sich da reinknieen zu müssen, anwenden/einsetzen kann kann?>> Das von Michael empfohlene 3DR Radio ist dagegen eine intelligente> Sendeplattform mit eigenem Mikroprozessor im vergleichsweise teuren>> Sender statt nur einfacher Ein-/Aus-Tastung für die Bits beim Senden.> Die "Intelligenz im Sender" (und dem dazu passenden Empfänger) muss man> allerdings auch erstmal bezahlen wollen.>>> Solche intelligenten Sende/Empfänger wie das 3DR Radio sind eine> Alternative, wenn man zum Beispiel verschiedene Frequenzkanäle nutzen> möchte und viel Funk mit hoher Datenrate auf wenig Fläche verteilt>
Danke für die Info.
Das im PDF muss ich erstmal verstehen und richtig lesen können.
Alles was über BASCOM rausgeht ist erstmal mit "Arbeit" verbunden.
Sachma mal ob mir das liegt.
Kurt