Сейчас на Алиэкспрессе продается много приспособлений, помогающих обучить кота пользоваться унитазом и, если не педалировать обучение, за 1 — 3 месяца практически любой кот способен освоить этот несложный трюк. Отказ от лотка и наполнителя очень полезный шаг в создании в квартире уюта, но этому действию не хватает законченности - кот не умеет смывать унитаз за собой. Вот эту проблему и решает описанное ниже электромеханическое устройство.
Почему надо смывать унитаз?
Придумать устройство способное смывать унитаз после кота хорошо с эстетической точки зрения, но есть и практическая необходимость. Раньше, когда я уезжал из квартиры на сутки и более, я ставил рядом с унитазом дополнительный лоток с наполнителем, так как мой кот - чистоплотное животное и грязный унитаз снова использовать не будет. Автоматизация смыва унитаза дала возможность полностью избавиться от лотка и наполнителя. Теперь, если коту насыпать побольше корма, он может жить в квартире один в течении длительного срока без какой-либо помощи со стороны человека (это очень удобно, но все же я считаю, что больше чем на 2 суток кошек в одиночестве оставлять не следует, так как несмотря на показную независимость, они животные достаточно социальные и через пару дней одиночества впадают в депрессию).
Техническое задание
Что нужно для устройств авто-смыва? В общих словах, автоматика как-то должна обнаружить присутствие кота на унитазе и, после этого, как-то дернуть клапан слива воды унитаза. Первый пункт значительно сложнее осуществить - существующие датчики не могут различать размер и форму движущихся предметов - как тогда можно отличить кота о человека? Единственный возможный способ - по поведению - кот обычно долго готовится, делает свои дела, потом еще долго скребет топчак лапой и, в результате, проводит на унитазе несколько минут и, главное, никогда сам не дергает ручку смыва унитаза.
Поэтому, логика работы системы предполагалась следующая — она отслеживает нахождение кота на унитазе, ждет около 2х минут, отмечает уход кота и дальше ждет еще 3 минуты, отслеживая движение ручки унитаза (сделать это не сложно, например используя геркон и магнит, наклеенный на клапан смыва). Если за это время спуск воды никто не дернул — автоматика с помощью сервопривода поднимает сливной клапан на 5 секунд, инициируюя спуск воды.
Такой алгоритм работы отличает кота от человека и достаточно хорошо защищен от случайных срабатываний - авто-смыв не сработает, если человек кратковременно зашел в туалет (например за шваброй).
Общий дизайн и механическая часть
У меня в туалете стоит совершенно обычный фаянсовый унитаз с ручкой на крышке. Старую советскую механику я давно заменил, установив немецкий кран и клапан смыва.
Как видно, свободного места в бачке относительно много, поэтому я решил разместить всю систему автоматизации внутри сливного бачка, главным образом потому, чтобы оно не привлекало внимания. Я не хочу объяснять каждому гостю, зачем нужно это устройство и что оно делает.
Для раскройки механических деталей и крепежа я использовал самодельный домашний CNC станок. Детали я изготовил из мягких листовых материалов, которые у меня тогда были под рукой - раму вырезал из полиэтиленовой кухонной разделочной доски, а клапан унитаза дополнил горизонтальной платформой, вырезанной из листового углепластика. Эта платформа передает клапану усилие тяги сервопривода и предотвращает вращение клапана вокруг своей оси. Подъем клапана сервоприводом и ручкой независимы друг от друга - унитазом можно пользоваться, как и раньше, дергая за ручку смыва, а сервопривод поднимает клапан, также не поднимая ручку.
Я не буду здесь детально описывать детали механической конструкции. Унитазы бывают разные, у некоторых есть ручка, у других кнопка, у каждого домашнего мастера есть свои материалы и возможности изготовить механические компоненты, поэтому вряд-ли имеет смысл копировать геометрию моего устройства. Главное, чего надо здесь добиваться - механика должна быть надежной и долговечной, иначе вся эта затея не имеет никакого смысла.
Электроника
Как обнаружить кота на унитазе? Я экспериментировал с разными датчиками движения. Доплеровский СВЧ радар (этот прибор открывает раздвижные двери в торговых центрах) показал себя сложным в настройке и нестабильным, поэтому я использовал инфракрасный пироэлектрический сенсор (часто используется для автоматического включения света в подъездах). Хотя этот прибор достаточно сложен и на самом деле является тепловизором, совмещенным с анализатором изображения, но такие пироэлектрические датчики давно уже вошли в быт, все более-менее однотипные и, обычно, стоят несколько долларов штука. Я использовал миниатюрный Grove mini motion sensor на основе S16-L221D. Он не имеет элементов настройки, но их можно добавить, следуя инструкции. Для регулировки чувствительности я припаял к нему подстроечный резистор и, так же немного повысил его быстродействие, замкнув резистор на плате. Этот датчик без потери функциональности можно заменить на более крупный и дешевый аналог ZRD09, он уже имеет подстроечные потенциометры для настройки чувствительности и быстродействия. Инфракрасный датчик я расположил снаружи бачка, разместив его сбоку унитаза на расстоянии около 30 см. Сам датчик я поместил в маленькую коробочку, а провода датчика закрыл пластмассовым коробом.
Для подъема клапана унитаза я использовал судомодельный сервопривод JMT 20, который, по утверждению производителя, имеет некоторую степень влагозащищенности. Этот сервопривод относительно мощный и комплектуется металлической «рукой» с дополнительным отверстиями.
"Мозгом" устройства является популярный контроллер Arduino Micro. Его я разместил в пластмассовой коробочке. Внешние устройства - датчик, геркон, блок питания, сервопривод, светодиоды подключены к коробочке через 3 контактные JST разъемы — каждый элемент может быть отсоединен от общей системы.
В качестве источника питания я использовал импульсный 12 В 2А блок питания, воткнутый в розетку на кухне - напряжения 12 вольт передается в туалет по трехметровому проводу. 12 вольт, прямо внутри коробочки, конвертируются стабилизатором КРЕН5 в 5 вольт. Это напряжение питает Arduino, инфракрасный датчик и сервопривод. Такое решение не случайно, провод питания имеет относительно большое сопротивление и, если не принять меры, наводки от мощного сервопривода будут мешать работе контроллера. Кроме того, КРЕН5 нагревает коробочку и тем самым борется с влажностью внутри нее.
Программирование
Скетч для Arduino можно скачать здесь. Программа реализует следующую диаграмму состояний:
Следует заметить, что система отслеживает оба фронта импульса с инфракрасного датчика. Передний фронт переводит систему в некоторое промежуточное состояние (PREWAIT, PREDETECT), а фактический переход в состояние (WAIT, DETECT) происходит в момент заднего фронта импульса.
Состояние FLUSH_GERCON добавлено из-за того, что поднятие клапана сервоприводом вызывает срабатывание геркона. Вызывающий срабатывание геркона магнит прикреплен не к рукоятке слива, а непосредственно к платформе, расположенной на клапане. Такое решение добавляет в систему обратную связь — с помощью геркона система определяет положение клапана - если по какой-то причине сервопривод будет стоять в неправильном положении и клапан будет открыт — геркон сработает, сервопривод опустит руку, и клапан перейдет в закрытое положение.
При использовании унитаза человеком, после поднятия клапана рукой система переходит в состояние IDLE и перестает чувствовать сигналы с инфракрасного датчика в течении 30 сек. Это дает человеку возможность уйти из туалета, не вызывая повторного срабатывание системы.
Сервопривод, кроме состояний ON и OFF имеет еще одно "нейтральное" состояние, когда управляющий импульс на него не подается. В этом состоянии сервопривод просто сохраняет свое состояние. Сервопривод проводит в "нейтральном" состояние практически все время, это позволяет избежать его износа от мелких колебаний, которые могут иметь место во время подачи на него управляющего импульса.
Настройка механики
Механическая настройка системы достаточно проста - необходимо выполнить следующие действия:
-
Правильно закрепить «руку» сервопривода и протестировать что ее перемещения хватает, чтобы открыть и закрыть клапан унитаза.(Для этого очень хорошо подходит "тестер сервоприводов" )
-
Правильно подобрать длину тяги, соединяющей платформу клапана и сервопривод.
-
Найти правильное взаимное положение магнита и геркона.
Таблица состояний системы
Чтобы контролиовать работу программы я добавил в электрическую схему 2 светодиода - красный и зеленый. Чтобы не привлекать к ним большого внимания, я разместил их сбоку сливного бочка, но мне они сообщают информацию о текущем состоянии системы.
Фаза |
Время |
Красный LED |
Зеленый LED |
INIT |
2 сек |
Включен |
|
READY |
- |
||
PREWAIT |
~ 3 сек |
||
WAIT |
30 сек |
Мигает |
|
DETECT |
120 cек |
Включен |
|
PREARMED |
~ 3 сек |
Включен кратковременно |
Включен кратковременно |
ARMED |
180 сек |
Включен |
|
FLUSH |
< 1 сек |
||
FLUSH_GERCON |
5 сек |
Включен |
Включен |
AFTERFLUSH |
2 сек |
||
GERCON |
- |
Мигает |
Мигает |
IDLE |
15 сек |
Мигает |
Результат
Какие можно сделать выводы? Устройство отработало уже более 4 месяцев. Механическая поломка была одна - согнутая из скрепки тяга клапана через 2 месяца разогнулась. Я просто ее заменил на сделанную из скрепки большего размера. Электроника и программное обеспечение, практически, не дали ни одного сбоя. Коту тоже система очень понравилась, и он теперь пользуется унитазом сам в любое время суток, не требуя моего внимания. В общем - рекомендую к изготовлению.
Автор:
Andrey_Rakhmanov