Тёплый ламповый «кликер»

4ceffab8b4714e36b3c95cbd985f40c9.jpg
Путешествуя по просторам интернета я набрел на одну малоинтересную категорию игрушек — «кликеры». Особенно меня «порадовал» Office Clicker. Глупость конечно несусветная, но что-то в этом есть. Можно написать какой-нибудь скрипт, который будет играть вместо меня, но это слишком банально. Я решил сделать хардвэрный «кликер», но не просто хардверный, а теплый-ламповый «кликер»! Интересно? Прошу под кат!

acd041127a30494f81faf87e98e8c880.png

Теплая «ламповая» схемотехника


Схема мне пришла в голову весьма нетривиальная, в основу ее легла автомобильная лампочка дальнего света (которую я далее гордо именую «лампой»):
19235123be784a20b883f25689036ddb.png

Номиналы деталей:

  • R1 = 10 КОм (многооборотный);
  • R2 = 5 Ом (5 Вт);
  • R3 = 470 ОМ (0,25 Вт);
  • R4 = 100 Ом (0,25 Вт);
  • C1 = 47 мкФ (25 В).


Принцип работы схемы следующий:

  1. «Лампа» остыла (остывает);
  2. Напряжение U1 < U2;
  3. Компаратор подает отпирающий сигнал на транзистор T1;
  4. Транзистор T1 открыт;
  5. Контакты реле замкнуты;
  6. Через «лампу» начинает течь ток => она нагревается;
  7. Сопротивление «лампы» увеличивается;
  8. Напряжение U1 растет и приближается к U2;
  9. Когда U1 > U2, компаратор перестает подавать сигнал на T1;
  10. Транзистор T1 закрыт;
  11. Контакты реле разомкнуты;
  12. U1 > U2, но постепенно U1 снижается;
  13. GOTO 1.


Частота генерируемого сигнала зависит от:

  • постоянной времени t=R5*C1;
  • времени разогрева (и остывания) «лампы».


Изменяя напряжение U2 мы меняем время разогрева «лампы», соответственно — чем больше U2 тем ниже будет частота.

Резистор R4 и стабилитрон D1 (на напряжение 3.3В) используются для формирования управляющего сигнала для следующего узла — платы Arduino Duo.

c409936c85a14383a64643999c6d997e.jpg
b5459aef2f6e4e46b63bd3a02488ddfc.jpg
c4e2ff00957c4227a839044d404a6f53.jpg

Интерфейс


Как вы уже поняли, в качестве интерфейсной платы между «ламповым» реле и компьютером я выбрал плату Arduino Duo.

Принцип работы очень прост:

  • когда в схеме «кликера» транзистор V1 закрыт, на Arduino поступает управляющий сигнал 3.3В, когда транзистор открыт — 0В;
  • Arduino интерпретирует 3.3В, как руководство к нажатию ЛКМ;
  • Arduino интерпретирует 0В, как руководство отпустить ЛКМ.

Вот программа для Arduino, которую я написал по этому поводу:

#define VACUUM_LINE 13

void setup()
{
  pinMode(VACUUM_LINE, INPUT_PULLUP);
  Mouse.begin();
}

void loop()
{
  if (digitalRead(VACUUM_LINE) == HIGH)
  {
    Mouse.press();
    delay(10);
  }
  if (digitalRead(VACUUM_LINE) == LOW)
  {
    Mouse.release();
    delay(10);
  }
}

Тестируем


Вместо тысячи слов, предлагаю посмотреть одно видео:

Спасибо за внимание! Надеюсь моя статья помогла улучшить ваше настроение!

© Geektimes