Как стать автором
Обновить

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

Время на прочтение 2 мин
Количество просмотров 26K


Предисловие


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



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


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


Номиналы деталей:
  • 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.





Интерфейс


Как вы уже поняли, в качестве интерфейсной платы между «ламповым» реле и компьютером я выбрал плату 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);
  }
}


Тестируем


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


Спасибо за внимание! Надеюсь моя статья помогла улучшить ваше настроение!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
А какой «кликер» сделали бы вы?
31.83% Никакой — я взрослый человек и мне не до игрушек 169
9.98% Никакой — я фанат кликать сам 53
43.31% Софтверный — я же программист 230
6.78% Хардверный — холодный транзисторный 36
5.27% Хардверный — теплый ламповый 28
2.82% Свой вариант — напишу в комментариях 15
Проголосовал 531 пользователь. Воздержались 140 пользователей.
Теги:
Хабы:
+7
Комментарии 42
Комментарии Комментарии 42

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн