Делаем Click Quick Button своими руками
В последнее время популярностью стал пользоваться гаджет под названием Click Quick Button. Это физическая кнопка, которую можно подключить к мобильному телефону или планшету. Кнопка вставляется в разъем для наушников и позволяет выполнять определенные действия, например, включить светодиодную вспышку, запустить камеру и так далее. Предлагаем изготовить такой гаджет собственноручно.
А начать советуем с просмотра авторского видеоролика

Итак, нам понадобится:
— клеевой пистолет;
— паяльник;
— термоусадка;
— тактовая кнопка;
— мини-джек на 3.5 мм;
— тестер;
— мобильный телефон.
Поскольку у тактовой кнопки четыре лапки, следует определить, какие из них являются рабочими. Для этого берем тестер, переключаем на сопротивление, подключаем к двум лапкам кнопки и нажимаем на нее. Если тестер покажет замыкание при нажатии, значит мы выбрали правильную пару.
Остальные две лапки откусываем кусачками.
Наш Click Quick Button готов. Отметим, что для его работы нужно скачать специальное приложение из магазина Play Market. Для этого достаточно запустить Play Market и в строке поиска написать слово click. Ниже вы можете увидеть скриншот страницы скачивания с иконкой необходимого приложения.
После установки нужно запустить приложение, вставить кнопку в разъем для наушников и начать программирование. Скачанное из Play Market приложение позволяет запрограммировать запуск определенных программ при одном, двух и трех нажатиях на кнопку.
Источник
Как изготовить самодельную кнопку Klick quick button
В последнее время стал пользоваться популярностью гаджет под названием Klick quick button, который, как следует из названия этой статьи, можно изготовить самостоятельно. Это физическая кнопка, с помощью которой можно включать быстро то или иное программное обеспечение мобильного телефона или планшета. Эта кнопочка вставляется в разъем для наушников, и на нее можно программировать определенные действия. Например, нажимаете один раз на кнопочку – у вас включается фонарик, нажимаете два раза – открывается калькулятор и так далее.
Все это можно будет программировать в мобильном телефоне. Стоит этот гаджет в интернет магазинах не так дорого. Но у автора видеоролика возникла идея создать его своими руками и у него это получилось. И в этом видеоуроке он поделится своей идеей со зрителями.
Для того чтобы сделать самодельный Klick quick button, нам понадобится клеевой пистолет, паяльник, термоусадка и тактовая кнопка. Эту кнопку можно взять из какой-либо старой ненужной платы. Также нам потребуется миниджек на 3,5 миллиметра, тестер и мобильный телефон.
Сначала нужно предпринять подготовительную работу. Первым шагом нужно выпаять кнопку и после этого хорошенько зачистить миниджек. Поскольку у тактовый кнопочки четыре лапки, нам нужно определить, какие из них рабочие. Для этого берем тестер, переключаем на сопротивление, подключаем и нажимаем. Две ненужные лапки отрезаем.
Следующий этап это сборка. Как видно, у миниджеа 4 выхода. Масса. Выход под микрофон и левый и правый каналы. Тактовую кнопку нужно припаять к массе к выходу микрофона. Отрезав ненужные контакты, выделим место под кнопку.
Чтобы части миниджека не остались в разъеме, нанесем между ними пару капель суперклея. Клик куик батон готов. Теперь можно его проверить. Для этого нам потребуется скачать приложение. Для этого Заходим в Play Market. В поиске пишем Click. Устанавливаем программу. Открываем. Вставляем Click Button разъем от наушников.
Допустим, мы хотим чтобы при одном нажатии у нас включался фонарик на телефоне. При двух нажатиях включается камера. Три нажатия – выберем диктофон. Выходим из программы. Блокируем телефон.
Пошаговое руководство по созданию Klick quick button
Итак, нам понадобится:
– клеевой пистолет;
– паяльник;
– термоусадка;
– тактовая кнопка;
– мини-джек на 3.5 мм;
– тестер;
– мобильный телефон.
Тактовую кнопку, по словам автора, можно выпаять из какой-то старой и ненужной платы. С этого и следует начать изготовление гаджета.
После выпаивания тактовой кнопки из платы хорошенько зачищаем мини-джек.
Поскольку у тактовой кнопки четыре лапки, следует определить, какие из них являются рабочими. Для этого берем тестер, переключаем на сопротивление, подключаем к двум лапкам кнопки и нажимаем на нее. Если тестер покажет замыкание при нажатии, значит мы выбрали правильную пару.
Остальные две лапки откусываем кусачками.
Перейдем к сборке. Мини-джек имеет четыре выхода – масса, выход под микрофон, а также левый и правый каналы. Тактовую кнопку необходимо припаять к массе и выходу для микрофона.
Так как верхние каналы не нужны, их можно откусить кусачками, дабы освободить место под кнопку.
Чтобы отдельные части мини-джека случайно не остались в разъеме мобильного телефона, капаем между ними пару капель суперклея.
Припаиваем кнопку к мини-джеку.
Хорошенько изолируем место пайки термоклеем.
Надеваем термоусадку и фиксируем.
Наш Click Quick Button готов. Отметим, что для его работы нужно скачать специальное приложение из магазина Play Market. Для этого достаточно запустить Play Market и в строке поиска написать слово click. Ниже вы можете увидеть скриншот страницы скачивания с иконкой необходимого приложения.
После установки нужно запустить приложение, вставить кнопку в разъем для наушников и начать программирование. Скачанное из Play Market приложение позволяет запрограммировать запуск определенных программ при одном, двух и трех нажатиях на кнопку.
Проверка показала что устройство отлично работает. Это устройство может понадобиться в ситуации, когда нужно незаметно включить, например микрофон. В нужный момент мы суем руку в карман и нажимаем три раза. Диктофон при этом включается, поскольку он у нас так запрограммирован.
Удачи в самоделках!

Источник
Кликер своими руками
Попросил меня на днях товарищ помочь с одной задачкой: управлять компом с аудиопроигрывателем, установленном на ноутбуке с Windows, с помощью маленького аппаратного пультика. Просил всякие ИК пульты не предлагать. И сделать AVR-е, коих у него осталось некоторое немалое количество, пристраивать потихоньку надо.
Постановка задачи
Задача, очевидно, делится на две части:
- Железячное, работающее на микроконтроллере, и
- Программное, работающее на компьютере и управляющее тем, что на нём находится.
Раз уж работаем с AVR, то почему бы не Arduino?
Поставим задачу.
Аппаратная платформа:
HW1. Управление ведётся кнопками без фиксации;
HW2. Обслуживаем 3 кнопки (в общем случае сколько не жалко);
HW3. Нажатием считается удерживание кнопки не менее 100 миллисекунд;
HW4. Более длинные нажатия игнорируются. Обработка более 1 кнопки за раз не выполняется;
HW5. При нажатии кнопки запускается некоторое действие на компьютере;
HW6. Обеспечить интерфейс связи с компьютером через встроенный Serial/USB-преобразователь;
Программная платформа:
SW1. Обеспечить интерфейс связи с компьютером через выбираемый последовательный порт;
SW2. Преобразовывать приходящие по интерфейсу связи команды в события операционной системы, доставляемые до нужного аудиоплеера.
SW3. Приостановка обработки команд. В том числе по команде с пульта.
Ну и дополнительное требование: если это не вносит серьёзных затрат времени, сделать решения максимально универсальными.
Проектирование и решение
Кнопки кнопки пребывают в положении «нажато» непродолжительное время. Кроме того, кнопки могут дребезжать (то есть формировать множество срабатываний за короткий промежуток времени из-за нестабильного контакта).
К прерываниям их подключать нет смысла — не те времена отклика нужны, чтобы этим заморачиваться. Будем читать их состояния с цифровых пинов. Для обеспечения стабильного чтения кнопки в ненажатом состоянии необходимо подключить входной пин к земле (pull-down) или к питанию (pull-up) через подтягивающий резистор. Воспользуемся встроенным pull-up резистором не будем делать дополнительный дискретный элемент на схеме. С одной стороны кнопку подключим к нашему входу, другой — к земле. Вот что получается:
И так — для каждой кнопки.
Кнопок надо несколько, поэтому нам нужно некоторое количество однородных записей о том, как кнопки опрашивать и что надо делать, если она нажата. Смотрим в сторону инкапсуляции и делаем класс кнопки Button , который содержит в себе номер пина, с которого ведётся опрос (и сам же его инициализирует), и команду, которую надо послать в порт. С тем, что из себя представляет команда, разберёмся позже.
Класс кнопки будет выглядеть примерно так:
После этого шага у нас кнопки стали универсальными и безликими, но с ними можно работать единообразно.
Соберём кнопки воедино и назначим им пины:
Инициализация всех кнопок делается вызовом метода Begin() для каждой кнопки:
Для того, чтобы определить, какая кнопка нажата, будем перебирать кнопки и проверять, нажато ли что-нибудь. Возвращаем индекс кнопки, либо одно из спецзначений: «не нажато ничего» и «нажато более одной кнопки». Спецзначения, разумеется, не могут пересекаться с допустимыми значениями номеров кнопок.
Кнопки будем опрашивать с некоторым периодом (скажем, 10 мс), и будем считать, что нажатие произошло, если одна и та же кнопка (и ровно одна) удерживалась заданное количество циклов опроса. Делим время фиксации (100 мс) на период опроса (10 мс), получаем 10.
Заведём декрементный счётчик, в который записываем 10 при первой фиксации нажатия, и декрементируем на каждом периоде. Как только он переходит из 1 в 0, запускаем обработку (см HW5)
Если счётчик уже равен 0, никаких действий не выполняется.
Как было сказано выше, с каждой кнопкой ассоциирована выполняемая команда. Она должна быть передана через коммуникационный интерфейс.
На этом этапе можно реализовать стратегию работы клавиатурой.
Интерфейс связи должен быть понятным и отправителю, и получателю. Поскольку последовательный интерфейс имеет единицу передачи данных в 1 байт и имеет байтовую синхронизацию, то нет особого смысла городить что-то сложное и ограничимся передачей одного байта на команду. Для удобства отладки сделаем передачу одного ASCII-символа на команду.
Реализация на Arduino
Теперь собираем. Полный код реализации показан ниже под спойлером. Для его расширения достаточно указать ASCII-код новой команды и привязать к ней кнопку.
Можно, конечно, было бы просто для каждой кнопки явно указать код символа, но мы так делать не будем: именование команд нам пригодится при реализации клиента для ПК.
И да, я сделал ещё одну кнопку, чтобы иметь возможность приостановки передачи команд на клиента.
Клиент для ПК
Переходим ко второй части.
Поскольку сложного интерфейса нам не надо, и привязка к Windows, то можно пойти разными путями, кому как нравится: WinAPI, MFC, Delphi, .NET (Windows Forms, WPF и т.д.), или же консольки на тех же платформах (ну, кроме MFC).
Данное требование закрывается через коммуникацию с последовательным портом на выбранной программной платформе: подключаемся к порту, читаем байты, обрабатываем байты.
Пожалуй, все видели клавиатуры с мультимедийными клавишами. Каждая клавиша на клавиатуре, в том числе мультимедийная, имеет свой код. Самое простое решение нашей задачи — это имитация нажатий мультимедийных клавиш на клавиатуре. С кодами клавиш можно ознакомиться в первоисточнике — MSDN. Осталось научиться их посылать в систему. Это тоже не сложно: есть в WinAPI функция SendInput.
Каждое нажатие клавиши — это два события: нажатие и отпускание.
Если мы пользуемся C/C++, то можно просто подключить заголовочные файлы. На других языках надо сделать проброс вызовов. Так, например, при разработке на .NET придётся импортировать указанную функцию и описать аргументы. Я выбрал .NET за удобство разработки интерфейса.
Я выделил из проекта только содержательную часть, которая сводится к одному классу: Internals .
Вот его код:
В нём сначала идёт описание структур данных (отрезано только то, что касается клавиатурного ввода, поскольку мы его имитируем), и собственно импорт SendInput .
Поле inputs — массив из двух элементов, будет использоваться для генерации событий клавиатуры. Нет смысла выделять его динамически, если архитектура приложения предполагает, что вызова SendKey в несколько потоков не будет выполняться.
Собственно, дальше дело техники: заполняем соответствующие поля структур виртуальным кодом клавиши и отправляем в очередь ввода операционной системы.
Требование закрывается очень просто. Заводится флаг и ещё одна команда, которая обрабатывается особым образом: флаг переключается в противоположное логическое состояние. Если он установлен, то остальные команды игнорируются.
Вместо заключения
Улучшайзингом можно заниматься бесконечно, но это уже совсем другая история. Я не привожу здесь проект Windows-клиента, потому как он предоставляет широкий полёт фантазии.
Для управления медиаплеером посылаем один набор «нажатий» клавиш, если надо управлять презентациями — другой. Можно сделать модули управления, собирать их либо статически, либо в виде подключаемых плагинов. Вообще много чего можно. Главное — желание.
Источник