Оглавление:

Система мониторинга домашних животных на базе Arduino и Raspberry Pi: 19 шагов (с изображениями)
Система мониторинга домашних животных на базе Arduino и Raspberry Pi: 19 шагов (с изображениями)

Видео: Система мониторинга домашних животных на базе Arduino и Raspberry Pi: 19 шагов (с изображениями)

Видео: Система мониторинга домашних животных на базе Arduino и Raspberry Pi: 19 шагов (с изображениями)
Видео: Maixduino - доступное машинное зрение | #Обзор 2024, Июль
Anonim
Image
Image
Система мониторинга домашних животных на базе Arduino и Raspberry Pi
Система мониторинга домашних животных на базе Arduino и Raspberry Pi
Система мониторинга домашних животных на базе Arduino и Raspberry Pi
Система мониторинга домашних животных на базе Arduino и Raspberry Pi

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

Поэтому мы разработали надежного робота, который может маневрировать по дому и следить за своим питомцем с помощью Интернета вещей. Приложение для смартфона было разработано для взаимодействия с вашим питомцем с помощью видеотрансляции в реальном времени. Шасси робота изготовлено в цифровом виде, так как несколько деталей были созданы с использованием 3D-печати и лазерной резки. Наконец, мы решили добавить бонусную функцию, которая раздавала угощения в качестве награды вашему питомцу.

Затем создайте свою собственную систему мониторинга домашних животных и, возможно, даже настройте ее в соответствии с вашими требованиями. Посмотрите видео по ссылке выше, чтобы увидеть, как наш питомец отреагировал, и лучше понять робота. Если вам понравился проект, то опустите голос в «Конкурсе робототехники».

Шаг 1. Обзор дизайна

Обзор дизайна
Обзор дизайна
Обзор дизайна
Обзор дизайна

Чтобы концептуализировать робота для наблюдения за домашними животными, мы сначала разработали его на базе Fusion 360. Вот некоторые из его функций:

Роботом можно управлять через приложение через Интернет. Это позволяет пользователю подключаться к роботу из любого места

Бортовая камера, которая транслирует видео в прямом эфире на смартфон, может помочь пользователю передвигаться по дому и взаимодействовать с домашним животным

Дополнительная миска для угощения, которая может вознаграждать вашего питомца удаленно

Детали, изготовленные цифровым способом, которые позволяют настраивать своего робота

Raspberry Pi использовался для подключения к Интернету, поскольку он имеет встроенный режим Wi-Fi

Arduino использовался вместе с экраном ЧПУ, чтобы отдавать команды шаговым двигателям

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

Необходимые материалы
Необходимые материалы
Необходимые материалы
Необходимые материалы

Вот список всех компонентов, необходимых для создания собственного робота для мониторинга домашних животных на базе Arduino и Raspberry Pi. Все детали должны быть общедоступными и легко доступными.

ЭЛЕКТРОНИКА:

  • Arduino Uno x 1
  • Raspberry Pi (прошит последней версией raspbian) x 1
  • Щит с ЧПУ x 1
  • A4988 Драйвер шагового двигателя x 2
  • Пикамера x 1
  • Ультразвуковой датчик расстояния x 1
  • Батарея Lipo 11,1 В x 1
  • Шаговый двигатель NEMA 17 x 2
  • 5v UBEC x 1

АППАРАТНОЕ ОБЕСПЕЧЕНИЕ:

  • Колеса x 2 (колеса, которые мы использовали, были диаметром 7 см)
  • Ролики x 2
  • Гайки и болты M4 и M3

Общая стоимость этого проекта без учета Arduino и Raspberry Pi составляет около 50 долларов.

Шаг 3: детали, изготовленные цифровым способом

Детали, изготовленные цифровым способом
Детали, изготовленные цифровым способом
Детали, изготовленные цифровым способом
Детали, изготовленные цифровым способом

Некоторые детали, которые мы использовали в этом проекте, нужно было изготовить на заказ. Сначала они были смоделированы в Fusion 360, а затем были изготовлены с помощью 3D-принтера и лазерного резака. Детали, напечатанные на 3D-принтере, не выдерживают больших нагрузок, поэтому стандартный PLA с заполнением 20% отлично работает. Ниже приведен список всех деталей, напечатанных на 3D-принтере и вырезанных лазером:

Детали, напечатанные на 3D-принтере:

  • Держатель шагового двигателя x 2
  • Крепление системы обзора x 1
  • Противостояние электроники x 4
  • Вертикальная распорка x 4
  • Усиление шасси x 2
  • Крышка для угощения x 1
  • Миска для угощений x 1
  • Заднее крепление шагового двигателя x 1
  • Обмоточный диск x 1

Детали для лазерной резки:

  • Нижняя панель x 1
  • Верхняя панель x 1

Заархивированная папка, содержащая все файлы STL и файлы для лазерной резки, находится в приложении ниже.

Шаг 4: Установка шагового двигателя

Присоединение шагового двигателя
Присоединение шагового двигателя
Присоединение шагового двигателя
Присоединение шагового двигателя
Присоединение шагового двигателя
Присоединение шагового двигателя

После того, как все детали напечатаны на 3D-принтере, начните сборку, установив шаговый двигатель в держатель шагового двигателя. Разработанный нами держатель шагового двигателя предназначен для модели NEMA 17 (при использовании других шаговых двигателей потребуется другое крепление). Проденьте вал двигателя через отверстие и закрепите двигатель крепежными винтами. После этого оба двигателя должны быть надежно закреплены в держателях.

Шаг 5: Установка шаговых двигателей на нижнюю панель

Установка шаговых двигателей на нижнюю панель
Установка шаговых двигателей на нижнюю панель
Установка шаговых двигателей на нижнюю панель
Установка шаговых двигателей на нижнюю панель
Установка шаговых двигателей на нижнюю панель
Установка шаговых двигателей на нижнюю панель

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

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

Шаг 6: установка колес

Установка колес
Установка колес
Установка колес
Установка колес
Установка колес
Установка колес

Акриловая панель имеет две секции, вырезанные под колеса. Колеса, которые мы использовали, были диаметром 7 см и поставлялись с установочными винтами, прикрепленными к шаговым валам 5 мм. Убедитесь, что колесо надежно закреплено и не скользит по валу.

Шаг 7: Передние и задние колесики

Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса
Передние и задние поворотные колеса

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

Шаг 8: Электроника

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

После того, как основание шасси полностью собрано, пришло время установить электронику на акриловую панель. Мы проделали отверстия в акриловой панели, которые совпадают с монтажными отверстиями Arduino и Raspberry Pi. Используя напечатанные на 3D-принтере стойки, мы немного приподняли электронику над акриловыми панелями, чтобы вся лишняя проводка могла быть аккуратно спрятана под ними. Установите Arduino и Raspberry Pi в соответствующие места крепления с помощью гаек и болтов M3. После фиксации Arduino прикрепите экран ЧПУ к Arduino и подключите шаговые провода в следующей конфигурации.

  • Левый шаговый двигатель к ЧПУ экранирует порт оси X
  • Правый шаговый двигатель к ЧПУ экранирует порт оси Y

Подключив шаговые двигатели, подключите Arduino к Raspberry Pi с помощью USB-кабеля Arduino. В конечном итоге Raspberry Pi и Arduino будут связываться через этот кабель.

Примечание: передняя часть робота - это сторона Raspberry Pi.

Шаг 9: Система обзора

Система обзора
Система обзора
Система обзора
Система обзора
Система обзора
Система обзора

Первичным входом в окружающую среду для нашего робота-наблюдателя за домашними животными является зрение. Мы решили использовать Picamera, совместимую с Raspberry Pi, для передачи пользователю прямой трансляции через Интернет. Мы также использовали ультразвуковой датчик расстояния, чтобы избегать препятствий, когда робот работает автономно. Оба датчика крепятся к держателю с помощью винтов.

Слоты Picamera вставляются в назначенный порт на Raspberry Pi и подключают ультразвуковой датчик следующим образом:

  • Ультразвуковой датчик VCC на шину 5 В на щитке с ЧПУ
  • Ультразвуковой датчик GND к шине GND на экране ЧПУ
  • Ультразвуковой датчик TRIG к X + концевой упорный штифт на щите ЧПУ
  • Ультразвуковой датчик ECHO к Y + концевой упор на щите ЧПУ

Шаг 10: Сборка верхней панели

Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели

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

Шаг 11: Сборка верхней панели

Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели
Сборка верхней панели

Мы напечатали на 3D-принтере вертикальные распорки, чтобы поддерживать верхнюю панель на нужной высоте. Начните с прикрепления четырех прокладок к нижней панели, чтобы образовать букву «X». Затем поместите верхнюю панель с чашей для угощения, убедившись, что их отверстия совпадают, и, наконец, прикрепите ее к распоркам.

Шаг 12: механизм открывания крышки

Механизм открывания крышки
Механизм открывания крышки
Механизм открывания крышки
Механизм открывания крышки
Механизм открывания крышки
Механизм открывания крышки

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

Шаг 13: Настройка облачной базы данных

Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных
Настройка облачной базы данных

Первый шаг - создать базу данных для системы, чтобы вы могли общаться с роботом из своего мобильного приложения из любой точки мира. Щелкните следующую ссылку (Google firebase), которая приведет вас на веб-сайт Firebase (вам нужно будет войти в свою учетную запись Google). Нажмите кнопку «Начать», чтобы перейти к консоли firebase. Затем создайте новый проект, нажав кнопку «Добавить проект», заполните требования (имя, детали и т. Д.) И завершите, нажав кнопку «Создать проект».

Нам просто нужны инструменты базы данных Firebase, поэтому выберите «база данных» в меню слева. Затем нажмите кнопку «Создать базу данных», выберите вариант «тестовый режим». Затем установите базу данных в «базу данных реального времени» вместо «облачного хранилища», щелкнув раскрывающееся меню вверху. Выберите вкладку «правила» и измените два «ложных» на «истину», наконец, щелкните вкладку «данные» и скопируйте URL-адрес базы данных, это потребуется позже.

Последнее, что вам нужно сделать, это нажать на значок шестеренки рядом с обзором проекта, затем на «Настройки проекта», затем выбрать вкладку «Сервисные учетные записи», наконец, нажать «Секреты базы данных» и записать безопасность. код вашей базы данных. Выполнив этот шаг, вы успешно создали свою облачную базу данных, к которой можно получить доступ со своего смартфона и с Raspberry Pi. (Используйте изображения, прикрепленные выше, в случае каких-либо сомнений или просто оставьте вопрос в разделе комментариев)

Шаг 14: Создание мобильного приложения

Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения
Создание мобильного приложения

Следующая часть системы IoT - приложение для смартфона. Мы решили использовать MIT App Inventor, чтобы создать собственное приложение. Чтобы использовать созданное нами приложение, сначала откройте следующую ссылку (MIT App Inventor), которая приведет вас на их веб-страницу. Затем нажмите «создать приложения» в верхней части экрана, затем войдите в свою учетную запись Google.

Загрузите файл.aia, ссылка на который приведена ниже. Откройте вкладку «проекты» и нажмите «Импортировать проект (.aia) с моего компьютера», затем выберите файл, который вы только что загрузили, и нажмите «ОК». В окне компонентов прокрутите до конца, пока не увидите «FirebaseDB1», щелкните по нему и измените «FirebaseToken», «FirebaseURL» на значения, которые вы запомнили на предыдущем шаге. После выполнения этих шагов вы будете готовы загрузить и установить приложение. Вы можете загрузить приложение прямо на свой телефон, щелкнув вкладку «Сборка» и нажав «Приложение (предоставить QR-код для.apk)», затем отсканировав QR-код своим смартфоном или нажав «Приложение (сохранить.apk на моем компьютере)) вы загрузите файл apk на свой компьютер, который затем можно будет перенести на свой смартфон.

Шаг 15: Программирование Raspberry Pi

Программирование Raspberry Pi
Программирование Raspberry Pi

Raspberry Pi используется по двум основным причинам.

  1. Он передает поток видео в реальном времени от робота на веб-сервер. Этот поток может просматривать пользователь с помощью мобильного приложения.
  2. Он считывает обновленные команды в базе данных firebase и инструктирует Arduino выполнять необходимые задачи.

Подробное руководство по настройке Raspberry Pi для прямой трансляции уже существует, и его можно найти здесь. Инструкции сводятся к трем простым командам. Включите Raspberry Pi, откройте терминал и введите следующие команды.

  • git clone
  • компакт-диск RPi_Cam_Web_Interface
  • ./install.sh

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

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

  • запросы на установку sudo pip == 1.1.0
  • sudo pip установить python-firebase

Наконец, загрузите файл python, прикрепленный ниже, и сохраните его на Raspberry Pi. В четвертой строке кода измените COM-порт на порт, к которому подключен Arduino. Затем измените URL-адрес в строке 8 на URL-адрес firebase, который вы записали ранее. Наконец, запустите программу через терминал. Эта программа извлекает команды из облачной базы данных и передает их в Arduino через последовательное соединение.

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

Программирование Arduino
Программирование Arduino
Программирование Arduino
Программирование Arduino

Arduino используется для интерпретации команд от Pi и инструктирует исполнительные механизмы робота для выполнения необходимых задач. Загрузите прилагаемый ниже код Arduino и загрузите его на Arduino. После программирования Arduino подключите его к одному из USB-портов Pi с помощью специального USB-кабеля.

Шаг 17: Включение системы

Питание системы
Питание системы

Робот будет питаться от 3-элементной липо-батареи. Клеммы аккумулятора необходимо разделить на две части, где один идет непосредственно к щиту ЧПУ для питания двигателей, а другой подключается к UBEC 5 В, который создает устойчивую линию питания 5 В, которая будет использоваться для питания Raspberry Pi через контакты GPIO. 5 В от UBEC подключается к выводу 5 В на Raspberry Pi, а GND от UBEC подключается к выводу GND на Pi.

Шаг 18: Использование приложения

Использование приложения
Использование приложения
Использование приложения
Использование приложения
Использование приложения
Использование приложения

Интерфейс приложения позволяет управлять роботом-наблюдателем, а также транслировать прямую трансляцию с бортовой камеры. Чтобы подключиться к вашему роботу, убедитесь, что у вас есть стабильное интернет-соединение, а затем просто введите IP-адрес Raspberry Pi в предоставленное текстовое поле и нажмите кнопку обновления. После этого на вашем экране появится прямая трансляция, и вы сможете управлять различными функциями робота.

Шаг 19: готовы к тестированию

Готов к тесту
Готов к тесту
Готовы к тестированию
Готовы к тестированию

Теперь, когда ваш робот для наблюдения за домашними животными полностью собран, можно наполнить миску лакомствами для собак. Откройте приложение, подключите камеру и получайте удовольствие! В настоящее время мы играем с вездеходом и нашим «Биглем» и запечатлели довольно забавные моменты.

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

Есть возможности для улучшения, чтобы он лучше работал в реальном мире. Тем не менее, мы создали надежную систему, которую можно развивать и расширять. Если вам понравился этот проект, оставьте нам голос в «Конкурсе робототехники».

Удачи!

Конкурс робототехники
Конкурс робототехники
Конкурс робототехники
Конкурс робототехники

Второй приз конкурса робототехники

Рекомендуемые: