Как заставить мышь двигаться самостоятельно
Проект MouseMover — мышь, живущая своей жизнью
Автор статьи, перевод которой мы сегодня публикуем, рассказывает о проекте MouseMover. Это — USB-устройство, которое имитирует присутствие пользователя за компьютером, периодически перемещая курсор мыши на небольшие расстояния, что позволяет избежать блокировки экрана компьютера или перехода компьютера в спящий режим.
Аппаратные и программные компоненты проекта
В этом проекте использована плата SparkFun Pro Micro — 5V/16MHz. Вместо неё можно воспользоваться Arduino Leonardo. Обратите внимание на то, что тут нужна лишь одна из вышеупомянутых плат.
Для работы над программной частью проекта используется Arduino IDE.
Обзор проекта
Я проработал в разных компаниях Америки почти сорок лет. Я видел, как изменился за это время подход к корпоративной компьютерной безопасности. Сначала правил безопасности, можно сказать, вовсе не было. А теперь же эти правила стали прямо-таки безумными. Сегодня во многих компаниях компьютеры настраивают так, чтобы они, если уходят в режим сна, запрашивали бы при пробуждении пароль для входа в систему. Иногда компьютеры «засыпают» после 5 минут бездействия пользователя. А на моей последней работе перешли на двухфакторную схему аутентификации, когда для входа в систему используется и пароль, и аппаратный токен, генерирующий набор цифр. Для того чтобы войти в систему, нужно ввести и обычный пароль, и код с токена. Хотя подобные меры безопасности — это, в современных условиях, очень хорошо, а порой и необходимо, они могут сильно досаждать людям, которые хотят сделать что-то полезное (а не заниматься постоянным вводом паролей). Я и сосчитать не могу — сколько раз мне приходилось вводить пароль и код, когда я отвлекался от работы на разговор с коллегой, а потом возвращался к делам и обнаруживал, что мой компьютер заблокировал экран. Хорошо было бы иметь некое устройство, которое, работая само по себе, периодически немного двигает курсор мыши, не давая компьютеру заблокировать экран или «заснуть».
Поискав подобные устройства в интернете, я узнал, что решить эту задачу уже пытались. Делалось это самыми разными способами — от механических, когда нечто само двигает настоящую мышь, до программных, когда на компьютере, в виде фоновой задачи, работает утилита, воздействующая на указатель мыши. «Механический» подход кажется мне слишком примитивным, а программный сработает далеко не всегда, так как системы безопасности, используемые в компаниях, могут распознать эту дешёвую уловку. Весьма интересно было бы сделать недорогое устройство, неотличимое, с точки зрения компьютера, от настоящей мыши, которая иногда перемещается. В результате и появился проект MouseMover, о котором я хочу рассказать.
Дисклеймер
Описываемая здесь прошивка и основанное на ней устройство могут быть использованы для обхода корпоративных требований, касающихся информационных технологий, а так же — имеющихся в организациях механизмов обеспечения безопасности. Подобное может произойти из-за того, что компьютер, к которому подключено устройство, не сможет, в отсутствие активности пользователя, заблокировать экран. Это может быть запрещено на уровне организации или на государственном уровне и может привести к наказанию виновного в подобном деянии. Тяжесть наказания зависит от ситуации. Если вы не уверены в том, что можете безнаказанно пользоваться подобным устройством — уточните это в IT-отделе своей компании. Пользуйтесь устройством на свой страх и риск.
Подробности о проекте
Наш контроллер перемещает курсор мыши на небольшое расстояние, выполняя это через каждую минуту или через другой небольшой временной интервал. Это имитирует работу пользователя с компьютером, не давая компьютеру, к которому подключено устройство, блокировать экран или уходить в режим сна. В отличие от исключительно программных решений, которые могут не сработать во многих IT-инфраструктурах, это решение выглядит, с точки зрения компьютера, как настоящая (вторая) мышь, подключённая к компьютеру. При этом пользователь продолжает работать с обычной мышью.
Обычно перемещения курсора на несколько пикселей, например, каждую минуту, достаточно для того чтобы поддерживать компьютер в рабочем состоянии. Так как расстояние перемещения курсора невелико (как правило, достаточно всего несколько пикселей в любом возможном направлении движения курсора), и так как это делается не слишком часто, это обычно не мешает обычной работе с компьютером. Для того чтобы поддерживать безопасность системы на уровне, близком к тому, который требуется в организации, устройство можно особым образом настроить. А именно — сделать так, чтобы оно работало лишь ограниченное время, после чего прекращало перемещать курсор до тех пор, пока не получит соответствующую команду, включающую перемещение курсора, или до тех пор, пока оно не будет отключено от компьютера и подключено к нему снова.
В коде, обеспечивающем работу устройства, имеется довольно много параметров, которые можно настраивать. Все параметры можно модифицировать, отправляя команды на последовательный порт контроллера, который добавляется на компьютер после подключения к нему устройства. А именно, контроллер виден в Windows как мышь (HID) и виртуальный последовательный (COM) порт. После того, как контроллер будет запрограммирован, параметрам будут назначены значения, применяемые по умолчанию. Но их можно изменить, а после этого — записать в EEPROM. В результате параметры, заданные пользователем, будут использоваться каждый раз, когда контроллер подключается к компьютеру.
Прошивка рассчитана на плату Pro Micro (с микроконтроллером ATmega32U4), которая соединена с компьютером через USB-порт. В результате оказывается, что аппаратная часть этого проекта представлена подходящей платой и USB-кабелем, посредством которого плата соединяется с компьютером.
Аппаратное обеспечение и система ввода-вывода
Хотя аппаратная часть этого проекта представлена лишь платой Pro Micro и USB-кабелем, на плате есть пины ввода-вывода, которые можно соединить перемычками для изменения поведения устройства. Кроме того, если нужно, к плате можно подключить светодиод, который будет сигнализировать о том, что устройство работает. Хотя это и необязательно, практика показала, что наличие светодиода — это удобно, так как позволяет точно знать о том, работает устройство или нет. Если говорить о перемычках, то они сделаны, в основном, ради того, чтобы устройством было бы удобнее управлять, или для тех случаев, когда создателю своего варианта MouseMover хотелось бы иметь возможность воздействия на него с помощью перемычек, а не посредством команд, отправляемых ему через последовательный порт.
Вот схема платы с указанием мест установки перемычек и подключения светодиода. Напомню, что это необязательно.
Перемычка, называемая JPE (это имя, как и имена других перемычек, определено в коде), может использоваться для выключения устройства. Подключение соответствующего пина к GND останавливает работу мыши (как если бы мышь отключили от компьютера). А если перемычку убрать — работа устройства продолжится. Эта перемычка подключается к пину 6 (PD7) Arduino.
Вторая перемычка, JP2, отключает программный таймер и заставляет мышь постоянно перемещаться, не обращая внимание на то, на какой временной интервал настроена программа. Если эту перемычку отключить — восстанавливается обычный режим работы. Эта перемычка подключается к пину 2 (PD1) Arduino.
Третья перемычка — PD3 — заставляет указатель мыши перемещаться каждые 5 секунд, при этом временной интервал, заданный в настройках, игнорируется. Если её убрать — система переходит в обычный режим работы. Перемычка подключается к пину 5 (PC6) Arduino.
Светодиод и резистор подключают к пину A3 Pro Micro (цифровой пин 21 (PF4) Arduino) и к VCC. Включение светодиода указывает на работу MouseMover. Хотя без светодиода и можно обойтись, если он есть, он позволяет точно знать о том, работает устройство или нет. Тут можно использовать любой светодиод, который есть под рукой. Я пользовался резистором на 330 Ом (0,25 Вт), но тут, что зависит от светодиода, подойдёт любой резистор с сопротивлением от 100 Ом до 1 КОм. Существуют и светодиоды со встроенным резистором, наподобие Lumex SSL-LX3044GD-5V (Digikey 67-1062-ND), которые рассчитаны на подключение прямо к 5В-выводу модуля. Если воспользоваться именно таким светодиодом — задача его подключения к плате упростится. Достаточно будет припаять выводы светодиода к соответствующим пинам. Какой бы светодиод вы ни использовали — обращайте внимание на его полярность. А именно — катод подключается к пину A3, а анод, через резистор, к VCC.
Компиляция прошивки и загрузка кода
Создайте папку MouseMover в папке Arduino и поместите в неё файл MouseMover.ino из репозитория проекта. Сделайте двойной щелчок по этому файлу для запуска Arduino IDE и выполните следующие настройки в разделе Tools :
Подробности о подключении Pro Micro к компьютеру можно найти в PDF-файле с документацией в репозитории проекта. Там же есть сведения об изменении номера COM-порта и решении проблем, которые могут возникнуть при первом подключении Pro Micro к компьютеру.
Работа над проектом велась в Arduino IDE 1.8.5. Всё должно хорошо работать и в более новых версиях IDE (включая самую свежую — 1.8.15).
Команды
Контроллер принимает команды по последовательному порту. В ответ на эти команды он способен выполнять различные действия и возвращать сведения о текущем состоянии настроек. Для отправки команд нужно открыть порт на любой скорости (кроме 1200 бод) (формат 8-N-1) в программе наподобие Hyperterminal или Tera Term, или в терминале Arduino IDE (или в вашем любимом терминале). Потом можно создавать batch-файлы для автоматизации отправки команд на устройство через COM-порт.
Обратите внимание на то, что, при первом перемещении указателя, к его текущей позиции (X, Y) будет добавлено столько пикселей, сколько указано в соответствующих параметрах. При втором перемещении те же значения будут вычтены из новых координат указателя. Потом эта последовательность увеличения и уменьшения координат повторится.
Интеграция с системой
После того, как в модуль Pro Micro записана прошивка MouseMover, его можно использовать в системе с разным уровнем интеграции в неё.
Самый простой сценарий использования устройства заключается в том, что его просто подключают к USB-порту компьютера на то время, когда нужно, чтобы оно работало. А когда нужды в нём нет — его отключают. После каждого подключения к компьютеру MouseMover будет использовать параметры, записанные в EEPROM, в состав которых входит и параметр, задающий продолжительность работы устройства. После того, как MouseMover проработает это время, устройство отключится и компьютер сможет перейти в режим сна или блокировки. Если же устройство просто отключить от компьютера, а потом подключить снова — отсчёт времени начнётся с нуля. Это позволяет пользователю задать время работы устройства, а потом, после каждого подключения к компьютеру, например, выполняемого каждое утро, устройство проработает именно это время.
Пакетные файлы Windows и автоматизация работы с MouseMover
Вместо того, чтобы постоянно подключать и отключать MouseMover, можно создать batch-файл (пакетный файл) в Windows и ярлыки к нему, позволяющие вызывать его с параметрами, и, например, включать и выключать устройство. Ещё можно создать в Windows задачу, вызывающую этот файл в заданное время или при входе в систему. Следующий пример рассчитан на Windows 7 и Windows 10, но тот же функционал можно реализовать и для macOS, и для Linux или Unix.
Его вызывают с параметром. Например:
Для дальнейшей автоматизации работы с Mouse Mover можно воспользоваться задачами Windows. Например, задача может вызывать batch-файл для включения устройства в определённое время или при входе в систему. Для создания задач можно воспользоваться либо графическим интерфейсом планировщика заданий, либо — соответствующими инструментами командной строки. Подробности об этом смотрите в PDF-файле с документацией в репозитории проекта.
В моём случае лучше всего показал себя автоматический запуск устройства с помощью задачи, выполняющейся при входе в систему (а не применение задачи, запускающей устройство в определённое время). При использовании этого метода компьютер будет постоянно работать, не блокируя экран, с того момента, как пользователь войдёт в систему. А после того, как это время истечёт, MouseMover отключится и компьютер, если за ним нет пользователя, может «уснуть» или заблокировать экран. Использование batch-файлов и задач в Windows позволяет вообще не отключать MouseMover от компьютера и попросту забыть об этом устройстве. При этом входить в систему придётся не после каждого небольшого перерыва, а лишь раз в день.
Итоги
Я надеюсь, что MouseMover поможет всем желающим избавиться от одного из неудобств, вызванных корпоративными требованиями к информационной безопасности. Главное — прежде чем пользоваться подобным устройством на работе — почитайте дисклеймер, который можете найти в начале статьи. Конечно, если в этом есть смысл, вы можете пользоваться MouseMover и дома.
Вещь. Имитатор работы, он же гаджет для непрерывного движения мыши
«Удаленка» открыла множество возможностей для вчерашних офисных трудяг: теперь рабочее время можно тратить на более полезные вещи, чем разговоры с коллегами.
Хочешь — иди в магазин, хочешь — устрой дополнительный перекус. Можно даже вздремнуть в неурочный час.
К сожалению, существуют программы для учета рабочего времени, работающие в автономном режиме. Какие-то из них собирают скриншоты, другие пытаются отслеживать работу конкретных программ, третьи предлагают менеджерам напрямую подключаться и проверять происходящее.
В ряде случаев работодатель следит только за активностью компьютера. Самый простой, доступный и простой в реализации вариант (о прочих поговорим как-нибудь в другой раз).
Для обхода такого отслеживания наши китайские друзья выпустили замечательное устройство Mouse Jitter, позволяющее имитировать бесконечную работу оптической мыши.
Правда, первоначальная цель устройства была в поддержании активного состояния компьютера, необходимого при работе некоторых программ.
Гаджет представляет собой простейшую коробочку с вращающейся вставкой. Из органов управления доступна только кнопка включения.
Больше и не нужно, поскольку USB-кабель используется только для подключения питания. При отсутствии такового можно использовать внешний аккумулятор.
Устройство работает вне зависимости от аппаратной конфигурации и операционной системы компьютера. Программные проверки тоже не станут помехой — нет подключения к компьютеру, нет проблем.
Для физических офисов это актуально, ведь зачастую порты на рабочих компьютерах заблокированы для пользы самих же пользователей.
Достаточно включить питание и поставить на устройство мышь так, чтобы её датчик оказался на вращающейся платформе.
С учетом габаритов Mouse Jitter, он подойдет для любых оптических и лазерных манипуляторов, включая те из них, что разборчиво относятся к используемым поверхностям.
Вставка после включения самостоятельно вращается случайным образом, заставляя оптический датчик установленной мыши думать, что происходит перемещение по столу и двигать курсор.
От сложных средств мониторинга не спасет. Но скринсейвер не включится, активное окно останется таковым даже при проверке активности.
Стоит Mouse Jitter совсем немного по сравнению с приносимой пользой: всего 2787 рублей. С купоном GZDZZ5M5EGCV можно дополнительно сэкономить.
У многих отобьется за день имитации работы.
Николай Маслов
Kanban-инженер, радиофизик и музыкант. Рассказываю о технике простым языком.
Курсор мыши дергается. Как исправить в Windows
Курсор мыши стал дергаться и неожиданно двигаться по экрану. «Блог системного администратора» расскажет, что в таких случаях делать.
Что-то прилипло
К сенсору мышки могло что-то прилипнуть. Достаточно крошки. Поверните мышь нижней частью к себе и внимательно осмотрите. Протрите сенсор сухой чистой, но не ворсистой тканью. Еще лучше — влажной салфеткой для компьютерной техники.
Поверхность
Рекомендую использовать коврик даже в 2020 году. С появлением оптических мышек вместо механических, их способность работать на любых поверхностях без коврика рассматривалась в качестве основного преимущества, даже на коленке. Возможно, но нежелательно.
На ряде поверхностей сенсоры работают некорректно. В особенности нежелательно использовать мышку на стеклянном столе. В итоге курсор начинает работать неправильно.
Отдавайте предпочтение коврикам со специальным покрытием или матерчатым. Избегайте глянцевых. Периодически очищайте их. Если курсор стал сбоить — коврик необходимо протереть.
Избыточная чувствительность
Установлена максимальная или повышенная чувствительность? Порой подобный подход становится причиной незначительных колебаний. Происходят даже тогда, когда вы держите мышку.
Опция повышения точности указателя — еще один фактор, который становится причиной произвольных колебаний курсора. В таком случае софт сам определяет, куда перемещать курсор.
Через поиск по элементам системы («лупа» справа от кнопки «Пуск») найдите приложение Параметры. Для этого введите в строку: параметры
Доступ к нужному приложению — слева вверху в результатах поиска. Закрепите значок приложения на панели задач (щелчок по соответствующей опции в правой части окна), чтобы в дальнейшем располагать быстрым доступом к основным настройкам ОС.
Кликните по значку-«шестеренке» на панели задач. В дальнейшем используйте его, если нужно внести изменения в параметры ОС.
Перейдите в раздел настройки параметров устройств.
Слева — перечень настраиваемого оборудования. Вам необходимо щелкнуть по надписи «Мышь». В правой части окна прокрутите до ссылки перехода к ее дополнительным параметрам. Щелкните по ссылке.
С помощью ползунка настройте оптимальную скорость перемещения указателя. Чтобы сделать медленнее — сдвигайте ползунок влево. Отключите повышенную точность указателя (снимите «птичку» в квадратике слева от соответствующей надписи).
Для подтверждения изменений последовательно нажмите кнопки «Применить» и «OK» (в нижней части окна настроек).
В интерфейсе драйвера
Рассмотрю ситуацию, при которой рассмотренные выше настройки на уровне ОС не помогут. У вас мышь с настраиваемой чувствительностью (DPI). Чаще всего речь идет о дорогих моделях. Установите для нее драйвер с собственным графическим интерфейсом (с сайта вендора вашей модели).
После установки значок отобразится на панели задач. Кликните по нему. В настройках найдите опцию изменения чувствительности (DPI). Переведите параметр в значение не более 3000 DPI. Для дисплеев с диагональю 32 дюйма и менее этого достаточно.
Обновление драйвера
Перейдите в диспетчер устройств.
Обновите драйвер оборудования.
Маловероятно, но исключить нельзя
В интернете рассматриваются способы исправления неполадки, которые редко актуальны в 2020. Тем не менее, полностью исключить их нельзя. Поэтому перечислю:
Важно. Если компьютер настраивал опытный знакомый, компьютерный специалист или мастер, проконсультируйтесь с ним перед удалением софта. Программы могут оказаться важными и полезными.
Часто ли возникают сбои мыши и что нужно делать в таких случаях? Поделитесь своим мнением и опытом в комментариях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Тормозит курсор мышки: дергается, подвисает. Что можно сделать?
В этой заметке речь пойдет о некорректной работе мышки: когда курсор дергается, притормаживает, но всё-таки двигается (т.е. мышь в общем-то реагирует на ваши действия). Если у вас мышь не отзывается и не работает совсем — рекомендую вам эту инструкцию.
Также отмечу, что в заметке мы не будем разбирать мышку и устранять тех. неисправности паяльником (вопрос будет касаться только программных проблем — то бишь мышка у нас априори считается исправной, и продиагностированной на другом ПК/ноутбуке).
Теперь, конкретно по теме.
Основные причины, из-за чего курсор мыши может тормозить
Для беспроводных мышек
Наиболее часто данная проблема (с тормозами курсора) касается беспроводных мышек (как с радио-модулями, так и Bluetooth-версий). Поэтому, сначала пару слов о них.
Причина 1: расстояние до адаптера
Обратите внимание в какой USB-порт подключен адаптер радио-мышки, и где она сама располагается. Например, если вы используйте USB-порт на задней стенке ПК, а мышь располагается от него в 2-3 метрах — вполне возможно, что причина тормозов кроется в расстоянии*.
👉 Чем меньше это расстояние — тем лучше!
Вообще, беспроводные мыши могут работать на расстоянии ≈10 метров (некоторые модели и до 15 м.). Но из опыта могу сказать, что многие модели некорректно начинают работать уже и на 3 м.
Советы в этом плане достаточно просты:
Адаптер подключен к USB-порту передней панели системного блока
Причина 2: батарейки
Еще одна достаточно популярная напасть беспроводных мышек — севшие батарейки. Причем, надо понимать, что когда в процессе работы батарейка садится — то мышь перестает работать не сразу, а постепенно:
Кстати, если вы больше месяца не пользовались мышкой, а внутри нее остались старые батарейки — они могли окислиться (и повредить контакты внутри ее корпуса). В этом случае мышку часто приходится менять вслед за батарейками.
Батарейки окислились на влажном столе
Для всех мышек (универсальные рекомендации)
Проверка настроек мышки
Чтобы открыть настройки мышки — нажмите сочетание кнопок Win+R, в появившееся окно «Выполнить» введите команду control mouse и нажмите Enter.
Оборудование и звук- мышь (панель управления Windows)
Попробовать подключить к другому порту
В целях диагностики крайне желательно подключить мышь к другому USB-порту (кстати, также можно с помощью спец. переходников подключить USB-мышь к порту PS/2). Нередко, благодаря PS/2 удается полностью избавиться от проблемы (это актуально для ПК).
Переходники с USB на PS/2
Кстати, также обратите внимание на тип портов: сейчас наиболее часто встречаются USB 2.0 и USB 3.0 (последние помечены синим цветом, см. картинку ниже). Если вы мышь подключали к USB 3.0 — попробуйте задействовать USB 2.0.
Как-то встречался мне один ноутбук, у которого 2 порта USB 3.0 (с одного торца) не позволяли подключить ни джойстик, ни мышку (наблюдались притормаживания и ожидания) — но порт USB 2.0 (с другого торца) — прекрасно работал с этими гаджетами.
Еще один показательный пример: USB 2.0 и USB 3.0
Что с поверхностью, на которой скользит мышь
В зависимости от типа мышки — ее работа может существенно зависеть от поверхности, на которой она перемещается:
Так вот, к чему я это все, даже современные оптические мышки (наиболее популярный тип) не всегда хорошо работают на некоторых поверхностях. Если поверхность вашего стола несколько «не стандартна» (например, была обработана спец. влагозащитным покрытием) — это может сказываться на работе мыши.
Как бы там ни было, рекомендую попробовать работу мышки со спец. ковриком (это не только предмет декора, но улучшение точности наведения курсора ☝). В крайнем случае, возьмите для диагностики простой лист бумаги (формата А4) и подложите под мышь.
Что с загрузкой ЦП и диска
Серьезно сказываться на работе мыши (да и всей системы в целом) может высокая нагрузка на процессор или жесткий диск. При этом не исключены подвисания (на 1-5 сек., когда мышка совсем не двигается).
👉 Кстати, если зависания бывают часто, диск постоянно нагружен под 90-100% (даже в безопасном режиме Windows) и с трудом можно скопировать какой-либо файл с раздела на раздел — это может указывать на аппаратную проблему с диском.
Для диагностики — попробуйте загрузиться с LiveCD диска и проверить работу системы в целом.
Желательно дождаться того момента, когда начнет тормозить мышь с открытым окном диспетчера — и посмотреть, не возникает ли пиковая нагрузка до 100% на ЦП или диск.
Вообще, тема эта несколько обширна, поэтому, если тормоза мышки связаны с высокой нагрузкой — рекомендую ознакомиться с нижеприведенными статьями. 👇
Проблема с драйвером мыши, видеокарты (курсор постоянно оставляет след. )
Если у вас какая-нибудь не стандартная игровая или мультимедиа мышь (с доп. кнопками по бокам) — возможно, что Windows при работе с ней использует классический драйвер (который не работает корректно с таким оборудованием).
Также обновить драйвера можно в авто-режиме с помощью спец. утилит. О них рассказывал здесь: https://ocomp.info/update-drivers.html#Driver_Booster
Дополнительные кнопки на игровой мышке
Обычно, если с видео-драйвером все в порядке — в диспетчере устройств вы сможете увидеть модель видеокарты, а в трее будет ссылка на панель управления драйвером. Пример на скриншоте ниже.
Диспетчер устройств, рабочий стол
На сим сегодня пока всё.
Если вы устранили проблемы иным образом — дайте наводку в комментариях (заранее благодарен).