Инженер Бен Миллам (Ben Millam) устал кормить свою кошку по кличке Обезьянка (Monkey) обычным способом, постоянно насыпая корм. Поэтому он сделал альтернативную систему кормления на Arduino: так веселее и Обезьянке, и ему самому.
Каждая кошка в душе — охотник. Неспроста они каждый день ходят по одному и тому же маршруту, исследуя углы: маленький хищник осматривает свою территорию и ищет добычу. Чтобы удовлетворить охотничьи потребности Обезьянки, инженер сделал технологичную «кормилку», которая отсыпает корм только если внутрь засунуть маленький мячик.
Фокус в том, что мячики каждый раз в новых местах, куда их прячет хозяин. Это и есть желанная добыча: кошка очень горда собой, когда всё-таки найдёт её. Охотничий инстинкт удовлетворён.
Перед запуском автоматической «кормилки» Бен Миллам рекомендует сначала потренировать кота. В частности, его Обезьянка тренировалась сначала на простом «кликере» — она должна была нажать на кнопку, чтобы получить корм. На YouTube можно найти много обучающих видео, как тренировать кота нажимать кнопку.
После этого кошку нужно постепенно приучать охотиться за мячиком, разбив эту сложную задачу на несколько простых подзадач. Кошка посмотрела на мячик — кликер срабатывает и выдаёт корм (повторяется до тех пор, пока навык не станет устойчивым). Дальше, кошка приблизилась к мячику — кликер срабатывает (опять же, повторяется необходимое количество раз). Следующие подзадачи: 3) кошка нюхает мяч; 4) бьёт мяч; 5) бьёт мяч и поднимает его; 6) бьёт мяч, поднимает его и держит несколько секунд.
Во время дрессировки каждое действие поощряется до тех пор, пока навык не станет устойчивым. После этого вознаграждение прекращается, пока кошка не выполнит следующее действие в списке.
Отдельно происходит обучение кота приближаться к месту сброса мяча.
В конце концов, нужно объединить оба направления тренировки, чтобы кот вместе с мячом приблизился к месту сброса.
Если дрессировка прошла удачно, то пришло время собирать автоматическую «кормилку». Вот как выглядит приёмник для мячика. Он подаёт команду на выдачу корма.
Автор установил RFID-контроллер Adafruit PN532 , который считывает RFID-метки с мячей и инициирует выполнение программы Arduino на кормление. Arduino Uno переключает реле, которое замыкает контур — и «кормилка» модели Super Feed выдаёт порцию корма.
Другие использованные компоненты: плата твердотельного реле с двойным выходом; RF-приёмник M4 на 315 МГц для приёма сигнала с пульта дистанционного управления; четырёхкнопочный пульт Д/У на 315 МГц; радиобрелок MiFare Classic (13,56 МГц RFID/NFC)
Оригинал статьи на Хабре (2015 год)
К лучшим публикациям Хабра за сутки