- Как сделать электронную кормилку с дозатором для кота — автоматическая кормушка для кошек своими руками
- Шаг 1: Необходимые материалы
- Шаг 2: Изготавливаем шнек (механизм подачи пищи)
- Шаг 3: Делаем корпус
- Шаг 4: Электронные компоненты Arduino
- Шаг 5: Программирование
- Шаг 6: Проводим апгрейд: замена серводвигателя подачи на шаговый двигатель NEMA 17
- Автоматическая кормушка для животных на Arduino
- Необходимые компоненты
- Работа схемы
- 3D модель механических частей кормушки
- Модуль часов реального времени (RTC Module) DS3231
- Объяснение кода программы для Arduino
Как сделать электронную кормилку с дозатором для кота — автоматическая кормушка для кошек своими руками
Предлагаем изготовить своими руками автоматическую кормушку для кошек, работающую под управлением 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» драйвера, отключаются все выходы данного драйвера. Это позволяет экономить энергию, а также избежать нагрева платы драйвера. Поэтому имеет смысл использовать этот вывод.
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.
Источник
Автоматическая кормушка для животных на Arduino
В этой статье мы рассмотрим создание автоматической кормушки для животных на основе платы Arduino, которая автоматически будет выдавать еду вашим домашним питомцам по расписанию. В составе этого устройства присутствует микросхема часов реального времени DS3231 RTC (Real Time Clock), с помощью которой устанавливаются дата и время для нашей кормушки. Таким образом, с помощью микросхемы часов реального времени и платы Arduino можно составить расписание, по которому вашим домашним животным будет автоматически выдаваться пища.
Для отображения времени и других статусных сообщений устройства используется ЖК дисплей 16х2. Для привода в действие механизма кормушки используется сервомотор. Клавиатура (клавишная панель) 4х4 используется для выставления времени, в которое нужно кормить животных. Количество выдаваемой кормушкой пищи можно регулировать с помощью угла поворота сервомотора, поэтому ее можно использовать для кормления различных домашних животных – собаки, кошки, птицы и т.д.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Клавиатура (клавишная панель) 4х4 (купить на AliExpress).
- Модуль часов реального времени DS3231 (RTC DS3231 module) (купить на AliExpress).
- ЖК дисплей 16х2 (купить на AliExpress).
- Кнопка.
- Сервомотор (купить на AliExpress).
- Резисторы (купить на AliExpress).
- Соединительные провода.
- Макетная плата
Работа схемы
Схема автоматической кормушки для животных на основе платы 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 необходимо скачать дополнительные библиотеки. Их можно скачать по следующим ссылкам:
Сначала в программе нам необходимо подключить библиотеки, которые мы будем использовать для работы.
Источник