Hi,
also wenn ich das richtig verstehe, hast du einen Roboter mit je einem Encoder pro Motor. Dazu willst du jetzt (oder eben auch nicht) einen Kompass integrieren!?
Ich würde da einen Komplementärfilter verwenden (Hoch + Tiefpass), der die Signale miteinander verechnet und somit einen auf kurze & lange Zeit stabilen Wert ausgibt.
Den Sprung könnte man z.b. so lösen:
Code:
Heading = Kompass_Value()
If Heading >= 0 and Heading_old <= 360 then
Umdrehung = Umdrehung + 1
Elseif Heading <= 360 and Heading_old >= 0 then
Umdrehung = Umdrehung - 1
Endif
Heading_old = Heading
Heading_laufend = 360*Umdrehung + Heading
Gruß
Chris
Lesezeichen