Як кулькова миша знає напрям?


27

На осі наперед у механічної (кульової) миші є ІЧ-передавач і пара приймача з колесом, схоже на те, що мають лише прості щілини.

Як обчислюється напрямок?


1
Я це цікавився деякий час, дякую за запитання!
mskfisher

3
@ хто б не спричинив це - ви могли хоч би сказати zaf, чому ви це зробили? Це абсолютно розумне запитання
stevenvh

Відповіді:


36

Існує не просто пара ІЧ-передавача / приймача, їх є дві . Між передавачами та приймачами є щілинне колесо, яке при обертанні викликає поштовий імпульс у приймачі. (Світло від передавача заблоковано, може проходити, знову блокуватися тощо).

введіть тут опис зображення

Хитрість полягає в тому, як розміщуються два приймачі, а саме в квадратурі.

введіть тут опис зображення

Це означає, що імпульси одного приймача передують імпульсам іншого на кілька градусів (в ідеалі 90 °). Якщо колесо повернути в інший бік, ті ж імпульси тепер відстають від інших.

введіть тут опис зображення

Зауважте, що на висхідному краї каналу A канал B знаходиться на високому рівні при повороті в одну сторону, а низькому - при повороті в інший бік.




210

введіть тут опис зображення

Конкретна картина характерна для кодування Грея .

про кодування сірого
Звичайний бінарний має недолік, що переходи коду можуть створювати помилкові коди під час переходу. Візьмемо для прикладу зміну з 0111(7) на 1000(8). Якщо крайній лівий біт трохи швидший за інші, ви побачите на мить 1111(15), що повністю вимкнено.
Сірий код долає це шляхом перестановки кодів так, що одночасно змінюється лише 1 біт.

Абсолютні кодери не допоможуть вам знайти абсолютне положення миші, тому що колесо обертається кілька разів під час переміщення миші. "Унікальна" картина буде повторюватися кожні кілька мм і не така унікальна. Крім того, завжди можна перемістити мишу, коли комп'ютер вимкнений, або ви можете підняти мишу і знову відкласти її трохи далі. Обидві дії залишаться непоміченими.



-


Образ у відповіді порушений.
заф

Запитання: Цей двоканальний оптичний кодер працює для положення та швидкості, але що робити, якщо вам потрібно знати загальну відстань? Так, наприклад, що робити, якщо ви закрутили його ще чимало разів, вимкнули пристрій, увімкнули його пізніше та ще раз закрутили. Впевнені, що ви могли кожен раз записувати відстань до енергонезалежної пам'яті, але чи існує механічний спосіб вирішення цієї проблеми? Я думаю в бік хитро розміщеного третього каналу ... але нічого не можу придумати.
NickHalden

@stevenvh - Вони над цим працюють , URL-адреси змінюються зі стандартних i.imgur.comна stack.imgur.com.
Кевін Вермер

@stevenvh Гм, мені цікаво, чи хтось думав спробувати використовувати послідовності DeBruijn, а не сірий код ...
NickHalden

1
@stevenvh гаразд, в основному є два приймачі, розміщені в одному блоці. Спасибі.
zaf
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.