Автокормушка для кошек arduino

Умная автоматическая кормушка для питомца на базе Arduino – ШАГ 1

В данном цикле статей я буду рассказывать о моем опыте сборки «умной» автоматической системы для кормления домашнего питомца, в моем случае – кота.

Хочу сразу отметить, что на первом шаге речь пойдет только об «автоматической» кормушке, а «умной» она станет на следующих этапах (если повезет, и все пойдет по плану).

Итак, начнем с концепции и целей:

  1. Сделать систему, которая освободит меня от обязанности кормить кота сухим кормом (шаг 1)
  2. Оснастить систему датчиком веса под миской и осуществлять кормежку в соответствии с показаниями весов: если миска пустая – подсыпать, иначе – ждать пока миска не станет пустой (шаг 2)
  3. Добавить в систему вай-фай модуль и видеокамеру для передачи фотографий с любимым котом, а также обеспечить контроль кормежки удаленно. Кроме того, собирать данные о том сколько кот съел и строить аналитику (шаг 3)

На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.

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

    Используется контейнер и сама система из под диспенсера мюслей (наверняка видели в отелях). Внизу в горлышке контейнера установлен стержень с лопостями. Ось стержня лежит вдоль плоскости горлышка. К нему прикреплен мотор, который прокручивает лопасть на одно деление один раз в заданный промежуток времени


Такой механизм выглядит довольно аккуратно, его легко собрать (собственно и собирать почти ничего не надо), но, увы, очень уж дорогой. Но тут на вкус и цвет.

Другой вариант — наоборот, конструкция делается своими руками из акрила, а вращающийся дозатор из CD дисков. Довольно понятно о том, как сделать такую кормушку рассказано в этом видео https://www.youtube.com/watch?v=C_ezRywtVg4&t=20s. Если есть под рукой акрил, резак для него, ну и в принципе есть какой-то опыт в сборке такого рода вещей, то это дов
ольно бюджетный вариант. Но не для таких как я — самостоятельно все спроектировать, вырезать и ровненько соединить требует другого уровня аккуратности.

  • Для третьего варианта потребуется: обычная банка, которая будет играть роль контейнера, что-то, из чего можно вырезать небольшой сектор (подойдет, например, крышка какой-нибудь пластмассовой икеевской коробки), ну и пара магнитов для крепежа конструкции. Этот вариант мы и разберем подробней, он не требует инженерного образования и большого количества вложений, в общем, как раз то, что нужно.
  • Все материалы, которые мне были нужны для сборки кормушки на первом этапе:

    • Стеклянная банка
    • ArduinoUno
    • MicroServo (у меня разрешенный угол поворота 180, но это не принципиально)
    • кусок пластика
    • магниты
    • пины для соединении платы с серводигателем
    • Usb зарядка на 5V

    Логика работы механизма проста: в крышке банки делается дырка типа сектор (центр крышки не вырезается), такой же сектор вырезается из пластмассы. Внутрь крышки прикрепляется серводвигатель, например, скотчем. На ось двигателя насаживается сначала крышка, а с внешней стороны вырезанный сектор. Так, при повороте оси серводвигателя вырезанный сектор смещается относительно дырки в крышке банки.

    Также надо не забыть сделать дырочку под вывод провода серводвигателя наружу для подключения к плате. На шаге 1 кормежка происходит по таймеру, кот у меня не обжора, поэтому открытие сектора происходит раз в день на короткое время, ниже код для Arduino:

    Для крепежа банки к стене я использовала вот такие магниты, каждый на 4кг (мне кажется лучше использовать более мощные). К банке магниты крепятся просто клеем, к стене — винтами.

    Плата прикреплена к банке при помощи такой липучки, ее удобно снимать и крепить обратно. Липучка такая продается в любом хозяйственном, используется для крепежа картин.

    Поскольку у меня единственным внешним модулем является серводвигатель, то дополнительного питания не надо, достаточно запитать плату, ее можно подключить напрямую к сети через usb зарядку на 5V.

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

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

    • установка датчиков движения, фотографирование кота в тот момент, когда он появляется в зоне видимости. Интеграция датчика веса и датчика движения позволяет определять, когда кот просто прогуливается мимо кормушки, а когда пришел покушать. Соответственно, можно прикрутить аналитику, когда котэ предпочитает кушать и как много.
    • можно добавить датчик веса в сам контейнер с кормом, чтобы кормушка определяла момент, когда становится пустой и присылала предупреждение хозяину, что, мол, пусто, надо пополнить. Потом, как вариант, прикрутить возможность автозаказа корма с любимого сайта с доставкой.
    • Можно добавить возможность кормушки работать на двух котов:
      • Либо это будут две разные кормушки, каждая из которых умеет отпугивать “чужого” кота
      • Либо это одна, но как-то модифицированная
    • Надо подумать как реализовать поилку и синтегрировать ее с кормушкой, добавить систему фильтрации.

    Источник

    Автоматическая кормушка для животных на Arduino

    В этой статье мы рассмотрим создание автоматической кормушки для животных на основе платы Arduino, которая автоматически будет выдавать еду вашим домашним питомцам по расписанию. В составе этого устройства присутствует микросхема часов реального времени DS3231 RTC (Real Time Clock), с помощью которой устанавливаются дата и время для нашей кормушки. Таким образом, с помощью микросхемы часов реального времени и платы Arduino можно составить расписание, по которому вашим домашним животным будет автоматически выдаваться пища.

    Для отображения времени и других статусных сообщений устройства используется ЖК дисплей 16х2. Для привода в действие механизма кормушки используется сервомотор. Клавиатура (клавишная панель) 4х4 используется для выставления времени, в которое нужно кормить животных. Количество выдаваемой кормушкой пищи можно регулировать с помощью угла поворота сервомотора, поэтому ее можно использовать для кормления различных домашних животных – собаки, кошки, птицы и т.д.

    Необходимые компоненты

    1. Плата Arduino Uno (купить на AliExpress).
    2. Клавиатура (клавишная панель) 4х4 (купить на AliExpress).
    3. Модуль часов реального времени DS3231 (RTC DS3231 module) (купить на AliExpress).
    4. ЖК дисплей 16х2 (купить на AliExpress).
    5. Кнопка.
    6. Сервомотор (купить на AliExpress).
    7. Резисторы (купить на AliExpress).
    8. Соединительные провода.
    9. Макетная плата

    Работа схемы

    Схема автоматической кормушки для животных на основе платы Arduino представлена на следующем рисунке.

    Для получения информации о времени и дате в схеме используется микросхема часов реального времени (RTC Module). Клавиатура 4х4 вместе с ЖК дисплеем используются для установки времени кормления. Также ЖК дисплей используется для отображения времени и даты.

    Внешний вид собранного устройства на макетной плате у нас получился следующий:

    3D модель механических частей кормушки

    Мы для изготовления механических частей кормушки использовали 3D принтер, но если у вас его нет, то, мы думаем, для вас не составит особого труда изготовить их из подручных средств.

    А если у вас есть 3D принтер, то скачать дизайн механических частей нашей кормушки вы можете по этой ссылке. Материал, использованный для изготовления кормушки, называется PLA. Все 4 части кормушки показаны на следующем рисунке:

    Соберите все 4 части в единое целое и подсоедините к ним сервомотор как показано на следующем рисунке.

    Также вы можете скачать STL файлы для печати этих частей кормушки на 3D принтере.

    Модуль часов реального времени (RTC Module) DS3231

    Модуль часов реального времени DS3231 используется в большом числе различных радиоэлектронных проектов для хранения информации о времени и дате. Модуль имеет свою собственную небольшую батарейку (на фото ниже) поэтому может хранить информацию о времени и дате даже когда питание основного устройства отключено. Достаточно один раз в модуле установить дату и время и они будут храниться в нем до тер пока не исчерпается заряд батарейки.

    Соответственно, информация о времени кормления животных берется из данного модуля – как только наступает время кормления сервомотор открывает задвижку контейнера и еда поступает животным.

    Примечание : перед началом использования модуля DS3231 вам необходимо установить в нем правильные дату и время. Более подробно о работе с данным модулем вы можете прочитать в статье про часы реального времени на основе Arduino.

    Объяснение кода программы для Arduino

    Полный код программы приведен в конце статьи, здесь же рассмотрим его наиболее важные фрагменты.

    Для работы с сервомотором и ЖК дисплеем в Arduino IDE есть встроенные библиотеки, но для взаимодействия с модулем DS3231 и клавиатурой 4х4 необходимо скачать дополнительные библиотеки. Их можно скачать по следующим ссылкам:

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

    Источник

    Как сделать электронную кормилку с дозатором для кота — автоматическая кормушка для кошек своими руками

    Предлагаем изготовить своими руками автоматическую кормушку для кошек, работающую под управлением Arduino, с использованием шнека, напечатанного на 3D-принтере. Кормушка запрограммирована на подачу корма два раза в сутки, количество разовой выдачи пищи задается пользователем. Устройство имеет встроенные часы и резервное питание от батарей.

    Если ваши любимые кошки по утрам сводят вас с ума, прося еды, значит настало время роботизировать процесс их кормления.

    Кормушки для кота с дозатором, которые есть в продаже, имеют ряд недостатков, таких как: ужасная система программирования, энергозависимая память (стирается, при отсутствии питания) и др.

    Хорошая кормушка для котов с таймером стоит более 300 долларов США, поэтому есть смысл сделать такую автокормушку самостоятельно.

    Шаг 1: Необходимые материалы

    • Один обычный серводвигатель.
    • Один непрерывный (или взломанный) серводвигатель.
    • Один шнек, напечатанный на 3D-принтере.
    • ПВХ-тройник.
    • Один контроллер Arduino (UNO или любого другого типа).
    • Один энкодер KY-040.
    • Один символьный (буквенно-цифровой) жидкокристаллический дисплей на базе контроллера HD44780.
    • Одна небольшая кнопка (без фиксации).
    • Один высокий контейнер для еды.
    • Одна монтажная коробка из МДФ.
    • Один блок питания на 12 В, 500 мА (лучше 1 А).

    Шаг 2: Изготавливаем шнек (механизм подачи пищи)

    Один из сложных моментов в проекте автоматической кормилки для кошек – создание шнека. Придется изготовить его при помощи 3D-печати. Скачайте проект с ресурса Thigiverse и распечатайте его. Если у вас нет 3D-принтера, можете вначале построить и его.

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

    Серводвигатель, использующийся для привода шнека, должен иметь непрерывный ход. Такой можете сделать из обычного серводвигателя: для этого его нужно разобрать, удалить пластиковый выступ на одном из зубцов и убрать потенциометр. Поищите в интернете способы переделки обычных серводвигателей на двигатели с непрерывным вращением.

    Вставьте и прикрутите сервопривод к основанию шнека. Убедитесь, что он выровнен и не имеет биений. Протестируйте работу шнека в пластиковом тройнике диаметром 15 мм (используется в сантехнике). Если шнек работает без проблем, зафиксируйте его в тройнике темро-клеем.

    Шаг 3: Делаем корпус

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

    Напечатайте на 3D-принтере панель (или найдите подходящую) для установки на нее ЖК-дисплея, кнопки ручной подачи и энкодера. Прикрутите все это на коробку корпуса. Все должно выглядеть красиво и аккуратно!

    Мешалку для пищи также напечатайте на 3D-принтере и прикрепите к планке (которая насаживается на вал серводвигателя и идет с ним в комплекте).

    Контейнер для еды крепится на корпус и легко может быть заменен.

    Пройдет некоторое время, и, возможно, ваши кошки научаться самостоятельно нажимать кнопку ручной подачи корма!

    Шаг 4: Электронные компоненты Arduino

    Наше устройство будет управляться с помощью системы Arduino. Сначала соберите на макетной плате прототип электронной начинки, так вам будет легче проводить отладку устройства. Ниже есть ссылка на файл Fritzing. Загрузите его и подробно изучите макет. Программа Fritzing является бесплатной, с открытым кодом.

    Ознакомьтесь с принципами работы и управления ЖК-дисплеем, энкодера, модуля часов реального времени, сервоприводов, затем объедините все это и переходите к программированию.

    В проекте используются два серводвигателя, первый — для подачи корма с помощью шнекового механизма, второй – для перемешивания корма перед каждым кормлением, чтобы предотвратить его слипание (в устройство загружается сухой корм).

    После того, как электроника будет отлажена и протестирована, можно собирать схему в более компактном исполнении. Контроллер Arduino, для экономии места, можете заменить чипом ATMEGA328P. Также вам потребуется источник питания 5 В.

    Ссылка на эскиз макетной платы, созданный с помощью программы PCB Wizard, есть в конце этого шага.

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

    Можете изменить схему на свое усмотрение: исключить кнопку и энкодер, или наоборот, добавить какие-то компоненты; можете изготовить плату травлением, или вырезать дорожки с помощью ножа – выбор за вами. Главное потом написать правильный код.

    Шаг 5: Программирование

    Код программы не такой сложный, как может показаться на первый взгляд.

    Программа работает следующим образом:

    • Считывается время из модуля часов реального времени.
    • На ЖК-экране отображается текущее время, а также время кормления и доза корма (по умолчанию).
    • Отслеживается работа энкодера, если его вращать, то начинают циклически переключаться параметры: часы, размер порции, время подачи-1, время подачи-2.
    • Проверяется, подошло ли время кормления (1 или 2), если подошло, то выдается очередная порция пищи.
    • Отслеживается нажатие кнопки ручной подачи корма: если кнопка нажата, то подается корм. После отпускания кнопки, продолжается обычная работа программы.

    В программе используются прерывания – реакция на действия вмешательства из вне, в нашем случае, это будет происходить при поступлении сигнала от энкодера. Это означает, что если вы начнете вращать ручку энкодера, то какое бы действие в этот момент программа не выполняла, она переходит под управление энкодера.

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

    Процедура кормления основана на функции if (если), то есть, когда текущее время совпадает с запрограммированным временем кормления, выполняется процедура подачи пищи.

    Код, в представленном здесь скетче, не идеален, например, поворот энкодера не всегда увеличивает число на экране. Но, возможно, вам удастся выявить и устранить эту проблему.

    На первом видео присутствует момент ручной подачи корма. Автоматически машина подает корм два раза в сутки в заданное время. Если задать одинаковое время для кормления-1 и кормления-2, то корм будет подаваться один раз в сутки. Скачайте скетч с кодом ниже.

    Шаг 6: Проводим апгрейд: замена серводвигателя подачи на шаговый двигатель NEMA 17

    Проведем апгрейд нашей машины: заменим серводвигатель подачи на шаговый двигатель Nema 17, приводимый в движение при помощи драйвера EasyDriver.

    Осуществить замену несложно. У шагового двигателя типа Nema 17 имеется 6 выводов. Определите, какие провода являются выводами катушки «A», а какие катушки «B» и игнорируйте остальные. Если у вашего двигателя четыре вывода, то вам будет проще.

    Выполните подключение драйвера EasyDriver следующим образом:

    • Плюсовой вывод подключается к +12 В источника питания.
    • Провод «Земля» подключается к минусу.
    • Пара проводов катушки «A» идет на контакты «A» драйвера.
    • Аналогично, провода катушки «B» идут на контакты «B» драйвера.
    • Контакт «Step» на плате драйвера подключите к цифровому выводу 13 на контроллере Arduino.
    • Контакт «Dir» – к аналоговому выводу A0 на Arduino (этот вывод будет использоваться в качестве цифрового).
    • Контакт «Enable» на плате EasyDriver подключите к выводу A1. С помощью этого вывода будет производиться включение и выключение питания драйвера для экономии электроэнергии.

    Можете просто припаять провода непосредственно на платы драйвера и контроллера Arduino. Переподключать модуль часов реального времени не потребуется. Просто отключите серводвигатель, и подключите вместо него драйвер шагового двигателя EasyDriver.

    После замены серводвигателя на шаговый, код программы нужно будет откорректировать. Для управления шаговым двигателем используется библиотека «Accellstepper». Адаптированный для шагового двигателя скетч, доступен для скачивания в конце этого шага. При подаче низкого уровня на вывод «Enable» драйвера, отключаются все выходы данного драйвера. Это позволяет экономить энергию, а также избежать нагрева платы драйвера. Поэтому имеет смысл использовать этот вывод.

    Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

    Источник

    Adblock
    detector