Сенсорная крышка для мусорного ведра своими руками

image

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

Ведро использовано металлическое блестящее, крышка открывается педалью, такие ведра можно найти во многих магазинах.
Для доработки ведра использованы ИК светодиод, ИК приемник, сервопривод, микроконтроллер.
Управление и контроль перегрузки сервопривода осуществляется c помощью микроконтроллера ATtiny44A фирмы Atmel.

Программа управления написана на C в Atmel Studio 6.1.

Электронная начинка


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

  • ИК светодиод постоянно шлет некий бинарный код, ИК приемник его читает и если произошло совпадение выдается команда на открытие крышки.
  • После открытия крышки ждем 7 сек и закрываем крышку, если сенсор не активен.
  • Если во время открытия крышка уперлась в препятствие, то — пищим, ждем некоторое время (3 сек) и повторяем попытку. При повторной неудачи «засыпаем» на более длительное время (60 сек).

ИК Датчик


Принцип работы основан на свойстве отражения ИК лучей от препятствия.
ИК диод посылает в пространство модулированную кодовую посылку, а ИК приемник ее принимает.
Для регулирования мощности передачи используется подстроечный резистор RV1.
Несущая частота сигнала 38 кГц.
Используется бифазное (манчестерское) кодирование. Для него не требуется кварцевой стабилизации частоты.

Вот осциллограммы кодирования бита:




Вот осциллограмма пакета:



ИК приемник (я использовал Vishay TSOP4838) принимает сигнал, декодирует и выдает на выход пакет в инвертированном виде.

Пакет повторяется через определенное время:



ИК приемник устройство «умное» и пытается отфильтровать сигнал, подавляя помехи, различные импульсы, которые не подходят под его понимания подходящего формата пакета.
Поэтому между пакетами должны быть пауза не меньше минимальной.
Например, при использовании TSOP4838, если сделать паузу в 15 бит при длине пакета 8 бит, то приемник будет достаточно часто пропускать пакеты.
При паузе в 30 бит — пакеты не пропускаются.

Сервопривод

image

Для открывания крышки используется стандартная серва Futaba S3001.
У нее выдаваемое усилие при 4.8 В около 2.4 кг-см, а при 6 В — 3 кг-см.
Крышка металлическая и относительно тяжелая, но данного сервопривода для нее хватает.

Питание на сервопривод подается только на время его позиционирования. Для этого используется Logic level MOSFET транзистор.
Для контроля потребляемого сервоприводом тока используется резистор 0.5 Ом.
Микроконтроллер замеряет падение напряжения на нем и, при превышении, отключает питание сервопривода.
Пиковое значение потребляемого тока во время открытия крышки 500 мА, во время закрытия — 150 мА, при «заклинивании» — 550 мА.

Сервопривод управляется импульсами длительностью от 1.1 до 1.8 мс, которые следуют каждые 0.02 секунды.
После окончания управляющего импульса сервопривод, при необходимости, начинает позиционироваться.

Осциллограммы:
Желтым — управляющие импульсы, голубым — потребление сервопривода (падение напряжения на шунте).

Вот осциллограмма начала нормального позиционирования сервопривода:



Нормальное позиционирование, где-то в середине перемещения:



Вот осциллограммы заклинивания сервы:



При старте держим руками:



Как можно видеть, в самом начале идет достаточно большое потребление практически не зависимо от того может сервопривод перемещаться или нет.
Так же видно, что моментальное потребление сервопривода не может быть больше определенного значения, и для контроля невозможности перемещения привода нужно, в идеальном случае, вычислять площадь под голубым графиком.
В программе падение напряжения на шунте считываются c помощью АЦП и используется простой способ суммирования моментальных значений в течении периода. Если сумма превышает определенный порог — сервопривод останавливается.
Порог подбирается экспериментально.
Значение при котором произошло срабатывание защиты сохраняется в EEPROM.

Схема:


Программа

Программа написана на С в Atmel Studio 6.1.
Использован микроконтроллер AVR ATtiny44A c 14 выводами в DIP корпусе.
Работает он на частоте приблизительно 7904000 Гц для того, чтобы легко получить 38000 Гц для ИК светодиода.
По умолчанию частота 8 МГц, и частота 7.9 МГц получена путем изменения регистра OSCCAL.
У меня получилось значение 0xA7 при напряжении 5 В.
При изменении напряжения питания или температуры частота немного уйдет, но на работоспособность ИК датчика это влияния не оказывает.

Для передачи — приема ИК сигнала, управления сервоприводом, отсчета времени используется один единственный 8-ми битный таймер, работающий на частоте 988 кHz и настроенный на режим Fast PWM.
Частота сигнала задается регистром OCR0A. В нем значение, при котором будет обнуляться счетчик таймера (TCNT0).
В OCR0B заносится значение, определяющее коэффициент заполнения импульсов. В нашем случае — 50%.
Таймер настроен так, что смена значения на выводе контроллера, к которому подключен ИК диод, происходит 2 раза в период (заданный OCR0A) — при нулевом значении TCNT0 и когда TCNT0 равен OCR0B.

В прерывании по равенству TCNT0 и OCR0B выполняется все работа по приему — передачи ИК сигнала.

ISR(TIM0_COMPB_vect) 
{
 	static uint8_t IR_error = 0;
	 
	if(++IR_pulsecnt == IR_BIT_LENGTH/2)
	{
		if(IR_pausecnt == 0)
		{
			if(((IRSENS_IN & IRSENS) == 0) != ((TCCR0A & (1<<COM0B1)) != 0)) IR_error = 1;
			TCCR0A ^= (1<<COM0B1);
		}
	} else if(IR_pulsecnt == IR_BIT_LENGTH)
	{
		IR_pulsecnt = 0;
		if(IR_pausecnt)
		{
			if(--IR_pausecnt == 0)
			{  // after pause send again
				IR_send = IR_SENDDATA;
				goto IRStartSending;
			}
		} else {
			if(IR_send == 0)  // Packet was sent
			{
				if(IR_error == 0) IRDetected = 1; else IR_error = 0;
				IR_pausecnt = IR_PAUSEBITS;
				TCCR0A &= ~(1<<COM0B1); // assumes that COM0B0 = 0
			} else
			{
IRStartSending:
				TCCR0A = (TCCR0A & ~((1<<COM0B1))) | ((1<<COM0B1) * (IR_send & 1));
				// assumes that COM0B0 = 0, if 1 - generate (Clear OC0B on Compare Match, set OC0B at BOTTOM)
				IR_send>>=1;
			}
		}
	}
}


Особенность функции отправки такова — пакет считается отправлен, когда битовый буфер равен 0. Это значит, что в старшем разряде пакета для отправки всегда должна быть единица.
Генерирование ИК сигнала начинается при установки бита COM0B1 в регистре TCCR0A. Подразумевается, что бит COM0B0 равен 0 и нигде до этого не устанавливался.

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

Первая кнопка используется для ручного открытия или закрытия крышки.
Вторая кнопка для остановки открытия и для включения/выключения быстрого режима открытия.

Сборка

Сервопривод подключается к вертикальной тяге, горизонтальная тяга и педаль выбрасываются.
ИК диод и приемник крепятся в выступающую пластиковую ножку. Места для них там как раз хватает.




Видео:



Исходник:
yadi.sk/d/OGTOvX73Agk8h
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 94

    –17
    Рискну быть заминусованным, но картинка про буханку хлеба тут очень кстати будет.
      +14
      Отнюдь! Это довольно удобная автоматизация. Без нее можно обойтись как и без пульта для телека, но с ней удобнее. А буханка ваша подходит для совсем бесполезных вещей, хоть и не обычных.
        0
        Не, это не буханка, при частом использовании ведра эта классная вещь (конечно скорость срабатывания нужно увеличить для комфортного использования). Когда ребенок был совсем маленьким у нас в комнате появилось ведро… теперь я понимаю чего не хватало для абсолютного удобства.
          0
          очень даже хорошая идея. У меня такая-же стоит под раковиной и по началу было очень не удобно — надо открыть дверцу(типа маленького шкафа), засунуть ногу туда и надавить на педаль. Я больше думал, чтобы приделать что-то к двери, чтобы при открывании и ведро тоже открывалось, но этот вариант удобнее. Хотя моих познаний пока не хватает, чтобы такое сделать.
            0
            Существуют встраиваемые «мусорные системы»:
            image
            Ведро крепится к дверце и при открытии само ведро выезжает, а крышка остается.
            0
            Тут буханка не к месту будет. Тут явно ещё одно доказательство, что лень является двигателем прогресса.
          • UFO just landed and posted this here
              +3
              Как защитить такое ведро от собаки? Идея супер.
                +26
                поговорите с собакой
                  0
                  я не знаю собачий, а она человечий :)
                    +1
                    язык кнута и пряника поможет вам обеим (или обоим?) придти к взаимопониманию.
                  +6
                  Как защитить собаку от такого ведра?
                  Собака только подойдет, а оно уже пасть открыло!
                    +1
                    + плюс голосовой модуль со звуками рычащих диких животных :)
                      0
                      Собака есть и она очень быстро просекла, что к ведру близко лучше не подходить :)
                        0
                        А какая порода? У меня лабрадор 1.5 года, он еще как щенок себя ведет. Даже не представляю что он с этим ведром делать будет :)
                          0
                          Маленькая — йорк.
                            0
                            Я вам по секрету скажу — она себя всю жизнь будет как щенок вести. У меня 6.5 лет уже :)
                        +3
                        Вообще, видимо оно сделано для кошек, чтобы вот такого не повторилось
                        image
                        +1
                        А некая «заторможенность» (поднес руку — а крышка открылась как по мне через секунду) связана тоже с неравномерностью рабоыт сервопривода?
                          +1
                          Открытие крышки «двухтактное». Сначала медленно, потом быстро. Еще какое-то время идет выборка зазоров в приводе крышки.
                          +5
                          Есть же Smart Trash Can, которое само за мусором гоняется
                            0
                            Чувак на презентацию прямо со свадьбы пригнал? :)
                              0
                              А с коврами как? Колесики маленькие ведь.
                                0
                                Спасибо за видео. Бедное ведро на колесиках изрядно рассмешило, когда не угналось за мусором. :)
                                +1
                                Из любопытства: A почему не PIR-сенсор?
                                  +1
                                  По нескольким причинам — но в основном из-за размера PIR сенсора.
                                  Еще особенность работы — PIR реагирует на движение, а примененный ИК сенсор на препятствие.

                                    0
                                    А чем размеры не угодили?

                                    Браться китайцы уже научились делать довольно компактные сенсоры.
                                      0
                                      да есть и еще меньше — AM612 (6х8 мм без линзы), например.
                                      Только даже он в ножку не лезет. Там места всего 3-4мм по высоте.

                                      Это нужно ведро другое, чтобы эстетично выглядело…
                                  +3
                                  угу, теперь и ведру розетка понадобится? )
                                    0
                                    И ethernet-розетка. Ждите в следующем выпуске :)
                                      0
                                      можно сразу wifi, С этим меньше проблем.
                                        +4
                                        и твиттер-клиент:
                                        «Хозяин покормил меня недоеденным бутербродом и огрызком яблока. Ням Ням.»
                                          +3
                                          А потом — «Хозяин, вынеси мусор! Я полна до краёв».
                                            +1
                                            Последнее наиболее актуально. Особенно если твитить будет. Дабы не забывал вовремя выносить мусор.
                                              0
                                              Думаю, добавить какой-то датчик объёма и сигнализацию к этому делу, не проблема.
                                                0
                                                Только вот он, скорей всего, не будет правильно реагировать на наполненность ведра. Если выкинуть бутылку, к примеру, она будет по высоте с ведро, а по факту ведро не почти полное, а почти пустое. :)
                                            0
                                            Если его в туалет поставить, то твиты будут достаточно однообразными :(
                                        +1
                                        В общем-то не обязательно.
                                        Если найти ведро с пластиковой крышкой, и серву по слабее, — можно от больших круглых батареек запитать или аккумулятора.
                                        Внутри ведра места достаточно много свободного.
                                          0
                                          Сделать отсек для «выбрасывания» использованных батареек.

                                          habrahabr.ru/post/195604/
                                            +6
                                            — Дорогой, выкинь пожалуйста шкурку от банана.
                                            — Не могу, мусорка села…
                                          +2
                                          Классная идея. Вот бы теперь такое же для крышки унитаза.
                                          Только возникает проблема распознавания пола.
                                            –2
                                            Долго всматривался, какая у Вас буква в последнем слове — Л или П.
                                              0
                                              теперь я понимаю настоящий смысл женского движения за то, чтобы мужчины садились :)
                                              не будет проблемы распознавания пола!
                                              • UFO just landed and posted this here
                                                  0
                                                  нужно распознавание, стоит ли человек лицом или обратной стороной…
                                                    0
                                                    обратной стороной сидеть надо, а не стоять
                                                      0
                                                      и именно так можно узнать, поднимать только крышку или и стульчак тоже
                                                +1
                                                Грамотно, особенно контроль тока понравился- сразу очень много головной боли убирает.
                                                  +3
                                                  Зарождение R2D2.
                                                    +7
                                                    А мне это напомнило

                                                    image
                                                    0
                                                    Для меня есть критический минус в данной конструкции, как таковой.
                                                    Тк нет возможности почувствовать себя Леброном и бросать «трешки» с другого угла комнаты.
                                                    Даешь еще и пульт!!!
                                                      0
                                                      Первый бросок в сторону сенсора, вот и пульт.
                                                        0
                                                        Процент реализации упадет)
                                                          +1
                                                          Можно шарик на веревочку прицепить.
                                                            +2
                                                            Снова вожжевое управление придумывать? На этот раз вместо телевизора ведро? :)
                                                        0
                                                        Сначала так и хотел — бросаешь бумажку, а ведро ее кушает.
                                                        Но не хватает быстродействия данной сервы.
                                                        0
                                                        Скажите, а не сильно ли далеко диод и приемник разнесены?
                                                          0
                                                          Поставить датчик приближения, чтобы открывалось шире когда подносишь руку (или бросаешь мусор).
                                                            0
                                                            Такой вопрос — при пайке MOSFET транзистора — надо ли предпринимать какие-то специальные меры защиты? Лет двадцать пять назад я пытался делать поделки на полевых транзисторах — и работоспособными после пайки оставались далеко не все, хотя вроде заземлено было всё, что можно, и выводы я фольгой закорачивал и «не дыша» припаивал (впрочем у меня был кондовый советский паяльник, а заземлялся я к батарее).
                                                            Как с этим сегодня дела обстоят? Ну то есть я понимаю, что физика за это время не изменилась, но ведь появились современные паяльные станции, антистатические коврики и т.п. Или со статикой сегодня больше не заморачиваются?
                                                              0
                                                              Появились новые полупроводниковые материалы и новые марки транзисторов. У нас в лабе только паяльные станции заземлены, браслетами мы не заморачиваемся.
                                                                0
                                                                С этим MOSFET-ом не было ни каких проблем. Он вообще из дохлой материнской платы выпаян.
                                                                  0
                                                                  Не берите в голову. Почти 10 лет работаю инженером и за это время перепаял тысячи мосфетов, биполярников и просто полевиков без всяких антистатиков и заземлений. Ни разу ничего не убил… Единственные две вещи которые выработал на уровне инстинкта — никогда не передавать плату из рук в руки и перед тем как лезть внутрь компа — коснуться рукой корпуса.
                                                                  0
                                                                  Истинно мужское мусорное ведро. Неудобное, вонючее, зато компьютеризированное.
                                                                  У моего друга было такое покупное, он им очень гордился. Мне стоило немалых трудов избавиться от этого монстра, когда мы съехались.
                                                                  Это такой Windows в мире мусорных ведер, понимаете? Он всегда знает за тебя, чего ты хочешь. Теоретически должно быть удобно, а практически — нафиг, нафиг.
                                                                    0
                                                                    Ну не знаю. Разве оно стало более вонючим от того, что туда добавили электронику?
                                                                    А лишний раз не трогать грязную крышку — дело хорошее. Чем неудобно-то?
                                                                      +6
                                                                      Не дело это, на ИТ-ресурсе рассказывать про такие мелочи, но все-таки коротко объясню: пластиковый мешок порвался, кухонные отбросы просочились — надо мыть ведро.
                                                                      В нем, в отличие от гладкого пластмассового, много разных деталей в нижней части. Мыть все это долго и противно, никому не хочется. Появляется стойкий запах.
                                                                      Если вы питаетесь пельменями и в мусоре только упаковка, то эта проблема исключается, но если вы реально готовите продукты и в мусор попадают и очистки, и мясные отходы, то ведро должно быть в первую очередь легкомоющимся.
                                                                      А уж как бесит эта необходимость ожидания, пока ведро откроется! Даже если это совсем чуть-чуть, но каждый день по нескольку раз — это собирается в минуты и часы.
                                                                      Одним словом, готовьтесь к тому, что ваша жена будет потихоньку задвигать это суперведро подальше. Осторожненько так, чтобы не обидеть любимого мужчину.

                                                                      А лишний раз не трогать грязную крышку

                                                                      Секрет в том, что она не должна быть грязной.
                                                                        0
                                                                        Это ведро двойное — внутри железного корпуса пластиковое ведро-вставка с ручкой.

                                                                        А со временем, конечно, любое ведро попахивать будет…
                                                                          0
                                                                          Это вопрос правильной реализации а не самого подхода.
                                                                          Разумеется, схематику надо убирать под двойное дно (либо, как уже прокомментировали — под вставку-пластиковое ведро), а паузы сводить к минимуму.
                                                                          Вон, сделали ведро, которое само бросается к падающему мусору (кинект там, кажется, использовали, чтобы отследить траекторию) и успевает его поймать.
                                                                            0
                                                                            А в ведре и не должно быть ничего, кроме упаковки. Откройте для себя garbage disposers.

                                                                            image
                                                                              0
                                                                              их можно использовать не везде
                                                                          +4
                                                                          Ну вообще-то именно в этом мусорном ведре (Tarrington House) в железный каркас вставляется пластиковое ведро, а в него уже мешок для мусора. На фотографии автора пластиковое ведро убрано и показан только каркас.
                                                                          0
                                                                          У нас господа сделали так — все ведро железное, одето на пластиковый каркас — вроде здесь такое-же, так вот все оно используется как датчик сенсора — т.е. работает на прикосновение (емкостной) — прикоснулся оно открылось, потом через некоторое время закрылось (либо по повторному касанию). Не так круто, но зато проще в реализации, стабильно в работе.
                                                                          Кстати на видео автор тоже касается крышки :-)
                                                                            0
                                                                            Для неумеющих паять производители уже наклепали такие ведра:
                                                                            www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dgarden&field-keywords=Sensor%20Trash%20Can

                                                                            А так, очень полезный DIY проект.
                                                                            • UFO just landed and posted this here
                                                                                +12
                                                                                Напомнило (хотя и баянчик):

                                                                                  +1
                                                                                  Вот бы такое для крышки унитаза
                                                                                    +2
                                                                                    А вот оно сбойнет в ответственный момент…
                                                                                      +2
                                                                                      Смотреть до конца:



                                                                                      © lleo
                                                                                        0
                                                                                        Если мне не изменяет память, оно не начинает вертеться, если на нем сидишь.
                                                                                        Проверю в следующий раз :)
                                                                                    +4
                                                                                    Задержка в открывании ведра — ужасна. Ногой как-то оперативнее получается.
                                                                                    Почему положение сервы по току определяется? Ее же смысл в том, чтобы позиционировать вал достаточно точно без внешних датчиков… Можно было бы просто двигателем обойтись в серве, и не городить импульсы для сервоуправления…
                                                                                      0
                                                                                      Да ногой пока получается быстрее. Попробую ускорить.

                                                                                      Положение не определяется по току. По току срабатывает защита, если на ведро кто-то сел либо внутрь положил чего-то не габаритное.
                                                                                      +1
                                                                                      Требую вайфай и управление с мобильника. Чтобы оно крышкой гремело заместо будильника и можно было удалённо похлопать.
                                                                                        0
                                                                                        показывать гостям полтергейста?
                                                                                        +1
                                                                                        Если бы оно умело детектить летящий в него мусор и оперативно открываться — цены бы ему не было!
                                                                                        Люблю в офисе скомканные бумажки выкидывать в урну которая находится не на расстоянии вытянутой руки… :)
                                                                                        0
                                                                                        Еще прикольно было бы если бы ведро ездило и ловило мусор на лету :)
                                                                                          0
                                                                                          ага, особенно когда дети играют в пинг — понг.
                                                                                            0
                                                                                            Главное чтобы ведро не начало убивать за мусор, который пролетел, но предназначался не для ведра :D
                                                                                              0
                                                                                              Главное, чтобы оно не поумнело в процессе модернизаций и не стало таить обиду за мусор, кинутый мимо. :)
                                                                                          0
                                                                                          vad7, подкажите, пожалуйста, а как Вы осциллограммы получали? Это в Studio есть эмулятор (первая группа картинок?) или у Вас какой-то осциллограф, подключаемый к PC (вторая группа?)?
                                                                                          И, если позволите, три вопроса по схемотехнике :)
                                                                                          — Правильно я понимаю, что С2 на плате находится около МК и подсглаживает его питание?
                                                                                          — С1 из даташита ИК-приемника по аналогичной причине?
                                                                                          — А я греншным делом полагал, что для полевых транзисторов, особенно цифровых, R7 не потребуется. Жестоко ошибался?
                                                                                            0
                                                                                            Первые осциллограммы из Proteus-а.
                                                                                            Вторая группа — осциллограф DSO Quad.
                                                                                            1. да
                                                                                            2. да
                                                                                            3. рекомендуется ставить для защиты выхода мк
                                                                                              0
                                                                                              Поправка:
                                                                                              1. борется с помехами
                                                                                              2. для стабильности питания
                                                                                                0
                                                                                                Понял. Спасибо!
                                                                                            +1
                                                                                            >У нее выдаваемое усилие при 4.8 В около 2.4 кг/см, а при 6 В — 3 кг/см
                                                                                            Наверное, всё же «усилие» (момент силы) измеряется в единицах кг*см, а не кг/см. Иначе получится, что чем длиннее рычаг, тем большее усилие развивается на его кончике.

                                                                                            Only users with full accounts can post comments. Log in, please.