Автоматический таймер для чистки зубов

в 5:40, , рубрики: DIY, diy или сделай сам, зубы, Программинг микроконтроллеров, метки: ,

Автоматический таймер для чистки зубов

Описание

Однажды я вернулся от дантиста и понял, что всё-таки стоит чистить зубы не менее двух минут. Я использую обычную зубную щетку, а каждый раз нажимать кнопку таймера лень. Я решил сделать устройство, которое само определит, что я достал щётку и засечёт две минуты.

В качестве основы я выбрал микроконтроллер Atmega328p, тензометрический датчик, медные чашки, поднос, звонок от будильника и лист фанеры. В этом посте я расскажу о том, как работает устройство, какие компоненты используются и как был собран корпус.

Начнём с видео, которое демонстрирует работу устройства:

Алгоритм работы

  1. Проснуться
  2. Считать текущий вес с точностью до 3 грамм
  3. Если считанный вес меньше, чем предыдущий, сыграть анимацию:
    1. Включить всё лампочки
    2. Раз в 20 секунд выключать по лампочке
    3. Раз в 30 секунд делать «дзынь» звоночком, напомнить, что пора чистить другую часть челюсти
  4. Заснуть на 8 секунд

Тензометрический датчик

За этим замысловатым название кроется один из основных компонентов устройства: весы. Тензометрический датчик преобразует механическую деформацию, возникающую при нагрузке датчика, в электрический сигнал. Именно такие датчики стоят во всех электронных весах.

Достать такой датчик оказалось несложно. Он есть в самых дешевых электронных весах:

Автоматический таймер для чистки зубов

От датчика отходит четыре провода. Один подключим к входному напряжению, один к земле и два к усилителю сигнала. Разница напряжений на этих двух проводах определяет вес предмета на датчике. То есть, чем тяжелее предмет, тем больше разница. Замечу, что точный вес нам не интересен, надо лишь определить, что вес поменялся (зубную щётку достали). Более того, можно раз в 5-10 секунд смотреть, не изменился ли вес; не страшно, если таймер не начнётся моментально.

Выбор компонентов

Я выбрал самые простые компоненты. Вот как выглядела схема:

Автоматический таймер для чистки зубов

ATMega328p с кристаллом на 16Mhz – «мозг» устройства. Пожалуй, с лёгкой подачи Arduino этот контроллер стал чрезвычайно популярным среди любителей-самоучек. Его очень просто программировать и сложно сжечь.

Усилитель Ina125P создан специально для усиления сигналов с различных датчиков. Схема подключения очень проста; единственное, на что надо было обратить особое внимание – это величина резистора, определяющего усиление. Вот как подключен усилитель:
Автоматический таймер для чистки зубов
    SCALES_CONN – четыре провода от датчика.
    R1 – резистор, определяющий величину усиления.
    WOUT – провод, с которого можно считать усиленную разность между проводами V+IN и V-IN.
    SC_SLEEP – провод, усыпляющий усилитель. Это необходимо для сохранения энергии.

Выключатель TPS2020 – это отличный выключатель с очень низким энергопотреблением в выключенном состоянии (10 μA). Он управляет питанием серво:
Автоматический таймер для чистки зубов

Зарядное устройство MAX1555 – чип, который управляет зарядкой батарейки. Вот как он подключен:
Автоматический таймер для чистки зубов

Транзисторы 2N3904 – для управления питанием лампочек.

Тёплые, ламповые лампы – я решил использовать обычные лампы в исключительно декоративных целях. Поскольку проект предполагал вид «под старину» обычные светодиоды могли бы испортить впечатление. Лампы загораются не так часто и не слишком съедают батарейку. Сейчас устройство работает третью неделю на одном заряде.

Сборка платы

Я собрал плату фоторезистивным методом. Вот как выглядел эскиз:

Автоматический таймер для чистки зубов

Плата под лампой:

Автоматический таймер для чистки зубов

Желающие могут ближе ознакомится с схемой в формате Eagle и исходным кодом проекта.

Сборка корпуса

Собирать корпус устройства было почти так же интересно, как проектировать схему и писать код. Всё началось с листа фанеры и чертежа в Inkscape. Мне удалось арендовать лазерный резак: чертёж посылается на него, как на принтер, лист фанеры кладётся в рабочую область, настраивается фокус и машина аккуратно и точно вырезает требуемые детали. Вот как это выглядит:

Я использовал супер-клей для сборки деталей. Чтобы увеличить клейкую площадь, все стыки были усилены небольшими уголками из той же фанеры. Я обнаружил, что имеет смысл сделать этих уголков с запасом, чтобы укреплять корпус позже.

Автоматический таймер для чистки зубов

Корпус, готовый к окраске:

Автоматический таймер для чистки зубов

Я использовал два слоя краски и два слоя лака. Перед окраской я прошелся по всей конструкции мелкой шкуркой.
Вот как располагаются компоненты:

Автоматический таймер для чистки зубов

Все швы были заклеены клеевым пистолетом. В этом проекте было очень важно, чтобы электроника была хорошо изолирована. Устройство располагается рядом с раковиной, так что на него точно будут попадать брызги. Перегородка посередине должна спасти схему, если в корпус затечёт вода.

Вот как выглядит подключенная схема изнутри:

Автоматический таймер для чистки зубов

На этой фотографии виден механизм звонка (серво с молоточком) и подставка под поднос (сверху, на крышке):

Автоматический таймер для чистки зубов

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

Автоматический таймер для чистки зубов

Заключение

Буду рад ответить на любые вопросы. Буду также рад любым замечаниям: я только недавно начал изучение микроэлектроники.

Я надеюсь, что это устройство сделает мои походы к дантисту более приятными. А ещё больше я надеюсь на то, что оно вдохновит вас на создание своих сумасшедших изобретений.

Автоматический таймер для чистки зубов

Автор: apple_fan

* - обязательные к заполнению поля