КОРОБКА ДЛЯ БОРЬБЫ С ПРОКРАСТИНАЦИЕЙ НА ARDUINO.
Ниже приведён перевод статьи: http://digitaljunky.io/the-anti-procrastination-box/ созданный и публикуемый нами с разрешения автора.
В данной статье описывается создание простого и полезного устройства, способ подключения платы Arduino к сегментному индикатору и соленоиду, а так же представлен пример ООП кода для Arduino. Читайте, разбирайтесь, творите!!
У меня был запасной дисплей, и я думал куда его применить. В итоге родилась коробка для борьбы с прокрастинацией для тех из нас, кто привык жить со смартфонами, однако это вызывает у них лишние промедления. Благодаря этой коробке, вы сможете на некоторое время гарантировано отказаться от своего девайса. Для этого всего лишь, нужно положить телефон в коробку и установить интервал, в течении которого она должна быть закрыта.
КОМПОНЕНТЫ
- 1 Arduino Nano R3
- 1 4 цифровой, семи-сегментный дисплей
- 1 5 вольтовый соленоид
- 1 MOFSET-транзистор TIP122G
- 1 диод
- 8 резисторов на 330 Ом
- 2 резистора на 270 Ом
- 1 резистор на 100 Ом
- 2 тактовые кнопки
- Полимерная глина (или 3D-принтер)
- Провода
- Батарейный отсек
СХЕМА
На схеме снизу показано подключение между собой всех компонентов.
Компоновка компонентов может быть (и должна была) быть сделана лучше, но я признал свою ошибку, только тогда, когда половина проводов уже были припаяны.
Так же было бы неплохо добавить кнопку для включения/выключения Arduino и зуммер для обозначения конца отчётного периода.
PDF-версия схемы есть тут.
КОД
Весь код для данного проекта можно найти тут.
Код написан на C++, т.к. мне нравится использовать классы, это позволяет сделать код читаемым и чистым. В коде есть 5 классов:
- Таймер (Timer): управление механизма таймера. Использует встроенные часы Arduino для хранения прошедшего времени.
- Замок (Lock): работает с двигателем, управляемым транзистором. Может быть либо открыт, либо закрыт.
- Кнопка (Button): результат опроса состояния, может быть зажатой, нажатой или отпущенной.
- Дисплей (Display): управление сегментным двигателем. Методо show() позволяет установить любое допустимое число между [0, 9999].
- Регистр пинов (PinRegistry): класс, где сохранены все объявления номеров используемых ножек (пинов).
ПАЙКА КОМПОНЕНТОВ
Начнём с пайки ножек к Arduino Nano, если они ещё не припаяны.
(Если случилось так, что паяльника нет, а припаять нужно – это отличный повод купить его или целый набор для пайки в нашем магазине – прим. ред. ;-)
Тестирование на макетной плате и подготовка компонентов:
Паяем резисторы к ножкам дисплея.
Знакомьтесь с ардусьминогом!
Присоединяем дисплей.
Ура! Ничего не сгорело!
ПОДГОТОВКА КОРОБКИ
Возьмём коробку и проделаем отверстия под дисплей и 2 кнопки.
Далее, совсем не обязательно, но, кажется, коробка будет выглядеть лучше, если будет иметь чёрный цвет. Так что покрасим коробку!
СОЗДАНИЕ ЗАМКА
Поскольку у меня не было 3D принтера, я решил использовать полимерную глину, которая проста для моделирования и клейки.
Нам надо создать небольшой треугольник, который будет передвигаться соленоидом, когда коробка будет запираться. Соленоид затем будет держать этот кусочек, не давая коробке открыться.
Так же нам потребуются детали в форме буквы L для поддержи соленоида.
Теперь объединим всё в одно:
И В ИТОГЕ…
Видео работы коробки можно найти тут.
Я надеюсь, что вам понравился данный проект и это дало некоторые ответные идеи. Пишите в комментариях, если у вас есть свои идеи, критика и пожелания и темы для новых уроков!
(Автору можно написать тут).