Кнопка «Пора с работы»

Кнопка «Пора с работы»
Предложенная автором Instructables под ником fmtuve самоделка представляет собой кнопку из крышки от бутылки, которую нужно нажимать по окончании рабочего дня. Она имитирует нажатие сочетания клавиш Cmd+Q, которое в Mac OS X выполняет ту же функцию, какую в Linux и Windows выполняет всем известное сочетание Alt+F4. Корпус устройства — 3D-печатный, электроника выполнена на Arduino Pro Micro. И похоже, мастер поставил производство таких приспособлений на поток:

Кнопка «Пора с работы»
Ниже показаны все компоненты самоделки, из них три детали, расположенные справа — 3D-печатные, STL-файлы для их печати лежат в этом ZIP-архиве.

Кнопка «Пора с работы»
Напечатав детали корпуса, мастер припаивает гребёнки к Arduino необычным способом — со стороны компонентов:

Кнопка «Пора с работы»
Помещает в эту выемку в дне корпуса:

Кнопка «Пора с работы»
Получается как на КДПВ в правом верхнем углу:

Кнопка «Пора с работы»
Перевернув среднюю деталь корпуса, помещает в неё кнопку, разрезает пополам перемычку типа «дюпон» и припаивает к контактам кнопки, соединения изолирует термоучадочной трубкой:

Кнопка «Пора с работы»
Переворачивает среднюю деталь вместе с кнопкой обратно, соединяет её с дном, подключает кнопку к выводам GND и A8 Arduino. Подтягивающий резистор здесь бы не помешал, но и без него заработает.

Кнопка «Пора с работы»
Затем мастер добавляет к кнопке верхнюю 3D-печатную деталь -толкатель:

Кнопка «Пора с работы»
Пишет скетч:

Кнопка «Пора с работы»
Текст его следующий:

#include <HID.h>
#include <Keyboard.h>

// connected PIN8
const int switch_pin = 8;

int button_state = 0;
int previous_button_state = HIGH;
long last_debounce_time = 0;
const long debounce_delay = 50;

void setup()
{
// We use internal pullup registor 'cause the switch directly connected.
pinMode(switch_pin,INPUT_PULLUP);
digitalWrite(switch_pin, HIGH);

Keyboard.begin();
}

void loop()
{
button_state = digitalRead(switch_pin);
if ((button_state != previous_button_state) && (button_state == HIGH))
{
if ((millis() — last_debounce_time) > debounce_delay)
{
// Exit Program (CMD+Q in mac) & Have a nice day!
// Use KEY_LEFT_ALT + KEY_F4 for PC
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('q');
delay(100);
Keyboard.releaseAll(); // This is important after every Keyboard.press it will continue to be pressed
last_debounce_time = millis();
}
}
previous_button_state = button_state;
}
Вот оно, оказывается, что: если в скетче включить встроенный подтягивающий резистор, внешний оказывается не нужен. В тексте необходимо сменить сочетание клавиш на то, которое нужно вам. Залив скетч, мастер устанавливает на толкатель крышку от бутылки:

Кнопка «Пора с работы»Кнопка «Пора с работы»
А сам принимается за работу над небольшим рекламным плакатом:

Кнопка «Пора с работы»
Возможно, он убедит и вас повторить эту конструкцию. Вещь-то ведь позитивная, которая быстро начнёт ассоциироваться с возвращением с работы домой.

Понравилась статья? Поделиться с друзьями: