球形鼠标如何知道方向?


27

机械(球形)鼠标的前向轴上有一对红外发射器和接收器,它们的滚轮看起来只有简单的缝隙。

方向如何计算?


1
我一直在想这个问题,感谢您的提问!
mskfisher 2011年

3
@谁对此表示反对-您至少可以告诉zaf为什么这样做吗?这是一个完全合理的问题
stevenvh 2011年

Answers:


36

不仅有一对IR发送器/接收器,还有两个。在发射器和接收器之间有一个开槽轮,当旋转时,它会在接收器中产生脉冲序列。(来自发射器的光被遮挡,可以通过,再次被遮挡,依此类推。)

在此处输入图片说明

诀窍是两个接收机如何放置,即正交放置。

在此处输入图片说明

这意味着一个接收器的脉冲先于另一个接收器的脉冲若干度(理想情况下为90°)。如果车轮转向另一方向,则现在相同的脉冲滞后于其他脉冲。

在此处输入图片说明

请注意,在通道A的上升沿,B通道在单向转动时处于高电平,而在另一向转动时处于低电平。




210

在此处输入图片说明

特定模式是格雷编码的典型模式。

关于格雷编码
普通二进制文件的缺点是代码转换可能会在转换过程中产生错误代码。以从0111(7)到1000(8)的变化为例。如果最左边的位比其他位快一点,您会看到一会儿1111(15),这完全关闭了。
格雷码通过重新排列代码来解决此问题,因此一次仅更改1位。

但是,绝对编码器无法帮助您找到鼠标的绝对位置,因为在您移动鼠标时滚轮会旋转几次。“独特”的图案每隔几毫米就会重复一次,毕竟不是那么独特。此外,始终可以在计算机关闭时移动鼠标,也可以抬起鼠标再放一点。这两个动作都不会被检测到。



-


答案中的图像损坏。
2011年

问题:这种双通道光学编码器适用于位置和速度,但是如果您需要知道总距离怎么办?因此,例如,如果您将其旋转一圈,关闭设备,稍后再打开,再旋转一遍,该怎么办。当然您可以每次记录到非易失性存储器的距离,但是有没有机械的方法可以解决此问题?我正在考虑巧妙地放置第三个频道的方向...但是我什么都没想。
NickHalden 2011年

@stevenvh- 他们正在努力,网址已从标准更改i.imgur.comstack.imgur.com
Kevin Vermeer

@stevenvh嗯,我想知道是否有人想尝试使用DeBruijn序列而不是格雷码...
NickHalden 2011年

1
@stevenvh好吧,基本上在一个单元中装有两个接收器。谢谢。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.