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?
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.
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.
Danke für Eure Hinweise. Ich werde alles noch mal überdenken.
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.