Forum: HF, Funk und Felder Kompensation von Funkaussetzern, Störimpulsen


von Friedhelm K. (fiete11)


Lesenswert?

Hallo, Vielleicht könnt Ihr mir einen Tipp geben. Ich habe eine 
Funkfernsteuerung (Graupner MZ12pro / GR12L) zur Steuerung einer 
Landmaschine eingesetzt. Die digitalen Empfangssignale werden von einem 
Arduino ausgewertet und umgesetzt. Sporadisch gibt es Störimpulse die 
dann zu ruckartigen Motorbewegungen (PWM gesteuert)führen. Wie kann ich 
die Empfangssignale (0-255 Impulse) etwas verstetigen (ausblenden von 
Werteänderungen mit mehr als 30% Abweichung über den Zeitraum von 
500-1000ms)?
Hat jemand eine Idee?

von oszi40 (Gast)


Lesenswert?

Friedhelm K. schrieb:
> eine Idee?

Werte mehrfach senden und im Empfänger besser auf Plausibilität 
überprüfen. Man könnte auch einen Wert invertieren und dann prüfen. Wenn 
3x der gleiche Wert gesund angekommen ist, scheint er ja zu stimmen?
Parität, CRC, MD5, Cache usw. wären auch eine Idee. Frage ist immer 
wieviel Zeit man hat und ob Lebensgefahr besteht wenn die Verbindung 
ausfällt. Dann ist Vorsorge nötig.

von Hp M. (nachtmix)


Lesenswert?

oszi40 schrieb:
> und ob Lebensgefahr besteht wenn die Verbindung
> ausfällt. Dann ist Vorsorge nötig.

Ja, die Benutzung des 2,4GHz ISM-Bandes zur Steuerung gefährlicher 
Maschinen halte ich für fahrlässig. 
https://www.gesetze-im-internet.de/stgb/__229.html

Bedenke, dass  du in diesem Frequenzband nicht allein bist, sondern 
gemäß  den Zulassungsbedingungen Störungen durch andere Funkdienste 
hinnehmen musst.
"Andere Funkdienste" sind heute ausser dem heimischen Mikrowellenherd 
und anderen Geräten zur Erwärmung mittels Hochfrequenz vor allem 
Bluetooth, WLAN und andere Modellflieger, Radar-Bewegungsmelder sowie 
Geräte zur Audio oder Video-Überwachung z.B. "Babyphones".

Wenn du glaubst, dass du auf dem Acker weit genug von solchen 
potentiellen Störquellen entfernt bist, und trotzdem gestört wirst, 
empfehle ich dir mal die ZigBee, Bluetooth- und WLAN-Funktionen deines 
Smartphones abzuschalten!


oszi40 schrieb:
> Werte mehrfach senden und im Empfänger besser auf Plausibilität
> überprüfen. Man könnte auch ....

Das ist eine 12-Kanal Anlage und verwendet vermutlich schon irgend ein 
Protokoll mit einer Sicherungsschicht.
Das kann natürlich nicht verhindern, dass durch einen starken Störer der 
Empfang völlig unmöglich wird.
Die Frage ist, woran man eine Störung oder den Ausfall der 
Funkverbindung erkennen kann, und wie sich die Landmaschine dann 
verhalten soll.
Evtl. kann man die Situation verbessern, wenn man die bisher unbenutzten 
Kanäle mitverwendet, aber ohne die Anforderungen und Möglichkeiten genau 
zu kennen, begibt man sich m.E. da auf das Gebiet der Kaffeesatzleserei.

von Friedhelm Kastens (Gast)


Lesenswert?

Danke für Eure Hinweise. Ich werde alles noch mal überdenken.

von Wolfgang (Gast)


Lesenswert?

Friedhelm K. schrieb:
> Die digitalen Empfangssignale werden von einem
> Arduino ausgewertet und umgesetzt.
Dann musst du zweifelsohne dort ansetzen, wenn an der Funkstrecke nichts 
geändert werden soll.

> Sporadisch gibt es Störimpulse die dann zu ruckartigen
> Motorbewegungen (PWM gesteuert)führen. Wie kann ich
> die Empfangssignale (0-255 Impulse) etwas verstetigen (ausblenden von
> Werteänderungen mit mehr als 30% Abweichung über den Zeitraum von
> 500-1000ms)?
Wertänderungen von über 30% sind erstmal nichts böses. Entscheidend ist, 
in welchem Zeitraum diese Änderung erfolgt. Um eine Lösungsstrategie zu 
erarbeiten, muss die Art der Störung bekannt sein.

1. Mit welcher Zeitauflösung werden die Werte übertragen ? (20ms Pulse 
für Servoansteuerung?)

2. Welcher Art sind die Störungen, i.e. sind es Burststörungen oder 
Einzelfehler? Wie sieht z.B. bei konstantem gesendeten Wert das vom 
Empfänger gelieferte Signal aus (Aufzeichnung mit voller Zeitauflösung)?

3. Findet im Empfänger schon eine Glättung statt, bevor das Signal zum 
Arduino geführt wird?

4. Ist sicher gestellt, dass es sich nicht um ein Softwareproblem im 
Arduino handelt?

Vielleicht wird nach Klärung dieser Punkte eine Beantwortung deiner 
Frage leichter.

von Friedhelm K. (fiete11)


Lesenswert?

Hallo Wolfgang,
Danke für Deinen ausführlichen Kommentar. Mit externer Unterstützung 
haben die weiteren Untersuchungen ergeben, das es sich um die 
Kombination von zwei Problemkreisen handelt.
1. Ein Laufzeitproblem im Arduino hervorgerufen durch aktive 
LCD-Anzeigen. Die Auswertung des Empfängerteiles kommt aus dem Takt und 
liest sporadisch Blödsinn. Nach Abschalten aller Anzeigen verschwindet 
der Fehler.
2. Im Empfängerteil habe ich keine Plausibilitätsprüfung in Bezug auf 
den empfangenen Datensatz.
An diesen Punkten arbeite ich und wäre dankbar wenn mir jemand mit einem 
Sketch mit CRC-Prüfung des SUMD-Satzes helfen könnte.

von Hp M. (nachtmix)


Lesenswert?

Friedhelm K. schrieb:
> Ein Laufzeitproblem im Arduino hervorgerufen durch aktive
> LCD-Anzeigen. Die Auswertung des Empfängerteiles kommt aus dem Takt und
> liest sporadisch Blödsinn. Nach Abschalten aller Anzeigen verschwindet
> der Fehler

Die LCDs dürften unschuldig sein. Eher verbirgt sich dahinter ein 
Softwarefehler.

Friedhelm K. schrieb:
> wenn mir jemand mit einem
> Sketch mit CRC-Prüfung des SUMD-Satzes helfen könnte.

Was ist SUMD?
CRC-Folgen gibt es viele.
Im Prinzip bestehen alle aus einem längeren Schieberegister, bei dem der 
hereinkommende Datenstrom, die letzte, und mindestens eine weitere Stufe 
"geXORt" werden und das Ergebnis als Input für das Schieberegister 
verwendet wird.
Kann man relativ leicht in Software oder bei hohen 
Übertragungsgeschwindigkeiten in Hardware machen.

von Wolfgang (Gast)


Lesenswert?

Hp M. schrieb:
> Was ist SUMD?
> CRC-Folgen gibt es viele.
Für ein digitales Summensignal aber nur eine:
"Low byte of CRC16, which is CRC-CCITT (XModem) with 0x1021 as 
polynomial and 0x0000 as starting value"
http://www.gh-lounge.de/mediawiki/index.php/Erkl%C3%A4rung_SUMI,_SUMO,_SUMD,_u.s.w.

von Friedhelm K. (fiete11)


Lesenswert?

Hallo,
ich habe von einem netten und hilfreichen Elektroniker einen Sketch für 
die Auswertung des SUMD Signals mit CRC-Check erhalten. Da mein 
Wissensstand in "C++" noch deutliche Mängel aufweist, werde ich einige 
Zeit benötigen, bis ich den Sketch vollständig verstanden und dann in 
mein Programm integriert habe.
Ich bitte Euch um Geduld. Ich werde mich melden wenn mein Programm 
läuft.
Danke Euch Allen für Eure Tipps.

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.