Unikumrus.com / Совет (лайфхак)/Кнопка «Пора с работы»

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


Предложенная автором 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;
}

Вот оно, оказывается, что: если в скетче включить встроенный подтягивающий резистор, внешний оказывается не нужен. В тексте необходимо сменить сочетание клавиш на то, которое нужно вам. Залив скетч, мастер устанавливает на толкатель крышку от бутылки:




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


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

Источник
2019-11-22
Вернуться назад