无限旋转与有限行程的语义差别
别名: 无限旋转 · 带止位旋钮 · rotary encoder · potentiometer end stop
概念解释
烤箱温度钮转到头会撞上金属止位,指针停在「关」或最高档,位置本身就是值。鼠标滚轮式的编码器可以一直转,旋钮指向几点钟并不表示当前音量——它只报告「又转过了多少」。有限行程与无限旋转(end-stop versus endless rotation)是两种语义:前者是绝对位置(absolute position),后者是增量(relative increment)。把一种旋钮的外形用在另一种语义上,手会按错词典去读。
机制
带止位的电位器把参数写进轴的绝对角:机械零点、满度、中间刻度都与壳体对齐,断电后指针还在,人可以看一眼或摸到止位就知道值在哪。无限编码器没有机械零点,当前值住在软件里;旋钮的朝向是任意的,松手后外形不保存参数。于是「拧到头」在两种器件上意思相反:有止位时它是到达边界,无限旋转时它永远不会发生,边界只能靠软件限幅或音色突然不变来暗示。带指针的有限旋钮还允许一眼读出状态;无标记的无限旋钮把状态显示赶到旁边的屏上。抓握外形可以长得很像,语义通道却不是同一种。
怎么研究
给同一参数分别做有止位带指针、有止位无指针、无限无标记三种旋钮,看人如何判断当前值和如何处理边界。
自变量:行程类型(有止位 / 无限)、有无指针或刻度、断电后硬件是否保持、是否另有数字显示。 因变量:不看屏时对当前值的估计误差、拧到边界时的行为(继续拧、停下、寻找止位)、上电后是否被旋钮朝向误导。
值得盯的是上电瞬间和别人刚用过之后:无限旋钮朝向与参数无关,人却会把朝向当绝对值来读。任务里要包含「先让别人调过、再让被试接手」这一段,否则测不到这份错词典。
边界
多圈电位器(十圈精密钮)是有限行程但看起来像能一直转,止位来得很晚,容易被当成无限。软件把无限编码器映射成带软止位的参数(拧过最大就不再增加)时,手仍在转、值已经停,造成「坏了」的错觉。需要断电保持的场景(机械恒温器、模拟调音台)几乎必须用有止位或有记忆的绝对器件;需要跨很大动态范围、又不能让指针撞头的场景(浏览长列表、多圈对焦)更适合无限。振动环境下,无限旋钮若无足够阻尼会在无人操作时累积增量;有止位的则只在止位之间抖。
怎么落地
- 值必须能从外形读出、且有物理最小/最大的参数,用带止位、最好带指针的旋钮。
- 值住在软件里、量程会变或需要多圈浏览的参数,用无限旋转,并在旁边给当前值的显示,不要画一个假指针。
- 不要把无限编码器装进带刻度盘的壳,让刻度假装在指绝对值。
- 验证:断电或让别人改过参数后,不看屏问「现在大概是多少」。有止位带指针应能答对量级;无限旋钮若被朝向误导,说明外形在说一种语义、系统在用另一种。再让人刻意拧过边界:有止位应变硬,无限应变「转了但值不变」并有非视觉提示。