Мышка кликера

    — А нет ли у тебя скрипта, который две тыщи раз кликнет по кнопке «добавить»? — спросил меня наш Инженер по тестированию.
    — Нет… —сказал я, — но что-нибудь придумаем.

    Писать скрипт — это как-то скучно и неспортивно. Поэтому я решил сделать мышь. Но не простую, а прокачанную:



    Идея была проста: взять ненужную кнопку мыши (у нашей было качающееся колёсико) и навесить на неё генератор кликов. Зажал кнопку — и сиди кликай, быстро и в округе никого не раздражает постоянное щёлканье «клац-клац».
    Для понту, а, как известно, хороший понт дороже денег, захотелось прилепить к этой мыши ещё и индикатор.

    Итак, приступим. Нам понадобится:
    • мышь — 1 штука, была найдена в ящике стола;
    • индикатор — 1 штука, когда-то давно был зверски выкорчёван из советского калькулятора;
    • контроллер — 1 шт, взял из тех, что валялись в большом количестве;
    • руки — 2 шт;
    • паяльник — 1 шт;
    • эпоксидка — 1 шприц;
    • макетка и рассыпуха.


    Разбираем мышь, собираем на макетке типовую «динамическую индикацию» (слово-то какое умное):

    Красным цветом обозначены изменения на плате мыши. Номиналы взяты от балды, резисторы R11-R16 выкинуты потому что «и так сойдёт». Транзисторы можно взять практически любые, например на макетке у меня были BS170.

    Вот он, макет:

    Индикация — это очень просто, если не верите — смотрите leds.c. Однако, чтобы перевести двоичное число в его отображение на семи светодиодах, нам понадобится примитивный знакогенератор.
    Хозяйке на заметку: чтобы каждый раз не думать «а какой же бит нам выставить на какую ножку?» можно воспользоваться такой табличкой
    картинка


    Итак, макет вроде как работает, можно включать паяльник.
    Отрезаем у индикатора ножки, они ему уже больше не понадобятся. Припаиваем токоограничительные резисторы и ключи VT2-VT6 прямо к тому, что осталось:


    А потом к ним — провода. Будьте аккуратны, от SMD-резисторов при малейшем неосторожном движении отваливаются контактные площадки. Чтобы этого не произошло, лучше сразу залить эпоскидкой или термоклеем. А заодно и вставить в боковую стенку мыши:


    Слегка модифицируем плату мышки (схему см. выше):


    Припаиваем контроллер, и прошиваем:

    Исходники можно взять тут. А бинарник — вот тут.

    Пробный запуск:


    Теперь осталось только написать статью на хабр, и аккуратно залить дыру снаружи эпоксидкой (чтобы придать эпоксидке чёрный цвет подойдёт любой чёрный порошок, например растолчённая таблетка активированного угля):

    Вот такой финальный вариант.
    Некоторые сайты им можно „закликать“ досмерти, так что будьте осторожны :)

    Всем спасибо за внимание. Исходники, если они вам нужны, можно скачать на гитхабе.
    Поделиться публикацией

    Комментарии 87

      +6
      но ведь закликать до смерти, можно и без паяльника. Достаточно утилиты autoclicker.
        +59
        Зато железка работает под любой ОС без лишнего софта )
          +10
          A4tech X7 на Oscar script тоже работает на всех ОС
            0
            У меня как раз такая мышь, но что-то я не видел к ней софта под Линукс.
              +2
              В серии X7 все настройки хранятся в EPROM, поэтому можно под виндой записать в память макрос клика, сохранить его, а потом он будет воспроизводиться под любой ОС без софта, т.к. он будет генериться контроллером мыши.
                0
                А что делать, если нет венды?
                  0
                  Что не понятно в предыдущем комментарии? Или Вы из мира, где Windows не был создан и до ближайшего компьютера под виндой надо лететь в другой конец галактики?
                    0
                    Приблизительно так. Плюс отсутствие желания платить за ненужные вещи и ставить ненужные операционные системы на нужное железо, которое прекрасно работает без них.
                    Ну или можете считать это даже «религия запрещает». Тем не менее, пункт в «дано» — абсолютное отсутствие Windows, но необходимость перепрограммировать грызуна.
                      0
                      У папуаса спрашивают:
                      — Как вы кокосы с пальм собираете?
                      — А мы их и не собираем. Когда дует ветер, они сами падают.
                      — А когда ветра нет?
                      — Ну… тогда неурожай.

                      Вообще на Ваш вопрос ответил автор статьи.
                        0
                        ну так да, ответил. Но ветка началась с заявления, что сей конкретный грызун, мол, был бы более лёгким выходом. А я таки подвёл мысль к тому, что «нет, нифига, не более лёгким, т.к. к платформе он таки привязан когда надо изменить программу».
          +1
          Я извиняюсь, а мышку Вы с собой таскаете постоянно?
          Проще таскать exe-файл автокликера на флешке.

          Но насчёт " это же не спортивно" — согласен. =)
            0
            и да, exe-файл таскать проще. Но запускать — нифига не проще. Во-первых, не Windows'ом единым люди живут, а во-вторых, много где стоит запрет на запуск своего барахла, особенно с флешек. В то время, как мышу свою воткнуть зачастую можно [речь о компьютерных клубах]
            –3
            А я всегда говорил, лучшее решение, это: аппаратное обеспечение.
            Хотел плюсануть но кармы не хватает.
            +19
            Но это же неспортивно :)
              0
              Еще есть интересная штука sikuli но она немного под другие задачи, хоть и для этой подойдет но хуже.
              +14
              программно генерить клики было бы проще, но у вас зато интересно)
                +2
                Осталось обеспечить отдел тестирования набором бешеных мышей и камушков, которые тестеры будут класть на кнопку мыши. :)
                  +19
                  Настолько же круто, как и бесполезно, респект )
                  А индикатор от регулярного поглаживания большим пальцем не ввалится вовнутрь?
                    0
                    нет, там эпоксидкой всё залито
                      +25
                      Ну и что? Синей изоленты-то там нет, поэтому наверняка сказать нельзя!
                    +7
                    Да, тут именно «еслиделатьнечего»
                      +7
                      обычно такие вещи делаются, как раз когда «делатьестьчто». Не удивлюсь, если у автора статьи как раз на очереди какой-то важный проект :)
                        0
                        Делать действительно есть чего. Но данный проект никак с этим не связан. Просто захотелось сделать прикольный девайс, и не жалко было потратить пару часов на это. (пост на хабр я писал наверное столько-же)
                          –7
                          Вот так вот, чаще всего, и бывает похоронено по половине рабочего дня. Кому-то вместо того, чтобы решить задачу быстро и эффективно, хочется сделать «прикольный девайс».
                            +3
                            почему рабочего? у меня на работе вообще паяльника нет (
                              +1
                              Не все люди созданы творить :)
                            0
                            неее когда делать, есть что, как раз по быстрой накидал скрипт и пошел «делать есть что» а тут автору
                            скучно и неспортивно
                            0
                            Солидарен — если бы не желание сделать что-то своими руками, просто взяли бы готовую геймерскую мышку(500-700 р.) и написали скрипт из 3 строк.
                              0
                              Час моего рабочего времени стоит 300 рублей. Я бы не стал покупать мышь, стоимостью в два часа рабочего времени, если бы умел пользоваться пояльником.
                                +3
                                … а вместо этого потратил 6 часов рабочего времени?
                                  0
                                  1. Увтор утверждает, что потратил два часа, откуда 6?
                                  2. Даже если я не уверенный пользователь паяльника, то дешевле позвонить автору и заказать работу, чем покупать мышь за 500-700 рублей, а потом еще и софт писать.
                                  3. Поход в магазин тоже потратит время(деньги), телепортацию еще не изобрели.
                                    0
                                    2. Даже если я не уверенный пользователь паяльника, то дешевле позвонить автору и заказать работу, чем покупать мышь за 500-700 рублей, а потом еще и софт писать.
                                    3. Поход в магазин тоже потратит время(деньги), телепортацию еще не изобрели.

                                    Ну видимо Ваш телефон сам договорится с автором о цене, сроках, доставке и сам же привезет Вам готовую мышку, чтобы Вам не пришлось тратить время и дойти до ближайшего магазина.
                                      +1
                                      У меня смартфон, грамотные телефонные скилы, опыт руководства, опыт продаж и я регулярно покупаю время. И всяких разных знакомы умеющих делать специфические штуки — целый город. Важно уметь применять нужный инструмент в нужное время.
                                      А с автором мы встретимся в кабачке и опрокинем чарку, нужно же и отдыхать иногда.
                                      Да решений милион, но покупка мыши стоимостью превышающей среднюю стоимость работы в стране — неэффективна.
                                        0
                                        Зато вы делаете ошибки через слово и не знаете как пишется «паяльник».
                            +1
                            … или, как мой друг, просто купить мышь с инерционным колесиком. Но паяльник тоже круто, да.
                              +3
                              А инерционное колесо позволяет одним нажатием сделать over 9000 кликов? :)
                                +3
                                Простым переназначением кнопок.
                                  0
                                  Об этом я как-то не подумал. Спасибо за наводку :)
                                0
                                Я в свое время вытащил из обычного колесика защелку (сейчас точного названия этой штуки не припомню) и она от части стала работать, как инерционная.
                                0
                                leet!
                                  +9
                                  «Аппаратный скрипт»
                                    +2
                                    Вдруг стало интересно: а замеряли количество полученных кликов? Не появляется ли где-то бутылочного горлышка из-за высокой частоты кликов?
                                      +1
                                      клевый индикатор
                                        +3
                                        В свое время была у меня прокачанная мышь под контру. По переключателю делала зум, бахала из снайперки, убирала зум.
                                          0
                                          Читеры с паяльником — вдвойне опасные читеры.
                                          +1
                                          в CS на ножах пробовали?
                                            +2
                                            Там же задержка. Вот USP/Glock — самое то
                                            0
                                            В Android SDK даже специальную утилиту добавили — MonkeyRunner.
                                            Говорят, что без её запуска в Google ни одни релиз не выходит.
                                              +6
                                              Лет 20 назад, в спектрумовские времена, играл я одно время в симулятор бобслея. В котором надо было на стадии разгона быстро-быстро нажимать клавиши, что на убогих клавиатурах тех времен было затруднительно, да и зачастую приводило к зависанию компьютера (т.к. плата не очень высокого качества сборки была сразу под клавиатурой, я напомню). Особого доступа к элементоной базе да и желания что-то паять у меня не было, зато был замечательный телеграфный ключ. Пара проводов, прикрученных к ключу и нужным контактам клавиатуры, и вуаля — новый чемпион мира по бобслею готов ;-)
                                                0
                                                Сколько эта мышка делает в vk.com/clicker_click?
                                                  0
                                                  Некоторые сайты им можно „закликать“ досмерти
                                                  Поздравляю! Вы изобрели хабраэффект без Хабра в реферере.
                                                    +2
                                                    1337… сразу видно человек в теме :)
                                                      0
                                                      Первое правило клуба. 16:20 смотрелось бы эффектнее.
                                                      +1
                                                      Почерк красивый у вас
                                                        +1
                                                        ага, ГОСТ'овый
                                                          –1
                                                          Удивительно, что человек решил сам нарисовать схему и особым шрифтом (очень красивый, да) написать надписи, когда можно было бы использовать KiCad, EAGLE или MS Paint.
                                                            +3
                                                            Мой папа трансформаторы чертит руками быстрее чем я в каде, потому, что он знает, как чертить трансофрматоры. А еще, я знал одну древнюю старушку в проектном институте, так она четырнадцатым кеглем по а3 ватману, да карандашиком заточенным строчит быстрее, чем я набираю на клавиатуре, уже давно, слепым методом, и опечаток у нее вообще нет.
                                                              0
                                                              Рукой нарисовать было действительно быстрее. Потому что в игле надо найти библиотеки, в частности под советский индикатор неизвестной модели, потом думать в каком формате вывести.
                                                          +2
                                                          Круто, факт. Всегда восхищали такие статьи, когда человек просто берет, и собирает устройство «под себя». Восхищали особенно потому что сам вроде от части кодер, а как собрать что-то подобное — не имею и малейшего понятия. Ну не возился я никогда с паяльником, как и с низкоуровневым софтом. А попробовать то хочется, но что-то уж больно сложно выглядит со стороны :(.
                                                            +1
                                                            Да ты попробуй, потом за уши не оттянешь. Можешь с ардуинки начать, только не засиживайся на ней.
                                                              0
                                                              +1, а про ардуинку +2 ))
                                                                0
                                                                а если я имею опыт общения с обычными avr32'ками и программированием их под всяко-разно — мне тоже для дальнейшего самообразования «начинать» с ардуины? Или таки есть какие-то советы по дальнейшим шагам: Р

                                                                Алсо, я уже давно смотрю в сторону ARM'ов, например. Но, как-то стрелять по воробьям из пушки…
                                                              0
                                                              Возможно заминусят, но просто выскажусь — есть Х7 с ПО Oscar, там делал когда-то на специальную кнопку тоже кликалку такую. Только там естественно всё делается совсем элементарно, а тут правда очень круто:) Единственное — посмотрел эту статью бегло, и не знаю, как в мыше из статьи, но в оскаре было удобно то, что это была именно отдельная небольшая кнопочка. А просто левая работала как обычно.
                                                                0
                                                                Про X7 я правда не слышал. Хоть сам и пользуюсь игровой мышью (DeathAdder), в последний раз запускал контер-страйк года 4 назад: сначала было не до того, а теперь уже и не тянет…
                                                                  0
                                                                  X7 — программируемая мышь. В ней есть флеш-память, можно на компе написать скрипты, назначить кнопки и прочее. Хорошо в ней как раз то, что скрипты после заливки хранятся именно в памяти и ни от каких «драйверов для мыши» и ОС не зависят.
                                                                    0
                                                                    зато плохо в ней то, что залить можно только в одной ОС. Не?
                                                                      0
                                                                      Сам не проверял, но говорят, софт для мыши и под вайном пашет.
                                                                –1
                                                                И всё-таки нет ли скрипта, который две тыщи раз жмякнет по кнопке «добавить»? Вообще как решается задача передачи некоторому окну имитированных событий от мыши да клавиатуры? Есть ли об этом статья на Хабрахабре? Я прежде не интересовался этим вопросом, а сейчас стало любопытно, как это делают без паяльника.
                                                                  +3
                                                                  Без паяльника это делается настолько элементарно на любом языке программирования, что писать об этом статью на Хабр стыдно.
                                                                  Это один API-вызов в цикле.
                                                                    +1
                                                                    Элементарно и общеизвестно в основном в Windows, там достаточно чужому окну послать через SendMessage сообщение WM_LBUTTONDOWN/WM_LBUTTONUP. Вся программа выходит в 4-5 строк. Примеров в интернете море, например тут.

                                                                    В других ОС подходы похожие, но не всегда все так прозаично. Для X пишется чуть более сложный код код с XSendEvend: gist.github.com/726474, а вообще под Unix/Linux/MacOS X есть неплохая клик-утилита xdotool.

                                                                    Нативный способ в MacOS X делается через CGEventCreateMouseEvent и CGEventPost, пример есть на stackoverflow и устаревший метод тут.

                                                                    Как сделать в мобильных iOS и Android (аналог MonkeyRunner?) — не представляю. Может даже и легче будет подключить через разные переходники мышку топикстартера. Вообще, описание методов для всех популярных ОС с примерами и компилируемым кодом было бы хорошей темой для статьи, чтобы собрать все вместе для потомков.
                                                                    +1
                                                                    Посмотри AutoIt
                                                                      0
                                                                      Благодарю за совет, непременно посмотрю AutoIt.
                                                                    0
                                                                    Буквально с месяц назад делал для сестренки кликер для какой-то фермы ВК.
                                                                    Кроссплатформенности не требовалось, поэтому не мудрствуя лукаво сделал скрипт на AutoIT.
                                                                    Кстати по поводу CS: давал на тест соседскому мальчишке — он пробовал на аналогичной стрелялке CrossFire вроде. Так вот программное решение режется системой защиты. Аппаратное не должно, поэтому задумка Автора может найти свою нишу=)
                                                                      0
                                                                      Объясните пожалуйста, о какой кнопке «добавить» идёт речь и зачем на неё кликать столько раз?
                                                                        +1
                                                                        Кнопка на одном из наших сайтов. В список можно добавить до 2000 элементов. Задача была 1) проверить лимит, 2) проверить как этот список справится с таким количеством элементов, 3) как сам сайт справится с добавлением 2000 элементов.
                                                                        0
                                                                        У меня такой вопрос (чуть не по теме). При работе с MOSFET транзисторами предпринимались ли какие-либо шаги для защиты от статического электричества? В детстве, когда я собирал что-то на полевых транзисторах — у них перед пайкой надо было закоротить проволочкой все выводы, паяльник и руки заземлить, ну разве что шапочку из фольги не надеть. При этом часть транзисторов таки отправлялась в помойку. А теперь как дела обстоят? Может современные транзисторы более устойчивы?
                                                                          0
                                                                          Да, они более устойчивы. Я обычно не заморачиваюсь, просто перед пайкой касаюсь рукой и паяльником металлической коробки, в которой лежит лента с транзисторами.
                                                                          Сама лента вроде как сделана из антистатического материала.
                                                                          +1
                                                                          Вот это истинный подход к тестированию.

                                                                          Я когда-то хотел попасть в фирму, занимающуюся тестированием софта (обещали там хорошую зарплату, как для студента). На собеседовании меня спросили, как я подойду к задаче написания сценария тестирования какой-то их программы. Я сказал, что зависит от программы, но скорее всего сценарий будет удобно написать на python. Они долго смотрели на меня, а потом сказали, что не подхожу.

                                                                          Сейчас я тестирую дизайн цифровых схем, написанных на Verilog с помощью Specman e и до сих пор не понимаю, о каких других сценариях могла идти речь.
                                                                            +1
                                                                            Надо такой индикатор во все новый мыши вставлять. Будет интересно наблюдать за «пробегом» мыши. Можно твтитить например: «Сегодня кликнул 12568 раз». «Или моя мышка умерла после 10 млн. кликов». Ну вы поняли.
                                                                              0
                                                                              Охренительная задумка. Боюсь, что патентовать уже поздно, но индикатор на мышке — стильно и такие мышки будут иметь коммерческий успех. Можно еще и часы встроить, и счетчик кликов, и пройденный километраж… Над расположением самого индикатора и его формой можно еще работать, но это не столь важно… Мне кажется, что такие (похожие) гаджеты появятся в производстве и продаже.
                                                                                0
                                                                                Индикатор — «мега», уже несколько месяцев точу зубы на такой, но как он называется и где купить — так и не могу найти.
                                                                                  0
                                                                                  теперь я знаю, что такое «аналоговая DDoS-атака»
                                                                                    –1
                                                                                    мсье знает толк в извращениях
                                                                                      +1
                                                                                      Маркировку индикатора не подскажете?
                                                                                        0
                                                                                        Увы, сам давно ищу :(
                                                                                          0
                                                                                          Я знаю, что такие стоят здесь

                                                                                          image

                                                                                          Только есть модели на газоразрядных индикаторах, а есть на светодиодах. Нужно искать с красным экраном (зеленый — газоразрядный). Там целых 3 штуки — два по 5 цифр, и один на 3.

                                                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                      Самое читаемое