Доброго времени суток.
Впечатлился тут фотографией одного устройства (во вложении) и решил попробоваь собрать нечто подобное.
Купил Arduino Nano + Джойстик (во вложении тоже), потратил один вечер и задумался о том, что возможно мышь и не является таким уж хорошим манипулятором.
Пока рано говорить, выйдет ли у меня что-то из того, что я на данный момент собрал (пока это чистый Nano с висящем на 5 проводах джойстиком и кнопкой; фото не буду делать), но такие открытия одного потраченного вечера:
1. Arduino Nano не поддерживает HID профиль. Но пока Nano отправляет через эмулируемый COM-порт 3 величины (2 оси и состояние кнопки), вся логика реализована софтварно на Windows (и тут даже есть некоторые плюсы).
2. Джойстики бывают разные. Тот, что я купил имеет ряд изъянов: мертвая зона прямоугольной формы в центральной позиции, 2 пружины вместо одной (отсюда стремление "прилипнуть к оси"), усилие кнопки зависит от положения джойстика, 2% от полного хода (18/1024) не возвращается пружинами (люфт в средних позициях).
Изначально пытался подойти к решению задачи "в лоб". Но быстро понял, что требуется калибровка (+), нелинейная зависимость скорости перемещения от положения джойстика (+; 1 дуга на графике зависимости — идеально: при малых углах скорость минимальна, при средних ближе к минимальной, при максимуме максимум), требуется круглая мертвая зона в центре (иначе клик приводит к перемещению курсора и некоторые элементы графического интерфейса ведут себя не так, как ожидалось), в итоге даже стало получаться нарисовать в Paint нечто, отдаленно напоминающее круг (во вложении; один из кругов нарисован мышью).
Промежуточный итог:
При чтении веб-страниц удобнее мыши (руки совсем расслаблены, лежат на подлокотниках, спина расслаблена, нет нужды тянуться к мыши, которая работает только на столе), с другими задачами не справляется (во всяком случае в текущей реализации).
Сам джойстик куплен совсем не подходящий (но позволил определиться с требованиями к комплектующим).
Корпуса нет, но даже без корпуса уже более-менее ясно, что в итоге получится.
Провод несколько мешает, нужно делать без проводов. В идеале взять за основу конструктор с bluetooth и поддержкой HID (стоит поискать, может существует что-нибудь такое).
Нужна кнопка для переключения в режим скроллинга (не средняя кнопка мыши, а именно переход в режим эмуляции мышиного скроллера для вертикальной и горизонтальной прокрутки), прокручивать что-либо джойстиком гораздо удобнее, нежели колесиком.
После того, как переходишь на мышь, некоторое время чувствуешь дискомфорт (это примерно как с велосипедом, у которого руль поворачивает колесо в обратную сторону: если научился ездить на таком, то вернуться к обычному быстро не выйдет, привычка теряется).
После 20-30 минут использования чтобы попасть по какому-либо элементу интерфейса уже не требуется делать повторные попытки и возвраты, однако времени всё же занимает больше, чем с мышью.
Идеальное место для такого манипулятора — монтаж в подлокотник кресла.
Чем больше кнопок — тем лучше.
Колесико мыши — совсем слабый элемент в плане эргономики (встречал парные колесики и колесики с качанием влево-вправо, но это всё ещё хуже обычного).
P.S. А вот мышь с встроенными джойстиками — было бы отличное устройство (один для перемещения курсора, другой для прокрутки вместо колеса). Но такую видеть не довелось. Есть ещё мыши с сенсорной областью прокрутки, но тоже в живую не видел.
P.P.S. В общем-то наверное поставленная цель выполнена, джойстик вместо мыши проверен. Далее наверное стоит прицелиться создать такой манипуляфтор, который подходил бы для чтения веб-страниц и просмотра видеоконтента (с соответствующим набором органов управления). Но пока всё упирается в поиск комплектующих. Возможно придется собирать джойстик с нуля из энкодеров, пружин, осей и т.д. А вот его форма уже точно определена: как на фото того промышленного манипулятора.