[Перевод] Первая шариковая мышь

9_rvco-1e8bbtu0jpuxwa7rokce.png


Первая шариковая мышь была выпущена в 1968 году компанией Telefunken, которая нарекла своё детище RKS 100–86 «Rollkugel-Steuerung». Это была, пожалуй, первая мышь, которая попала на коммерческий рынок, несколькими годами опередив компьютер Xerox Alto. В этой статье я покажу вам фотографии моей Rollkuleg, а также расскажу о её энкодерах, разводке контактов и собранном мной интерфейсе для подключения этого раритета к современному компьютеру.

Telefunken RKS 100–86


Первую мышь изобрёл сотрудник Стэнфордского исследовательского института (SRI) Дуглас Энгельбарт. В придуманном им манипуляторе использовались два заострённых колёсика, расположенные под углом 90 0 друг к другу и вращавшиеся при движении устройства по столу. Для сетевых компьютерных систем и пользовательского интерфейса это решение стало революционным. В 1967 году Энгельбарт подал заявку на регистрацию патента, а в декабре 1968 публично продемонстрировал завершённую систему в позднее ставшим знаковым выступлении «The Mother of All Demos».

Однако параллельно с разработкой SRI над устройствами для интерфейса пользователя работали и в компании Telefunken, находившейся в городе Констанц, Германия. В то время уже существовал трекбол, или шаровой указатель, который использовался в радарных рабочих станциях. Он представлял собой большой стационарный шар, который вращался от руки, будучи установленным в пульте управления.

Однако команда инженеров из Telefunken хотела создать устройство, которое можно было бы использовать в сочетании с компьютерными терминалами на обычном столе. Как сообщается в этом интервью, в 1966 году Райнер Маллебрейн предложил «развернуть» трекбол, чтобы он катался по поверхности стола, а его движения при этом отслеживались двумя фрикционными колёсиками. Так родилась шариковая мышь.

gv3wn40ohsem6lxiefc-g2hi_om.png
Rollkugel в действии. Печально, но я сохранил этот снимок много лет назад, прописав в имени файла лишь дату — 1969 год — без указания ссылки на источник. Если у кого-то есть возможность отследить и точно датировать снимок — отпишите, пожалуйста, в комментариях.

Патент Telefunken на своё изобретение регистрировать не стали, а саму мышь назвали «Rollkugel-Steuerung», контроллер с шаровым указателем. Однако компания публично заявила об этом изобретении незадолго до выхода демонстрации Энгельбарта. Публикация вышла в корпоративном журнале, описывая в основном ЭЛТ-терминалы и лишь кратко упоминая новый вид манипулятора для последней на тот момент модели терминала Telefunken SIG 100–86 (Günter Neubauer, «Sichtgeräte in elektronischen Datenverarbeitungsanlagen», Technische Mitteilungen AEG-Telefunken, 2 октября, 1968 год).

ДО сих пор точно не известно, когда новая мышь была впервые продана потребителю. Первую систему TR 440 установили в Дармштадте в 1968 году, но она могла ещё не включать опциональную Rollkugel. На сегодня в качестве первого подтверждённого случая коммерческого использования признаются четыре мыши, приобретённые вычислительным центром Лейбница в Мюнхене в 1972 году. Несмотря на несколько лет разницы, этот случай всё равно на год опережает систему Xerox Alto, подтверждая, что первой коммерчески доступной мышью стала именно Rollkugel.

Моя Rollkugel


Мой экземпляр был списан немецким университетом, когда они выводили из эксплуатации свой мейнфрейм Telefunken TR 440. Было это в 1981 году, если мне не изменяет память. Когда эта мышка попала в мои руки, я попытался подключить её к Apple II. Тогда мы ещё понятия не имели о «рабочих столах» с «Windows», но уже были знакомы с джойстиками и играми!;-). Как бы то ни было, но мои первые попытки воспользоваться этой уникальной мышкой провалились. Причиной тому стал износ контактов внутри электромеханических энкодеров.

В итоге почти три десятилетия моя Rollkugel просидела в ящике шкафа, и я не осознавал, что она может иметь историческую значимость, пока в 2009 году не наткнулся на статью Ральфа Бюлова. На фоне 40-й годовщины выхода демо Энгельбарта Ральф освежил в истории память об этой «немецкой мыши», и я был рад осознать, что являюсь обладателем одного из немногих сохранившихся экземпляров.

У Rollkugel не самый эргономичный дизайн. Она имеет полусферическую форму диаметром 12 см и одну кнопку, расположенную ровно в центре. Подобная конструкция не очень удобно лежит в руке, и работать ей тоже довольно неловко. Судя по надписям на корпусе при работе кабель должен быть направлен на оператора, хотя на некоторых современных снимках видно, что он направлен в обратную сторону.

Мой экземпляр достался мне без штекера, так что на фотографиях представлен уже не оригинальный.

9_rvco-1e8bbtu0jpuxwa7rokce.png
RKS 100–86 'Rollkugel-Steuerung' от Telefunken. Штекер установлен современный, но он полностью соответствует оригиналу.

l1sbgroqwts7ugf34dy9fnhzjtm.png
Механическая часть такая же, как в шариковых мышках из 1980-х — в промышленном исполнении. Мелкие ролики, поддерживающие шар, работают на шарикоподшипниках.

Комплектующие


Энкодеры


Энкодеры изготовлены французской компанией MCB — «codeur à contacts» type CC27E08. Похоже, что тогда они не являлись потребительским изделием, так как на них указаны серийные номера. У моих это 407 и 412.

Эти энкодеры генерируют 4-битный код Грея с 14 состояниями. Кроме того, каждый отдельный выход сохраняет своё значение как минимум в течение двух последующих состояний. Это позволяет увеличить постоянную времени для реализации антидребезга. При этом 1 обозначает закрытый контакт:


Эта последовательность при полном обороте энкодера повторяется пять раз. И поскольку диаметр его резинового О-кольца 13 мм, это даёт разрешение в 5×14 отсчётов / (π*13 мм) = 1.7 отсчётов/мм = 43.5 отсчётов/дюйм. Не особо впечатляет на фоне современных 400 dpi и выше…

Штекер


Как я уже говорил, мне Rollkugel досталась без штекера. Когда я собрался его восстановить, то решил, что подобрать надо нечто похожее. Проблем с образцом не возникло, так как в интернете достаточно фотографий таких мышей с оригинальными штекерами. В результате у меня получилась полностью идентичная альтернатива. Старые коннекторы «Kleintuchel», изначально выпускавшиеся немецким производителем Tuchel как проприетарные мини-штекеры, были стандартизированы как DIN 45 321 и IEC 60130–9. Их все ещё производят Binder (581 серия), Lumberg (SV серия) и Amphenol Tuchel (T 3635). В Rollkugel используется 12-контактный штекер, и современные альтернативы оказываются полностью аналогичны как по механической части, так по резьбе и распиновке.

В своей первой попытке я использовал произвольное назначение выводов. Однако позже, благодаря Клеменсу Краузе из компьютерного музея Штутгартского университета, который замерил оригинальный штекер, я подключил всё как положено. К моему удобству цвета проводов у наших мышей оказались одинаковые.

wcfvevy4wdr-seqqapjpdgw4mha.png
Порядок выводов и их обозначение для 12-контактного штекера. Огромная благодарность Клеменсу Краузе из Штутгартского компьютерного музея за документирование оригинальной распиновки Rollkugel.

Но несмотря на то что мой аналог штекера технически полностью соответствует оригиналу, выглядит он не совсем так. Качество изготовления современных штекеров стало лучше, и форма получается более детализированной. В итоге я начал рыть eBay в поиске других источников оригинального штекера Kleintuchel и нашёл-таки несколько предложений. Ввиду активного спроса среди коллекционеров старого аудио оборудования штуковины эти стоят недёшево.

Поскольку 12-мм версию найти всё равно нигде не удавалось, я купил две 2-контактные альтернативы: не так часто используются в аудио, в связи с чем и спрос на них, видимо, ниже. И вуаля — внутренняя часть от современного 12-пинового штекера Amphenol/Tuchel идеально входит в старый кожух Tuchel! Новый вариант я ещё не установил, но вот он лежит готовенький — в ожидании подключения:

oe3ztes_l9wkkckt8cihdaoc4vy.png
Два винтажных штекера Kleintuchel, использованных в Rollkugel, и современный Lumberg SV120. Внутренности лежащего в центре разъёма Kleintuchel я заменил на современные — осталось подключить его к мыши.

Адаптер USB


Я хотел подключить Rollkugel к современному ПК, поэтому мне понадобился USB-интерфейс. Из предыдущих тестов было ясно, что электромеханические контакты в энкодерах износились и вызывали много пропусков. Нужно было реализовать хорошую фильтрацию и проверку достоверности кода.

Я также хотел добавить функционал правой кнопки для удобства использования мышки под Windows. Решение я взял из One Finger Snap, старой утилиты Mac: не двигая мышь, недолго удерживать кнопку, затем отпустить — такое действие будет распознано как правый клик.

vp5fxi69q1ifp0dhovu-dfeonvg.png
Самодельный интерфейс для подключения RKS 100–86 к современному компьютеру через USB.

Когда я собрал этот интерфейс в 2011 году, то ещё не знал о простых микроконтроллерах с USB и программным стеком HID — хотя они, вероятно, уже существовали. Поэтому для реализации USB-интерфейса я использовал внутренности шариковой USB-мыши. Я добавил простой микроконтроллер, который преобразует код и декодирует длительный клик по единственной кнопке мыши в сигнал нажатия правой клавиши.

Работу изношенных контактов энкодеров я наладил, установив на каждом входе микроконтроллера RC-фильтры, рассчитанные на постоянную времени 1 мс (R = 22кОм, С = 10нФ; внутренняя подтяжка в микроконтроллере отключена (). Такая конфигурация позволит проходить валидным сигналам с энкодеров при движении мыши не быстрее 300 мм/с (500шагов/с), но при этом отфильтрует более быстрые рывки. В добавок к этому ПО микроконтроллера ищет валидные фазовые переходы, которые соответствуют паттерну кода Грея, и подавляет невалидные состояния, даже если они длятся дольше 1 мс.

Если вам интересно, то код микроконтроллера здесь.

Но сегодня для той же задачи превращения кода энкодера и реализации интерфейса USB HID я собираюсь использовать Arduino Pro Micro или аналогичную плату.

lmty4qrmxdt86dgdkatifhztj_i.png
Микроконтроллер фильтрует передаваемый энкодерами код Грея и преобразует его в квадратурный код. Он также преобразует длительные нажатия кнопки в правый клик. Преобразованные сигналы передаются на позаимствованную из USB-мыши плату, которая переводит их в USB.

ehjkqbggcge4jtuxbzezt-gnqzi.png
Простая схема платы микроконтроллера. У входа каждого энкодера также установлены пассивные RC-фильтры.

Ссылки и файлы


Мейнфрейм TR 440, а значит и RKS 100–86 Rollkugel, активно продавались в Германии. Так что оставшиеся представители вида Rollkugel в основном находятся именно там. Поэтому не удивительно, что большинство из приведённых ниже страниц будут на немецком.

  • Статья Ральфа Бюлова на сайте Heise, вышедшая в 2009 году, в которой он заново открывает «немецкую мышь».
  • Статья корпоративного журнала, которую Бюлов цитирует как первую опубликованную ссылку на новый манипулятор Rollkugel: Günter Neubauer, «Sichtgeräte in elektronischen Datenverarbeitungsanlagen», Technische Mitteilungen AEG-Telefunken, 2 октября, 1968. Кстати, в качестве иллюстрации к ней использована работа Фридера Наке «Serie 7.1–6» (1966), вычисленная на Telefunken TR 4 и начерченная на Zuse Graphomat Z 64.
  • Ресурс Südkurier опубликовал интересное интервью с Райнером Маллебрейном, изобретателем Rollkugel. В начале статьи приводится фото, где он в 2014 году вновь держит в руках своё детище.
  • Ещё одно интервью у изобретателя взял Гюнтер Штайнбах для Музея компьютерной истории. В нём Маллебрейн также рассказывает о своей биографии, включая тот факт, что его дед изобрёл Mallebrin.
  • В коллекции компьютерного музея Штутгартского университета хранится два экземпляра Rollkugel. При этом в нём также проводился студенческий проект по их реверс-инжинирингу. Ещё раз благодарю Клеменса Краузе за то, что помог мне восстановить оригинальную распиновку контактов, а также выражаю признательность Фабиану Мауреру за фотографии, которые помогли мне подобрать правильный штекер.
  • В компьютерном музее Гамбургского университета тоже есть экземпляр Rollkugel.
  • Крупнейший в Германии компьютерный музей Heinz Nixdorf Forum опубликовал интересную статью, обобщающую историю компьютерных мышей и, в частности, Rollkugel.
  • Музей компьютерной истории — это единственное известное мне место за пределами Германии, где хранится экземпляр Rollkugel. Здесь можно найти несколько снимков этой мыши, которая, к сожалению, находится не в лучшей форме.
  • Статья английской Википедии, посвящённая компьютерным мышам, неплохо раскрывает их историю.


oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru