我从串行接口获得输入,我正在使用它来移动三个数字针 . 我有三个仪表,我可以定期以大约10 Hz的速率进行采样,在所有仪表之间共享 . 当我只运行一个仪表时,针头以10Hz的输入非常平稳地移动,但是一旦我添加另一个,针头会变得很猛 .
我需要找出一种平滑数据的方法,这样当采样速率减慢时我的针头不会跳得太多 .
我使用以下代码以更现实的方式更改针的角度:
def move(self):
self.real_angle = self.real_angle + ((360 - self.value * 270/120) - self.real_angle) * 0.2
needle_angle = self.real_angle
if needle_angle > 360:
needle_angle = 360
self.needle.angle = needle_angle
self.real_angle是指针实际所处的角度(可能高于360度) . self.value是从串行端口返回的值 . self.needle_angle在这里并不重要 . 我只是用它来设置我的角度,因为真实角度可能高于360度 .
这段代码提供了更逼真的模拟风格运动,并且在高采样率下看起来很棒,但我正在试图弄清楚如何使针更顺畅地移动 .
任何意见,将不胜感激 .
谢谢 .