Оглавление:

Робот для удаленного поиска и утилизации с управляемым движением Leap Motion: 5 шагов
Робот для удаленного поиска и утилизации с управляемым движением Leap Motion: 5 шагов

Видео: Робот для удаленного поиска и утилизации с управляемым движением Leap Motion: 5 шагов

Видео: Робот для удаленного поиска и утилизации с управляемым движением Leap Motion: 5 шагов
Видео: Вещи, которые мистеру Уэлчу больше не разрешается делать в сборнике для чтения RPG № 1-2450 2024, Ноябрь
Anonim
Image
Image

В рамках моей заявки на Leap Motion # 3D Jam я был рад создать этого поисково-спасательного робота с беспроводным управлением жестами на основе Raspberry Pi. Этот проект демонстрирует и предоставляет минималистичный пример того, как беспроводные трехмерные жесты рук могут использоваться для управления физическими объектами и взаимодействия с ними.

Поскольку в этом проекте используется популярная структура WebIOPi IoT на Raspberry Pi, его можно очень легко расширить для управления и взаимодействия, как правило, с любым датчиком / оборудованием / электроникой, которые могут взаимодействовать с Raspberry Pi.

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

1. Робот для уничтожения бомб, управляемый удаленными жестами (возможно, с помощью OWI Arm и т. Д.)

2. Дистанционная хирургическая операция врача.

3. Интерактивные художественные выставки или образовательный контент, контролируемые жестами.

4. Бесконечные другие возможности / интеграции (я ограничен своим воображением:))

Шаг 1. Обзор

Понимание WebIOPi Framework
Понимание WebIOPi Framework

Этот проект позволяет пользователю интерактивно управлять роботом с помощью трехмерных жестов рук с помощью Leap Motion, подключенного к ПК.

Raspberry Pi на борту робота также имеет веб-камеру USB, которая передает потоковое видео в реальном времени обратно пользователю, которое можно увидеть в веб-браузере. Библиотека LeapMotion JavaScript, встроенная в эту веб-страницу, обрабатывает жесты рук и отправляет управляющие сигналы обратно роботу, который затем перемещается соответствующим образом.

Raspberry Pi на роботе настроен как точка доступа (режим AP) с помощью подключенного к нему USB-ключа WiFi. Это позволяет нашим ПК / устройствам напрямую подключаться к Raspberry Pi и управлять ими через веб-страницу. Raspberry Pi также можно настроить для работы в клиентском режиме, при этом он подключается по беспроводной сети к точке доступа WiFi-маршрутизатора, к которой уже подключены ПК / устройства.

Этот проект основан на WebIOPi (https://webiopi.trouch.com/), который является популярным фреймворком IoT для Raspberry Pi. Используя комплект Weaved IoT Kit (или через переадресацию портов на маршрутизаторе), этим роботом можно дистанционно управлять и / или получать данные из любой точки мира.

При создании проекта использовались следующие компоненты:

  1. Raspberry Pi B (100% прямая совместимость с Raspberry Pi B +)
  2. Веб-камера Logitech USB (всего 1,3 мегапикселя)
  3. Микросхема драйвера двигателя L293D и защитный экран
  4. USB-ключ Wi-Fi для Raspberry Pi
  5. USB Power Bank для Raspberry Pi
  6. Внешний аккумулятор 4 В / 1,5 А для управления двигателями роботов

Шаг 2: Сборка проекта

Установка WebIOPi, написание пользовательского кода и настройка веб-камеры:

Инструкции по установке WebIoPi, основы фреймворка и множество примеров доступны на странице проекта здесь:

Чтобы встроенные в веб-страницу функции LeapMotion запускали действия GPIO на Raspberry Pi, мы использовали макросы, подробности которых можно найти здесь:

Я также написал несколько заметок о начале работы по вышеупомянутому процессу, которые можно найти в приложении.

Установка и настройка веб-камеры

Мы используем MJPG-Streamer для потоковой передачи видеопотока с Raspberry Pi обратно в браузер через веб-камеру USB, подключенную к Pi. Следуйте инструкциям по установке и сборке, указанным здесь https://blog.miguelgrinberg.com/post/how-to-build-…, чтобы MJPG-Streamer работал на Raspberry Pi.

Настройка Raspberry Pi в качестве точки доступа / точки доступа

Чтобы настроить Raspberry Pi в качестве Hostpot, следуйте инструкциям, приведенным здесь: https://elinux.org/RPI-Wireless-Hotspot. Я настроил статический IP-адрес Raspberry Pi как 192.168.42.1, который мы вводим в браузер, когда Pi загружается в режим AP.

WebIOPi, MJPG-Streamer и служба точки доступа Wi-Fi настроены для автоматического запуска при загрузке, и это позволяет нам напрямую открывать веб-браузер и подключаться к роботу после его загрузки. Файл rc.local, доступный в репозитории, используется для запуска веб-камеры при загрузке.

Шаг 3: Инструкции по сборке / подключению

4 GPIO Raspberry Pi, а именно GPIO 9, 11, 23 и 24, подключены к микросхеме драйвера двигателя L293D, которая соответственно управляет двигателями после получения макросов с веб-страницы, обслуживаемой фреймворком Webiopi. Ключ USB WiFi и веб-камера USB Logitech подключаются к 2 портам USB, доступным на Raspberry Pi. Блок питания 5 В 4000 мАч подает основное питание на Pi. Свинцово-кислотная батарея 4V 1.5A используется для привода двигателей.

Примечание. Поскольку максимальный выходной ток используемого мною блока питания составлял всего 1000 мАч, мне пришлось использовать внешнюю свинцово-кислотную батарею для управления двигателями. Если у вас блок питания, который дает> = 2000 мАч, вы можете напрямую управлять двигателями от шины 5 В на Pi (хотя я бы не рекомендовал это для энергоемких двигателей).

Три ключевых подраздела проекта LeapMotion Javascript API, WebIOPi и MJPG-Streamer и их базовая работа / настройка кратко описаны ниже.

Шаг 4: понимание WebIOPi Framework

Интерфейс, отображаемый в браузере, написан на HTML (имя файла: index.html) и Javascript, тогда как серверная часть, управляющая GPIO, написана на Python (имя файла: script.py). Подробные примечания по созданию пользовательского WebApp на основе инфраструктуры WebIOPi прилагаются в виде примечаний в репозитории Bitbucket.

Пользовательские макросы, определенные в скрипте Python, могут запускаться из файла HTML.

Например: webiopi (). CallMacro ("go_forward"); Это специальный вызов макроса go_forward, определенного в скрипте Python, который обрабатывает процесс вращения обоих двигателей в прямом направлении.

Иерархия каталогов, в которой хранятся файлы на Pi, показана на прикрепленном изображении.

Папка Robot содержит следующие подпапки:

  • html: содержащий index.html
  • python: содержащий script.py
  • mjpg-streamer-r63: содержащий файлы сборки и исполняемый файл для запуска веб-камеры

MJPG-Streamer: поток видео в реальном времени с веб-камеры USB по умолчанию работает через порт 8080 Pi. Чтобы просмотреть поток вручную, перейдите к RASPBERRYPI_IP: 8080 в браузере после включения веб-камеры.

Код LeapMotion:

Фрагменты кода из примеров, представленных в LeapMotion SDK, были встроены в файл index.html. Файл leap.js LeapMotion необходимо добавить в папку html в каталоге проекта на Raspberry Pi.

Параметр palmPosition, отправляемый LeapMotion, используется для определения того, какой макрос запускать на Raspberry Pi.

Шаг 5: Запуск проекта

Просто включите Raspberry Pi и подождите примерно минуту. Вы увидите новый хот-дог RaspberryPi. Подключитесь к этой точке доступа и откройте в браузере статический IP-адрес: 192.168.42.1:8000. 8000 - порт по умолчанию для WebIOPi.

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

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

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

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