Предложенная автором 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;
}
Вот оно, оказывается, что: если в скетче включить встроенный подтягивающий резистор, внешний оказывается не нужен. В тексте необходимо сменить сочетание клавиш на то, которое нужно вам. Залив скетч, мастер устанавливает на толкатель крышку от бутылки:
А сам принимается за работу над небольшим рекламным плакатом:
Возможно, он убедит и вас повторить эту конструкцию. Вещь-то ведь позитивная, которая быстро начнёт ассоциироваться с возвращением с работы домой.